@onescience/onecode-web 1.14.50-202608100929 → 1.14.50-202608111010

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/assets/{account-system-Cm5NA-nD.js → account-system-BpQR2q1q.js} +1 -1
  2. package/assets/{alert-05-CARB65SS.js → alert-01-Bmv7-d23.js} +1 -1
  3. package/assets/{alert-01-B8M9SpnR.js → alert-02-Z7OJW7Zt.js} +1 -1
  4. package/assets/{alert-02-B3cvanqA.js → alert-04-D3kUNp5B.js} +1 -1
  5. package/assets/{alert-04-DPJpMaoB.js → alert-05-D9pBHSfS.js} +1 -1
  6. package/assets/alert-06-SsZGmwTj.js +1 -0
  7. package/assets/alert-07-BTbg9s9o.js +1 -0
  8. package/assets/alert-08-j1U0FhtL.js +1 -0
  9. package/assets/alert-10-BVf31c7H.js +1 -0
  10. package/assets/{bip-bop-03-BZebWduK.js → bip-bop-03-kFIhChOl.js} +1 -1
  11. package/assets/{bip-bop-04-DX13yI5p.js → bip-bop-04-CazixUYN.js} +1 -1
  12. package/assets/{bip-bop-06-C_VBGZRS.js → bip-bop-06-B1eJOR7L.js} +1 -1
  13. package/assets/{bip-bop-08-D8PGHCEN.js → bip-bop-08-B11kAC2W.js} +1 -1
  14. package/assets/bip-bop-09-C93KPE_X.js +1 -0
  15. package/assets/dialog-create-project-folder-Cfohd9OT.js +1 -0
  16. package/assets/dialog-edit-project-CqmEdYao.js +1 -0
  17. package/assets/dialog-fork-nUrJdQJ8.js +1 -0
  18. package/assets/{dialog-project-upload-CR3jZwHQ.js → dialog-project-upload-CRT6-JI9.js} +2 -2
  19. package/assets/dialog-select-directory-O9qG7GNG.js +4 -0
  20. package/assets/dialog-select-file-DvJ5s-GT.js +1 -0
  21. package/assets/{dialog-select-mcp-DrsV6phV.js → dialog-select-mcp-DyuJLPxu.js} +2 -2
  22. package/assets/dialog-select-model-CMXAYIva.js +2 -0
  23. package/assets/dialog-terminal-unavailable-DIu6wHLr.js +3 -0
  24. package/assets/{ghostty-web-C2MTkuch.js → ghostty-web-BFj0gflN.js} +1 -1
  25. package/assets/{index-B9pjoyUI.js → index-GYuEWFpk.js} +175 -175
  26. package/assets/{index-B2hZOSpo.css → index-nRH_JiPX.css} +1 -1
  27. package/assets/{nope-02-C03e17Bh.js → nope-02-hB6QTvI4.js} +1 -1
  28. package/assets/{nope-05-juRBvGn0.js → nope-05-jbnhgCJh.js} +1 -1
  29. package/assets/{nope-08-BsFJm0cQ.js → nope-08-A_FwFK4D.js} +1 -1
  30. package/assets/{nope-11-DCR3jHwL.js → nope-11-D2dSp3Zm.js} +1 -1
  31. package/assets/nope-12-CrXmt7ZD.js +1 -0
  32. package/assets/{staplebops-03-w3OJ-fLR.js → staplebops-03-BbInwi54.js} +1 -1
  33. package/assets/{staplebops-04-C5YPkXsu.js → staplebops-04-B1nYm1vB.js} +1 -1
  34. package/assets/{staplebops-06-DZgFgdsA.js → staplebops-06-sWOZ6Pq7.js} +1 -1
  35. package/assets/{staplebops-07-CrT1eGPu.js → staplebops-07-iMHTZFkN.js} +1 -1
  36. package/assets/status-popover-body-BDErSEf2.js +2 -0
  37. package/assets/{yup-01-IFLM9bq6.js → yup-01-Dtg6hQes.js} +1 -1
  38. package/assets/{yup-03-DJZ9fLAh.js → yup-03-DCvI8L7z.js} +1 -1
  39. package/assets/{yup-04-CX6MRLq6.js → yup-04-YLT9ajwR.js} +1 -1
  40. package/assets/{yup-05-BIat4AQj.js → yup-05-ChQxSlFP.js} +1 -1
  41. package/assets/{zh-CqVcEDxa.js → zh-DryFhcZS.js} +3 -3
  42. package/index.html +11 -11
  43. package/package.json +2 -2
  44. package/assets/alert-06-CMfhKwt-.js +0 -1
  45. package/assets/alert-07-C7Cj6kS_.js +0 -1
  46. package/assets/alert-08-DXkyb4LN.js +0 -1
  47. package/assets/alert-10-Ctj5b31E.js +0 -1
  48. package/assets/bip-bop-09-BYWy7vDm.js +0 -1
  49. package/assets/dialog-create-project-folder-NlZd4PZQ.js +0 -1
  50. package/assets/dialog-edit-project-CSa7lrSE.js +0 -1
  51. package/assets/dialog-fork-QfnJJjKq.js +0 -1
  52. package/assets/dialog-select-directory-BVBcgFtg.js +0 -4
  53. package/assets/dialog-select-file-CpfRNADb.js +0 -1
  54. package/assets/dialog-select-model-CzDjurda.js +0 -2
  55. package/assets/dialog-select-server-CKaT7IB4.js +0 -1
  56. package/assets/dialog-terminal-unavailable-DP4NPjqV.js +0 -3
  57. package/assets/nope-12-CFZCAgdA.js +0 -1
  58. package/assets/server-row-ap4HgcmF.js +0 -1
  59. package/assets/status-popover-body-CI9KvFLd.js +0 -2
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/nope-02-EygnDbCM.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/nope-02-EygnDbCM.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/nope-05-DZsXzrQW.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/nope-05-DZsXzrQW.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/nope-08-COPo0uNf.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/nope-08-COPo0uNf.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/nope-11-CVdXg8G-.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/nope-11-CVdXg8G-.aac";export{e as default};
@@ -0,0 +1 @@
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/nope-12-BJR1Ka3c.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/staplebops-03-Aug82oH0.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/staplebops-03-Aug82oH0.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/staplebops-04-olyHi8qQ.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/staplebops-04-olyHi8qQ.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/staplebops-06-Cj_2vOI4.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/staplebops-06-Cj_2vOI4.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/staplebops-07-cqQEvbIf.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/staplebops-07-cqQEvbIf.aac";export{e as default};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-GYuEWFpk.js","assets/index-nRH_JiPX.css","assets/dialog-select-mcp-DyuJLPxu.js"])))=>i.map(i=>d[i]);
2
+ import{aF as Q,H as G,c as H,b as V,l as J,g as R,aP as K,i as s,e,aQ as b,S,R as j,aJ as N,m as P,j as A,U as z,V as M,aR as U,s as W,aG as X,aH as Y,aI as Z,J as tt,E as et,aL as at,t as h,_ as B,h as st}from"./index-GYuEWFpk.js";var F=h('<div class="flex flex-col px-2 pb-2"><div class="flex flex-col p-3 bg-background-base rounded-sm min-h-14 gap-2"><div class="flex flex-wrap gap-2 pt-1">'),nt=h('<div class="flex items-center gap-1 w-[360px] rounded-xl shadow-[var(--shadow-lg-border-base)]">'),I=h('<div class="text-14-regular text-text-base text-center my-auto py-2">'),rt=h('<button type=button class="flex items-center gap-2 w-full h-8 pl-3 pr-2 py-1 rounded-md hover:bg-surface-raised-base-hover transition-colors text-left"><div></div><span class="text-14-regular text-text-base truncate flex-1"></span><div>'),lt=h('<span class="text-11-regular text-text-weaker shrink-0">· 检测中...'),ot=h('<button type=button class="flex flex-col gap-0.5 w-full px-3 py-1.5 rounded-md hover:bg-surface-raised-base-hover transition-colors text-left"><div class="flex items-center gap-2 min-w-0"><span class="os-ssh-connectivity-dot shrink-0"aria-hidden=true></span><span class="text-14-regular text-text-base truncate"></span><span class="text-11-regular text-text-weaker shrink-0"></span></div><span class="text-12-regular text-text-weak truncate pl-3.5">'),it=h('<span class="text-11-regular text-text-weaker shrink-0">· ');const ct=()=>{const _=Q(),f=X(),$=V(),k=Y(),r=Z();return tt(()=>({mutationFn:async l=>{await(_.data.mcp[l]?.status==="connected"?f.client.mcp.disconnect({name:l}):f.client.mcp.connect({name:l}))},onSuccess:()=>k.refetchQueries(r.mcp(at(_.directory))),onError:l=>{et({variant:"error",title:$.t("common.requestFailed"),description:l instanceof Error?l.message:String(l)})}}))};function dt(_){const f=Q(),$=G(),k=H(),r=V();let l=0,w=!1;J(()=>{w=!0,l+=1}),_.shown;const u=ct(),L=R(()=>{const a=new Set([...Object.keys($.data.config.mcp??{}),...Object.keys(f.data.mcp??{})]);return Array.from(a).sort((n,o)=>n.localeCompare(o))}),q=a=>f.data.mcp?.[a]?.status,T=R(()=>Object.entries($.data.config.ssh??{}).map(([a,n])=>({name:a,config:n})).filter(a=>!!a.config&&typeof a.config=="object"&&"host"in a.config).sort((a,n)=>a.name.localeCompare(n.name))),D=K(),E=a=>{const n=++l;B(()=>import("./index-GYuEWFpk.js").then(o=>o.aT),__vite__mapDeps([0,1])).then(o=>{w||l!==n||k.show(()=>e(o.DialogSelectSsh,{initialMode:a}))})},O=a=>{const n=++l;B(()=>import("./dialog-select-mcp-DyuJLPxu.js"),__vite__mapDeps([2,0,1])).then(o=>{w||l!==n||k.show(()=>e(o.DialogSelectMcp,{initialMode:a}))})};return(()=>{var a=nt();return s(a,e(b,{get"aria-label"(){return r.t("status.popover.ariaLabel")},class:"tabs bg-background-strong rounded-xl overflow-hidden","data-component":"tabs","data-active":"mcp",defaultValue:"mcp",variant:"alt",get children(){return[e(b.List,{"data-slot":"tablist",class:"bg-transparent border-b-0 px-4 pt-2 pb-0 gap-3 h-10",get children(){return[e(b.Trigger,{value:"mcp","data-slot":"tab",class:"text-12-regular",get children(){return r.t("status.popover.tab.mcp")}}),e(b.Trigger,{value:"ssh","data-slot":"tab",class:"text-12-regular",get children(){return r.t("status.popover.tab.ssh")}})]}}),e(b.Content,{value:"mcp",get children(){var n=F(),o=n.firstChild,g=o.firstChild;return s(o,e(S,{get when(){return L().length>0},get fallback(){return(()=>{var t=I();return s(t,()=>r.t("dialog.mcp.empty")),t})()},get children(){return e(j,{get each(){return L()},children:t=>{const v=()=>q(t),p=()=>v()==="connected";return(()=>{var c=rt(),m=c.firstChild,x=m.nextSibling,C=x.nextSibling;return c.$$click=()=>{u.isPending||u.mutate(t)},s(x,t),C.$$click=i=>i.stopPropagation(),s(C,e(N,{get checked(){return p()},get disabled(){return P(()=>!!u.isPending)()&&u.variables===t},onChange:()=>{u.isPending||u.mutate(t)}})),A(i=>{var d=u.isPending&&u.variables===t,y={"size-2 rounded-full shrink-0":!0,"bg-icon-success-base":p(),"bg-border-weak-base":!p()};return d!==i.e&&(c.disabled=i.e=d),i.t=z(m,y,i.t),i},{e:void 0,t:void 0}),c})()}})}}),g),s(g,e(M,{variant:"secondary",class:"h-8 px-3 py-1.5",onClick:()=>O(),get children(){return r.t("status.popover.action.manageMcp")}}),null),s(g,e(M,{variant:"secondary",icon:"plus-small",class:"h-8 px-3 py-1.5",onClick:()=>O("add"),get children(){return r.t("dialog.mcp.addButton")}}),null),n}}),e(b.Content,{value:"ssh",get children(){var n=F(),o=n.firstChild,g=o.firstChild;return s(o,e(S,{get when(){return T().length>0},get fallback(){return(()=>{var t=I();return s(t,()=>r.t("dialog.ssh.empty")),t})()},get children(){return e(j,{get each(){return T()},children:t=>{const v=()=>D.byName()[t.name];return(()=>{var p=ot(),c=p.firstChild,m=c.firstChild,x=m.nextSibling,C=x.nextSibling,i=c.nextSibling;return p.$$click=()=>E(),s(x,()=>t.name),s(C,(()=>{var d=P(()=>t.config.enabled===!1);return()=>d()?r.t("dialog.ssh.status.disabled"):r.t("dialog.ssh.status.enabled")})()),s(c,e(S,{get when(){return v()},children:d=>(()=>{var y=it();return y.firstChild,s(y,()=>U(d().connectivity),null),y})()}),null),s(c,e(S,{get when(){return P(()=>!!D.loading())()&&!v()},get children(){return lt()}}),null),s(i,()=>t.config.host,null),s(i,(()=>{var d=P(()=>!!t.config.remotePath);return()=>d()?` · ${t.config.remotePath}`:""})(),null),A(()=>W(m,"data-state",D.loading()&&!v()?"testing":v()?.connectivity??"idle")),p})()}})}}),g),s(g,e(M,{variant:"secondary",class:"h-8 px-3 py-1.5",onClick:()=>E(),get children(){return r.t("status.popover.action.manageSsh")}}),null),s(g,e(M,{variant:"secondary",icon:"plus-small",class:"h-8 px-3 py-1.5",onClick:()=>E("add"),get children(){return r.t("dialog.ssh.addButton")}}),null),n}})]}})),a})()}st(["click"]);export{dt as StatusPopoverBody};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/yup-01-BtRq6dLN.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/yup-01-BtRq6dLN.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/yup-03-BHLEoqSS.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/yup-03-BHLEoqSS.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/yup-04-C7yadpJT.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/yup-04-C7yadpJT.aac";export{e as default};
@@ -1 +1 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/yup-05-CuuaeyjC.aac";export{e as default};
1
+ const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/yup-05-CuuaeyjC.aac";export{e as default};
@@ -1,5 +1,5 @@
1
1
  const e={"command.category.suggested":"建议","command.category.view":"视图","command.category.project":"项目","command.category.provider":"提供商","command.category.server":"服务器","command.category.session":"会话","command.category.theme":"主题","command.category.language":"语言","command.category.file":"文件","command.category.context":"上下文","command.category.terminal":"终端","command.category.model":"模型","command.category.mcp":"MCP","command.category.agent":"智能体","command.category.permissions":"权限","command.category.workspace":"工作区","command.category.settings":"设置","theme.scheme.system":"系统","theme.scheme.light":"浅色","theme.scheme.dark":"深色","command.sidebar.toggle":"切换侧边栏","titlebar.sidebar.label":"会话列表","command.project.open":"打开项目","command.project.createFolder":"新建文件夹","command.project.upload":"上传本地文件到项目","command.provider.connect":"连接提供商","command.server.switch":"切换服务器","command.settings.open":"打开设置","command.session.previous":"上一个会话","command.session.next":"下一个会话","command.session.previous.unseen":"上一个未读会话","command.session.next.unseen":"下一个未读会话","command.session.archive":"归档会话","command.palette":"命令面板","command.theme.cycle":"切换主题","command.theme.set":"使用主题:{{theme}}","command.theme.scheme.cycle":"切换配色方案","command.theme.scheme.set":"使用配色方案:{{scheme}}","command.language.cycle":"切换语言","command.language.set":"使用语言:{{language}}","command.session.new":"新建会话","command.file.open":"打开文件","command.tab.close":"关闭标签页","command.context.addSelection":"将所选内容添加到上下文","command.context.addSelection.description":"添加当前文件中选中的行","command.input.focus":"聚焦输入框","command.terminal.toggle":"切换终端","command.fileTree.toggle":"切换文件树","command.fileTree.sync":"同步文件","command.fileTree.sync.description":"从磁盘刷新文件树和更改列表","command.review.toggle":"切换审查面板","command.terminal.new":"新建终端","command.terminal.new.description":"创建新的终端标签页","terminal.fullscreen.enter":"全屏终端","terminal.fullscreen.exit":"退出全屏","command.steps.toggle":"切换步骤","command.steps.toggle.description":"显示或隐藏当前消息的步骤","command.message.previous":"上一条消息","command.message.previous.description":"跳转到上一条用户消息","command.message.next":"下一条消息","command.message.next.description":"跳转到下一条用户消息","command.model.choose":"选择模型","command.model.choose.description":"选择不同的模型","command.mcp.toggle":"切换 MCPs","command.mcp.toggle.description":"切换 MCPs","command.agent.cycle":"切换智能体","command.agent.cycle.description":"切换到下一个智能体","command.agent.cycle.reverse":"反向切换智能体","command.agent.cycle.reverse.description":"切换到上一个智能体","command.model.variant.cycle":"切换思考强度","command.model.variant.cycle.description":"切换到下一个强度等级","command.prompt.mode.shell":"Shell","command.prompt.mode.normal":"Prompt","command.permissions.autoaccept.enable":"自动接受权限","command.permissions.autoaccept.disable":"停止自动接受权限","command.workspace.toggle":"切换工作区","command.workspace.toggle.description":"在侧边栏启用或禁用多个工作区","command.session.undo":"撤销","command.session.undo.description":"撤销上一条消息","command.session.redo":"重做","command.session.redo.description":"重做上一条撤销的消息","command.session.compact":"精简会话","command.session.compact.description":"总结会话以减少上下文大小","command.session.fork":"从消息分叉","command.session.fork.description":"从之前的消息创建新会话","command.session.share":"分享会话","command.session.share.description":"分享此会话并将链接复制到剪贴板","command.session.unshare":"取消分享会话","command.session.unshare.description":"停止分享此会话","palette.search.placeholder":"搜索文件、命令和会话","palette.empty":"未找到结果","palette.group.commands":"命令","palette.group.files":"文件","dialog.provider.search.placeholder":"搜索提供商","dialog.provider.empty":"未找到提供商","dialog.provider.group.popular":"热门","dialog.provider.group.other":"其他","dialog.provider.tag.recommended":"推荐","dialog.provider.tag.connected":"已连接","dialog.provider.opencode.note":"使用 OpenCode Zen 或 API 密钥连接","dialog.provider.opencode.tagline":"可靠的优化模型","dialog.provider.opencodeGo.tagline":"适合所有人的低成本订阅","dialog.provider.anthropic.note":"使用 Claude Pro/Max 或 API 密钥连接","dialog.provider.copilot.note":"使用 Copilot 或 API 密钥连接","dialog.provider.openai.note":"远程/网页请用 headless 或 API 密钥;browser 登录仅限本机 OneCode","dialog.provider.google.note":"使用 Google 账号或 API 密钥连接","dialog.provider.openrouter.note":"使用 OpenRouter 账号或 API 密钥连接","dialog.provider.vercel.note":"使用 Vercel 账号或 API 密钥连接","dialog.model.select.title":"选择模型","dialog.model.search.placeholder":"搜索模型","dialog.model.empty":"未找到模型","dialog.model.manage":"管理模型","dialog.model.manage.description":"自定义模型选择器中显示的模型。","dialog.model.manage.provider.toggle":"切换所有 {{provider}} 模型","dialog.model.unpaid.freeModels.title":"OpenCode 提供的免费模型","dialog.model.unpaid.addMore.title":"从热门提供商添加更多模型","dialog.provider.viewAll":"查看更多提供商","provider.connect.title":"连接 {{provider}}","provider.connect.title.anthropicProMax":"使用 Claude Pro/Max 登录","provider.connect.selectMethod":"选择 {{provider}} 的登录方式。","provider.connect.method.apiKey":"API 密钥","provider.connect.status.inProgress":"正在授权...","provider.connect.status.connecting":"正在连接...","provider.connect.status.waiting":"等待授权...","provider.connect.status.failed":"授权失败:{{error}}","provider.connect.apiKey.description":"输入你的 {{provider}} API 密钥以连接帐户,并在 OpenCode 中使用 {{provider}} 模型。","provider.connect.apiKey.label":"{{provider}} API 密钥","provider.connect.apiKey.placeholder":"API 密钥","provider.connect.apiKey.required":"API 密钥为必填项","provider.connect.opencodeZen.line1":"OpenCode Zen 为你提供一组精选的可靠优化模型,用于代码智能体。","provider.connect.opencodeZen.line2":"只需一个 API 密钥,你就能使用 Claude、GPT、Gemini、GLM 等模型。","provider.connect.opencodeZen.visit.prefix":"访问 ","provider.connect.opencodeZen.visit.link":"opencode.ai/zen","provider.connect.opencodeZen.visit.suffix":" 获取你的 API 密钥。","provider.connect.oauth.code.visit.prefix":"访问 ","provider.connect.oauth.code.visit.link":"此链接","provider.connect.oauth.code.visit.suffix":" 获取授权码,以连接你的帐户并在 OpenCode 中使用 {{provider}} 模型。","provider.connect.oauth.code.label":"{{method}} 授权码","provider.connect.oauth.code.placeholder":"授权码","provider.connect.oauth.code.required":"授权码为必填项","provider.connect.oauth.code.invalid":"授权码无效","provider.connect.oauth.auto.visit.prefix":"访问 ","provider.connect.oauth.auto.visit.link":"此链接","provider.connect.oauth.auto.visit.suffix":" 并输入以下代码,以连接你的帐户并在 OpenCode 中使用 {{provider}} 模型。","provider.connect.oauth.auto.confirmationCode":"确认码","provider.connect.toast.connected.title":"{{provider}} 已连接","provider.connect.toast.connected.description":"现在可以使用 {{provider}} 模型了。","provider.custom.title":"自定义提供商","provider.custom.description.prefix":"配置与 OpenAI 兼容的提供商。请查看","provider.custom.description.link":"提供商配置文档","provider.custom.description.suffix":"。","provider.custom.field.providerID.label":"提供商 ID","provider.custom.field.providerID.placeholder":"myprovider","provider.custom.field.providerID.description":"使用小写字母、数字、连字符或下划线","provider.custom.field.providerID.hint":"本条配置的内部标识。同一中转站配置多个模型时请使用不同标识以便区分,通常可保留自动生成的值。","provider.custom.field.name.label":"名称","provider.custom.field.name.placeholder":"我的 AI 提供商","provider.custom.field.name.hint":"列表里显示的名称。默认取基础 URL 的域名;内部标识会按地址自动生成。","provider.custom.field.providerID.readonly":"内部标识:{{id}}(编辑时不可更改)","provider.custom.field.baseURL.label":"基础 URL","provider.custom.field.baseURL.placeholder":"https://api.myprovider.com/v1","provider.custom.field.baseURL.hint":"中转站 / OpenAI 兼容地址,一般以 /v1 结尾。","provider.custom.field.apiKey.label":"API 密钥","provider.custom.field.apiKey.placeholder":"API 密钥","provider.custom.field.apiKey.description":"可选。如果你通过请求头管理认证,可留空。","provider.custom.field.apiKey.hint":"中转站提供的密钥。多数情况下需要填写。","provider.custom.field.apiKey.keepPlaceholder":"留空则保持原密钥","provider.custom.field.apiKey.keepDescription":"可选。留空将保留已配置的 API 密钥。","provider.custom.field.apiKey.configuredHint":"已配置 API 密钥,留空将保持不变。重新填写会覆盖原密钥。","provider.custom.simple.hint":"填写中转站地址和 API 密钥,查询并勾选可用模型即可。名称可按需修改,默认取自地址域名。","provider.custom.advanced.show":"显示高级选项","provider.custom.advanced.hide":"隐藏高级选项","provider.custom.advanced.hint":"提供商 ID、显示名称与请求头为可选项;默认分别使用自动标识 / 域名 / 模型 ID。","provider.custom.models.label":"模型","provider.custom.models.id.label":"模型 ID","provider.custom.models.id.placeholder":"gpt-5.6-luna","provider.custom.models.id.hint":"可手动填写,或点击下方按钮从中转站 /v1/models 查询后勾选。","provider.custom.models.query":"查询当前中转站的可用模型","provider.custom.models.query.loading":"正在查询…","provider.custom.models.query.empty":"中转站未返回可用模型,请手动填写模型 ID。","provider.custom.models.query.needURL":"请先填写基础 URL。","provider.custom.models.query.needKey":"请先填写 API 密钥后再查询。","provider.custom.models.query.picked":"已选择 {{count}} 个模型","provider.custom.models.name.label":"显示名称","provider.custom.models.name.placeholder":"显示名称","provider.custom.models.name.section":"模型显示名称(可选)","provider.custom.models.name.hint":"出现在模型下拉里。留空则直接使用模型 ID。","provider.custom.models.remove":"移除模型","provider.custom.models.add":"添加模型","provider.custom.headers.label":"请求头(可选)","provider.custom.headers.hint":"多数中转站无需填写。仅在服务商要求额外 Header 时添加。","provider.custom.headers.key.label":"请求头","provider.custom.headers.key.placeholder":"Header-Name","provider.custom.headers.value.label":"值","provider.custom.headers.value.placeholder":"value","provider.custom.headers.remove":"移除请求头","provider.custom.headers.add":"添加请求头","provider.custom.error.providerID.required":"提供商 ID 为必填项","provider.custom.error.providerID.format":"请使用小写字母、数字、连字符或下划线","provider.custom.error.providerID.exists":"该提供商 ID 已存在","provider.custom.error.name.required":"显示名称为必填项","provider.custom.error.baseURL.required":"基础 URL 为必填项","provider.custom.error.baseURL.format":"必须以 http:// 或 https:// 开头","provider.custom.error.required":"必填","provider.custom.error.duplicate":"重复","provider.custom.error.probe.auth":"API 密钥认证失败,未保存完整密钥。","provider.custom.error.probe.network":"无法连接基础 URL,请检查地址与网络。","provider.custom.error.probe.timeout":"连接超时,请检查基础 URL 与网络。","provider.custom.error.probe.failed":"提供商接口探测失败。","provider.custom.edit.title":"编辑自定义提供商","provider.custom.toast.updated.title":"{{provider}} 已更新","provider.custom.toast.updated.description":"后续调用将使用新的配置。","provider.disconnect.toast.disconnected.title":"{{provider}} 已断开连接","provider.disconnect.toast.disconnected.description":"{{provider}} 模型已不再可用。","model.tag.free":"免费","model.tag.limited":"限免","model.tag.latest":"最新","model.provider.anthropic":"Anthropic","model.provider.openai":"OpenAI","model.provider.google":"Google","model.provider.xai":"xAI","model.provider.meta":"Meta","model.input.text":"文本","model.input.image":"图像","model.input.audio":"音频","model.input.video":"视频","model.input.pdf":"pdf","model.tooltip.allows":"支持:{{inputs}}","model.tooltip.reasoning.allowed":"支持推理","model.tooltip.reasoning.none":"不支持推理","model.tooltip.context":"上下文上限 {{limit}}","common.search.placeholder":"搜索","common.goBack":"返回","common.goForward":"前进","common.loading":"加载中","common.loading.ellipsis":"...","common.cancel":"取消","common.confirm":"确认","common.confirming":"确认中...","common.connect":"连接","common.disconnect":"断开连接","common.continue":"提交","common.submit":"提交","common.save":"保存","common.saving":"保存中...","common.default":"默认","common.attachment":"附件","prompt.placeholder.shell":"输入 shell 命令... {{example}}","prompt.placeholder.normal":"使用 OneScience {{example}}","prompt.placeholder.simple":"使用 OneScience...","prompt.placeholder.summarizeComments":"总结评论…","prompt.placeholder.summarizeComment":"总结该评论…","prompt.mode.shell":"Shell","prompt.mode.normal":"Prompt","prompt.mode.shell.exit":"按 esc 退出","prompt.example.1":"修复代码库中的一个 TODO","prompt.example.2":"这个项目的技术栈是什么?","prompt.example.3":"修复失败的测试","prompt.example.4":"解释认证是如何工作的","prompt.example.5":"查找并修复安全漏洞","prompt.example.6":"为用户服务添加单元测试","prompt.example.7":"重构这个函数,让它更易读","prompt.example.8":"这个错误是什么意思?","prompt.example.9":"帮我调试这个问题","prompt.example.10":"生成 API 文档","prompt.example.11":"优化数据库查询","prompt.example.12":"添加输入校验","prompt.example.13":"创建一个新的组件用于...","prompt.example.14":"我该如何部署这个项目?","prompt.example.15":"审查我的代码并给出最佳实践建议","prompt.example.16":"为这个函数添加错误处理","prompt.example.17":"解释这个正则表达式","prompt.example.18":"把它转换成 TypeScript","prompt.example.19":"在整个代码库中添加日志","prompt.example.20":"哪些依赖已经过期?","prompt.example.21":"帮我写一个迁移脚本","prompt.example.22":"为这个接口实现缓存","prompt.example.23":"给这个列表添加分页","prompt.example.24":"创建一个 CLI 命令用于...","prompt.example.25":"这里的环境变量是怎么工作的?","prompt.popover.emptyResults":"没有匹配的结果","prompt.popover.emptyCommands":"没有匹配的命令","prompt.dropzone.label":"将文件拖放到此处","prompt.dropzone.file.label":"拖放以 @提及文件","prompt.slash.badge.custom":"自定义","prompt.slash.badge.skill":"技能","prompt.slash.badge.mcp":"mcp","prompt.context.active":"当前","prompt.context.includeActiveFile":"包含当前文件","prompt.context.removeActiveFile":"从上下文移除活动文件","prompt.context.removeFile":"从上下文移除文件","prompt.context.removeSkill":"从上下文移除技能","prompt.toast.skillUnavailable.description":"当前工作区未加载该技能,请确认技能已同步后再发送。","prompt.action.attachFile":"附加文件","prompt.attachment.remove":"移除附件","prompt.attachment.uploading":"正在上传文件…","prompt.attachment.uploadingProgress":"正在上传文件… {{progress}}%","prompt.attachment.uploadFailed":"文件上传失败","prompt.attachment.ready":"可以发送","prompt.attachment.unsupported":"当前模型不支持此附件","prompt.attachment.unavailable":"附件不可用","prompt.action.waitForAttachments":"请等待文件上传完成","prompt.action.unsupportedAttachments":"{{model}} 不支持 {{modalities}} 附件","prompt.upload.status.uploading":"上传中…","prompt.upload.status.success":"已上传","prompt.upload.status.error":"上传失败","prompt.upload.retry":"重试上传","prompt.upload.dismiss":"收起","prompt.toast.attachmentReadFailed.title":"读取附件失败","prompt.toast.attachmentReadFailed.description":"无法读取该文件,请重试或更换文件。","prompt.toast.attachmentUploadFailed.title":"文件上传失败","prompt.toast.attachmentUploadFailed.description":"无法上传该文件,请重试或更换文件。","prompt.toast.attachmentUploadFailed.multiple":`{{count}} 个文件上传失败:
2
- {{details}}`,"prompt.toast.attachmentUploadFailed.more":"另外还有 {{count}} 个失败","prompt.toast.attachmentTooLarge.description":"对话框单文件上限 {{limit}}MB,当前约 {{size}}MB。","prompt.toast.folderNotAllowed.title":"不支持上传文件夹","prompt.toast.folderNotAllowed.description":"对话框只能传文件。请使用项目面板右侧 ⋯ 中的上传来传文件夹。","prompt.toast.attachmentsUploading.title":"附件仍在加载","prompt.toast.attachmentsUploading.description":"请等待所有附件加载完成后再发送。","prompt.toast.attachmentUnavailable.title":"附件不可用","prompt.toast.attachmentUnavailable.description":"请重新附加文件后再发送。","prompt.action.send":"发送","prompt.action.stop":"停止","prompt.toast.pasteUnsupported.title":"不支持的附件","prompt.toast.pasteUnsupported.description":"此处仅能附加文件。","prompt.toast.modelAgentRequired.title":"请选择智能体和模型","prompt.toast.modelAgentRequired.description":"发送提示前请先选择智能体和模型。","prompt.toast.worktreeCreateFailed.title":"创建工作树失败","prompt.toast.sessionCreateFailed.title":"创建会话失败","prompt.toast.shellSendFailed.title":"发送 shell 命令失败","prompt.toast.commandSendFailed.title":"发送命令失败","prompt.toast.promptSendFailed.title":"发送提示失败","prompt.toast.promptSendFailed.description":"无法获取会话","prompt.toast.unsupportedAttachment.title":"当前模型不支持该附件","prompt.toast.unsupportedAttachment.description":"{{model}} 不支持 {{modalities}} 输入。对于 PDF,请先提取文本,或切换到支持 PDF 的模型。","dialog.mcp.title":"MCPs","dialog.mcp.description":"已启用 {{enabled}} / {{total}}","dialog.mcp.empty":"未配置 MCPs","dialog.mcp.addTitle":"添加 MCP 服务器","dialog.mcp.editTitle":"编辑 MCP 服务器","dialog.mcp.addButton":"添加 MCP 服务器","dialog.mcp.form.hint":"按业界通用方式配置全局 MCP:本地 stdio(command + env)或远程 HTTP(url + headers)。配置写入全局 opencode.json,所有项目可用。","dialog.mcp.form.name":"名称","dialog.mcp.form.namePlaceholder":"filesystem","dialog.mcp.form.transport":"连接类型","dialog.mcp.form.transport.local":"本地 (stdio)","dialog.mcp.form.transport.remote":"远程 (HTTP)","dialog.mcp.form.command":"启动命令","dialog.mcp.form.commandPlaceholder":"npx -y @modelcontextprotocol/server-filesystem /data","dialog.mcp.form.environment":"环境变量(可选,每行 KEY=VALUE)","dialog.mcp.form.environmentPlaceholder":`API_KEY=...
3
- REGION=...`,"dialog.mcp.form.url":"服务器 URL","dialog.mcp.form.urlPlaceholder":"https://api.example.com/mcp","dialog.mcp.form.headers":"请求头(可选,每行 KEY=VALUE)","dialog.mcp.form.headersPlaceholder":"Authorization=Bearer ...","dialog.mcp.form.enabled":"保存后启用","dialog.mcp.form.enabledDescription":"保存后立即连接此 MCP 服务器。","dialog.mcp.error.name":"请填写服务器名称","dialog.mcp.error.command":"请填写本地启动命令","dialog.mcp.error.url":"请填写远程 URL","dialog.mcp.error.duplicate":"已存在同名 MCP 服务器","dialog.mcp.error.missingConfig":"无法加载该 MCP 配置进行编辑","dialog.mcp.toast.saved":"全局 MCP 配置已保存","dialog.ssh.title":"SSH 配置","dialog.ssh.description":"配置供智能体提交远程作业使用的 SSH 目标。","dialog.ssh.empty":"未配置 SSH 目标","dialog.ssh.addTitle":"添加 SSH 配置","dialog.ssh.editTitle":"编辑 SSH 配置","dialog.ssh.addButton":"添加 SSH 配置","dialog.ssh.import":"一键导入 SSH Config","dialog.ssh.importDescription":"粘贴 SSH Config 后自动填充 Host、HostName、端口、用户、密钥和远程目录。","dialog.ssh.importAction":"一键导入","dialog.ssh.importPlaceholder":"粘贴 SSH Config,例如 Host、HostName、Port、User、IdentityFile、# RemoteWorkDir","dialog.ssh.name":"配置名称","dialog.ssh.host":"SSH Host / Alias","dialog.ssh.hostPlaceholder":"hpc-login","dialog.ssh.hostName":"HostName(可选)","dialog.ssh.hostNamePlaceholder":"zzeshell.scnet.cn","dialog.ssh.username":"用户名(可选)","dialog.ssh.port":"端口","dialog.ssh.remotePath":"远程工作目录","dialog.ssh.auth":"认证方式","dialog.ssh.auth.config":"SSH 配置","dialog.ssh.auth.agent":"ssh-agent","dialog.ssh.auth.key":"密钥文件","dialog.ssh.keyPath":"Identity File","dialog.ssh.keyPathPlaceholder":"服务器端密钥路径,选择文件后会立即上传并自动填入","dialog.ssh.identity.upload":"选择并上传 IdentityFile","dialog.ssh.identity.uploading":"上传中","dialog.ssh.identity.uploaded":"IdentityFile 已上传到服务器","dialog.ssh.identity.uploadFailed":"IdentityFile 上传失败","dialog.ssh.identity.hint":"在文件选择器中确认后会立即上传到 OneCode 服务器;「测试」只会使用上传后回填的服务器路径。","dialog.ssh.identity.missingTitle":"服务器上找不到密钥文件","dialog.ssh.identity.missingDescription":"一键导入的 IdentityFile 路径在当前 OneCode 服务器上不存在,请先上传密钥后再测试。","dialog.ssh.identity.missingEmpty":"未解析到 IdentityFile,请上传密钥后再测试。","dialog.ssh.identity.missingLocalPath":"导入的 IdentityFile 是本机路径(如 Windows C:),当前服务器上不存在。请上传密钥后再测试。","dialog.ssh.identity.missingUnverified":"无法确认服务器上的密钥文件是否存在,请先上传密钥后再测试。","dialog.ssh.identity.missingInline":"当前密钥文件在服务器上不可用,请先上传 IdentityFile。上传完成前无法测试。","dialog.ssh.identity.needsUploadTitle":"请上传密钥文件","dialog.ssh.identity.needsUploadDescription":"本机已找到导入的 IdentityFile,请点击「选择并上传 IdentityFile」后再测试。","dialog.ssh.identity.needsUploadInline":"本机已找到该密钥文件,请点击「选择并上传 IdentityFile」后再测试。","dialog.ssh.identity.notFoundTitle":"密钥文件不存在","dialog.ssh.identity.notFoundDescription":"本机找不到导入的 IdentityFile 路径,请选择正确的密钥文件并上传。","dialog.ssh.identity.notFoundInline":"本机找不到该密钥文件,请选择正确的密钥并上传。","dialog.ssh.submitCommand":"提交命令(可选)","dialog.ssh.options":"SSH 选项(每行 KEY=VALUE)","dialog.ssh.submitWorkdir":"提交工作目录(可选)","dialog.ssh.submitWorkdirPlaceholder":"默认使用远程工作目录","dialog.ssh.environment":"环境变量(每行 KEY=VALUE)","dialog.ssh.enabled":"启用","dialog.ssh.enabledDescription":"启用后智能体可在提交作业时读取此配置","dialog.ssh.status.enabled":"已启用","dialog.ssh.status.disabled":"已禁用","dialog.ssh.required":"请填写配置名称、SSH Host 和远程工作目录","dialog.ssh.portInvalid":"端口必须是 1-65535 的整数","dialog.ssh.connectivity.action":"检测连通性","dialog.ssh.connectivity.running":"检测中...","dialog.ssh.connectivity.progress":"检测中...({current}/{total})· {name}","dialog.ssh.test.action":"测试","dialog.ssh.test.running":"测试中","dialog.ssh.test.passed":"SSH 配置可用","dialog.ssh.test.failed":"SSH 配置不可用","dialog.ssh.test.description":"服务器已成功连接 SSH 目标,并确认远程工作目录可访问。","dialog.ssh.test.serverMissing":"当前 opencode server 未加载 SSH 测试接口,请重启 server 服务后再试。","dialog.ssh.test.detail.message":"原因","dialog.ssh.test.detail.stderr":"错误输出","dialog.ssh.test.detail.stdout":"标准输出","dialog.ssh.toast.saved":"SSH 配置已保存","dialog.ssh.toast.removed":"SSH 配置已删除","dialog.lsp.empty":"已从文件类型自动检测到 LSPs","dialog.plugins.empty":"在 opencode.json 中配置的插件","mcp.status.connected":"已连接","mcp.status.failed":"失败","mcp.status.needs_auth":"需要授权","mcp.status.disabled":"已禁用","dialog.fork.empty":"没有可用于分叉的消息","dialog.directory.search.placeholder":"搜索文件夹","dialog.directory.empty":"未找到文件夹","dialog.server.title":"后端连接","dialog.server.description":"切换此应用连接的 OpenCode 后端(高级)。","dialog.server.search.placeholder":"搜索后端","dialog.server.empty":"暂无后端连接","dialog.server.group.http":"本地/HTTP","dialog.server.group.ssh":"SSH 配置","dialog.server.group.mcp":"MCP 工具","dialog.server.mcp.description":"MCP 是工具连接,作为远程执行和部署能力提供给会话使用。","dialog.server.mcp.manage":"管理 MCP","dialog.server.ssh.add":"新增 SSH 配置","dialog.server.add.title":"添加后端","dialog.server.add.url":"后端地址 (URL)","dialog.server.add.placeholder":"http://127.0.0.1:4096","dialog.server.add.error":"无法连接到后端","dialog.server.add.checking":"检查中...","dialog.server.add.button":"添加后端地址","dialog.server.add.name":"名称(可选)","dialog.server.add.namePlaceholder":"Localhost","dialog.server.add.username":"Basic 用户名(通常留空)","dialog.server.add.password":"访问令牌 / 密码(可选)","dialog.server.add.usernamePlaceholder":"仅当服务端用了 --username 时填写","dialog.server.add.passwordPlaceholder":"远程服务器可选密码","dialog.server.add.auth.hint":"日常使用可全部留空。仅当连接需要 HTTP Basic 认证的远程服务器时,再填写「访问令牌 / 密码」;通常不要填用户名。","dialog.server.edit.title":"编辑后端","dialog.server.default.title":"默认后端","dialog.server.default.description":"应用启动时连接此后端,而不是启动本地服务。需要重启。","dialog.server.default.none":"未选择后端","dialog.server.default.set":"将当前后端设为默认","dialog.server.default.clear":"清除","dialog.server.action.remove":"移除后端","dialog.server.menu.edit":"编辑","dialog.server.menu.reconnect":"重连","dialog.server.menu.default":"设为默认","dialog.server.menu.defaultRemove":"取消默认","dialog.server.menu.delete":"删除","dialog.server.current":"当前后端","dialog.server.status.default":"默认","dialog.project.createFolder.name":"文件夹名称","dialog.project.createFolder.placeholder":"例如 my_proj 或 team/proj","dialog.project.createFolder.path":"将创建在 {{path}}","dialog.project.createFolder.failed":"无法创建文件夹,可能已存在或名称无效。","dialog.project.upload.destinationLabel":"上传目标(当前项目目录)","dialog.project.upload.destinationHint":"将把本机选择的文件或文件夹上传到该项目路径下。","dialog.project.upload.pickFiles":"选择文件","dialog.project.upload.pickFolder":"选择文件夹","dialog.project.upload.summary":"{{count}} 项 · {{size}}","dialog.project.upload.folderSummary":"文件夹 {{folder}} · {{count}} 个文件 · {{size}}","dialog.project.upload.folderHint":"将上传整个文件夹及其内容,确认后按文件数量逐个传输。","dialog.project.upload.moreFiles":"…还有 {{count}} 项","dialog.project.upload.tooManyFiles":"所选 {{selected}} 个文件超过上限 {{max}},仅保留前 {{max}} 个。","dialog.project.upload.truncatedHint":"已截断到最多 {{max}} 个文件。","dialog.project.upload.diskSpace":"可用空间:{{space}}","dialog.project.upload.diskInsufficient":"所选内容超过可用磁盘空间。","dialog.project.upload.overwrite":"覆盖已存在的文件","dialog.project.upload.progress":"正在上传 {{done}} / {{total}}","dialog.project.upload.confirm":"确认上传","dialog.project.upload.uploading":"上传中…","dialog.project.upload.failed":"上传失败","dialog.project.upload.partialFailed":"完成 {{written}},跳过 {{skipped}},失败 {{failed}}。","toast.project.upload.success":"已上传 {{written}} 个文件,跳过 {{skipped}} 个","dialog.project.edit.title":"编辑项目","dialog.project.edit.name":"名称","dialog.project.edit.icon":"图标","dialog.project.edit.icon.alt":"项目图标","dialog.project.edit.icon.hint":"点击或拖拽图片","dialog.project.edit.icon.recommended":"建议:128x128px","dialog.project.edit.color":"颜色","dialog.project.edit.color.select":"选择{{color}}颜色","dialog.project.edit.worktree.startup":"工作区启动脚本","dialog.project.edit.worktree.startup.description":"在创建新的工作区 (worktree) 后运行。","dialog.project.edit.worktree.startup.placeholder":"例如 bun install","context.breakdown.title":"上下文拆分","context.breakdown.note":"输入 token 的大致拆分。“其他”包含工具定义和开销。","context.breakdown.system":"系统","context.breakdown.user":"用户","context.breakdown.assistant":"助手","context.breakdown.tool":"工具调用","context.breakdown.other":"其他","context.systemPrompt.title":"系统提示词","context.rawMessages.title":"原始消息","context.stats.session":"会话","context.stats.messages":"消息数","context.stats.provider":"提供商","context.stats.model":"模型","context.stats.limit":"上下文限制","context.stats.totalTokens":"总 token","context.stats.usage":"使用率","context.stats.inputTokens":"输入 token","context.stats.outputTokens":"输出 token","context.stats.reasoningTokens":"推理 token","context.stats.cacheTokens":"缓存 token(读/写)","context.stats.userMessages":"用户消息","context.stats.assistantMessages":"助手消息","context.stats.totalCost":"总成本","context.stats.sessionCreated":"创建时间","context.stats.lastActivity":"最后活动","context.usage.tokens":"Token","context.usage.usage":"使用率","context.usage.cost":"成本","context.usage.clickToView":"点击查看上下文","context.usage.view":"查看上下文用量","language.en":"English","language.zh":"简体中文","language.zht":"繁體中文","language.ko":"한국어","language.de":"Deutsch","language.es":"Español","language.fr":"Français","language.da":"Dansk","language.ja":"日本語","language.pl":"Polski","language.ru":"Русский","language.ar":"العربية","language.no":"Norsk","language.br":"Português (Brasil)","language.bs":"Bosanski","language.th":"ไทย","language.tr":"Türkçe","toast.language.title":"语言","toast.language.description":"已切换到{{language}}","toast.theme.title":"主题已切换","toast.scheme.title":"颜色方案","toast.workspace.enabled.title":"工作区已启用","toast.workspace.enabled.description":"侧边栏现在显示多个工作树","toast.workspace.disabled.title":"工作区已禁用","toast.workspace.disabled.description":"侧边栏只显示主工作树","toast.permissions.autoaccept.on.title":"正在自动接受权限","toast.permissions.autoaccept.on.description":"权限请求将被自动批准","toast.permissions.autoaccept.off.title":"已停止自动接受权限","toast.permissions.autoaccept.off.description":"权限请求将需要批准","toast.model.none.title":"未选择模型","toast.model.none.description":"请先连接提供商以总结此会话","toast.file.loadFailed.title":"加载文件失败","toast.file.listFailed.title":"列出文件失败","toast.context.noLineSelection.title":"未选择行","toast.context.noLineSelection.description":"请先在文件标签中选择行范围。","toast.session.share.copyFailed.title":"无法复制链接到剪贴板","toast.session.share.success.title":"会话已分享","toast.session.share.success.description":"分享链接已复制到剪贴板","toast.session.share.failed.title":"分享会话失败","toast.project.copyPath.failed":"无法复制路径到剪贴板","toast.session.share.failed.description":"分享会话时发生错误","toast.session.unshare.success.title":"已取消分享会话","toast.session.unshare.success.description":"会话已成功取消分享","toast.session.unshare.failed.title":"取消分享失败","toast.session.unshare.failed.description":"取消分享会话时发生错误","toast.session.listFailed.title":"无法加载 {{project}} 的会话","toast.update.title":"有可用更新","toast.update.description":"OpenCode 有新版本 ({{version}}) 可安装。","toast.update.action.installRestart":"安装并重启","toast.update.action.notYet":"稍后","error.page.title":"出了点问题","error.page.description":"加载应用程序时发生错误。","error.page.details.label":"错误详情","error.page.action.restart":"重启","error.page.action.report":"上报错误","error.page.action.reported":"错误已上报","error.page.action.checking":"检查中...","error.page.action.checkUpdates":"检查更新","error.page.action.updateTo":"更新到 {{version}}","error.page.report.prefix":"请将此错误报告给 OpenCode 团队","error.page.report.discord":"在 Discord 上","error.page.version":"版本:{{version}}","error.dev.rootNotFound":"未找到根元素。你是不是忘了把它添加到 index.html?或者 id 属性拼写错了?","error.globalSync.connectFailed":"无法连接到服务器。是否有服务器正在 `{{url}}` 运行?","directory.error.invalidUrl":"URL 中的目录无效。","error.chain.unknown":"未知错误","error.chain.causedBy":"原因:","error.chain.apiError":"API 错误","error.chain.status":"状态:{{status}}","error.chain.retryable":"可重试:{{retryable}}","error.chain.responseBody":`响应内容:
2
+ {{details}}`,"prompt.toast.attachmentUploadFailed.more":"另外还有 {{count}} 个失败","prompt.toast.attachmentTooLarge.description":"对话框单文件上限 {{limit}}MB,当前约 {{size}}MB。","prompt.toast.folderNotAllowed.title":"不支持上传文件夹","prompt.toast.folderNotAllowed.description":"对话框只能传文件。请使用项目面板右侧 ⋯ 中的上传来传文件夹。","prompt.toast.attachmentsUploading.title":"附件仍在加载","prompt.toast.attachmentsUploading.description":"请等待所有附件加载完成后再发送。","prompt.toast.attachmentUnavailable.title":"附件不可用","prompt.toast.attachmentUnavailable.description":"请重新附加文件后再发送。","prompt.action.send":"发送","prompt.action.stop":"停止","prompt.toast.pasteUnsupported.title":"不支持的附件","prompt.toast.pasteUnsupported.description":"此处仅能附加文件。","prompt.toast.modelAgentRequired.title":"请选择智能体和模型","prompt.toast.modelAgentRequired.description":"发送提示前请先选择智能体和模型。","prompt.toast.worktreeCreateFailed.title":"创建工作树失败","prompt.toast.sessionCreateFailed.title":"创建会话失败","prompt.toast.shellSendFailed.title":"发送 shell 命令失败","prompt.toast.commandSendFailed.title":"发送命令失败","prompt.toast.promptSendFailed.title":"发送提示失败","prompt.toast.promptSendFailed.description":"无法获取会话","prompt.toast.unsupportedAttachment.title":"当前模型不支持该附件","prompt.toast.unsupportedAttachment.description":"{{model}} 不支持 {{modalities}} 输入。对于 PDF,请先提取文本,或切换到支持 PDF 的模型。","dialog.mcp.title":"MCPs","dialog.mcp.description":"已启用 {{enabled}} / {{total}}","dialog.mcp.empty":"未配置 MCPs","dialog.mcp.addTitle":"添加 MCP 服务器","dialog.mcp.editTitle":"编辑 MCP 服务器","dialog.mcp.addButton":"添加 MCP 服务器","dialog.mcp.form.hint":"按业界通用方式配置 MCP:本地 stdio(command + env)或远程 HTTP(url + headers)。登录账号下仅本人可见与可改。","dialog.mcp.form.name":"名称","dialog.mcp.form.namePlaceholder":"filesystem","dialog.mcp.form.transport":"连接类型","dialog.mcp.form.transport.local":"本地 (stdio)","dialog.mcp.form.transport.remote":"远程 (HTTP)","dialog.mcp.form.command":"启动命令","dialog.mcp.form.commandPlaceholder":"npx -y @modelcontextprotocol/server-filesystem /data","dialog.mcp.form.environment":"环境变量(可选,每行 KEY=VALUE)","dialog.mcp.form.environmentPlaceholder":`API_KEY=...
3
+ REGION=...`,"dialog.mcp.form.url":"服务器 URL","dialog.mcp.form.urlPlaceholder":"https://api.example.com/mcp","dialog.mcp.form.headers":"请求头(可选,每行 KEY=VALUE)","dialog.mcp.form.headersPlaceholder":"Authorization=Bearer ...","dialog.mcp.form.enabled":"保存后启用","dialog.mcp.form.enabledDescription":"保存后立即连接此 MCP 服务器。","dialog.mcp.error.name":"请填写服务器名称","dialog.mcp.error.command":"请填写本地启动命令","dialog.mcp.error.url":"请填写远程 URL","dialog.mcp.error.duplicate":"已存在同名 MCP 服务器","dialog.mcp.error.missingConfig":"无法加载该 MCP 配置进行编辑","dialog.mcp.toast.saved":"MCP 配置已保存","dialog.ssh.title":"SSH 配置","dialog.ssh.description":"配置供智能体提交远程作业使用的 SSH 目标(仅当前登录账号可见)。","dialog.ssh.empty":"未配置 SSH 目标","dialog.ssh.addTitle":"添加 SSH 配置","dialog.ssh.editTitle":"编辑 SSH 配置","dialog.ssh.addButton":"添加 SSH 配置","dialog.ssh.import":"一键导入 SSH Config","dialog.ssh.importDescription":"粘贴 SSH Config 后自动填充 Host、HostName、端口、用户、密钥和远程目录。","dialog.ssh.importAction":"一键导入","dialog.ssh.importPlaceholder":"粘贴 SSH Config,例如 Host、HostName、Port、User、IdentityFile、# RemoteWorkDir","dialog.ssh.name":"配置名称","dialog.ssh.host":"SSH Host / Alias","dialog.ssh.hostPlaceholder":"hpc-login","dialog.ssh.hostName":"HostName(可选)","dialog.ssh.hostNamePlaceholder":"zzeshell.scnet.cn","dialog.ssh.username":"用户名(可选)","dialog.ssh.port":"端口","dialog.ssh.remotePath":"远程工作目录","dialog.ssh.auth":"认证方式","dialog.ssh.auth.config":"SSH 配置","dialog.ssh.auth.agent":"ssh-agent","dialog.ssh.auth.key":"密钥文件","dialog.ssh.keyPath":"Identity File","dialog.ssh.keyPathPlaceholder":"服务器端密钥路径,选择文件后会立即上传并自动填入","dialog.ssh.identity.upload":"选择并上传 IdentityFile","dialog.ssh.identity.uploading":"上传中","dialog.ssh.identity.uploaded":"IdentityFile 已上传到服务器","dialog.ssh.identity.uploadFailed":"IdentityFile 上传失败","dialog.ssh.identity.hint":"在文件选择器中确认后会立即上传到 OneCode 服务器;「测试」只会使用上传后回填的服务器路径。","dialog.ssh.identity.missingTitle":"服务器上找不到密钥文件","dialog.ssh.identity.missingDescription":"一键导入的 IdentityFile 路径在当前 OneCode 服务器上不存在,请先上传密钥后再测试。","dialog.ssh.identity.missingEmpty":"未解析到 IdentityFile,请上传密钥后再测试。","dialog.ssh.identity.missingLocalPath":"导入的 IdentityFile 是本机路径(如 Windows C:),当前服务器上不存在。请上传密钥后再测试。","dialog.ssh.identity.missingUnverified":"无法确认服务器上的密钥文件是否存在,请先上传密钥后再测试。","dialog.ssh.identity.missingInline":"当前密钥文件在服务器上不可用,请先上传 IdentityFile。上传完成前无法测试。","dialog.ssh.identity.needsUploadTitle":"请上传密钥文件","dialog.ssh.identity.needsUploadDescription":"本机已找到导入的 IdentityFile,请点击「选择并上传 IdentityFile」后再测试。","dialog.ssh.identity.needsUploadInline":"本机已找到该密钥文件,请点击「选择并上传 IdentityFile」后再测试。","dialog.ssh.identity.notFoundTitle":"密钥文件不存在","dialog.ssh.identity.notFoundDescription":"本机找不到导入的 IdentityFile 路径,请选择正确的密钥文件并上传。","dialog.ssh.identity.notFoundInline":"本机找不到该密钥文件,请选择正确的密钥并上传。","dialog.ssh.submitCommand":"提交命令(可选)","dialog.ssh.options":"SSH 选项(每行 KEY=VALUE)","dialog.ssh.submitWorkdir":"提交工作目录(可选)","dialog.ssh.submitWorkdirPlaceholder":"默认使用远程工作目录","dialog.ssh.environment":"环境变量(每行 KEY=VALUE)","dialog.ssh.enabled":"启用","dialog.ssh.enabledDescription":"启用后智能体可在提交作业时读取此配置","dialog.ssh.status.enabled":"已启用","dialog.ssh.status.disabled":"已禁用","dialog.ssh.required":"请填写配置名称、SSH Host 和远程工作目录","dialog.ssh.portInvalid":"端口必须是 1-65535 的整数","dialog.ssh.connectivity.action":"检测连通性","dialog.ssh.connectivity.running":"检测中...","dialog.ssh.connectivity.progress":"检测中...({current}/{total})· {name}","dialog.ssh.test.action":"测试","dialog.ssh.test.running":"测试中","dialog.ssh.test.passed":"SSH 配置可用","dialog.ssh.test.failed":"SSH 配置不可用","dialog.ssh.test.description":"服务器已成功连接 SSH 目标,并确认远程工作目录可访问。","dialog.ssh.test.serverMissing":"当前 opencode server 未加载 SSH 测试接口,请重启 server 服务后再试。","dialog.ssh.test.detail.message":"原因","dialog.ssh.test.detail.stderr":"错误输出","dialog.ssh.test.detail.stdout":"标准输出","dialog.ssh.toast.saved":"SSH 配置已保存","dialog.ssh.toast.removed":"SSH 配置已删除","dialog.lsp.empty":"已从文件类型自动检测到 LSPs","dialog.plugins.empty":"在 opencode.json 中配置的插件","mcp.status.connected":"已连接","mcp.status.failed":"失败","mcp.status.needs_auth":"需要授权","mcp.status.disabled":"已禁用","dialog.fork.empty":"没有可用于分叉的消息","dialog.directory.search.placeholder":"搜索文件夹","dialog.directory.empty":"未找到文件夹","dialog.server.title":"后端连接","dialog.server.description":"切换此应用连接的 OpenCode 后端(高级)。","dialog.server.search.placeholder":"搜索后端","dialog.server.empty":"暂无后端连接","dialog.server.group.http":"本地/HTTP","dialog.server.group.ssh":"SSH 配置","dialog.server.group.mcp":"MCP 工具","dialog.server.mcp.description":"MCP 是工具连接,作为远程执行和部署能力提供给会话使用。","dialog.server.mcp.manage":"管理 MCP","dialog.server.ssh.add":"新增 SSH 配置","dialog.server.add.title":"添加后端","dialog.server.add.url":"后端地址 (URL)","dialog.server.add.placeholder":"http://127.0.0.1:4096","dialog.server.add.error":"无法连接到后端","dialog.server.add.checking":"检查中...","dialog.server.add.button":"添加后端地址","dialog.server.add.name":"名称(可选)","dialog.server.add.namePlaceholder":"Localhost","dialog.server.add.username":"Basic 用户名(通常留空)","dialog.server.add.password":"访问令牌 / 密码(可选)","dialog.server.add.usernamePlaceholder":"仅当服务端用了 --username 时填写","dialog.server.add.passwordPlaceholder":"远程服务器可选密码","dialog.server.add.auth.hint":"日常使用可全部留空。仅当连接需要 HTTP Basic 认证的远程服务器时,再填写「访问令牌 / 密码」;通常不要填用户名。","dialog.server.edit.title":"编辑后端","dialog.server.default.title":"默认后端","dialog.server.default.description":"应用启动时连接此后端,而不是启动本地服务。需要重启。","dialog.server.default.none":"未选择后端","dialog.server.default.set":"将当前后端设为默认","dialog.server.default.clear":"清除","dialog.server.action.remove":"移除后端","dialog.server.menu.edit":"编辑","dialog.server.menu.reconnect":"重连","dialog.server.menu.default":"设为默认","dialog.server.menu.defaultRemove":"取消默认","dialog.server.menu.delete":"删除","dialog.server.current":"当前后端","dialog.server.status.default":"默认","dialog.project.createFolder.name":"文件夹名称","dialog.project.createFolder.placeholder":"例如 my_proj 或 team/proj","dialog.project.createFolder.path":"将创建在 {{path}}","dialog.project.createFolder.failed":"无法创建文件夹,可能已存在或名称无效。","dialog.project.upload.destinationLabel":"上传目标(当前项目目录)","dialog.project.upload.destinationHint":"将把本机选择的文件或文件夹上传到该项目路径下。","dialog.project.upload.pickFiles":"选择文件","dialog.project.upload.pickFolder":"选择文件夹","dialog.project.upload.summary":"{{count}} 项 · {{size}}","dialog.project.upload.folderSummary":"文件夹 {{folder}} · {{count}} 个文件 · {{size}}","dialog.project.upload.folderHint":"将上传整个文件夹及其内容,确认后按文件数量逐个传输。","dialog.project.upload.moreFiles":"…还有 {{count}} 项","dialog.project.upload.tooManyFiles":"所选 {{selected}} 个文件超过上限 {{max}},仅保留前 {{max}} 个。","dialog.project.upload.truncatedHint":"已截断到最多 {{max}} 个文件。","dialog.project.upload.diskSpace":"可用空间:{{space}}","dialog.project.upload.diskInsufficient":"所选内容超过可用磁盘空间。","dialog.project.upload.overwrite":"覆盖已存在的文件","dialog.project.upload.progress":"正在上传 {{done}} / {{total}}","dialog.project.upload.confirm":"确认上传","dialog.project.upload.uploading":"上传中…","dialog.project.upload.failed":"上传失败","dialog.project.upload.partialFailed":"完成 {{written}},跳过 {{skipped}},失败 {{failed}}。","toast.project.upload.success":"已上传 {{written}} 个文件,跳过 {{skipped}} 个","dialog.project.edit.title":"编辑项目","dialog.project.edit.name":"名称","dialog.project.edit.icon":"图标","dialog.project.edit.icon.alt":"项目图标","dialog.project.edit.icon.hint":"点击或拖拽图片","dialog.project.edit.icon.recommended":"建议:128x128px","dialog.project.edit.color":"颜色","dialog.project.edit.color.select":"选择{{color}}颜色","dialog.project.edit.worktree.startup":"工作区启动脚本","dialog.project.edit.worktree.startup.description":"在创建新的工作区 (worktree) 后运行。","dialog.project.edit.worktree.startup.placeholder":"例如 bun install","context.breakdown.title":"上下文拆分","context.breakdown.note":"输入 token 的大致拆分。“其他”包含工具定义和开销。","context.breakdown.system":"系统","context.breakdown.user":"用户","context.breakdown.assistant":"助手","context.breakdown.tool":"工具调用","context.breakdown.other":"其他","context.systemPrompt.title":"系统提示词","context.rawMessages.title":"原始消息","context.stats.session":"会话","context.stats.messages":"消息数","context.stats.provider":"提供商","context.stats.model":"模型","context.stats.limit":"上下文限制","context.stats.totalTokens":"总 token","context.stats.usage":"使用率","context.stats.inputTokens":"输入 token","context.stats.outputTokens":"输出 token","context.stats.reasoningTokens":"推理 token","context.stats.cacheTokens":"缓存 token(读/写)","context.stats.userMessages":"用户消息","context.stats.assistantMessages":"助手消息","context.stats.totalCost":"总成本","context.stats.sessionCreated":"创建时间","context.stats.lastActivity":"最后活动","context.usage.tokens":"Token","context.usage.usage":"使用率","context.usage.cost":"成本","context.usage.clickToView":"点击查看上下文","context.usage.view":"查看上下文用量","language.en":"English","language.zh":"简体中文","language.zht":"繁體中文","language.ko":"한국어","language.de":"Deutsch","language.es":"Español","language.fr":"Français","language.da":"Dansk","language.ja":"日本語","language.pl":"Polski","language.ru":"Русский","language.ar":"العربية","language.no":"Norsk","language.br":"Português (Brasil)","language.bs":"Bosanski","language.th":"ไทย","language.tr":"Türkçe","toast.language.title":"语言","toast.language.description":"已切换到{{language}}","toast.theme.title":"主题已切换","toast.scheme.title":"颜色方案","toast.workspace.enabled.title":"工作区已启用","toast.workspace.enabled.description":"侧边栏现在显示多个工作树","toast.workspace.disabled.title":"工作区已禁用","toast.workspace.disabled.description":"侧边栏只显示主工作树","toast.permissions.autoaccept.on.title":"正在自动接受权限","toast.permissions.autoaccept.on.description":"权限请求将被自动批准","toast.permissions.autoaccept.off.title":"已停止自动接受权限","toast.permissions.autoaccept.off.description":"权限请求将需要批准","toast.model.none.title":"未选择模型","toast.model.none.description":"请先连接提供商以总结此会话","toast.file.loadFailed.title":"加载文件失败","toast.file.listFailed.title":"列出文件失败","toast.context.noLineSelection.title":"未选择行","toast.context.noLineSelection.description":"请先在文件标签中选择行范围。","toast.session.share.copyFailed.title":"无法复制链接到剪贴板","toast.session.share.success.title":"会话已分享","toast.session.share.success.description":"分享链接已复制到剪贴板","toast.session.share.failed.title":"分享会话失败","toast.project.copyPath.failed":"无法复制路径到剪贴板","toast.session.share.failed.description":"分享会话时发生错误","toast.session.unshare.success.title":"已取消分享会话","toast.session.unshare.success.description":"会话已成功取消分享","toast.session.unshare.failed.title":"取消分享失败","toast.session.unshare.failed.description":"取消分享会话时发生错误","toast.session.listFailed.title":"无法加载 {{project}} 的会话","toast.update.title":"有可用更新","toast.update.description":"OpenCode 有新版本 ({{version}}) 可安装。","toast.update.action.installRestart":"安装并重启","toast.update.action.notYet":"稍后","error.page.title":"出了点问题","error.page.description":"加载应用程序时发生错误。","error.page.details.label":"错误详情","error.page.action.restart":"重启","error.page.action.report":"上报错误","error.page.action.reported":"错误已上报","error.page.action.checking":"检查中...","error.page.action.checkUpdates":"检查更新","error.page.action.updateTo":"更新到 {{version}}","error.page.report.prefix":"请将此错误报告给 OpenCode 团队","error.page.report.discord":"在 Discord 上","error.page.version":"版本:{{version}}","error.dev.rootNotFound":"未找到根元素。你是不是忘了把它添加到 index.html?或者 id 属性拼写错了?","error.globalSync.connectFailed":"无法连接到服务器。是否有服务器正在 `{{url}}` 运行?","directory.error.invalidUrl":"URL 中的目录无效。","error.chain.unknown":"未知错误","error.chain.causedBy":"原因:","error.chain.apiError":"API 错误","error.chain.status":"状态:{{status}}","error.chain.retryable":"可重试:{{retryable}}","error.chain.responseBody":`响应内容:
4
4
  {{body}}`,"error.chain.didYouMean":"你是不是想输入:{{suggestions}}","error.chain.modelNotFound":"未找到模型:{{provider}}/{{model}}","error.chain.checkConfig":"请检查你的配置 (opencode.json) 中的 provider/model 名称","error.chain.mcpFailed":'MCP 服务器 "{{name}}" 启动失败。注意: OpenCode 暂不支持 MCP 认证。',"error.chain.providerAuthFailed":"提供商认证失败({{provider}}):{{message}}","error.chain.providerInitFailed":'无法初始化提供商 "{{provider}}"。请检查凭据和配置。',"error.chain.configJsonInvalid":"配置文件 {{path}} 不是有效的 JSON(C)","error.chain.configJsonInvalidWithMessage":"配置文件 {{path}} 不是有效的 JSON(C):{{message}}","error.chain.configDirectoryTypo":'{{path}} 中的目录 "{{dir}}" 无效。请将目录重命名为 "{{suggestion}}" 或移除它。这是一个常见拼写错误。',"error.chain.configFrontmatterError":`无法解析 {{path}} 中的 frontmatter:
5
- {{message}}`,"error.chain.configInvalid":"配置文件 {{path}} 无效","error.chain.configInvalidWithMessage":"配置文件 {{path}} 无效:{{message}}","notification.permission.title":"需要权限","notification.permission.description":"{{sessionTitle}}({{projectName}})需要权限","notification.question.title":"问题","notification.question.description":"{{sessionTitle}}({{projectName}})有一个问题","notification.action.goToSession":"前往会话","notification.session.responseReady.title":"回复已就绪","notification.session.error.title":"会话错误","notification.session.error.fallbackDescription":"发生错误","home.recentProjects":"最近项目","home.empty.title":"没有最近项目","home.empty.description":"通过打开本地项目开始使用","session.tab.session":"会话","session.tab.review":"审查","session.tab.context":"上下文","session.tab.artifacts":"产物","session.file.unsaved":"有未保存的更改","session.file.preview.preview":"预览","session.file.preview.source":"源码","session.file.html.preview":"预览","session.file.html.source":"源码","session.file.html.loading":"正在加载 HTML 预览...","session.file.html.error":"无法加载 HTML 预览","session.file.csv.empty":"CSV 文件为空","session.artifacts.description":"本次会话中生成的图片和图表","session.artifacts.empty":"暂无产物","session.artifacts.image":"图片","session.artifacts.preview":"预览","session.artifacts.openImage":"打开图片","session.artifacts.openHtml":"打开 HTML","session.artifacts.openScript":"编辑源码","session.artifacts.openSource":"打开来源","session.artifacts.time.unknown":"时间未知","session.artifacts.group.today":"今天","session.artifacts.group.yesterday":"昨天","session.artifacts.group.week":"本周","session.artifacts.group.older":"更早","session.artifacts.group.unknown":"未知","session.artifacts.source.read":"读取","session.artifacts.source.bash":"Shell","session.artifacts.source.science":"报告","session.artifacts.source.markdown":"报告附图","session.artifacts.source.other":"其他","session.panel.reviewAndFiles":"审查和文件","session.review.filesChanged":"{{count}} 个文件变更","session.review.change.one":"更改","session.review.change.other":"更改","session.review.loadingChanges":"正在加载更改...","session.review.empty":"此会话暂无更改","session.review.noVcs":"未检测到 Git 版本控制系统,无法显示更改","session.review.noSnapshot":"配置中已禁用快照跟踪,因此会话更改不可用","session.review.noChanges":"无更改","session.files.selectToOpen":"选择要打开的文件","session.files.all":"所有文件","session.files.refresh":"刷新文件树","session.files.upload":"上传到项目","session.files.sync":"同步文件","session.files.empty":"无文件","session.files.binaryContent":"二进制文件(无法显示内容)","session.messages.renderEarlier":"显示更早的消息","session.messages.loadingEarlier":"正在加载更早的消息...","session.messages.loadEarlier":"加载更早的消息","session.messages.loading":"正在加载消息...","session.messages.jumpToLatest":"跳转到最新","session.context.addToContext":"将 {{selection}} 添加到上下文","session.todo.title":"待办事项","session.todo.collapse":"折叠","session.todo.expand":"展开","session.followupDock.summary.one":"{{count}} 条排队消息","session.followupDock.summary.other":"{{count}} 条排队消息","session.followupDock.sendNow":"立即发送","session.followupDock.edit":"编辑","session.followupDock.collapse":"折叠排队消息","session.followupDock.expand":"展开排队消息","session.revertDock.summary.one":"{{count}} 条已回滚消息","session.revertDock.summary.other":"{{count}} 条已回滚消息","session.revertDock.collapse":"折叠已回滚消息","session.revertDock.expand":"展开已回滚消息","session.revertDock.restore":"恢复消息","session.new.title":"构建任何东西","session.new.worktree.main":"主分支","session.new.worktree.mainWithBranch":"主分支({{branch}})","session.new.worktree.create":"创建新的 worktree","session.new.lastModified":"最后修改","session.header.search.placeholder":"搜索 {{project}}","session.header.searchFiles":"搜索文件","session.header.openIn":"打开方式","session.header.open.action":"打开 {{app}}","session.header.open.ariaLabel":"在 {{app}} 中打开","session.header.open.menu":"打开选项","session.header.open.copyPath":"复制路径","status.popover.trigger":"集成管理","status.popover.ariaLabel":"MCP、SSH 与后端集成","status.popover.tab.servers":"后端连接","status.popover.tab.mcp":"MCP","status.popover.tab.ssh":"SSH","status.popover.tab.lsp":"LSP","status.popover.tab.plugins":"插件","status.popover.tab.onescience":"OneScience","status.popover.action.manageServers":"管理后端连接","status.popover.action.manageMcp":"管理 MCP","status.popover.action.manageSsh":"管理 SSH","status.popover.servers.hint":"高级:切换此应用连接的 OpenCode 后端。","status.popover.onescience.title":"OneScience 配置","status.popover.onescience.empty":"未找到 OneScience 配置","status.popover.onescience.backend":"后端","status.popover.onescience.mode":"模式","status.popover.onescience.mode.local":"本地运行","status.popover.onescience.mode.local.description":"Coding 环境与运行环境在同一环境。","status.popover.onescience.mode.slurm":"Slurm 集群提交运行","status.popover.onescience.mode.slurm.description":"从当前环境生成并提交 Slurm 任务。","status.popover.onescience.mode.sshSlurm":"SSH 远程 Slurm 提交运行","status.popover.onescience.mode.sshSlurm.description":"先 SSH 到远程登录节点,再提交 Slurm 任务。","status.popover.onescience.mode.mcp":"MCP 提交运行","status.popover.onescience.mode.mcp.description":"通过已配置的 MCP 工具或服务提交任务。","status.popover.onescience.remote":"远程","status.popover.onescience.cluster":"集群","status.popover.onescience.save":"保存到 onescience.json","status.popover.onescience.saved":"OneScience 配置已保存","status.popover.onescience.ssh":"SSH 配置","status.popover.onescience.customSsh":"自定义远程配置","status.popover.onescience.hostname":"HostName","status.popover.onescience.port":"端口","status.popover.onescience.user":"用户","status.popover.onescience.remoteWorkDir":"远程工作目录","status.popover.onescience.partition":"分区","status.popover.onescience.nodes":"节点数","status.popover.onescience.gpusPerNode":"每节点 GPU","status.popover.onescience.cpusPerTask":"每任务 CPU","status.popover.onescience.memory":"内存","status.popover.onescience.timeLimit":"时间限制","status.popover.onescience.gpuType":"GPU 类型","status.popover.onescience.condaEnv":"Conda 环境","status.popover.onescience.scriptPath":"脚本路径","status.popover.onescience.scriptTemplate":"脚本模板","status.popover.onescience.jobName":"任务名","status.popover.onescience.codePath":"代码路径","status.popover.onescience.workDir":"运行目录","session.share.popover.title":"发布到网页","session.share.popover.description.shared":"此会话已在网页上公开。任何拥有链接的人都可以访问。","session.share.popover.description.unshared":"在网页上公开分享此会话。任何拥有链接的人都可以访问。","session.share.action.share":"分享","session.share.action.publish":"发布","session.share.action.publishing":"正在发布...","session.share.action.unpublish":"取消发布","session.share.action.unpublishing":"正在取消发布...","session.share.action.view":"查看","session.share.copy.copied":"已复制","session.share.copy.copyLink":"复制链接","lsp.tooltip.none":"没有 LSP 服务器","lsp.label.connected":"{{count}} LSP","prompt.loading":"正在加载提示...","terminal.loading":"正在加载终端...","terminal.title":"终端","terminal.title.numbered":"终端 {{number}}","terminal.close":"关闭终端","terminal.connectionLost.title":"连接已丢失","terminal.connectionLost.description":"终端连接已中断。这可能发生在服务器重启时。","common.closeTab":"关闭标签页","common.dismiss":"忽略","common.requestFailed":"请求失败","common.moreOptions":"更多选项","common.learnMore":"了解更多","common.rename":"重命名","common.reset":"重置","common.archive":"归档","common.delete":"删除","common.close":"关闭","common.edit":"编辑","common.loadMore":"加载更多","common.key.esc":"ESC","session.archived.title":"已归档会话","session.archived.hint":"查看已归档的会话","session.archived.empty":"暂无已归档会话","session.archived.unarchive":"取消归档","session.archived.unarchiveFailed.title":"取消归档失败","sidebar.menu.toggle":"切换菜单","sidebar.nav.projectsAndSessions":"项目和会话","sidebar.settings":"设置","sidebar.help":"帮助","sidebar.workspaces.enable":"启用工作区","sidebar.workspaces.disable":"禁用工作区","sidebar.gettingStarted.title":"入门","sidebar.gettingStarted.line1":"OpenCode 提供免费模型,你可以立即开始使用。","sidebar.gettingStarted.line2":"连接任意提供商即可使用更多模型,如 Claude、GPT、Gemini 等。","sidebar.section.projects":"项目","sidebar.section.recent":"最近","sidebar.section.sharedCases":"默认案例展示","sidebar.project.none":"没有项目","sidebar.project.recentSessions":"最近会话","sidebar.project.viewAllSessions":"查看全部会话","sidebar.project.clearNotifications":"清除通知","sidebar.project.removeFromView":"从列表移除","sidebar.project.delete":"删除项目","sidebar.project.delete.title":"删除项目","sidebar.project.delete.confirm":"确定删除项目「{{name}}」?将停止其中正在运行的会话,并删除项目文件夹与相关会话记录。此操作不可恢复。","sidebar.project.delete.hasArchived":"该项目下还有已归档的会话,请先取消归档后再删除项目。","sidebar.project.delete.button":"删除项目","sidebar.project.delete.failed":"删除项目失败","sidebar.project.delete.busy":"正在删除…","sidebar.project.defaultWorkspace":"主空间","sidebar.project.defaultWorkspace.hint":"账号个人工作区,固定保留在列表中","sidebar.project.current":"当前","sidebar.project.noSessions":"无任务","app.name.desktop":"OpenCode Desktop","settings.section.desktop":"桌面","settings.section.server":"服务器","settings.tab.general":"通用","settings.tab.shortcuts":"快捷键","settings.desktop.section.wsl":"WSL","settings.desktop.wsl.title":"WSL 集成","settings.desktop.wsl.description":"在 Windows 的 WSL 环境中运行 OpenCode 服务器。","settings.general.section.appearance":"外观","settings.general.section.notifications":"系统通知","settings.general.section.updates":"更新","settings.general.section.sounds":"音效","settings.general.section.feed":"动态","settings.general.section.display":"显示","settings.general.row.language.title":"语言","settings.general.row.language.description":"更改 OpenCode 的显示语言","settings.general.row.admin.description":"使用管理员密码进入平台管理配置","settings.general.row.appearance.title":"外观","settings.general.row.appearance.description":"自定义 OpenCode 在你的设备上的外观","settings.general.row.colorScheme.title":"配色方案","settings.general.row.colorScheme.description":"选择 OpenCode 跟随系统、浅色或深色主题","settings.general.row.theme.title":"主题","settings.general.row.theme.description":"自定义 OpenCode 的主题。","settings.general.row.font.title":"代码字体","settings.general.row.font.description":"自定义代码块使用的字体","settings.general.row.terminalFont.title":"Terminal Font","settings.general.row.terminalFont.description":"Customise the font used in the terminal","settings.general.row.uiFont.title":"界面字体","settings.general.row.uiFont.description":"自定义整个界面使用的字体","settings.general.row.followup.title":"跟进消息行为","settings.general.row.followup.description":"选择跟进提示是立即引导还是在队列中等待","settings.general.row.followup.option.queue":"排队","settings.general.row.followup.option.steer":"引导","settings.general.row.reasoningSummaries.title":"显示推理摘要","settings.general.row.reasoningSummaries.description":"在时间线中显示模型推理摘要","settings.general.row.shellToolPartsExpanded.title":"展开 shell 工具部分","settings.general.row.shellToolPartsExpanded.description":"默认在时间线中展开 shell 工具部分","settings.general.row.editToolPartsExpanded.title":"展开编辑工具部分","settings.general.row.editToolPartsExpanded.description":"默认在时间线中展开 edit、write 和 patch 工具部分","settings.general.row.showSessionProgressBar.title":"显示会话进度条","settings.general.row.showSessionProgressBar.description":"当智能体正在工作时,在会话顶部显示动画进度条","settings.general.row.wayland.title":"使用原生 Wayland","settings.general.row.wayland.description":"在 Wayland 上禁用 X11 回退。需要重启。","settings.general.row.wayland.tooltip":"在混合刷新率显示器的 Linux 系统上,原生 Wayland 可能更稳定。","settings.general.row.releaseNotes.title":"发行说明","settings.general.row.releaseNotes.description":"更新后显示“新功能”弹窗","settings.updates.row.startup.title":"启动时检查更新","settings.updates.row.startup.description":"在 OpenCode 启动时自动检查更新","settings.updates.row.check.title":"检查更新","settings.updates.row.check.description":"手动检查更新并在有更新时安装","settings.updates.action.checkNow":"立即检查","settings.updates.action.checking":"正在检查...","settings.updates.toast.latest.title":"已是最新版本","settings.updates.toast.latest.description":"你正在使用最新版本的 OpenCode。","sound.option.none":"无","sound.option.alert01":"警报 01","sound.option.alert02":"警报 02","sound.option.alert03":"警报 03","sound.option.alert04":"警报 04","sound.option.alert05":"警报 05","sound.option.alert06":"警报 06","sound.option.alert07":"警报 07","sound.option.alert08":"警报 08","sound.option.alert09":"警报 09","sound.option.alert10":"警报 10","sound.option.bipbop01":"哔啵 01","sound.option.bipbop02":"哔啵 02","sound.option.bipbop03":"哔啵 03","sound.option.bipbop04":"哔啵 04","sound.option.bipbop05":"哔啵 05","sound.option.bipbop06":"哔啵 06","sound.option.bipbop07":"哔啵 07","sound.option.bipbop08":"哔啵 08","sound.option.bipbop09":"哔啵 09","sound.option.bipbop10":"哔啵 10","sound.option.staplebops01":"斯泰普博普斯 01","sound.option.staplebops02":"斯泰普博普斯 02","sound.option.staplebops03":"斯泰普博普斯 03","sound.option.staplebops04":"斯泰普博普斯 04","sound.option.staplebops05":"斯泰普博普斯 05","sound.option.staplebops06":"斯泰普博普斯 06","sound.option.staplebops07":"斯泰普博普斯 07","sound.option.nope01":"否 01","sound.option.nope02":"否 02","sound.option.nope03":"否 03","sound.option.nope04":"否 04","sound.option.nope05":"否 05","sound.option.nope06":"否 06","sound.option.nope07":"否 07","sound.option.nope08":"否 08","sound.option.nope09":"否 09","sound.option.nope10":"否 10","sound.option.nope11":"否 11","sound.option.nope12":"否 12","sound.option.yup01":"是 01","sound.option.yup02":"是 02","sound.option.yup03":"是 03","sound.option.yup04":"是 04","sound.option.yup05":"是 05","sound.option.yup06":"是 06","settings.general.notifications.agent.title":"智能体","settings.general.notifications.agent.description":"当智能体完成或需要注意时显示系统通知","settings.general.notifications.permissions.title":"权限","settings.general.notifications.permissions.description":"当需要权限时显示系统通知","settings.general.notifications.errors.title":"错误","settings.general.notifications.errors.description":"发生错误时显示系统通知","settings.general.sounds.agent.title":"智能体","settings.general.sounds.agent.description":"当智能体完成或需要注意时播放声音","settings.general.sounds.permissions.title":"权限","settings.general.sounds.permissions.description":"当需要权限时播放声音","settings.general.sounds.errors.title":"错误","settings.general.sounds.errors.description":"发生错误时播放声音","settings.shortcuts.title":"键盘快捷键","settings.shortcuts.reset.button":"重置为默认值","settings.shortcuts.reset.toast.title":"快捷键已重置","settings.shortcuts.reset.toast.description":"键盘快捷键已重置为默认设置。","settings.shortcuts.conflict.title":"快捷键已被占用","settings.shortcuts.conflict.description":"{{keybind}} 已分配给 {{titles}}。","settings.shortcuts.unassigned":"未设置","settings.shortcuts.pressKeys":"按下按键","settings.shortcuts.search.placeholder":"搜索快捷键","settings.shortcuts.search.empty":"未找到快捷键","settings.shortcuts.group.general":"通用","settings.shortcuts.group.session":"会话","settings.shortcuts.group.navigation":"导航","settings.shortcuts.group.modelAndAgent":"模型与智能体","settings.shortcuts.group.terminal":"终端","settings.shortcuts.group.prompt":"提示","settings.providers.title":"提供商","settings.providers.description":"提供商设置将在此处可配置。","settings.providers.section.connected":"已连接的提供商","settings.providers.connected.empty":"没有已连接的提供商","settings.providers.section.popular":"热门提供商","settings.providers.tag.environment":"环境","settings.providers.tag.config":"配置","settings.providers.tag.custom":"自定义","settings.providers.tag.other":"其他","settings.providers.tag.limited":"限免","settings.providers.onescience.admin.button":"管理员配置","settings.providers.onescience.admin.title":"管理员配置","settings.providers.onescience.admin.passwordHint":"输入管理员密码以解锁管理员配置。","settings.providers.onescience.admin.password":"管理员密码","settings.providers.onescience.admin.passwordPlaceholder":"管理员密码","settings.providers.onescience.admin.passwordInvalid":"管理员密码不正确","settings.providers.onescience.admin.passwordLocked":"错误次数过多,请在 {{time}} 后再试","settings.providers.onescience.admin.unlock":"解锁","settings.providers.onescience.admin.menu.hint":"选择要管理的配置项。","settings.providers.onescience.admin.menu.model":"预置模型","settings.providers.onescience.admin.menu.model.description":"配置 OneScience GPT 的接口与模型","settings.providers.onescience.admin.menu.mail":"邮件服务","settings.providers.onescience.admin.menu.mail.description":"配置用于账号通知的发信服务","settings.providers.onescience.admin.menu.users":"用户管理","settings.providers.onescience.admin.menu.users.description":"冻结、解冻、删除用户,或重置密码","settings.providers.onescience.admin.menu.registration":"注册审核","settings.providers.onescience.admin.menu.registration.description":"开关邀请码注册,并管理固定/随机邀请码","settings.providers.onescience.admin.users.hint":"选择用户后可冻结、解冻、删除,或生成密码重置凭证。","settings.providers.onescience.admin.users.empty":"当前还没有可管理的本地账号。","settings.providers.onescience.admin.users.freeze":"冻结","settings.providers.onescience.admin.users.unfreeze":"解冻","settings.providers.onescience.admin.users.delete":"删除","settings.providers.onescience.admin.users.deleteConfirm":"确定删除用户 {{name}}({{email}})吗?将先冻结并吊销会话,再永久删除账号与工作区,此操作不可恢复。","settings.providers.onescience.admin.users.frozen":"用户已冻结","settings.providers.onescience.admin.users.unfrozen":"用户已解冻","settings.providers.onescience.admin.users.deleted":"用户已删除","settings.providers.onescience.admin.users.status.active":"正常","settings.providers.onescience.admin.users.status.frozen":"已冻结","settings.providers.onescience.admin.users.status.limited":"已限流","settings.providers.onescience.admin.registration.hint":"开启后,用户注册必须填写有效邀请码。","settings.providers.onescience.admin.registration.inviteRequired":"注册需邀请码","settings.providers.onescience.admin.registration.fixedCode":"固定邀请码","settings.providers.onescience.admin.registration.fixedCodePlaceholder":"留空则清除固定邀请码","settings.providers.onescience.admin.registration.fixedTtl":"固定邀请码有效期","settings.providers.onescience.admin.registration.ttlDays":"{{days}} 天","settings.providers.onescience.admin.registration.fixedExpires":"当前固定码有效期至 {{time}}","settings.providers.onescience.admin.registration.randomTitle":"随机邀请码","settings.providers.onescience.admin.registration.randomHint":"随机码固定 30 分钟有效,且仅可使用一次。","settings.providers.onescience.admin.registration.randomCreate":"生成随机码","settings.providers.onescience.admin.registration.randomCreated":"已生成随机邀请码","settings.providers.onescience.admin.registration.randomExpires":"有效期至 {{time}}","settings.providers.onescience.admin.registration.copyCode":"复制邀请码","settings.providers.onescience.admin.registration.copiedCode":"邀请码已复制","settings.providers.onescience.admin.registration.saved":"注册审核配置已保存","settings.providers.onescience.admin.mail.hint":"主机等可由 ONECODE_SMTP_PASS 触发内置预填;也可先改表单直接「发送测试邮件」(不保存也会用当前填写)。长期授权码请用环境变量 / CI 烘焙。","settings.providers.onescience.admin.mail.host":"SMTP 主机","settings.providers.onescience.admin.mail.port":"端口","settings.providers.onescience.admin.mail.secure":"使用 TLS/SSL(如 465)","settings.providers.onescience.admin.mail.user":"用户名","settings.providers.onescience.admin.mail.from":"发件人","settings.providers.onescience.admin.mail.pass":"密码","settings.providers.onescience.admin.mail.passKeep":"已配置(来自 ONECODE_SMTP_PASS),留空则沿用","settings.providers.onescience.admin.mail.passPlaceholder":"SMTP 授权码","settings.providers.onescience.admin.mail.testTo":"测试收件邮箱","settings.providers.onescience.admin.mail.test":"发送测试邮件","settings.providers.onescience.admin.mail.testSent":"测试邮件已发送","settings.providers.onescience.admin.mail.saved":"已刷新邮件配置","settings.providers.onescience.admin.mail.needPass":"未检测到 ONECODE_SMTP_PASS,内置预填未启用。可先在表单填写后点「发送测试邮件」验证;长期请用该环境变量启动。","settings.providers.onescience.admin.menu.resetPassword":"重置普通用户密码","settings.providers.onescience.admin.menu.resetPassword.description":"生成一次性重置码或链接交给用户","settings.providers.onescience.admin.resetPassword.hint":"选择要重置密码的用户,然后生成一次性凭证。","settings.providers.onescience.admin.resetPassword.empty":"当前还没有可重置的本地账号。","settings.providers.onescience.admin.resetPassword.generate":"生成重置凭证","settings.providers.onescience.admin.resetPassword.credentialHint":"已为 {{name}}({{email}})生成凭证。请立即复制并交给用户,离开后无法再次查看明文。","settings.providers.onescience.admin.resetPassword.code":"一次性重置码","settings.providers.onescience.admin.resetPassword.link":"重置链接","settings.providers.onescience.admin.resetPassword.expires":"有效期至 {{time}}","settings.providers.onescience.admin.resetPassword.once":"凭证仅显示一次,使用后立即失效。","settings.providers.onescience.admin.resetPassword.copyCode":"复制重置码","settings.providers.onescience.admin.resetPassword.copyLink":"复制链接","settings.providers.onescience.admin.resetPassword.copiedCode":"重置码已复制","settings.providers.onescience.admin.resetPassword.copiedLink":"重置链接已复制","settings.providers.onescience.admin.model.title":"预置模型","settings.providers.onescience.admin.providerName":"显示名称","settings.providers.onescience.admin.baseURL":"基础 URL","settings.providers.onescience.admin.modelID":"模型 ID","settings.providers.onescience.admin.modelName":"模型名称","settings.providers.onescience.admin.models.query":"查看支持的模型","settings.providers.onescience.admin.models.query.loading":"正在查询…","settings.providers.onescience.admin.models.query.empty":"接口未返回可用模型,请手动填写模型 ID。","settings.providers.onescience.admin.models.query.needURL":"请先填写基础 URL。","settings.providers.onescience.admin.models.query.needKey":"请先填写 API 密钥后再查询。","settings.providers.onescience.admin.models.query.failed":"无法加载支持的模型","settings.providers.onescience.admin.apiKey":"API 密钥","settings.providers.onescience.admin.apiKeyKeep":"已配置,留空则保持不变","settings.providers.onescience.admin.apiKeyPlaceholder":"API 密钥","settings.providers.onescience.admin.saved":"预置模型配置已保存","settings.providers.onescience.admin.reset":"已恢复默认配置","settings.providers.onescience.admin.resetAction":"恢复默认","settings.providers.onescience.readonlyHint":"预置模型,不可断开或查看密钥","settings.models.title":"模型","settings.models.description":"模型设置将在此处可配置。","settings.authRequired.models":"模型与提供商配置跟随登录账号。请先登录后再修改开关与自定义模型。","settings.agents.title":"智能体","settings.agents.description":"智能体设置将在此处可配置。","settings.commands.title":"命令","settings.commands.description":"命令设置将在此处可配置。","settings.mcp.title":"MCP","settings.mcp.description":"MCP 设置将在此处可配置。","settings.permissions.title":"权限","settings.permissions.description":"控制服务器默认可以使用哪些工具。","settings.permissions.section.tools":"工具","settings.permissions.toast.updateFailed.title":"更新权限失败","settings.permissions.action.allow":"允许","settings.permissions.action.ask":"询问","settings.permissions.action.deny":"拒绝","settings.permissions.tool.read.title":"读取","settings.permissions.tool.read.description":"读取文件(匹配文件路径)","settings.permissions.tool.edit.title":"编辑","settings.permissions.tool.edit.description":"修改文件,包括编辑、写入、补丁和多重编辑","settings.permissions.tool.glob.title":"Glob","settings.permissions.tool.glob.description":"使用 glob 模式匹配文件","settings.permissions.tool.grep.title":"Grep","settings.permissions.tool.grep.description":"使用正则表达式搜索文件内容","settings.permissions.tool.list.title":"列表","settings.permissions.tool.list.description":"列出目录中的文件","settings.permissions.tool.bash.title":"Bash","settings.permissions.tool.bash.description":"运行 shell 命令","settings.permissions.tool.task.title":"任务","settings.permissions.tool.task.description":"启动子智能体","settings.permissions.tool.skill.title":"技能","settings.permissions.tool.skill.description":"按名称加载技能","settings.permissions.tool.lsp.title":"LSP","settings.permissions.tool.lsp.description":"运行语言服务器查询","settings.permissions.tool.todowrite.title":"更新待办","settings.permissions.tool.todowrite.description":"更新待办列表","settings.permissions.tool.webfetch.title":"网页获取","settings.permissions.tool.webfetch.description":"从 URL 获取内容","settings.permissions.tool.websearch.title":"网页搜索","settings.permissions.tool.websearch.description":"搜索网页","settings.permissions.tool.external_directory.title":"外部目录","settings.permissions.tool.external_directory.description":"访问项目目录之外的文件","settings.permissions.tool.doom_loop.title":"死循环","settings.permissions.tool.doom_loop.description":"检测具有相同输入的重复工具调用","session.delete.failed.title":"删除会话失败","session.delete.title":"删除会话","session.delete.confirm":'删除会话 "{{name}}"?',"session.delete.button":"删除会话","workspace.new":"新建工作区","workspace.type.local":"本地","workspace.type.sandbox":"沙盒","workspace.type.sharedCases":"默认案例","workspace.sharedCases.name":"官方预设","workspace.create.failed.title":"创建工作区失败","workspace.delete.failed.title":"删除工作区失败","workspace.resetting.title":"正在重置工作区","workspace.resetting.description":"这可能需要一点时间。","workspace.reset.failed.title":"重置工作区失败","workspace.reset.success.title":"工作区已重置","workspace.reset.success.description":"工作区已与默认分支保持一致。","workspace.error.stillPreparing":"工作区仍在准备中","workspace.status.checking":"正在检查未合并的更改...","workspace.status.error":"无法验证 git 状态。","workspace.status.clean":"未检测到未合并的更改。","workspace.status.dirty":"检测到未合并的更改。","workspace.delete.title":"删除工作区","workspace.delete.confirm":'删除工作区 "{{name}}"?',"workspace.delete.button":"删除工作区","workspace.reset.title":"重置工作区","workspace.reset.confirm":'重置工作区 "{{name}}"?',"workspace.reset.button":"重置工作区","workspace.reset.archived.none":"不会归档任何活跃会话。","workspace.reset.archived.one":"将归档 1 个会话。","workspace.reset.archived.many":"将归档 {{count}} 个会话。","workspace.reset.note":"这将把工作区重置为与默认分支一致。","common.open":"打开","dialog.releaseNotes.action.getStarted":"开始","dialog.releaseNotes.action.next":"下一步","dialog.releaseNotes.action.hideFuture":"不再显示","dialog.releaseNotes.media.alt":"发布预览","toast.project.reloadFailed.title":"无法重新加载 {{project}}","error.server.invalidConfiguration":"配置无效","common.moreCountSuffix":" (还有 {{count}} 个)","common.time.justNow":"刚刚","common.time.minutesAgo.short":"{{count}}分钟前","common.time.hoursAgo.short":"{{count}}小时前","common.time.daysAgo.short":"{{count}}天前","settings.providers.connected.environmentDescription":"已通过环境变量连接","settings.providers.custom.description":"通过基础 URL 添加与 OpenAI 兼容的提供商。","app.server.unreachable":"无法连接到 {{server}}","app.server.retrying":"正在自动重试...","app.server.otherServers":"其他服务器","server.row.noUsername":"无用户名","session.review.noVcs.createGit.title":"创建 Git 仓库","session.review.noVcs.createGit.description":"在此项目中跟踪、审查和撤消更改","session.review.noVcs.createGit.actionLoading":"正在创建 Git 仓库...","session.review.noVcs.createGit.action":"创建 Git 仓库","session.todo.progress":"已完成 {{done}} 个任务(共 {{total}} 个)","session.question.progress":"{{current}}/{{total}} 个问题","session.header.open.finder":"访达","session.header.open.fileExplorer":"文件资源管理器","session.header.open.fileManager":"文件管理器","session.header.open.app.vscode":"VS Code","session.header.open.app.cursor":"Cursor","session.header.open.app.zed":"Zed","session.header.open.app.textmate":"TextMate","session.header.open.app.antigravity":"Antigravity","session.header.open.app.terminal":"终端","session.header.open.app.iterm2":"iTerm2","session.header.open.app.ghostty":"Ghostty","session.header.open.app.warp":"Warp","session.header.open.app.xcode":"Xcode","session.header.open.app.androidStudio":"Android Studio","session.header.open.app.powershell":"PowerShell","session.header.open.app.sublimeText":"Sublime Text","debugBar.ariaLabel":"开发性能诊断","debugBar.na":"不适用","debugBar.nav.label":"NAV","debugBar.nav.tip":"最后一次完成的涉及会话页面的路由转换,从路由器启动到稳定后的第一次绘制。","debugBar.fps.label":"FPS","debugBar.fps.tip":"过去 5 秒内的滚动帧率。","debugBar.frame.label":"FRAME","debugBar.frame.tip":"过去 5 秒内最差的帧时间。","debugBar.jank.label":"JANK","debugBar.jank.tip":"过去 5 秒内超过 32ms 的帧。","debugBar.long.label":"LONG","debugBar.long.tip":"过去 5 秒内的阻塞时间和长任务计数。最大任务:{{max}}。","debugBar.delay.label":"DELAY","debugBar.delay.tip":"过去 5 秒内观察到的最差输入延迟。","debugBar.inp.label":"INP","debugBar.inp.tip":"过去 5 秒内的近似交互持续时间。这类似于 INP,而非官方的 Web Vitals INP。","debugBar.cls.label":"CLS","debugBar.cls.tip":"当前应用生命周期的累积布局偏移。","debugBar.mem.label":"MEM","debugBar.mem.tipUnavailable":"使用的 JS 堆与堆限制。仅限 Chromium。","debugBar.mem.tip":"使用的 JS 堆与堆限制。{{used}} / {{limit}}。","common.key.ctrl":"Ctrl","common.key.alt":"Alt","common.key.shift":"Shift","common.key.meta":"Meta","common.key.space":"空格","common.key.backspace":"退格","common.key.enter":"回车","common.key.tab":"Tab","common.key.delete":"Delete","common.key.home":"Home","common.key.end":"End","common.key.pageUp":"Page Up","common.key.pageDown":"Page Down","common.key.insert":"Insert","common.unknown":"未知","error.page.circular":"[循环]","error.globalSDK.noServerAvailable":"无可用服务器","error.globalSDK.serverNotAvailable":"服务器不可用","error.childStore.persistedCacheCreateFailed":"创建持久化缓存失败","error.childStore.persistedProjectMetadataCreateFailed":"创建持久化项目元数据失败","error.childStore.persistedProjectIconCreateFailed":"创建持久化项目图标失败","error.childStore.storeCreateFailed":"创建存储失败","terminal.connectionLost.abnormalClose":"WebSocket 异常关闭:{{code}}","account.deleteAccount.title":"注销账户","account.deleteAccount.description":"此操作不可撤销。注销后,您的账号、工作区数据及所有相关记录将被永久删除,并退出登录。","account.deleteAccount.confirm":"确认注销","account.deleteAccount.button":"注销账户","account.deleteAccount.toast.success":"账户已注销","account.deleteAccount.toast.error":"注销账户失败","account.defaultProject.description":"注册或首次登录时自动创建的默认项目,不可删除,作为科研开发的默认入口。"};export{e as dict};
5
+ {{message}}`,"error.chain.configInvalid":"配置文件 {{path}} 无效","error.chain.configInvalidWithMessage":"配置文件 {{path}} 无效:{{message}}","notification.permission.title":"需要权限","notification.permission.description":"{{sessionTitle}}({{projectName}})需要权限","notification.question.title":"问题","notification.question.description":"{{sessionTitle}}({{projectName}})有一个问题","notification.action.goToSession":"前往会话","notification.session.responseReady.title":"回复已就绪","notification.session.error.title":"会话错误","notification.session.error.fallbackDescription":"发生错误","home.recentProjects":"最近项目","home.empty.title":"没有最近项目","home.empty.description":"通过打开本地项目开始使用","session.tab.session":"会话","session.tab.review":"审查","session.tab.context":"上下文","session.tab.artifacts":"产物","session.file.unsaved":"有未保存的更改","session.file.preview.preview":"预览","session.file.preview.source":"源码","session.file.html.preview":"预览","session.file.html.source":"源码","session.file.html.loading":"正在加载 HTML 预览...","session.file.html.error":"无法加载 HTML 预览","session.file.csv.empty":"CSV 文件为空","session.artifacts.description":"本次会话中生成的图片和图表","session.artifacts.empty":"暂无产物","session.artifacts.image":"图片","session.artifacts.preview":"预览","session.artifacts.openImage":"打开图片","session.artifacts.openHtml":"打开 HTML","session.artifacts.openScript":"编辑源码","session.artifacts.openSource":"打开来源","session.artifacts.time.unknown":"时间未知","session.artifacts.group.today":"今天","session.artifacts.group.yesterday":"昨天","session.artifacts.group.week":"本周","session.artifacts.group.older":"更早","session.artifacts.group.unknown":"未知","session.artifacts.source.read":"读取","session.artifacts.source.bash":"Shell","session.artifacts.source.science":"报告","session.artifacts.source.markdown":"报告附图","session.artifacts.source.other":"其他","session.panel.reviewAndFiles":"审查和文件","session.review.filesChanged":"{{count}} 个文件变更","session.review.change.one":"更改","session.review.change.other":"更改","session.review.loadingChanges":"正在加载更改...","session.review.empty":"此会话暂无更改","session.review.noVcs":"未检测到 Git 版本控制系统,无法显示更改","session.review.noSnapshot":"配置中已禁用快照跟踪,因此会话更改不可用","session.review.noChanges":"无更改","session.files.selectToOpen":"选择要打开的文件","session.files.all":"所有文件","session.files.refresh":"刷新文件树","session.files.upload":"上传到项目","session.files.sync":"同步文件","session.files.empty":"无文件","session.files.binaryContent":"二进制文件(无法显示内容)","session.messages.renderEarlier":"显示更早的消息","session.messages.loadingEarlier":"正在加载更早的消息...","session.messages.loadEarlier":"加载更早的消息","session.messages.loading":"正在加载消息...","session.messages.jumpToLatest":"跳转到最新","session.context.addToContext":"将 {{selection}} 添加到上下文","session.todo.title":"待办事项","session.todo.collapse":"折叠","session.todo.expand":"展开","session.followupDock.summary.one":"{{count}} 条排队消息","session.followupDock.summary.other":"{{count}} 条排队消息","session.followupDock.sendNow":"立即发送","session.followupDock.edit":"编辑","session.followupDock.collapse":"折叠排队消息","session.followupDock.expand":"展开排队消息","session.revertDock.summary.one":"{{count}} 条已回滚消息","session.revertDock.summary.other":"{{count}} 条已回滚消息","session.revertDock.collapse":"折叠已回滚消息","session.revertDock.expand":"展开已回滚消息","session.revertDock.restore":"恢复消息","session.new.title":"构建任何东西","session.new.worktree.main":"主分支","session.new.worktree.mainWithBranch":"主分支({{branch}})","session.new.worktree.create":"创建新的 worktree","session.new.lastModified":"最后修改","session.header.search.placeholder":"搜索 {{project}}","session.header.searchFiles":"搜索文件","session.header.openIn":"打开方式","session.header.open.action":"打开 {{app}}","session.header.open.ariaLabel":"在 {{app}} 中打开","session.header.open.menu":"打开选项","session.header.open.copyPath":"复制路径","status.popover.trigger":"集成管理","status.popover.ariaLabel":"MCP、SSH 与后端集成","status.popover.tab.servers":"后端连接","status.popover.tab.mcp":"MCP","status.popover.tab.ssh":"SSH","status.popover.tab.lsp":"LSP","status.popover.tab.plugins":"插件","status.popover.tab.onescience":"OneScience","status.popover.action.manageServers":"管理后端连接","status.popover.action.manageMcp":"管理 MCP","status.popover.action.manageSsh":"管理 SSH","status.popover.servers.hint":"高级:切换此应用连接的 OpenCode 后端。","status.popover.onescience.title":"OneScience 配置","status.popover.onescience.empty":"未找到 OneScience 配置","status.popover.onescience.backend":"后端","status.popover.onescience.mode":"模式","status.popover.onescience.mode.local":"本地运行","status.popover.onescience.mode.local.description":"Coding 环境与运行环境在同一环境。","status.popover.onescience.mode.slurm":"Slurm 集群提交运行","status.popover.onescience.mode.slurm.description":"从当前环境生成并提交 Slurm 任务。","status.popover.onescience.mode.sshSlurm":"SSH 远程 Slurm 提交运行","status.popover.onescience.mode.sshSlurm.description":"先 SSH 到远程登录节点,再提交 Slurm 任务。","status.popover.onescience.mode.mcp":"MCP 提交运行","status.popover.onescience.mode.mcp.description":"通过已配置的 MCP 工具或服务提交任务。","status.popover.onescience.remote":"远程","status.popover.onescience.cluster":"集群","status.popover.onescience.save":"保存到 onescience.json","status.popover.onescience.saved":"OneScience 配置已保存","status.popover.onescience.ssh":"SSH 配置","status.popover.onescience.customSsh":"自定义远程配置","status.popover.onescience.hostname":"HostName","status.popover.onescience.port":"端口","status.popover.onescience.user":"用户","status.popover.onescience.remoteWorkDir":"远程工作目录","status.popover.onescience.partition":"分区","status.popover.onescience.nodes":"节点数","status.popover.onescience.gpusPerNode":"每节点 GPU","status.popover.onescience.cpusPerTask":"每任务 CPU","status.popover.onescience.memory":"内存","status.popover.onescience.timeLimit":"时间限制","status.popover.onescience.gpuType":"GPU 类型","status.popover.onescience.condaEnv":"Conda 环境","status.popover.onescience.scriptPath":"脚本路径","status.popover.onescience.scriptTemplate":"脚本模板","status.popover.onescience.jobName":"任务名","status.popover.onescience.codePath":"代码路径","status.popover.onescience.workDir":"运行目录","session.share.popover.title":"发布到网页","session.share.popover.description.shared":"此会话已在网页上公开。任何拥有链接的人都可以访问。","session.share.popover.description.unshared":"在网页上公开分享此会话。任何拥有链接的人都可以访问。","session.share.action.share":"分享","session.share.action.publish":"发布","session.share.action.publishing":"正在发布...","session.share.action.unpublish":"取消发布","session.share.action.unpublishing":"正在取消发布...","session.share.action.view":"查看","session.share.copy.copied":"已复制","session.share.copy.copyLink":"复制链接","lsp.tooltip.none":"没有 LSP 服务器","lsp.label.connected":"{{count}} LSP","prompt.loading":"正在加载提示...","terminal.loading":"正在加载终端...","terminal.title":"终端","terminal.title.numbered":"终端 {{number}}","terminal.close":"关闭终端","terminal.connectionLost.title":"连接已丢失","terminal.connectionLost.description":"终端连接已中断。这可能发生在服务器重启时。","common.closeTab":"关闭标签页","common.dismiss":"忽略","common.requestFailed":"请求失败","common.moreOptions":"更多选项","common.learnMore":"了解更多","common.rename":"重命名","common.reset":"重置","common.archive":"归档","common.delete":"删除","common.close":"关闭","common.edit":"编辑","common.loadMore":"加载更多","common.key.esc":"ESC","session.archived.title":"已归档会话","session.archived.hint":"查看已归档的会话","session.archived.empty":"暂无已归档会话","session.archived.unarchive":"取消归档","session.archived.unarchiveFailed.title":"取消归档失败","sidebar.menu.toggle":"切换菜单","sidebar.nav.projectsAndSessions":"项目和会话","sidebar.settings":"设置","sidebar.help":"帮助","sidebar.workspaces.enable":"启用工作区","sidebar.workspaces.disable":"禁用工作区","sidebar.gettingStarted.title":"入门","sidebar.gettingStarted.line1":"OpenCode 提供免费模型,你可以立即开始使用。","sidebar.gettingStarted.line2":"连接任意提供商即可使用更多模型,如 Claude、GPT、Gemini 等。","sidebar.section.projects":"项目","sidebar.section.recent":"最近","sidebar.section.sharedCases":"默认案例展示","sidebar.project.none":"没有项目","sidebar.project.recentSessions":"最近会话","sidebar.project.viewAllSessions":"查看全部会话","sidebar.project.clearNotifications":"清除通知","sidebar.project.removeFromView":"从列表移除","sidebar.project.delete":"删除项目","sidebar.project.delete.title":"删除项目","sidebar.project.delete.confirm":"确定删除项目「{{name}}」?将停止其中正在运行的会话,并删除项目文件夹与相关会话记录。此操作不可恢复。","sidebar.project.delete.hasArchived":"该项目下还有已归档的会话,请先取消归档后再删除项目。","sidebar.project.delete.button":"删除项目","sidebar.project.delete.failed":"删除项目失败","sidebar.project.delete.busy":"正在删除…","sidebar.project.defaultWorkspace":"主空间","sidebar.project.defaultWorkspace.hint":"账号个人工作区,固定保留在列表中","sidebar.project.current":"当前","sidebar.project.noSessions":"无任务","app.name.desktop":"OpenCode Desktop","settings.section.desktop":"桌面","settings.section.server":"服务器","settings.tab.general":"通用","settings.tab.shortcuts":"快捷键","settings.desktop.section.wsl":"WSL","settings.desktop.wsl.title":"WSL 集成","settings.desktop.wsl.description":"在 Windows 的 WSL 环境中运行 OpenCode 服务器。","settings.general.section.appearance":"外观","settings.general.section.notifications":"系统通知","settings.general.section.updates":"更新","settings.general.section.sounds":"音效","settings.general.section.feed":"动态","settings.general.section.display":"显示","settings.general.row.language.title":"语言","settings.general.row.language.description":"更改 OpenCode 的显示语言","settings.general.row.admin.description":"使用管理员密码进入平台管理配置","settings.general.row.appearance.title":"外观","settings.general.row.appearance.description":"自定义 OpenCode 在你的设备上的外观","settings.general.row.colorScheme.title":"配色方案","settings.general.row.colorScheme.description":"选择 OpenCode 跟随系统、浅色或深色主题","settings.general.row.theme.title":"主题","settings.general.row.theme.description":"自定义 OpenCode 的主题。","settings.general.row.font.title":"代码字体","settings.general.row.font.description":"自定义代码块使用的字体","settings.general.row.terminalFont.title":"Terminal Font","settings.general.row.terminalFont.description":"Customise the font used in the terminal","settings.general.row.uiFont.title":"界面字体","settings.general.row.uiFont.description":"自定义整个界面使用的字体","settings.general.row.followup.title":"跟进消息行为","settings.general.row.followup.description":"选择跟进提示是立即引导还是在队列中等待","settings.general.row.followup.option.queue":"排队","settings.general.row.followup.option.steer":"引导","settings.general.row.reasoningSummaries.title":"显示推理摘要","settings.general.row.reasoningSummaries.description":"在时间线中显示模型推理摘要","settings.general.row.shellToolPartsExpanded.title":"展开 shell 工具部分","settings.general.row.shellToolPartsExpanded.description":"默认在时间线中展开 shell 工具部分","settings.general.row.editToolPartsExpanded.title":"展开编辑工具部分","settings.general.row.editToolPartsExpanded.description":"默认在时间线中展开 edit、write 和 patch 工具部分","settings.general.row.showSessionProgressBar.title":"显示会话进度条","settings.general.row.showSessionProgressBar.description":"当智能体正在工作时,在会话顶部显示动画进度条","settings.general.row.wayland.title":"使用原生 Wayland","settings.general.row.wayland.description":"在 Wayland 上禁用 X11 回退。需要重启。","settings.general.row.wayland.tooltip":"在混合刷新率显示器的 Linux 系统上,原生 Wayland 可能更稳定。","settings.general.row.releaseNotes.title":"发行说明","settings.general.row.releaseNotes.description":"更新后显示“新功能”弹窗","settings.updates.row.startup.title":"启动时检查更新","settings.updates.row.startup.description":"在 OpenCode 启动时自动检查更新","settings.updates.row.check.title":"检查更新","settings.updates.row.check.description":"手动检查更新并在有更新时安装","settings.updates.action.checkNow":"立即检查","settings.updates.action.checking":"正在检查...","settings.updates.toast.latest.title":"已是最新版本","settings.updates.toast.latest.description":"你正在使用最新版本的 OpenCode。","sound.option.none":"无","sound.option.alert01":"警报 01","sound.option.alert02":"警报 02","sound.option.alert03":"警报 03","sound.option.alert04":"警报 04","sound.option.alert05":"警报 05","sound.option.alert06":"警报 06","sound.option.alert07":"警报 07","sound.option.alert08":"警报 08","sound.option.alert09":"警报 09","sound.option.alert10":"警报 10","sound.option.bipbop01":"哔啵 01","sound.option.bipbop02":"哔啵 02","sound.option.bipbop03":"哔啵 03","sound.option.bipbop04":"哔啵 04","sound.option.bipbop05":"哔啵 05","sound.option.bipbop06":"哔啵 06","sound.option.bipbop07":"哔啵 07","sound.option.bipbop08":"哔啵 08","sound.option.bipbop09":"哔啵 09","sound.option.bipbop10":"哔啵 10","sound.option.staplebops01":"斯泰普博普斯 01","sound.option.staplebops02":"斯泰普博普斯 02","sound.option.staplebops03":"斯泰普博普斯 03","sound.option.staplebops04":"斯泰普博普斯 04","sound.option.staplebops05":"斯泰普博普斯 05","sound.option.staplebops06":"斯泰普博普斯 06","sound.option.staplebops07":"斯泰普博普斯 07","sound.option.nope01":"否 01","sound.option.nope02":"否 02","sound.option.nope03":"否 03","sound.option.nope04":"否 04","sound.option.nope05":"否 05","sound.option.nope06":"否 06","sound.option.nope07":"否 07","sound.option.nope08":"否 08","sound.option.nope09":"否 09","sound.option.nope10":"否 10","sound.option.nope11":"否 11","sound.option.nope12":"否 12","sound.option.yup01":"是 01","sound.option.yup02":"是 02","sound.option.yup03":"是 03","sound.option.yup04":"是 04","sound.option.yup05":"是 05","sound.option.yup06":"是 06","settings.general.notifications.agent.title":"智能体","settings.general.notifications.agent.description":"当智能体完成或需要注意时显示系统通知","settings.general.notifications.permissions.title":"权限","settings.general.notifications.permissions.description":"当需要权限时显示系统通知","settings.general.notifications.errors.title":"错误","settings.general.notifications.errors.description":"发生错误时显示系统通知","settings.general.sounds.agent.title":"智能体","settings.general.sounds.agent.description":"当智能体完成或需要注意时播放声音","settings.general.sounds.permissions.title":"权限","settings.general.sounds.permissions.description":"当需要权限时播放声音","settings.general.sounds.errors.title":"错误","settings.general.sounds.errors.description":"发生错误时播放声音","settings.shortcuts.title":"键盘快捷键","settings.shortcuts.reset.button":"重置为默认值","settings.shortcuts.reset.toast.title":"快捷键已重置","settings.shortcuts.reset.toast.description":"键盘快捷键已重置为默认设置。","settings.shortcuts.conflict.title":"快捷键已被占用","settings.shortcuts.conflict.description":"{{keybind}} 已分配给 {{titles}}。","settings.shortcuts.unassigned":"未设置","settings.shortcuts.pressKeys":"按下按键","settings.shortcuts.search.placeholder":"搜索快捷键","settings.shortcuts.search.empty":"未找到快捷键","settings.shortcuts.group.general":"通用","settings.shortcuts.group.session":"会话","settings.shortcuts.group.navigation":"导航","settings.shortcuts.group.modelAndAgent":"模型与智能体","settings.shortcuts.group.terminal":"终端","settings.shortcuts.group.prompt":"提示","settings.providers.title":"提供商","settings.providers.description":"提供商设置将在此处可配置。","settings.providers.section.connected":"已连接的提供商","settings.providers.connected.empty":"没有已连接的提供商","settings.providers.section.popular":"热门提供商","settings.providers.tag.environment":"环境","settings.providers.tag.config":"配置","settings.providers.tag.custom":"自定义","settings.providers.tag.other":"其他","settings.providers.tag.limited":"限免","settings.providers.onescience.admin.button":"管理员配置","settings.providers.onescience.admin.title":"管理员配置","settings.providers.onescience.admin.passwordHint":"输入管理员密码以解锁管理员配置。","settings.providers.onescience.admin.password":"管理员密码","settings.providers.onescience.admin.passwordPlaceholder":"管理员密码","settings.providers.onescience.admin.passwordInvalid":"管理员密码不正确","settings.providers.onescience.admin.passwordLocked":"错误次数过多,请在 {{time}} 后再试","settings.providers.onescience.admin.unlock":"解锁","settings.providers.onescience.admin.menu.hint":"选择要管理的配置项。","settings.providers.onescience.admin.menu.model":"预置模型","settings.providers.onescience.admin.menu.model.description":"配置 OneScience GPT 的接口与模型","settings.providers.onescience.admin.menu.mail":"邮件服务","settings.providers.onescience.admin.menu.mail.description":"配置用于账号通知的发信服务","settings.providers.onescience.admin.menu.users":"用户管理","settings.providers.onescience.admin.menu.users.description":"冻结、解冻、删除用户,或重置密码","settings.providers.onescience.admin.menu.backends":"后端连接","settings.providers.onescience.admin.menu.backends.description":"管理应用连接的 OpenCode 后端(高级)","settings.providers.onescience.admin.menu.registration":"注册审核","settings.providers.onescience.admin.menu.registration.description":"开关邀请码注册,并管理固定/随机邀请码","settings.providers.onescience.admin.users.hint":"选择用户后可冻结、解冻、删除,或生成密码重置凭证。","settings.providers.onescience.admin.users.empty":"当前还没有可管理的本地账号。","settings.providers.onescience.admin.users.freeze":"冻结","settings.providers.onescience.admin.users.unfreeze":"解冻","settings.providers.onescience.admin.users.delete":"删除","settings.providers.onescience.admin.users.deleteConfirm":"确定删除用户 {{name}}({{email}})吗?将先冻结并吊销会话,再永久删除账号与工作区,此操作不可恢复。","settings.providers.onescience.admin.users.frozen":"用户已冻结","settings.providers.onescience.admin.users.unfrozen":"用户已解冻","settings.providers.onescience.admin.users.deleted":"用户已删除","settings.providers.onescience.admin.users.status.active":"正常","settings.providers.onescience.admin.users.status.frozen":"已冻结","settings.providers.onescience.admin.users.status.limited":"已限流","settings.providers.onescience.admin.registration.hint":"开启后,用户注册必须填写有效邀请码。","settings.providers.onescience.admin.registration.inviteRequired":"注册需邀请码","settings.providers.onescience.admin.registration.fixedCode":"固定邀请码","settings.providers.onescience.admin.registration.fixedCodePlaceholder":"留空则清除固定邀请码","settings.providers.onescience.admin.registration.fixedTtl":"固定邀请码有效期","settings.providers.onescience.admin.registration.ttlDays":"{{days}} 天","settings.providers.onescience.admin.registration.fixedExpires":"当前固定码有效期至 {{time}}","settings.providers.onescience.admin.registration.randomTitle":"随机邀请码","settings.providers.onescience.admin.registration.randomHint":"随机码固定 30 分钟有效,且仅可使用一次。","settings.providers.onescience.admin.registration.randomCreate":"生成随机码","settings.providers.onescience.admin.registration.randomCreated":"已生成随机邀请码","settings.providers.onescience.admin.registration.randomExpires":"有效期至 {{time}}","settings.providers.onescience.admin.registration.copyCode":"复制邀请码","settings.providers.onescience.admin.registration.copiedCode":"邀请码已复制","settings.providers.onescience.admin.registration.saved":"注册审核配置已保存","settings.providers.onescience.admin.mail.hint":"主机等可由 ONECODE_SMTP_PASS 触发内置预填;也可先改表单直接「发送测试邮件」(不保存也会用当前填写)。长期授权码请用环境变量 / CI 烘焙。","settings.providers.onescience.admin.mail.host":"SMTP 主机","settings.providers.onescience.admin.mail.port":"端口","settings.providers.onescience.admin.mail.secure":"使用 TLS/SSL(如 465)","settings.providers.onescience.admin.mail.user":"用户名","settings.providers.onescience.admin.mail.from":"发件人","settings.providers.onescience.admin.mail.pass":"密码","settings.providers.onescience.admin.mail.passKeep":"已配置(来自 ONECODE_SMTP_PASS),留空则沿用","settings.providers.onescience.admin.mail.passPlaceholder":"SMTP 授权码","settings.providers.onescience.admin.mail.testTo":"测试收件邮箱","settings.providers.onescience.admin.mail.test":"发送测试邮件","settings.providers.onescience.admin.mail.testSent":"测试邮件已发送","settings.providers.onescience.admin.mail.saved":"已刷新邮件配置","settings.providers.onescience.admin.mail.needPass":"未检测到 ONECODE_SMTP_PASS,内置预填未启用。可先在表单填写后点「发送测试邮件」验证;长期请用该环境变量启动。","settings.providers.onescience.admin.menu.resetPassword":"重置普通用户密码","settings.providers.onescience.admin.menu.resetPassword.description":"生成一次性重置码或链接交给用户","settings.providers.onescience.admin.resetPassword.hint":"选择要重置密码的用户,然后生成一次性凭证。","settings.providers.onescience.admin.resetPassword.empty":"当前还没有可重置的本地账号。","settings.providers.onescience.admin.resetPassword.generate":"生成重置凭证","settings.providers.onescience.admin.resetPassword.credentialHint":"已为 {{name}}({{email}})生成凭证。请立即复制并交给用户,离开后无法再次查看明文。","settings.providers.onescience.admin.resetPassword.code":"一次性重置码","settings.providers.onescience.admin.resetPassword.link":"重置链接","settings.providers.onescience.admin.resetPassword.expires":"有效期至 {{time}}","settings.providers.onescience.admin.resetPassword.once":"凭证仅显示一次,使用后立即失效。","settings.providers.onescience.admin.resetPassword.copyCode":"复制重置码","settings.providers.onescience.admin.resetPassword.copyLink":"复制链接","settings.providers.onescience.admin.resetPassword.copiedCode":"重置码已复制","settings.providers.onescience.admin.resetPassword.copiedLink":"重置链接已复制","settings.providers.onescience.admin.model.title":"预置模型","settings.providers.onescience.admin.providerName":"显示名称","settings.providers.onescience.admin.baseURL":"基础 URL","settings.providers.onescience.admin.modelID":"模型 ID","settings.providers.onescience.admin.modelName":"模型名称","settings.providers.onescience.admin.models.query":"查看支持的模型","settings.providers.onescience.admin.models.query.loading":"正在查询…","settings.providers.onescience.admin.models.query.empty":"接口未返回可用模型,请手动填写模型 ID。","settings.providers.onescience.admin.models.query.needURL":"请先填写基础 URL。","settings.providers.onescience.admin.models.query.needKey":"请先填写 API 密钥后再查询。","settings.providers.onescience.admin.models.query.failed":"无法加载支持的模型","settings.providers.onescience.admin.apiKey":"API 密钥","settings.providers.onescience.admin.apiKeyKeep":"已配置,留空则保持不变","settings.providers.onescience.admin.apiKeyPlaceholder":"API 密钥","settings.providers.onescience.admin.saved":"预置模型配置已保存","settings.providers.onescience.admin.reset":"已恢复默认配置","settings.providers.onescience.admin.resetAction":"恢复默认","settings.providers.onescience.readonlyHint":"预置模型,不可断开或查看密钥","settings.models.title":"模型","settings.models.description":"模型设置将在此处可配置。","settings.authRequired.models":"模型与提供商配置跟随登录账号。请先登录后再修改开关与自定义模型。","settings.agents.title":"智能体","settings.agents.description":"智能体设置将在此处可配置。","settings.commands.title":"命令","settings.commands.description":"命令设置将在此处可配置。","settings.mcp.title":"MCP","settings.mcp.description":"MCP 设置将在此处可配置。","settings.permissions.title":"权限","settings.permissions.description":"控制服务器默认可以使用哪些工具。","settings.permissions.section.tools":"工具","settings.permissions.toast.updateFailed.title":"更新权限失败","settings.permissions.action.allow":"允许","settings.permissions.action.ask":"询问","settings.permissions.action.deny":"拒绝","settings.permissions.tool.read.title":"读取","settings.permissions.tool.read.description":"读取文件(匹配文件路径)","settings.permissions.tool.edit.title":"编辑","settings.permissions.tool.edit.description":"修改文件,包括编辑、写入、补丁和多重编辑","settings.permissions.tool.glob.title":"Glob","settings.permissions.tool.glob.description":"使用 glob 模式匹配文件","settings.permissions.tool.grep.title":"Grep","settings.permissions.tool.grep.description":"使用正则表达式搜索文件内容","settings.permissions.tool.list.title":"列表","settings.permissions.tool.list.description":"列出目录中的文件","settings.permissions.tool.bash.title":"Bash","settings.permissions.tool.bash.description":"运行 shell 命令","settings.permissions.tool.task.title":"任务","settings.permissions.tool.task.description":"启动子智能体","settings.permissions.tool.skill.title":"技能","settings.permissions.tool.skill.description":"按名称加载技能","settings.permissions.tool.lsp.title":"LSP","settings.permissions.tool.lsp.description":"运行语言服务器查询","settings.permissions.tool.todowrite.title":"更新待办","settings.permissions.tool.todowrite.description":"更新待办列表","settings.permissions.tool.webfetch.title":"网页获取","settings.permissions.tool.webfetch.description":"从 URL 获取内容","settings.permissions.tool.websearch.title":"网页搜索","settings.permissions.tool.websearch.description":"搜索网页","settings.permissions.tool.external_directory.title":"外部目录","settings.permissions.tool.external_directory.description":"访问项目目录之外的文件","settings.permissions.tool.doom_loop.title":"死循环","settings.permissions.tool.doom_loop.description":"检测具有相同输入的重复工具调用","session.delete.failed.title":"删除会话失败","session.delete.title":"删除会话","session.delete.confirm":'删除会话 "{{name}}"?',"session.delete.button":"删除会话","workspace.new":"新建工作区","workspace.type.local":"本地","workspace.type.sandbox":"沙盒","workspace.type.sharedCases":"默认案例","workspace.sharedCases.name":"官方预设","workspace.create.failed.title":"创建工作区失败","workspace.delete.failed.title":"删除工作区失败","workspace.resetting.title":"正在重置工作区","workspace.resetting.description":"这可能需要一点时间。","workspace.reset.failed.title":"重置工作区失败","workspace.reset.success.title":"工作区已重置","workspace.reset.success.description":"工作区已与默认分支保持一致。","workspace.error.stillPreparing":"工作区仍在准备中","workspace.status.checking":"正在检查未合并的更改...","workspace.status.error":"无法验证 git 状态。","workspace.status.clean":"未检测到未合并的更改。","workspace.status.dirty":"检测到未合并的更改。","workspace.delete.title":"删除工作区","workspace.delete.confirm":'删除工作区 "{{name}}"?',"workspace.delete.button":"删除工作区","workspace.reset.title":"重置工作区","workspace.reset.confirm":'重置工作区 "{{name}}"?',"workspace.reset.button":"重置工作区","workspace.reset.archived.none":"不会归档任何活跃会话。","workspace.reset.archived.one":"将归档 1 个会话。","workspace.reset.archived.many":"将归档 {{count}} 个会话。","workspace.reset.note":"这将把工作区重置为与默认分支一致。","common.open":"打开","dialog.releaseNotes.action.getStarted":"开始","dialog.releaseNotes.action.next":"下一步","dialog.releaseNotes.action.hideFuture":"不再显示","dialog.releaseNotes.media.alt":"发布预览","toast.project.reloadFailed.title":"无法重新加载 {{project}}","error.server.invalidConfiguration":"配置无效","common.moreCountSuffix":" (还有 {{count}} 个)","common.time.justNow":"刚刚","common.time.minutesAgo.short":"{{count}}分钟前","common.time.hoursAgo.short":"{{count}}小时前","common.time.daysAgo.short":"{{count}}天前","settings.providers.connected.environmentDescription":"已通过环境变量连接","settings.providers.custom.description":"通过基础 URL 添加与 OpenAI 兼容的提供商。","app.server.unreachable":"无法连接到 {{server}}","app.server.retrying":"正在自动重试...","app.server.otherServers":"其他服务器","server.row.noUsername":"无用户名","session.review.noVcs.createGit.title":"创建 Git 仓库","session.review.noVcs.createGit.description":"在此项目中跟踪、审查和撤消更改","session.review.noVcs.createGit.actionLoading":"正在创建 Git 仓库...","session.review.noVcs.createGit.action":"创建 Git 仓库","session.todo.progress":"已完成 {{done}} 个任务(共 {{total}} 个)","session.question.progress":"{{current}}/{{total}} 个问题","session.header.open.finder":"访达","session.header.open.fileExplorer":"文件资源管理器","session.header.open.fileManager":"文件管理器","session.header.open.app.vscode":"VS Code","session.header.open.app.cursor":"Cursor","session.header.open.app.zed":"Zed","session.header.open.app.textmate":"TextMate","session.header.open.app.antigravity":"Antigravity","session.header.open.app.terminal":"终端","session.header.open.app.iterm2":"iTerm2","session.header.open.app.ghostty":"Ghostty","session.header.open.app.warp":"Warp","session.header.open.app.xcode":"Xcode","session.header.open.app.androidStudio":"Android Studio","session.header.open.app.powershell":"PowerShell","session.header.open.app.sublimeText":"Sublime Text","debugBar.ariaLabel":"开发性能诊断","debugBar.na":"不适用","debugBar.nav.label":"NAV","debugBar.nav.tip":"最后一次完成的涉及会话页面的路由转换,从路由器启动到稳定后的第一次绘制。","debugBar.fps.label":"FPS","debugBar.fps.tip":"过去 5 秒内的滚动帧率。","debugBar.frame.label":"FRAME","debugBar.frame.tip":"过去 5 秒内最差的帧时间。","debugBar.jank.label":"JANK","debugBar.jank.tip":"过去 5 秒内超过 32ms 的帧。","debugBar.long.label":"LONG","debugBar.long.tip":"过去 5 秒内的阻塞时间和长任务计数。最大任务:{{max}}。","debugBar.delay.label":"DELAY","debugBar.delay.tip":"过去 5 秒内观察到的最差输入延迟。","debugBar.inp.label":"INP","debugBar.inp.tip":"过去 5 秒内的近似交互持续时间。这类似于 INP,而非官方的 Web Vitals INP。","debugBar.cls.label":"CLS","debugBar.cls.tip":"当前应用生命周期的累积布局偏移。","debugBar.mem.label":"MEM","debugBar.mem.tipUnavailable":"使用的 JS 堆与堆限制。仅限 Chromium。","debugBar.mem.tip":"使用的 JS 堆与堆限制。{{used}} / {{limit}}。","common.key.ctrl":"Ctrl","common.key.alt":"Alt","common.key.shift":"Shift","common.key.meta":"Meta","common.key.space":"空格","common.key.backspace":"退格","common.key.enter":"回车","common.key.tab":"Tab","common.key.delete":"Delete","common.key.home":"Home","common.key.end":"End","common.key.pageUp":"Page Up","common.key.pageDown":"Page Down","common.key.insert":"Insert","common.unknown":"未知","error.page.circular":"[循环]","error.globalSDK.noServerAvailable":"无可用服务器","error.globalSDK.serverNotAvailable":"服务器不可用","error.childStore.persistedCacheCreateFailed":"创建持久化缓存失败","error.childStore.persistedProjectMetadataCreateFailed":"创建持久化项目元数据失败","error.childStore.persistedProjectIconCreateFailed":"创建持久化项目图标失败","error.childStore.storeCreateFailed":"创建存储失败","terminal.connectionLost.abnormalClose":"WebSocket 异常关闭:{{code}}","account.deleteAccount.title":"注销账户","account.deleteAccount.description":"此操作不可撤销。注销后,您的账号、工作区数据及所有相关记录将被永久删除,并退出登录。","account.deleteAccount.confirm":"确认注销","account.deleteAccount.button":"注销账户","account.deleteAccount.toast.success":"账户已注销","account.deleteAccount.toast.error":"注销账户失败","account.defaultProject.description":"注册或首次登录时自动创建的默认项目,不可删除,作为科研开发的默认入口。"};export{e as dict};
package/index.html CHANGED
@@ -8,19 +8,19 @@
8
8
  name="description"
9
9
  content="OneScience is an AI for Science workspace for research discovery, agent workflows, and scientific knowledge."
10
10
  />
11
- <link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/favicon-96x96-v3.png" sizes="96x96" />
12
- <link rel="shortcut icon" href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/favicon-v3.ico" />
13
- <link rel="apple-touch-icon" sizes="180x180" href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/apple-touch-icon-v3.png" />
14
- <link rel="manifest" href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/site.webmanifest" />
15
- <link rel="preload" href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/fonts/inter-400.woff2" as="font" type="font/woff2" crossorigin />
16
- <link rel="preload" href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/fonts/noto-sc-400.woff2" as="font" type="font/woff2" crossorigin />
11
+ <link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/favicon-96x96-v3.png" sizes="96x96" />
12
+ <link rel="shortcut icon" href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/favicon-v3.ico" />
13
+ <link rel="apple-touch-icon" sizes="180x180" href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/apple-touch-icon-v3.png" />
14
+ <link rel="manifest" href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/site.webmanifest" />
15
+ <link rel="preload" href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/fonts/inter-400.woff2" as="font" type="font/woff2" crossorigin />
16
+ <link rel="preload" href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/fonts/noto-sc-400.woff2" as="font" type="font/woff2" crossorigin />
17
17
  <meta name="theme-color" content="#F8F7F7" />
18
18
  <meta name="theme-color" content="#131010" media="(prefers-color-scheme: dark)" />
19
- <meta property="og:image" content="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/social-share.png" />
20
- <meta property="twitter:image" content="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/social-share.png" />
21
- <script id="oc-theme-preload-script" src="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/oc-theme-preload.js"></script>
22
- <script type="module" crossorigin src="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/index-B9pjoyUI.js"></script>
23
- <link rel="stylesheet" crossorigin href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/index-B2hZOSpo.css">
19
+ <meta property="og:image" content="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/social-share.png" />
20
+ <meta property="twitter:image" content="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/social-share.png" />
21
+ <script id="oc-theme-preload-script" src="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/oc-theme-preload.js"></script>
22
+ <script type="module" crossorigin src="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/index-GYuEWFpk.js"></script>
23
+ <link rel="stylesheet" crossorigin href="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/assets/index-nRH_JiPX.css">
24
24
  </head>
25
25
  <body class="antialiased overscroll-none text-12-regular overflow-hidden">
26
26
  <noscript>You need to enable JavaScript to run this app.</noscript>
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@onescience/onecode-web",
3
- "version": "1.14.50-202608100929",
3
+ "version": "1.14.50-202608111010",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "description": "OneCode web UI static assets for CDN delivery.",
8
- "homepage": "https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/index.html",
8
+ "homepage": "https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608111010/index.html",
9
9
  "jsdelivr": "index.html",
10
10
  "files": [
11
11
  "**/*"
@@ -1 +0,0 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/alert-06-GK5Tqy6u.aac";export{e as default};
@@ -1 +0,0 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/alert-07-0r0kiLGz.aac";export{e as default};
@@ -1 +0,0 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/alert-08-CZowNquU.aac";export{e as default};
@@ -1 +0,0 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/alert-10-Ck5hR7zH.aac";export{e as default};
@@ -1 +0,0 @@
1
- const e="https://cdn.jsdelivr.net/npm/@onescience/onecode-web@1.14.50-202608100929/assets/bip-bop-09-CxEgoAHQ.aac";export{e as default};
@@ -1 +0,0 @@
1
- import{c as F,a2 as P,a3 as w,b as y,d as _,g as c,aa as $,ab as D,ac as C,ad as k,I as z,e as n,i as r,V as E,S as M,R as p,m as G,D as K,t as f}from"./index-B9pjoyUI.js";var L=f('<p class="text-12-regular text-text-critical-base">'),R=f('<form class="flex flex-col gap-6 p-6 pt-0"><div class="flex flex-col gap-4"><p class="text-12-regular text-text-weak"></p></div><div class="flex justify-end gap-2">');function B(h){const i=F(),x=P(),b=w(),t=y(),[l,v]=_({name:""}),u=c(()=>$(D())||b.data.path.project_data_root||"/data"),S=c(()=>{const e=C(l.name,u());return e?`${e}/`:`${u()}/`}),d=c(()=>!!k(l.name)),o=z(()=>({mutationFn:async()=>{const a=(await x.client.path.mkdir({name:l.name.trim()})).data?.path;if(!a)throw new Error("missing path");return a},onSuccess:e=>{h.onCreated(e),i.close()}}));function j(e){e.preventDefault(),!(o.isPending||!d())&&o.mutate()}return n(K,{get title(){return t.t("command.project.createFolder")},class:"w-full max-w-[480px] mx-auto",get children(){var e=R(),a=e.firstChild,m=a.firstChild,g=a.nextSibling;return e.addEventListener("submit",j),r(a,n(E,{autofocus:!0,type:"text",get label(){return t.t("dialog.project.createFolder.name")},get placeholder(){return t.t("dialog.project.createFolder.placeholder")},get value(){return l.name},onChange:s=>v("name",s)}),m),r(m,()=>t.t("dialog.project.createFolder.path",{path:S()})),r(a,n(M,{get when(){return o.isError},get children(){var s=L();return r(s,()=>t.t("dialog.project.createFolder.failed")),s}}),null),r(g,n(p,{type:"button",variant:"ghost",size:"large",onClick:()=>i.close(),get children(){return t.t("common.cancel")}}),null),r(g,n(p,{type:"submit",variant:"primary",size:"large",get disabled(){return o.isPending||!d()},get children(){return G(()=>!!o.isPending)()?t.t("common.confirming"):t.t("common.confirm")}}),null),e}})}export{B as DialogCreateProjectFolder};
@@ -1 +0,0 @@
1
- import{c as te,a2 as re,a3 as ae,b as ie,g as P,a4 as oe,d as ne,I as le,e as c,i,V as F,S as I,j as $,s as j,a5 as R,a6 as K,a7 as M,a8 as se,P as T,$ as ce,a9 as de,W as G,R as N,m as ue,D as ve,t as p,h as ge}from"./index-B9pjoyUI.js";var fe=p('<div class="flex flex-col gap-2"><label class="text-12-medium text-text-weak"></label><div class="flex gap-1.5">'),me=p('<form class="flex flex-col gap-6 p-6 pt-0"><div class="flex flex-col gap-4"><div class="flex flex-col gap-2"><label class="text-12-medium text-text-weak"></label><div class="flex gap-3 items-start"><div class=relative><div class="relative size-16 rounded-md transition-colors cursor-pointer"></div><div class="absolute inset-0 size-16 bg-surface-raised-stronger-non-alpha/90 rounded-[6px] z-10 pointer-events-none flex items-center justify-center transition-opacity"></div><div class="absolute inset-0 size-16 bg-surface-raised-stronger-non-alpha/90 rounded-[6px] z-10 pointer-events-none flex items-center justify-center transition-opacity"></div></div><input id=icon-upload type=file accept=image/* class=hidden><div class="flex flex-col gap-1.5 text-12-regular text-text-weak self-center"><span></span><span></span></div></div></div></div><div class="flex justify-end gap-2">'),pe=p('<div class="size-full flex items-center justify-center">'),be=p('<img class="size-full object-cover">'),he=p("<button type=button>");const xe=["pink","mint","orange","purple","cyan","lime"];function we(o){const w=te(),V=re(),_=ae(),n=ie(),y=P(()=>oe(o.project.worktree)),O=P(()=>o.project.name||y()),[e,d]=ne({name:O(),color:o.project.icon?.color,iconOverride:o.project.icon?.override,startup:o.project.commands?.start??"",dragOver:!1,iconHover:!1});let L;function z(r){if(!r.type.startsWith("image/"))return;const a=new FileReader;a.onload=f=>{d("iconOverride",f.target?.result),d("iconHover",!1)},a.readAsDataURL(r)}function W(r){r.preventDefault(),d("dragOver",!1);const a=r.dataTransfer?.files[0];a&&z(a)}function B(r){r.preventDefault(),d("dragOver",!0)}function U(){d("dragOver",!1)}function Y(r){const f=r.target.files?.[0];f&&z(f)}function q(){d("iconOverride","")}const b=le(()=>({mutationFn:async()=>{const r=e.name.trim()===y()?"":e.name.trim(),a=e.startup.trim();if(o.project.id&&o.project.id!=="global"){await V.client.project.update({projectID:o.project.id,directory:o.project.worktree,name:r,icon:{color:e.color||"",override:e.iconOverride||""},commands:{start:a}}),_.project.icon(o.project.worktree,e.iconOverride||void 0),w.close();return}_.project.meta(o.project.worktree,{name:r,icon:{color:e.color||void 0,override:e.iconOverride||void 0},commands:{start:a||void 0}}),w.close()}}));function J(r){r.preventDefault(),!b.isPending&&b.mutate()}return c(ve,{get title(){return n.t("dialog.project.edit.title")},class:"w-full max-w-[480px] mx-auto",get children(){var r=me(),a=r.firstChild,f=a.firstChild,C=f.firstChild,Q=C.nextSibling,h=Q.firstChild,m=h.firstChild,x=m.nextSibling,k=x.nextSibling,S=h.nextSibling,X=S.nextSibling,D=X.firstChild,Z=D.nextSibling,E=a.nextSibling;return r.addEventListener("submit",J),i(a,c(F,{autofocus:!0,type:"text",get label(){return n.t("dialog.project.edit.name")},get placeholder(){return y()},get value(){return e.name},onChange:t=>d("name",t)}),f),i(C,()=>n.t("dialog.project.edit.icon")),h.addEventListener("mouseleave",()=>d("iconHover",!1)),h.addEventListener("mouseenter",()=>d("iconHover",!0)),m.$$click=()=>{e.iconOverride&&e.iconHover?q():L?.click()},m.addEventListener("dragleave",U),m.addEventListener("dragover",B),m.addEventListener("drop",W),i(m,c(I,{get when(){return se(o.project.id,{color:e.color,url:o.project.icon?.url,override:e.iconOverride})},get fallback(){return(()=>{var t=pe();return i(t,c(R,K({get fallback(){return e.name||O()}},()=>M(e.color),{class:"size-full text-[32px]"}))),t})()},children:t=>(()=>{var g=be();return $(u=>{var l=t(),s=n.t("dialog.project.edit.icon.alt");return l!==u.e&&j(g,"src",u.e=l),s!==u.t&&j(g,"alt",u.t=s),u},{e:void 0,t:void 0}),g})()})),i(x,c(T,{name:"cloud-upload",size:"large",class:"text-icon-on-interactive-base drop-shadow-sm"})),i(k,c(T,{name:"trash",size:"large",class:"text-icon-on-interactive-base drop-shadow-sm"})),S.addEventListener("change",Y),ce(t=>{L=t},S),i(D,()=>n.t("dialog.project.edit.icon.hint")),i(Z,()=>n.t("dialog.project.edit.icon.recommended")),i(a,c(I,{get when(){return!e.iconOverride},get children(){var t=fe(),g=t.firstChild,u=g.nextSibling;return i(g,()=>n.t("dialog.project.edit.color")),i(u,c(de,{each:xe,children:l=>(()=>{var s=he();return s.$$click=()=>{e.color===l&&!o.project.icon?.url||d("color",e.color===l?void 0:l)},i(s,c(R,K({get fallback(){return e.name||O()}},()=>M(l),{class:"size-full rounded"}))),$(v=>{var H=n.t("dialog.project.edit.color.select",{color:l}),A=e.color===l,ee={"flex items-center justify-center size-10 p-0.5 rounded-lg overflow-hidden transition-colors cursor-default":!0,"bg-transparent border-2 border-icon-strong-base hover:bg-surface-base-hover":e.color===l,"bg-transparent border border-transparent hover:bg-surface-base-hover hover:border-border-weak-base":e.color!==l};return H!==v.e&&j(s,"aria-label",v.e=H),A!==v.t&&j(s,"aria-pressed",v.t=A),v.a=G(s,ee,v.a),v},{e:void 0,t:void 0,a:void 0}),s})()})),t}}),null),i(a,c(F,{multiline:!0,get label(){return n.t("dialog.project.edit.worktree.startup")},get description(){return n.t("dialog.project.edit.worktree.startup.description")},get placeholder(){return n.t("dialog.project.edit.worktree.startup.placeholder")},get value(){return e.startup},onChange:t=>d("startup",t),spellcheck:!1,class:"max-h-14 w-full overflow-y-auto font-mono text-xs"}),null),i(E,c(N,{type:"button",variant:"ghost",size:"large",onClick:()=>w.close(),get children(){return n.t("common.cancel")}}),null),i(E,c(N,{type:"submit",variant:"primary",size:"large",get disabled(){return b.isPending},get children(){return ue(()=>!!b.isPending)()?n.t("common.saving"):n.t("common.save")}}),null),$(t=>{var g={"border-text-interactive-base bg-surface-info-base/20":e.dragOver,"border-border-base hover:border-border-strong":!e.dragOver,"overflow-hidden":!!e.iconOverride},u=!!(e.iconHover&&!e.iconOverride),l=!(e.iconHover&&!e.iconOverride),s=!!(e.iconHover&&e.iconOverride),v=!(e.iconHover&&e.iconOverride);return t.e=G(m,g,t.e),u!==t.t&&x.classList.toggle("opacity-100",t.t=u),l!==t.a&&x.classList.toggle("opacity-0",t.a=l),s!==t.o&&k.classList.toggle("opacity-100",t.o=s),v!==t.i&&k.classList.toggle("opacity-0",t.i=v),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),r}})}ge(["click"]);export{we as DialogEditProject};
@@ -1 +0,0 @@
1
- import{aV as v,aA as S,a as P,aO as k,aP as _,aW as w,c as F,b as I,g as L,e as d,O as $,i as u,D as b,aX as E,aI as T,E as g,aH as q,t as C}from"./index-B9pjoyUI.js";var H=C('<div class="w-full flex items-center gap-2"><span class="truncate flex-1 min-w-0 text-left font-normal"></span><span class="text-text-weak shrink-0 font-normal">');function K(i){return i.toLocaleTimeString(void 0,{timeStyle:"short"})}const N=()=>{const i=v(),p=S(),f=P(),c=k(),l=_(),h=w(),x=F(),n=I(),y=L(()=>{const t=i.id;if(!t)return[];const a=c.data.message[t]??[],o=[];for(const s of a){if(s.role!=="user")continue;const e=(c.data.part[s.id]??[]).find(r=>r.type==="text"&&!r.synthetic&&!r.ignored);e&&o.push({id:s.id,text:e.text.replace(/\n/g," ").slice(0,200),time:K(new Date(s.time.created))})}return o.reverse()}),D=t=>{if(!t)return;const a=i.id;if(!a)return;const o=c.data.part[t.id]??[],s=E(o,{directory:l.directory,attachmentName:n.t("common.attachment")}),m=T(l.directory);l.client.session.fork({sessionID:a,messageID:t.id}).then(e=>{if(!e.data){g({title:n.t("common.requestFailed")});return}x.close(),h.set(s,void 0,{dir:m,id:e.data.id}),f(q(p.pathname,m,e.data.id))}).catch(e=>{const r=e instanceof Error?e.message:String(e);g({title:n.t("common.requestFailed"),description:r})})};return d(b,{get title(){return n.t("command.session.fork")},get children(){return d($,{class:"flex-1 min-h-0 [&_[data-slot=list-scroll]]:flex-1 [&_[data-slot=list-scroll]]:min-h-0",get search(){return{placeholder:n.t("common.search.placeholder"),autofocus:!0}},get emptyMessage(){return n.t("dialog.fork.empty")},key:t=>t.id,items:y,filterKeys:["text"],onSelect:D,children:t=>(()=>{var a=H(),o=a.firstChild,s=o.nextSibling;return u(o,()=>t.text),u(s,()=>t.time),a})()})}})};export{N as DialogFork};