@geminilight/mindos 0.6.60 → 0.6.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_standalone/.mindos-build-version +1 -1
- package/_standalone/.next/BUILD_ID +1 -1
- package/_standalone/.next/app-path-routes-manifest.json +22 -22
- package/_standalone/.next/build-manifest.json +2 -2
- package/_standalone/.next/cache/.previewinfo +1 -1
- package/_standalone/.next/cache/.rscinfo +1 -1
- package/_standalone/.next/cache/config.json +3 -3
- package/_standalone/.next/prerender-manifest.json +3 -3
- package/_standalone/.next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/_global-error.html +2 -2
- package/_standalone/.next/server/app/_global-error.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/_standalone/.next/server/app/_not-found/page.js +1 -1
- package/_standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page.js +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/agents/page.js +1 -1
- package/_standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/install/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/registry/route.js +1 -1
- package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/copy-skill/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/custom/detect/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/custom/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/ask/route.js +3 -3
- package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install/route.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/changes/page.js +1 -1
- package/_standalone/.next/server/app/changes/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page.js +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/echo/page.js +1 -1
- package/_standalone/.next/server/app/echo/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/explore/page.js +1 -1
- package/_standalone/.next/server/app/explore/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/help/page.js +1 -1
- package/_standalone/.next/server/app/help/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/inbox/history/page.js +1 -1
- package/_standalone/.next/server/app/inbox/history/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/login/page.js +1 -1
- package/_standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/page.js +1 -1
- package/_standalone/.next/server/app/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/setup/page.js +1 -1
- package/_standalone/.next/server/app/setup/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/trash/page.js +3 -3
- package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/view/[...path]/page.js +2 -2
- package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/wiki/page.js +1 -1
- package/_standalone/.next/server/app/wiki/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app-paths-manifest.json +22 -22
- package/_standalone/.next/server/chunks/1550.js +1 -1
- package/_standalone/.next/server/chunks/1750.js +1 -1
- package/_standalone/.next/server/chunks/530.js +31 -31
- package/_standalone/.next/server/chunks/6539.js +1 -1
- package/_standalone/.next/server/chunks/{9753.js → 8955.js} +3 -3
- package/_standalone/.next/server/pages/500.html +2 -2
- package/_standalone/.next/server/server-reference-manifest.js +1 -1
- package/_standalone/.next/server/server-reference-manifest.json +1 -1
- package/_standalone/.next/static/chunks/{5581-974dfb26d1d1b38f.js → 5581-0c700c20718bd916.js} +2 -2
- package/_standalone/.next/static/chunks/app/{layout-6a0169582db11a08.js → layout-a5d5925b47e87cc3.js} +10 -10
- package/_standalone/.next/static/chunks/app/trash/page-40bc7316806acd62.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/page-6fbb14b8f322d0f0.js +12 -0
- package/_standalone/.next/static/chunks/app/wiki/page-ba36eccf4fe62cfe.js +1 -0
- package/_standalone/.next/static/css/{9c558c42831fae58.css → b57c4eb3cc88308b.css} +1 -1
- package/_standalone/.next/trace +65 -65
- package/_standalone/__tests__/api/mcp-install.test.ts +3 -2
- package/_standalone/components/Panel.tsx +14 -0
- package/_standalone/components/home/InboxSection.tsx +148 -32
- package/_standalone/tsconfig.tsbuildinfo +1 -1
- package/app/app/api/ask/route.ts +2 -2
- package/app/app/api/mcp/install/route.ts +17 -1
- package/app/components/Panel.tsx +14 -0
- package/app/components/home/InboxSection.tsx +148 -32
- package/app/lib/acp/agent-descriptors.ts +3 -0
- package/app/lib/acp/subprocess.ts +56 -8
- package/app/lib/i18n/modules/knowledge.ts +10 -0
- package/app/lib/mcp-agents.ts +9 -0
- package/bin/lib/mcp-agents.js +34 -1
- package/bin/lib/mcp-install.js +94 -20
- package/bin/lib/toml.js +125 -0
- package/package.json +1 -1
- package/scripts/build-runtime-archive.sh +5 -1
- package/scripts/setup.js +19 -0
- package/_standalone/.next/static/chunks/app/trash/page-ed7ba3b0b50223a6.js +0 -1
- package/_standalone/.next/static/chunks/app/view/[...path]/page-678139779971cfcb.js +0 -12
- package/_standalone/.next/static/chunks/app/wiki/page-194ae9af2d461481.js +0 -1
- /package/_standalone/.next/static/{K3wZNf5bj_AFYwtqcRXIf → 5GmVArEG8OX03azKICsGq}/_buildManifest.js +0 -0
- /package/_standalone/.next/static/{K3wZNf5bj_AFYwtqcRXIf → 5GmVArEG8OX03azKICsGq}/_ssgManifest.js +0 -0
|
@@ -87,7 +87,7 @@ ${v.join("\n\n---\n\n")}`),P.length>0&&z.push(`---
|
|
|
87
87
|
|
|
88
88
|
The user has uploaded the following file(s) in this conversation. Their FULL CONTENT is provided below. You MUST use this content directly when the user refers to these files. Do NOT use read_file or search tools to find them — they exist only here, not in the knowledge base.
|
|
89
89
|
|
|
90
|
-
`+P.join("\n\n---\n\n")),c=z.join("\n\n")}try{let i=b.providerOverride&&(0,o.rl)(b.providerOverride)?b.providerOverride:void 0,{model:j,modelName:k,apiKey:q,provider:u,baseUrl:v}=(0,n.A)({provider:i,hasImages:(0,n.v)(d)}),B=(0,r.p)(d),C=d.length>0?d[d.length-1]:null,D=C?.role==="user"?C.content:"",F=C?.role==="user"&&C.images?.length?C.images.filter(a=>a.data).map(a=>({type:"image",data:a.data,mimeType:a.mimeType})):void 0,H=B.slice(0,-1),I=process.env.MINDOS_PROJECT_ROOT||l().resolve(process.cwd(),".."),K="organize"===G?(0,p.dg)():"chat"===G?(0,p.WC)():await (0,p.bm)(),P=K.map(a=>({name:a.name,label:a.label,description:a.description,parameters:a.parameters,execute:async(b,c,d,e)=>{let f=c??{};if(p.mk.has(a.name))for(let b of function(a,b){let c=[];if("batch_create_files"===a&&Array.isArray(b.files))b.files.forEach(a=>{a.path&&c.push(a.path)});else{let a=b.path??b.from_path;"string"==typeof a&&c.push(a)}return c}(a.name,f))try{(0,x.aj)(b,"modified by AI agent")}catch(c){var g;let a=c instanceof Error?c.message:String(c);return g=`Write-protection error: ${a}. You CANNOT modify ${b} because it is system-protected. Please tell the user you don't have permission to do this.`,{content:[{type:"text",text:g}],details:{}}}let h=await a.execute(b,c,d,e),i=h?.content?.filter(a=>"text"===a.type).map(a=>a.text).join("")??"";try{(0,s.h)({ts:new Date().toISOString(),tool:a.name,params:f,result:i.startsWith("Error:")?"error":"ok",message:i.slice(0,200),agentName:"MindOS"})}catch{}return h}})),Q=h.AuthStorage.create();Q.setRuntimeApiKey(u,q);let R=new h.ModelRegistry(Q),S=h.SettingsManager.inMemory({enableSkillCommands:!0,...M&&"anthropic"===u?{thinkingBudgets:{medium:N}}:{},..."off"===O?{compaction:{enabled:!1}}:{}}),T=new h.DefaultResourceLoader({cwd:I,settingsManager:S,systemPromptOverride:()=>c,appendSystemPromptOverride:()=>[],additionalSkillPaths:[l().join(I,"app","data","skills"),l().join(I,"skills"),l().join((0,m.JX)(),".skills")],additionalExtensionPaths:(0,y.Zx)()});await T.reload();let{session:U}=await (0,h.createAgentSession)({cwd:I,model:j,thinkingLevel:M&&"anthropic"===u?"medium":"off",authStorage:Q,modelRegistry:R,resourceLoader:T,sessionManager:h.SessionManager.inMemory(),settingsManager:S,tools:"agent"===G?[h.bashTool]:[],customTools:P}),V=(0,h.convertToLlm)(H);await U.newSession({setup:async a=>{for(let b of V)a.appendMessage(b)}});let W=[],X=0,Y=0,Z=new TextEncoder,$=Date.now(),_=new ReadableStream({start(b){let d=!1;function h(a){if(!d)try{b.enqueue(Z.encode(`data:${JSON.stringify(a)}
|
|
90
|
+
`+P.join("\n\n---\n\n")),c=z.join("\n\n")}try{let i=b.providerOverride&&(0,o.rl)(b.providerOverride)?b.providerOverride:void 0,{model:j,modelName:k,apiKey:q,provider:u,baseUrl:v}=(0,n.A)({provider:i,hasImages:(0,n.v)(d)}),B=(0,r.p)(d),C=d.length>0?d[d.length-1]:null,D=C?.role==="user"?C.content:"",F=C?.role==="user"&&C.images?.length?C.images.filter(a=>a.data).map(a=>({type:"image",data:a.data,mimeType:a.mimeType})):void 0,H=B.slice(0,-1),I=process.env.MINDOS_PROJECT_ROOT||l().resolve(process.cwd(),".."),K="organize"===G?(0,p.dg)():"chat"===G?(0,p.WC)():await (0,p.bm)(),P=K.map(a=>({name:a.name,label:a.label,description:a.description,parameters:a.parameters,execute:async(b,c,d,e)=>{let f=c??{};if(p.mk.has(a.name))for(let b of function(a,b){let c=[];if("batch_create_files"===a&&Array.isArray(b.files))b.files.forEach(a=>{a.path&&c.push(a.path)});else{let a=b.path??b.from_path;"string"==typeof a&&c.push(a)}return c}(a.name,f))try{(0,x.aj)(b,"modified by AI agent")}catch(c){var g;let a=c instanceof Error?c.message:String(c);return g=`Write-protection error: ${a}. You CANNOT modify ${b} because it is system-protected. Please tell the user you don't have permission to do this.`,{content:[{type:"text",text:g}],details:{}}}let h=await a.execute(b,c,d,e),i=h?.content?.filter(a=>"text"===a.type).map(a=>a.text).join("")??"";try{(0,s.h)({ts:new Date().toISOString(),tool:a.name,params:f,result:i.startsWith("Error:")?"error":"ok",message:i.slice(0,200),agentName:"MindOS"})}catch{}return h}})),Q=h.AuthStorage.create();Q.setRuntimeApiKey((0,o.KP)(u),q);let R=new h.ModelRegistry(Q),S=h.SettingsManager.inMemory({enableSkillCommands:!0,...M&&"anthropic"===u?{thinkingBudgets:{medium:N}}:{},..."off"===O?{compaction:{enabled:!1}}:{}}),T=new h.DefaultResourceLoader({cwd:I,settingsManager:S,systemPromptOverride:()=>c,appendSystemPromptOverride:()=>[],additionalSkillPaths:[l().join(I,"app","data","skills"),l().join(I,"skills"),l().join((0,m.JX)(),".skills")],additionalExtensionPaths:(0,y.Zx)()});await T.reload();let{session:U}=await (0,h.createAgentSession)({cwd:I,model:j,thinkingLevel:M&&"anthropic"===u?"medium":"off",authStorage:Q,modelRegistry:R,resourceLoader:T,sessionManager:h.SessionManager.inMemory(),settingsManager:S,tools:"agent"===G?[h.bashTool]:[],customTools:P}),V=(0,h.convertToLlm)(H);await U.newSession({setup:async a=>{for(let b of V)a.appendMessage(b)}});let W=[],X=0,Y=0,Z=new TextEncoder,$=Date.now(),_=new ReadableStream({start(b){let d=!1;function h(a){if(!d)try{b.enqueue(Z.encode(`data:${JSON.stringify(a)}
|
|
91
91
|
|
|
92
92
|
`))}catch{d=!0}}function i(){if(!d){d=!0;try{b.close()}catch{}}}let j=!1,l="",n=v||"default";U.subscribe(a=>{if("message_update"===a.type&&a.assistantMessageEvent?.type==="text_delta")j=!0,h({type:"text_delta",delta:a.assistantMessageEvent?.delta??""});else if("message_update"===a.type&&a.assistantMessageEvent?.type==="thinking_delta")j=!0,h({type:"thinking_delta",delta:a.assistantMessageEvent?.delta??""});else if("tool_execution_start"===a.type){j=!0;let{toolCallId:b,toolName:c,args:d}={toolCallId:a.toolCallId??"",toolName:a.toolName??"unknown",args:a.args??{}},e=d&&"object"==typeof d?"batch_create_files"===c&&Array.isArray(d.files)?{...d,files:d.files.map(a=>({path:a.path,...a.description?{description:a.description}:{}}))}:"string"==typeof d.content&&d.content.length>200?{...d,content:`[${d.content.length} chars]`}:"string"==typeof d.text&&d.text.length>200?{...d,text:`[${d.text.length} chars]`}:d:d;h({type:"tool_start",toolCallId:b,toolName:c,args:e})}else if("tool_execution_end"===a.type){let b,{toolCallId:c,output:d,isError:e}=(b=a.result?.content?.filter(a=>"text"===a.type).map(a=>a.text??"").join("")??"",{toolCallId:a.toolCallId??"",output:b,isError:!!a.isError});w.q.recordToolExecution(),h({type:"tool_end",toolCallId:c,output:d,isError:e})}else if("turn_end"===a.type){X++;let b=a.usage;b&&"number"==typeof b.inputTokens&&w.q.recordTokens(b.inputTokens,b.outputTokens??0);let{toolResults:c}={toolResults:a.toolResults??[]};if(Array.isArray(c)&&c.length>0){let a=c.map(a=>({tool:a.toolName??"unknown",input:JSON.stringify(a.content,null,0)}));W.push(...a)}Y>0?Y--:(0,g.k)(W)&&(Y=3,U.steer("[SYSTEM WARNING] You appear to be in a loop — repeating the same tool calls in a cycle. Try a completely different approach or ask the user for clarification.")),X>=L&&U.abort()}else if("agent_end"===a.type){let b=a.messages;if(Array.isArray(b))for(let a=b.length-1;a>=0;a--){let c=b[a];if(c?.role==="assistant"&&c?.stopReason==="error"&&c?.errorMessage){l=c.errorMessage;break}}}}),(async()=>{if(A){let b,c=null;try{for(let d=1;d<=3;d++){b&&(await (0,z.Vu)(b).catch(()=>{}),b=void 0);try{b=(await (0,z.jw)(A.id,{cwd:(0,m.JX)()})).id,await (0,z.bK)(b,D,a=>{switch(a.type){case"agent_message_chunk":case"text":a.text&&(j=!0,h({type:"text_delta",delta:a.text}));break;case"agent_thought_chunk":a.text&&(j=!0,h({type:"thinking_delta",delta:a.text}));break;case"tool_call":a.toolCall&&(j=!0,h({type:"tool_start",toolCallId:a.toolCall.toolCallId,toolName:a.toolCall.title??a.toolCall.kind??"tool",args:function(a){if(!a)return{};try{return JSON.parse(a)}catch{return{}}}(a.toolCall.rawInput)}));break;case"tool_call_update":a.toolCall&&("completed"===a.toolCall.status||"failed"===a.toolCall.status)&&h({type:"tool_end",toolCallId:a.toolCall.toolCallId,output:a.toolCall.rawOutput??"",isError:"failed"===a.toolCall.status});break;case"plan":if(a.plan?.entries){let b=a.plan.entries.map(a=>{let b="completed"===a.status?"✅":"in_progress"===a.status?"⚡":"⏳";return`${b} ${a.content}`}).join("\n");j=!0,h({type:"text_delta",delta:`
|
|
93
93
|
|
|
@@ -224,7 +224,7 @@ Rules:
|
|
|
224
224
|
6. Do NOT write to the KB root directory — place files under the most fitting subdirectory.
|
|
225
225
|
7. After writing, provide a brief summary of what you created/updated.`},74837:(a,b,c)=>{c.d(b,{en:()=>e,zh:()=>f});let d={ask:{title:"MindOS Agent",fabLabel:"AI 助手",placeholder:"输入问题… @ 附加文件,/ 技能",emptyPrompt:"有什么可以帮你?",emptyHint:"输入 @ 引用文件 \xb7 / 使用技能 \xb7 拖拽图片",executingTool:"正在执行工具…",toolRunning:"运行中...",copyMessage:"复制",toolInput:"输入",toolOutput:"输出",send:"发送",newlineHint:"换行",panelComposerResize:"向上拖拽以拉高输入区",panelComposerFooter:"拉高输入区",panelComposerResetHint:"双击恢复默认高度",panelComposerKeyboard:"方向键调节高度;Home/End 最小或最大",attachFile:"上下文",attachFileLabel:"文档",attachImageLabel:"图片",uploadedFiles:"已上传",skillsHint:"技能",attachCurrent:"附加当前文件",stopTitle:"停止",cancelReconnect:"取消重连",connecting:"正在和你一起思考...",thinking:"思考中...",thinkingLabel:"思考中",searching:"正在搜索知识库...",generating:"正在生成回复...",stopped:"已停止生成。",errorNoResponse:"AI 未返回有效内容。可能原因:模型不支持流式输出、中转站兼容性问题、或请求超出上下文限制。",reconnecting:(a,b)=>`连接中断,正在重连 (${a}/${b})...`,reconnectFailed:"多次重连失败,请检查网络后重试。",proxyCompatMode:"正在以兼容模式调用...",proxyCompatFailed:a=>`兼容模式失败:${a}。请检查 Base URL、API Key 和模型名称。`,proxyCompatDetecting:"正在检测接口兼容性,切换到兼容模式重试...",proxyCompatAlsoFailed:a=>`兼容模式也失败了:${a}。请检查 Base URL、API Key 和模型名称。`,retry:"重试",suggestions:[{label:"整理收件箱",prompt:"把收件箱的文件整理到对应空间"},{label:"调研一个话题",prompt:"调研一下 AI Agent 的最新趋势"},{label:"起草周报",prompt:"根据最近的笔记起草一份周报"},{label:"想新 idea",prompt:"为我的下一个项目想 3 个新 idea"}],homeCategories:[{label:"知识管理",items:[{label:"整理到 Space",desc:"按主题归类零散笔记",prompt:"帮我把最近的零散笔记整理到合适的 Space,并打好标签"},{label:"同步去重",desc:"清理跨平台重复内容",prompt:"找出我各个 Space 中重复或重叠的内容,帮我合并整理"},{label:"自动打标签",desc:"给未分类笔记加结构",prompt:"检查我未标记的笔记,建议合适的分类和标签"},{label:"每周摘要",desc:"汇总本周变更",prompt:"总结我这周在所有 Space 中新增和修改的内容"}]},{label:"内容创作",items:[{label:"笔记变博客",desc:"草稿变成精修文章",prompt:"把我的草稿笔记改写成一篇结构清晰的博客文章"},{label:"产品文案",desc:"落地页与产品描述",prompt:"根据我的笔记写一段有吸引力的产品描述和落地页文案"},{label:"润色优化",desc:"提升清晰度和语气",prompt:"审阅这篇文档的清晰度、语气和结构,重写不好的部分"},{label:"演示大纲",desc:"从笔记生成演讲结构",prompt:"根据我关于这个主题的笔记,创建一个演示文稿大纲"}]},{label:"分析洞察",items:[{label:"竞品对比",desc:"比较产品差异化",prompt:"对比我调研笔记中的产品,找出关键差异点"},{label:"提炼洞察",desc:"发现阅读笔记中的规律",prompt:"我的阅读笔记中有哪些最重要的见解和规律?"},{label:"决策框架",desc:"利弊分析与建议",prompt:"帮我用利弊、风险和建议来结构化这个决策"},{label:"GTM 策略",desc:"从调研到上市方案",prompt:"根据我的产品和市场调研笔记,帮我制定一份上市计划"}]},{label:"启发创新",items:[{label:"挑战假设",desc:"找出思维盲点",prompt:"审视我的笔记,挑战我正在做的关键假设。我遗漏了什么?"},{label:"反常识探索",desc:"探索替代可能性",prompt:"根据我的调研,生成 3 个我没考虑过的反常识场景"},{label:"跨域融合",desc:"不同领域的创意碰撞",prompt:"在我不同 Space 的想法中找到意想不到的联系,并建议新颖的组合"},{label:"发现机会",desc:"别人没看到的空白",prompt:"分析我的市场调研笔记,找出未被充分服务的小众市场或新兴机会"}]}],modeChat:"对话",modeAgent:"Agent",modeChatHint:"可搜索/阅读知识库 \xb7 省 token",modeAgentHint:"完整工具权限 \xb7 可修改知识库",sessionHistory:"对话历史",clearAll:"清除全部",confirmClear:"确认清除?",noSessions:"暂无历史对话。",renameSession:"重命名",draftingHint:"AI 仍在执行,你可以先输入下一步。",providerCapsule:"切换模型服务商",providerDefault:"默认",providerNoKey:"暂无已配置的服务商"},changes:{unreadBanner:a=>`${a} 条内容变更未读`,reviewNow:"立即查看",dismiss:"关闭提醒",title:"内容变更",subtitle:"集中查看用户与 Agent 的最近编辑记录。",eventsCount:a=>`${a} 条事件`,unreadCount:a=>`${a} 条未读`,refresh:"刷新",markSeen:"标记已读",markAllRead:"全部已读",filters:{filePath:"文件路径",filePathPlaceholder:"例如:Projects/plan.md",source:"Agents(来源)",operation:"工具(操作)",operationAll:"全部操作",keyword:"关键词",keywordPlaceholder:"摘要 / 操作 / 路径",all:"全部",agent:"Agent",user:"用户",system:"系统"},loading:"正在加载变更...",empty:"暂无内容变更。",emptyHint:"你或 Agent 编辑文件时,变更会显示在这里。",open:"打开",unchangedLines:a=>`... ${a} 行未变更 ...`,operations:{save_file:"保存文件",append_to_file:"追加到文件",insert_lines:"插入行",update_lines:"更新行",insert_after_heading:"标题后插入",update_section:"更新章节",create_file:"创建文件",delete_file:"删除文件",rename_file:"重命名文件",move_file:"移动文件",create_space:"创建空间",rename_space:"重命名空间",append_csv:"追加到 CSV",import_file:"导入文件",legacy_agent_diff_import:"从 Agent Diff 导入"},summaries:{updatedFileContent:"更新了文件内容",appendedContent:"追加了文件内容",insertedLines:a=>`插入了 ${a} 行`,updatedLines:(a,b)=>`更新了第 ${a}-${b} 行`,insertedAfterHeading:a=>`在标题「${a}」后插入了内容`,updatedSection:a=>`更新了章节「${a}」`,movedToTrash:"移到了回收站",renamedFile:a=>`重命名为 ${a}`,createdFile:"创建了文件",movedFile:a=>`移动到了 ${a}`,createdSpace:"创建了空间",renamedSpace:a=>`重命名空间为 ${a}`,appendedCsvRow:a=>`追加了 CSV 行(${a} 个单元格)`,importedFile:"导入了文件到知识库",importedLegacyDiff:"从 Agent Diff 导入了变更"},relativeTime:{justNow:"刚刚",minutesAgo:a=>`${a} 分钟前`,hoursAgo:a=>`${a} 小时前`,daysAgo:a=>`${a} 天前`}},hints:{noValidFiles:"未选择有效文件",aiOrganizing:"AI 正在整理中",importInProgress:"正在导入",templateInitializing:"正在初始化另一个模板",configureAiKey:"请在 设置 → AI 中配置 API 密钥",syncInProgress:"正在同步中",toggleInProgress:"正在切换中",typeMessage:"请输入消息",mentionInProgress:"正在输入提及或命令",cleanupInProgress:"正在清理中",tokenResetInProgress:"正在重置令牌",aiNotConfigured:"AI 未配置或正在生成",generationInProgress:"正在生成或 AI 未配置",cannotJumpForward:"无法跳过前序步骤",testInProgressOrNoKey:"正在测试或未配置 API 密钥",workflowStepRunning:"工作流步骤正在运行",workflowRunning:"工作流步骤正在运行",sessionHistory:"会话历史",newSession:"新会话",attachFile:"附加本地文件",maximizePanel:"专注模式",restorePanel:"退出专注",dockToSide:"停靠到侧边栏",openAsPopup:"弹窗模式",closePanel:"关闭",newChat:"新对话",closeSession:"关闭会话"}},e={common:{relatedFiles:"Related Files"},app:{tagline:"You think here, Agents act there.",footer:"MindOS \xb7 human-agent collaborative mind system"},login:{tagline:"You think here, Agents act there.",subtitle:"Enter your password to continue",passwordLabel:"Password",passwordPlaceholder:"Enter password",signIn:"Sign in",signingIn:"Signing in…",incorrectPassword:"Incorrect password. Please try again.",connectionError:"Connection error. Please try again."},notFound:{title:"File not found",description:"This file does not exist in your knowledge base.",createButton:"Create this file",creating:"Creating...",goToParent:"Go to parent folder",goHome:"Home"},updateBanner:{newVersion:(a,b)=>`MindOS v${a} available (current: v${b})`,updateNow:"Update",runUpdate:"Run",orSee:"or",releaseNotes:"release notes"},sidebar:{files:"Wiki",search:"Search",searchTitle:"Search",askTitle:"MindOS Agent",settingsTitle:"Settings",plugins:"Plugins",agents:"Agents",echo:"Echo",discover:"Discover",workflows:"Flows",history:"History",help:"Help",syncLabel:"Sync",collapseTitle:"Collapse sidebar",expandTitle:"Expand sidebar",collapseLevel:"Collapse one level",collapseLevelHint:"Collapse one level (double-click: all)",expandLevel:"Expand one level",expandLevelHint:"Expand one level (double-click: all)",importFile:"Import file",new:"New",newFile:"New file",newSpace:"New Space",more:"More",capture:"Capture",showHiddenFiles:"Show hidden files",sync:{synced:"Synced",unpushed:"awaiting push",unpushedHint:"commit(s) not yet pushed to remote — will sync automatically",conflicts:"conflicts",conflictsHint:"file(s) have merge conflicts — open Settings > Sync to resolve",syncError:"Sync error",syncOff:"Sync off",syncing:"Syncing...",syncNow:"Sync now",syncDone:"Sync complete",syncFailed:"Sync failed",syncRestored:"Sync restored",enableSync:"Enable sync",enableHint:"Set up cross-device sync"}},search:{placeholder:"Search files...",noResults:"No results found",prompt:"Type to search across all files",navigate:"navigate",open:"open",close:"close",tabSearch:"Search",tabActions:"Actions",openSettings:"Open Settings",restartWalkthrough:"Restart Walkthrough",toggleDarkMode:"Toggle Dark Mode",goToAgents:"Go to Agents",goToDiscover:"Go to Discover",goToHelp:"Go to Help",walkthroughRestarted:"Walkthrough restarted"},shortcutPanel:{title:"Keyboard Shortcuts",navigation:"Navigation",panelsSection:"Panels",editor:"Editor",toggleSearch:"Toggle Search",toggleAskAI:"Toggle Ask AI",openSettings:"Open Settings",keyboardShortcuts:"Keyboard Shortcuts",closePanel:"Close panel / Exit maximize",saveFile:"Save file",undo:"Undo",redo:"Redo",toggleHint:"to toggle this panel"},ask:{title:"MindOS Agent",fabLabel:"Ask AI",placeholder:"Ask a question... @ files, / skills",emptyPrompt:"How can I help?",emptyHint:"Type @ to reference files \xb7 / to use skills \xb7 drag images",executingTool:"Executing tool…",toolRunning:"Running...",copyMessage:"Copy",toolInput:"Input",toolOutput:"Output",send:"send",newlineHint:"new line",panelComposerResize:"Drag up to enlarge the input area",panelComposerFooter:"Resize height",panelComposerResetHint:"Double-click to reset height",panelComposerKeyboard:"Arrow keys adjust height; Home/End min/max",attachFile:"Context",attachFileLabel:"Document",attachImageLabel:"Image",uploadedFiles:"Uploaded",skillsHint:"skills",attachCurrent:"attach current file",stopTitle:"Stop",cancelReconnect:"Cancel reconnect",connecting:"Thinking with you...",thinking:"Thinking...",thinkingLabel:"Thinking",searching:"Searching knowledge base...",generating:"Generating response...",stopped:"Generation stopped.",errorNoResponse:"AI returned no content. Possible causes: model does not support streaming, proxy compatibility issue, or request exceeds context limit.",reconnecting:(a,b)=>`Connection lost. Reconnecting (${a}/${b})...`,reconnectFailed:"Connection failed after multiple attempts.",proxyCompatMode:"Using compatibility mode (non-streaming)...",proxyCompatFailed:a=>`Compatibility mode failed: ${a}. Please check your Base URL, API key, and model name.`,proxyCompatDetecting:"Detecting proxy compatibility, switching to non-streaming mode...",proxyCompatAlsoFailed:a=>`Compatibility mode also failed: ${a}. Please check your Base URL, API key, and model name.`,retry:"Retry",suggestions:[{label:"Organize inbox",prompt:"Organize my inbox files into the right spaces"},{label:"Research a topic",prompt:"Research the latest trends in AI agents"},{label:"Draft weekly review",prompt:"Draft a weekly review based on my recent notes"},{label:"Brainstorm ideas",prompt:"Brainstorm 3 creative ideas for my next project"}],homeCategories:[{label:"Knowledge",items:[{label:"Organize into Spaces",desc:"Sort scattered notes by topic",prompt:"Help me organize my recent unstructured notes into appropriate spaces with proper tags"},{label:"Sync & Deduplicate",desc:"Clean up cross-platform overlap",prompt:"Find duplicate or overlapping content across my spaces and help me consolidate them"},{label:"Auto-tag & Categorize",desc:"Add structure to raw notes",prompt:"Review my untagged notes and suggest categories and tags for each"},{label:"Weekly Digest",desc:"Summarize this week's changes",prompt:"Summarize everything I added or changed this week across all spaces"}]},{label:"Writing",items:[{label:"Blog from Notes",desc:"Turn drafts into polished posts",prompt:"Turn my draft notes into a polished blog post with clear structure"},{label:"Product Copy",desc:"Landing page & descriptions",prompt:"Write compelling product description and landing page copy based on my notes"},{label:"Polish & Refine",desc:"Improve clarity and tone",prompt:"Review this document for clarity, tone, and structure, then rewrite the weak parts"},{label:"Slide Deck Outline",desc:"Presentation structure from notes",prompt:"Create a slide deck outline from my notes on this topic"}]},{label:"Analysis",items:[{label:"Competitive Overview",desc:"Compare products & differentiators",prompt:"Compare the products in my research notes and identify key differentiators"},{label:"Extract Insights",desc:"Patterns across reading notes",prompt:"What are the most important insights and patterns across my reading notes?"},{label:"Decision Framework",desc:"Pros, cons, recommendation",prompt:"Help me structure this decision with pros, cons, risks, and a recommendation"},{label:"GTM Strategy",desc:"Go-to-market from research",prompt:"Help me build a go-to-market plan based on my product and market research notes"}]},{label:"Innovation",items:[{label:"Challenge My Assumptions",desc:"Find blind spots in my thinking",prompt:"Review my notes and challenge the key assumptions I'm making. What am I missing?"},{label:"What If Scenarios",desc:"Explore alternative futures",prompt:'Based on my research, generate 3 contrarian "what if" scenarios I haven\'t considered'},{label:"Combine & Remix Ideas",desc:"Cross-pollinate across domains",prompt:"Find unexpected connections between ideas in different spaces and suggest novel combinations"},{label:"Spot the Opportunity",desc:"Gaps others are missing",prompt:"Analyze my market research notes and identify underserved niches or emerging opportunities"}]}],modeChat:"Chat",modeAgent:"Agent",modeChatHint:"Can search / read KB \xb7 saves tokens",modeAgentHint:"Full tool access \xb7 can modify KB",sessionHistory:"Session History",clearAll:"Clear all",confirmClear:"Confirm clear?",noSessions:"No saved sessions.",renameSession:"Rename",draftingHint:"AI is still running — you can draft the next step now.",providerCapsule:"Switch model provider",providerDefault:"Default",providerNoKey:"No configured providers"},changes:{unreadBanner:a=>`${a} content change${1===a?"":"s"} unread`,reviewNow:"Review now",dismiss:"Dismiss notification",title:"Content changes",subtitle:"Review recent edits across user and agent operations.",eventsCount:a=>`${a} event${1===a?"":"s"}`,unreadCount:a=>`${a} unread`,refresh:"Refresh",markSeen:"Mark seen",markAllRead:"Mark all read",filters:{filePath:"File path",filePathPlaceholder:"e.g. Projects/plan.md",source:"Agents (source)",operation:"Tools (operation)",operationAll:"All operations",keyword:"Keyword",keywordPlaceholder:"summary / op / path",all:"All",agent:"Agent",user:"User",system:"System"},loading:"Loading changes...",empty:"No content changes yet.",emptyHint:"Changes made to your files will appear here when you or an agent edits content.",open:"Open",unchangedLines:a=>`... ${a} unchanged lines ...`,operations:{save_file:"Save file",append_to_file:"Append to file",insert_lines:"Insert lines",update_lines:"Update lines",insert_after_heading:"Insert after heading",update_section:"Update section",create_file:"Create file",delete_file:"Delete file",rename_file:"Rename file",move_file:"Move file",create_space:"Create space",rename_space:"Rename space",append_csv:"Append to CSV",import_file:"Import file",legacy_agent_diff_import:"Import from Agent Diff"},summaries:{updatedFileContent:"Updated file content",appendedContent:"Appended content to file",insertedLines:a=>`Inserted ${a} line(s)`,updatedLines:(a,b)=>`Updated lines ${a}-${b}`,insertedAfterHeading:a=>`Inserted content after heading "${a}"`,updatedSection:a=>`Updated section "${a}"`,movedToTrash:"Moved to trash",renamedFile:a=>`Renamed file to ${a}`,createdFile:"Created file",movedFile:a=>`Moved file to ${a}`,createdSpace:"Created space",renamedSpace:a=>`Renamed space to ${a}`,appendedCsvRow:a=>`Appended CSV row (${a} cell${1===a?"":"s"})`,importedFile:"Imported file into knowledge base",importedLegacyDiff:"Imported legacy agent diff"},relativeTime:{justNow:"just now",minutesAgo:a=>`${a}m ago`,hoursAgo:a=>`${a}h ago`,daysAgo:a=>`${a}d ago`}},hints:{noValidFiles:"No valid files selected",aiOrganizing:"AI is organizing",importInProgress:"Import in progress",templateInitializing:"Another template is being initialized",configureAiKey:"Configure API key in Settings → AI",syncInProgress:"Sync already in progress",toggleInProgress:"Toggle operation in progress",typeMessage:"Type a message",mentionInProgress:"Mention or command in progress",cleanupInProgress:"Cleanup already in progress",tokenResetInProgress:"Token reset in progress",aiNotConfigured:"AI not configured or generation in progress",generationInProgress:"Generation in progress or AI not configured",cannotJumpForward:"Cannot jump forward in setup",testInProgressOrNoKey:"Test in progress or no API key",workflowStepRunning:"Workflow step already running",workflowRunning:"Workflow step is running",sessionHistory:"Session history",newSession:"New session",attachFile:"Attach local file",maximizePanel:"Focus mode",restorePanel:"Exit focus",dockToSide:"Dock to side panel",openAsPopup:"Open as popup",closePanel:"Close",newChat:"New chat",closeSession:"Close session"},home:{recentlyModified:"Recently Modified",recentlyActive:"Recently Active",recentlyEdited:"Recently Edited",allSpaces:"All Spaces",spaces:"Spaces",nFiles:a=>`${a} file${1===a?"":"s"}`,other:"Other",newSpace:"New Space",spaceName:"Space name",spaceDescription:"Description",spaceDescPlaceholder:"Describe the purpose of this space",spaceNameNoSlash:"Name cannot contain / or \\",spaceExists:"A space with this name already exists",spaceCreateFailed:"Failed to create space",noSpacesYet:"No spaces yet. Create one to organize your knowledge.",spaceLocation:"Location",rootLevel:"Root",optional:"optional",aiInit:"AI initialize content",aiInitHint:"AI will generate a description and guidelines for this space",aiInitNoKey:"Configure an API key in Settings → AI to enable",aiInitGenerating:a=>`Generating content for ${a}`,aiInitReady:a=>`${a} ready`,aiInitReview:"Review",aiInitDiscard:"Discard",aiInitReverted:a=>`${a} reverted to template`,createSpace:"Create",cancelCreate:"Cancel",continueEditing:"Continue editing",newNote:"New Notes",builtinFeatures:"Tools",builtinActive:"Active",builtinInactive:"Not active",toolName:{"agent-inspector":"Agent Inspector","config-panel":"Config Panel",todo:"TODO Board","workflow-yaml":"Workflows"},toolDesc:{"agent-inspector":"View agent tool-call logs and audit trail","config-panel":"Edit and manage global configuration",todo:"Manage tasks as an interactive kanban board","workflow-yaml":"Execute step-by-step workflows with AI assistance"},plugins:"Extensions",changeHistory:"Change History",showMore:"Show more",showLess:"Show less",viewAll:"View all",wikiTagline:"Your knowledge spaces, organized.",sortRecent:"Recent",sortName:"A-Z",sortCount:"File Count",createToActivate:"Create {file} to activate",shortcuts:{searchFiles:"Search files",askAI:"MindOS Agent",editFile:"Edit file",save:"Save",settings:"Settings"},relativeTime:{justNow:"just now",minutesAgo:a=>`${a}m ago`,hoursAgo:a=>`${a}h ago`,daysAgo:a=>`${a}d ago`},cleanupExamples:a=>`${a} example file${a>1?"s":""} from the template can be removed`,cleanupExamplesButton:"Clean up",cleanupExamplesDone:"Example files removed"},echoSpotlight:{title:"Echo",dailyLine:"Today's thought",placeholder:"A quiet line for today...",invite:"Record today's one thought",inviteDesc:"One line, no pressure. Echo reflects your thinking patterns over time.",goToEcho:"Open Echo",savedLocally:"Saved locally on this device"},suggestion:{title:"You might want to",staleFiles:a=>`${a} file${1!==a?"s":""} not updated in 30+ days`,reviewStale:"Review",dismiss:"Dismiss"},inbox:{title:"Capture",count:a=>`${a}`,emptyTitle:"Quick capture, organize later",emptyDesc:"Drag files here or click Upload to save them instantly.",uploadButton:"Upload Files",organizeButton:"AI Organize",organizing:"Organizing...",viewAll:"View all",more:a=>`${a} more`,viewAllFiles:a=>`View all ${a} files in Inbox`,viewAllHistory:a=>`View all ${a} records →`,agingHint:"7+ days",savedToast:a=>`${a} file${1===a?"":"s"} saved to Capture`,savedToDir:(a,b)=>`${a} file${1===a?"":"s"} saved to ${b}`,savedWithSkipped:(a,b)=>a>0?`${a} saved, ${b} skipped (unsupported format)`:`${b} file${1===b?"":"s"} skipped — unsupported format`,tooLarge:a=>`${a} file${1===a?"":"s"} too large (max 10 MB)`,savedWithOversized:(a,b)=>`${a} saved, ${b} skipped (too large)`,organizePrompt:a=>`Please organize these files from Inbox into appropriate locations in my knowledge base. Analyze each file's content and move it to the most fitting Space or directory. Create new directories if needed. Here are the files:
|
|
226
226
|
|
|
227
|
-
${a.map(a=>`- Inbox/${a}`).join("\n")}`,dropOverlay:"Drop to save to Capture",dropOverlayFormats:"md \xb7 txt \xb7 pdf \xb7 csv \xb7 json",noMindRoot:"Please configure your knowledge base first",saveFailed:"Failed to save files. Check disk space and permissions.",organizeFailed:"Could not read files for organizing. Check file permissions."},pulse:{title:"Your Agents",manage:"Manage",connectTitle:"Connect your AI tools",connectDesc:"Let Cursor, Claude Code, and ChatGPT read your notes.",connectAction:"Connect Agent",active:"Connected",detected:"Detected",notFound:"Not found",running:"Online",offline:"Offline",summary:(a,b)=>`${a} Agent${1!==a?"s":""} \xb7 ${b} Skills`,skillCount:(a,b)=>`${a}/${b} skills`,showMore:a=>`${a} more agent${1!==a?"s":""}`,showLess:"Show less",otherDetected:"Detected"},fileTree:{newFileTitle:"New file in this directory",rename:"Rename",delete:"Delete",create:"Create",enterFileName:"Enter a file name",failed:"Failed",confirmDelete:a=>`Delete "${a}"? You can recover from Trash for 30 days.`,rules:"Rules",about:"About",viewAll:"View all",editRules:"Edit Rules",viewRules:"View Rules",renameSpace:"Rename Space",deleteSpace:"Delete Space",confirmDeleteSpace:a=>`Delete space "${a}" and all its files? You can recover from Trash for 30 days.`,convertToSpace:"Convert to Space",deleteFolder:"Delete Folder",confirmDeleteFolder:a=>`Delete folder "${a}" and all its contents? You can recover from Trash for 30 days.`,newFile:"New File",importFile:"Import File",importToSpace:"Import file to this space",copyPath:"Copy Path",pathCopied:"Path copied",pinToFavorites:"Pin to Favorites",removeFromFavorites:"Remove from Favorites",export:"Export..."},pinnedFiles:{title:"Pinned Files",addedToast:"Added to Favorites",removedToast:"Removed from Favorites",empty:"No pinned files",emptyHint:"Click the star icon on any file to pin it here"},trash:{title:"Trash",subtitle:"Items you delete appear here for 30 days.",empty:"No deleted files yet.",emptySubtext:"Items you delete will appear here for 30 days.",emptyTrash:"Empty Trash",emptyTrashConfirm:"Permanently delete all items in Trash? This cannot be undone.",restore:"Restore",deletePermanently:"Delete Forever",deletePermanentlyConfirm:a=>`Permanently delete "${a}"? This cannot be undone.`,from:"From",deletedAgo:a=>`Deleted ${a}`,expiresIn:a=>`Expires in ${a} day${1!==a?"s":""}`,restored:"Restored successfully",deleted:"Permanently deleted",movedToTrash:"Deleted",undo:"Undo",undoFailed:"Undo failed",restoreFailed:"Could not restore file. Check disk space and try again.",deleteFailed:"Could not permanently delete. Please try again.",emptyFailed:"Could not empty trash. Please try again.",emptied:a=>`Emptied ${a} item${1!==a?"s":""} from Trash`,restoreConflict:"A file with this name already exists at the original location.",overwrite:"Overwrite",saveAsCopy:"Save as Copy",itemCount:a=>`${a} item${1!==a?"s":""}`,undoDelete:"Undo",viewInTrash:"View in Trash",fileDeleted:a=>`"${a}" moved to Trash`,cancel:"Cancel",justNow:"just now",minutesAgo:a=>`${a}m ago`,hoursAgo:a=>`${a}h ago`,daysAgo:a=>`${a}d ago`},export:{title:"Export",exportFile:"Export File",exportSpace:"Export Space",chooseFormat:"Choose format",formatMd:"Markdown (.md)",formatMdDesc:"Original format, editable",formatHtml:"HTML (.html)",formatHtmlDesc:"Static webpage, shareable",formatZipMd:"Markdown ZIP",formatZipMdDesc:"All files in original format",formatZipHtml:"HTML ZIP",formatZipHtmlDesc:"All files as webpages",preview:"Preview",exporting:"Exporting...",exportButton:"Export",cancel:"Cancel",close:"Done",done:"Export Complete",downloadAgain:"Download Again",fileCount:a=>`${a} file${1!==a?"s":""}`,downloaded:"Downloaded",error:"Export failed. Please check disk space and try again.",retry:"Retry"},fileImport:{title:"Import Files",subtitle:"Save files to your knowledge base or let AI organize them",dropzoneText:"Drag files here, or",dropzoneButton:"click to select",dropzoneCompact:"Drag more files, or",dropzoneCompactButton:"click to add",dropzoneMobile:"Tap to select files",fileCount:a=>`${a} file${1!==a?"s":""}`,clearAll:"Clear all",unsupported:"Unsupported file type",tooLarge:a=>`File too large (max ${a})`,archiveTitle:"Save to Knowledge Base",archiveDesc:"Save as-is to a space",digestTitle:"AI Organize",digestDesc:"Extract key points into notes",archiveConfigTitle:"Save to Knowledge Base",back:"← Back",targetSpace:"Target space",rootDir:"Root",conflictLabel:"If file already exists",conflictRename:"Auto-rename (add number suffix)",conflictSkip:"Skip",conflictOverwrite:"Overwrite existing file",overwriteWarn:"This will permanently replace existing file content",cancel:"Cancel",importButton:a=>`Save ${a} file${1!==a?"s":""}`,importing:"Saving...",preparing:"Preparing...",successToast:(a,b)=>`Saved ${a} file${1!==a?"s":""} to ${b||"knowledge base"}`,updatedIndex:a=>`Updated ${a} index file${1!==a?"s":""}`,partialToast:(a,b)=>`Saved ${a}/${b} files`,skipReason:"File already exists",failToast:"Import failed",retry:"Retry",undo:"Undo",discardTitle:"Discard import?",discardMessage:a=>`Discard ${a} selected file${1!==a?"s":""}?`,discardConfirm:"Discard",discardCancel:"Cancel",dropOverlay:"Drop files to import into knowledge base",dropOverlayFormats:"Supports .md .txt .pdf .csv .json .yaml .html",onboardingHint:"Already have notes? Import files →",digestPromptSingle:(a,b)=>{let c=b?` under the "${b}" space`:"";return`The user uploaded "${a}". You MUST:
|
|
227
|
+
${a.map(a=>`- Inbox/${a}`).join("\n")}`,dropOverlay:"Drop to save to Capture",dropOverlayFormats:"md \xb7 txt \xb7 pdf \xb7 csv \xb7 json",noMindRoot:"Please configure your knowledge base first",saveFailed:"Failed to save files. Check disk space and permissions.",organizeFailed:"Could not read files for organizing. Check file permissions.",removeFile:"Remove from Inbox",openFile:"Open",copyName:"Copy Name",fileRemoved:"File removed from Inbox",fileRemoveFailed:"Failed to remove file"},pulse:{title:"Your Agents",manage:"Manage",connectTitle:"Connect your AI tools",connectDesc:"Let Cursor, Claude Code, and ChatGPT read your notes.",connectAction:"Connect Agent",active:"Connected",detected:"Detected",notFound:"Not found",running:"Online",offline:"Offline",summary:(a,b)=>`${a} Agent${1!==a?"s":""} \xb7 ${b} Skills`,skillCount:(a,b)=>`${a}/${b} skills`,showMore:a=>`${a} more agent${1!==a?"s":""}`,showLess:"Show less",otherDetected:"Detected"},fileTree:{newFileTitle:"New file in this directory",rename:"Rename",delete:"Delete",create:"Create",enterFileName:"Enter a file name",failed:"Failed",confirmDelete:a=>`Delete "${a}"? You can recover from Trash for 30 days.`,rules:"Rules",about:"About",viewAll:"View all",editRules:"Edit Rules",viewRules:"View Rules",renameSpace:"Rename Space",deleteSpace:"Delete Space",confirmDeleteSpace:a=>`Delete space "${a}" and all its files? You can recover from Trash for 30 days.`,convertToSpace:"Convert to Space",deleteFolder:"Delete Folder",confirmDeleteFolder:a=>`Delete folder "${a}" and all its contents? You can recover from Trash for 30 days.`,newFile:"New File",importFile:"Import File",importToSpace:"Import file to this space",copyPath:"Copy Path",pathCopied:"Path copied",pinToFavorites:"Pin to Favorites",removeFromFavorites:"Remove from Favorites",export:"Export..."},pinnedFiles:{title:"Pinned Files",addedToast:"Added to Favorites",removedToast:"Removed from Favorites",empty:"No pinned files",emptyHint:"Click the star icon on any file to pin it here"},trash:{title:"Trash",subtitle:"Items you delete appear here for 30 days.",empty:"No deleted files yet.",emptySubtext:"Items you delete will appear here for 30 days.",emptyTrash:"Empty Trash",emptyTrashConfirm:"Permanently delete all items in Trash? This cannot be undone.",restore:"Restore",deletePermanently:"Delete Forever",deletePermanentlyConfirm:a=>`Permanently delete "${a}"? This cannot be undone.`,from:"From",deletedAgo:a=>`Deleted ${a}`,expiresIn:a=>`Expires in ${a} day${1!==a?"s":""}`,restored:"Restored successfully",deleted:"Permanently deleted",movedToTrash:"Deleted",undo:"Undo",undoFailed:"Undo failed",restoreFailed:"Could not restore file. Check disk space and try again.",deleteFailed:"Could not permanently delete. Please try again.",emptyFailed:"Could not empty trash. Please try again.",emptied:a=>`Emptied ${a} item${1!==a?"s":""} from Trash`,restoreConflict:"A file with this name already exists at the original location.",overwrite:"Overwrite",saveAsCopy:"Save as Copy",itemCount:a=>`${a} item${1!==a?"s":""}`,undoDelete:"Undo",viewInTrash:"View in Trash",fileDeleted:a=>`"${a}" moved to Trash`,cancel:"Cancel",justNow:"just now",minutesAgo:a=>`${a}m ago`,hoursAgo:a=>`${a}h ago`,daysAgo:a=>`${a}d ago`},export:{title:"Export",exportFile:"Export File",exportSpace:"Export Space",chooseFormat:"Choose format",formatMd:"Markdown (.md)",formatMdDesc:"Original format, editable",formatHtml:"HTML (.html)",formatHtmlDesc:"Static webpage, shareable",formatZipMd:"Markdown ZIP",formatZipMdDesc:"All files in original format",formatZipHtml:"HTML ZIP",formatZipHtmlDesc:"All files as webpages",preview:"Preview",exporting:"Exporting...",exportButton:"Export",cancel:"Cancel",close:"Done",done:"Export Complete",downloadAgain:"Download Again",fileCount:a=>`${a} file${1!==a?"s":""}`,downloaded:"Downloaded",error:"Export failed. Please check disk space and try again.",retry:"Retry"},fileImport:{title:"Import Files",subtitle:"Save files to your knowledge base or let AI organize them",dropzoneText:"Drag files here, or",dropzoneButton:"click to select",dropzoneCompact:"Drag more files, or",dropzoneCompactButton:"click to add",dropzoneMobile:"Tap to select files",fileCount:a=>`${a} file${1!==a?"s":""}`,clearAll:"Clear all",unsupported:"Unsupported file type",tooLarge:a=>`File too large (max ${a})`,archiveTitle:"Save to Knowledge Base",archiveDesc:"Save as-is to a space",digestTitle:"AI Organize",digestDesc:"Extract key points into notes",archiveConfigTitle:"Save to Knowledge Base",back:"← Back",targetSpace:"Target space",rootDir:"Root",conflictLabel:"If file already exists",conflictRename:"Auto-rename (add number suffix)",conflictSkip:"Skip",conflictOverwrite:"Overwrite existing file",overwriteWarn:"This will permanently replace existing file content",cancel:"Cancel",importButton:a=>`Save ${a} file${1!==a?"s":""}`,importing:"Saving...",preparing:"Preparing...",successToast:(a,b)=>`Saved ${a} file${1!==a?"s":""} to ${b||"knowledge base"}`,updatedIndex:a=>`Updated ${a} index file${1!==a?"s":""}`,partialToast:(a,b)=>`Saved ${a}/${b} files`,skipReason:"File already exists",failToast:"Import failed",retry:"Retry",undo:"Undo",discardTitle:"Discard import?",discardMessage:a=>`Discard ${a} selected file${1!==a?"s":""}?`,discardConfirm:"Discard",discardCancel:"Cancel",dropOverlay:"Drop files to import into knowledge base",dropOverlayFormats:"Supports .md .txt .pdf .csv .json .yaml .html",onboardingHint:"Already have notes? Import files →",digestPromptSingle:(a,b)=>{let c=b?` under the "${b}" space`:"";return`The user uploaded "${a}". You MUST:
|
|
228
228
|
1. Read the content from the "USER-UPLOADED FILES" section above
|
|
229
229
|
2. Extract and reorganize the key information into well-structured Markdown notes
|
|
230
230
|
3. Save the result${c} in the knowledge base — create new files or update existing ones as appropriate
|
|
@@ -238,7 +238,7 @@ Do NOT just reply with a text summary. You must actually write to the knowledge
|
|
|
238
238
|
|
|
239
239
|
${a.trim()||"(empty line)"}`,pastYouDrawLabel:"A glimpse from the past",pastYouAnother:"Draw another moment",pastYouComingSoon:"Coming soon",pastYouDisabledHint:"Sampling from your timeline is on the way — soon a tap here will surface an old excerpt.",growthIntentLabel:"What you are steering toward",growthIntentPlaceholder:"Write your current intent…",growthSavedNote:"Saved on this device.",aboutYouLead:"Notes and links that point back to you — surfaced, not searched.",continuedLead:"Drafts, open tasks, and thoughts you left mid-sentence.",dailyLead:"One line. No pressure. Open Agent when you want depth.",pastYouLead:"A gentle glimpse at who you were at another time.",growthLead:"The direction you are pushing — and how it drifts."},agentsContent:{title:"Agents",subtitle:"Connections, skills, and status at a glance.",workspacePulse:{title:"Your Agents",connected:"Connected",detected:"Detected",notFound:"Not found",risk:"Risks",enabledSkills:"Skills on",healthy:"Healthy",needsAttention:a=>`${a} issue${1!==a?"s":""}`},navOverview:"Overview",navMcp:"MCP",navSkills:"Skills",navNetwork:"Network",navSessions:"Sessions",navActivity:"Activity",activitySubtitle:"Agent operations audit log.",activity:{loading:"Loading activity...",empty:"No agent operations logged yet.",emptyHint:"Operations from connected agents will appear here.",agentLabel:"Agent"},a2aTabTitle:"Remote Agents",a2aTabEmptyHint:"Discover agents to enable cross-agent delegation.",backToOverview:"Back to Agents",na:"N/A",status:{connected:"Connected",detected:"Detected",notFound:"Not found"},overview:{connected:"Connected",detected:"Detected",notFound:"Not found",riskQueue:"Attention",noRisk:"All clear — no issues detected.",usagePulse:"All agents",nextAction:"Suggested next",nextActionHint:"Reconnect detected agents first, then enable remaining skills.",riskLevelError:"Error",riskLevelWarn:"Warning",na:"N/A",colAgent:"Agent",colStatus:"Status",colMcp:"MCP",colSkills:"Skills",colMode:"Mode",colRuntime:"Runtime",pulseMcp:"MCP",pulseTools:"Tools",mcpOffline:"Offline",toolsUnit:a=>`${a} tools`,enabledUnit:a=>`${a} enabled`,agentCount:a=>`${a} agent${1!==a?"s":""}`,runtimeActive:"Active",riskMcpStopped:"MCP server is not running.",riskDetected:a=>`${a} detected agent(s) need configuration.`,riskSkillsDisabled:"All skills are disabled.",recentActivity:"Recent Activity",viewAll:"View all",showLess:"Show less",addCustomAgent:"Add your own agent",addCustomAgentTitle:"Add Custom Agent",editCustomAgentTitle:a=>`Edit ${a}`,customAgentName:"Agent Name",customAgentNamePlaceholder:"e.g. QCLaw, WorkBuddy",customAgentDir:"Config Directory",customAgentDirPlaceholder:"~/.qclaw/",customAgentDirHint:"Common: ~/.xxx/ or ~/Library/Application Support/",customAgentKeyPreview:a=>`Key: ${a}`,customAgentContinue:"Continue",customAgentDetecting:"Detecting...",customAgentDirFound:"Directory found",customAgentDirNotFound:"Not found yet — agent will appear when installed",customAgentDetectTimeout:"Detection timed out, using defaults",customAgentDetectedTitle:"Detected Configuration",customAgentDefaultTitle:"Default Configuration",customAgentConfigLabel:"MCP Config",customAgentFormatLabel:"Format",customAgentTransportLabel:"Transport",customAgentSkillsLabel:"Skills",customAgentSkillsFound:a=>`${a} skill${1!==a?"s":""} found`,customAgentSkillsNone:"Not detected",customAgentSkillDir:"Skills Directory",customAgentSkillDirHint:"Where skills are installed for this agent",customAgentSkillDirPlaceholder:"~/.xxx/skills/",customAgentCustomize:"Customize these settings",customAgentAdd:"Add Agent",customAgentAdding:"Adding...",customAgentSave:"Save Changes",customAgentSaving:"Saving...",customAgentRetry:"Retry",customAgentAdded:a=>`${a} added`,customAgentUpdated:a=>`${a} updated`,customAgentRemoved:a=>`${a} removed`,customAgentRemoveTitle:a=>`Remove "${a}"?`,customAgentRemoveMessage:"This removes the agent from MindOS. No files will be deleted on disk.",customAgentRemoveConfirm:"Remove",customAgentConfigPath:"MCP Config File Path",customAgentConfigKey:"Config Key",customAgentFormat:"Format",customAgentTransport:"Transport",customAgentProjectConfig:"Project Config (optional)",customAgentCliBinary:"CLI Binary (optional)",customAgentCliBinaryPlaceholder:"e.g. qclaw",customAgentEdit:"Edit",customAgentRemove:"Remove",customAgentCancel:"Cancel",customAgentNetworkError:"Network error. Please try again.",customAgentFailedSave:"Failed to save",customAgentFailedRemove:"Failed to remove",customAgentKeyConflict:a=>`An agent with key "${a}" already exists`,customAgentBuiltinConflict:a=>`Conflicts with built-in agent "${a}"`},mcp:{title:"MCP Connections",refresh:"Refresh",connectionGraph:"Server connections across agents",tabs:{manage:"Manage",topology:"Topology",byAgent:"By Agent",byServer:"By MCP Server"},searchPlaceholder:"Search agents...",installMindos:"Install MindOS MCP",installed:"Installed",mcpServerLabel:"MCP Server",searchServersPlaceholder:"Search MCP servers...",serverAgentCount:a=>`${a} agent${1!==a?"s":""}`,emptyState:"No agents match current filters.",resultCount:a=>`${a} agents`,filteredSummaryTitle:"Filtered status summary",filteredConnected:a=>`Connected: ${a}`,filteredDetected:a=>`Detected: ${a}`,filteredNotFound:a=>`Not found: ${a}`,crossAgentServersTitle:"MCP Servers",crossAgentServersEmpty:"No MCP servers detected.",crossAgentServerAgents:a=>`Used by ${a}`,configVisibilityTitle:"Configuration",hiddenRootDetected:(a,b)=>`Hidden roots: ${a}/${b}`,runtimeSignalDetected:(a,b)=>`Runtime signals: ${a}/${b}`,riskQueueTitle:"Attention",riskMcpStopped:"MCP server is not running.",riskDetected:a=>`${a} detected agent(s) need configuration.`,riskNotFound:a=>`${a} agent(s) not found on this machine.`,riskSkillsDisabled:"All skills are disabled.",bulkReconnectFiltered:"Reconnect all",bulkRunning:"Running reconnect...",bulkSummary:(a,b)=>`Reconnected ${a}, failed ${b}.`,transportFilters:{all:"All transport",stdio:"stdio",http:"http",other:"other"},filters:{all:"All",connected:"Connected",detected:"Detected",notFound:"Not found"},table:{agent:"Agent",status:"Status",transport:"Transport",actions:"Actions"},actions:{copySnippet:"Copy Snippet",copied:"Copied",testConnection:"Test Connection",reconnect:"Reconnect"},addAgent:"Add",removeFromServer:"Remove",confirmRemoveTitle:"Remove from server?",confirmRemoveMessage:(a,b)=>`Remove "${a}" from "${b}"? The agent config will be updated automatically.`,cancel:"Cancel",noAvailableAgents:"All agents already connected.",manualRemoveHint:"Flagged for removal — edit the agent config to finalize.",removeSuccess:"Removed. Restart your agent to apply.",removeFailed:"Failed to remove. Try editing the config file manually.",reconnectAllInServer:"Reconnect all",reconnectAllRunning:"Reconnecting...",reconnectAllDone:(a,b)=>`Done: ${a} reconnected${b>0?`, ${b} failed`:""}.`,serverTransport:a=>`Transport: ${a}`,mcpDisabledMessage:"MCP mode is not enabled.",mcpDisabledHint:"Enable it in Settings → Connections to use MCP agents."},skills:{title:"Skills",summaryTitle:"Skill Status",summaryEnabled:a=>`Enabled: ${a}`,summaryDisabled:a=>`Disabled: ${a}`,summaryAttention:a=>`Needs attention: ${a}`,crossAgentSkillsTitle:"Installed Skills",crossAgentSkillsEmpty:"No skills detected.",crossAgentSkillAgents:a=>`Installed in ${a}`,capabilityGroups:"Skill management across agents",registrySummaryTitle:"Skill Registry",registryUniversal:a=>`Universal: ${a}`,registryAdditional:a=>`Additional: ${a}`,registryUnsupported:a=>`Unsupported: ${a}`,registryHiddenRoots:(a,b)=>`Hidden roots: ${a}/${b}`,tabs:{manage:"Manage",matrix:"Matrix",bySkill:"By Skill",byAgent:"By Agent"},searchPlaceholder:"Search skills...",agentSkillMode:"Skill Mode",agentMcpServers:"MCP Servers",agentNativeSkills:"Native Skills",agentMindosSkills:"MindOS Skills",noAgentsYet:"No agents detected yet.",moreSkills:a=>`+${a} more`,sourceAll:"All",sourceBuiltin:"Built-in",sourceUser:"Custom",sourceNative:"Native",summaryNative:a=>`Native: ${a}`,statusAll:"All status",statusEnabled:"Enabled",statusDisabled:"Disabled",statusAttention:"Needs attention",capabilityAll:"All capabilities",bulkEnableFiltered:"Enable all",bulkDisableFiltered:"Disable all",bulkRunning:"Applying changes...",bulkNoChanges:"No skill changes needed.",bulkAllSucceeded:a=>`Updated ${a} skills.`,bulkPartialFailed:(a,b)=>`Updated ${a}, failed ${b}.`,resultCount:a=>`${a} skills`,matrixAgentFocusLabel:"Agent focus",matrixAgentFocusAll:"All agents",matrixColumnSkill:"Skill",matrixEnabled:"Enabled",matrixDisabled:"Disabled",matrixUnsupported:"Unsupported",matrixNoAgents:"No agents available for matrix.",noSkillsMatchFilter:"No skills match current filters.",matrixEmpty:"No skills match current filters.",addAgentToSkill:"Add",removeAgentFromSkill:"Remove",confirmRemoveAgentTitle:"Remove from skill?",confirmRemoveAgentMessage:(a,b)=>`Remove "${a}" from "${b}"? This requires editing the agent config file.`,cancelSkillAction:"Cancel",noAvailableAgentsForSkill:"All agents already have this skill.",manualSkillHint:"Flagged — edit the agent config to finalize.",skillDescription:"Description",skillNoDescription:"No description available.",skillDeleteAction:"Delete",confirmDeleteSkillTitle:"Delete skill?",confirmDeleteSkillMessage:a=>`Permanently delete skill "${a}"? This cannot be undone.`,skillDeleted:"Skill deleted.",skillDeleteFailed:"Failed to delete skill.",copyInstallCmd:"Copy install command",installCmdCopied:"Copied!",skillAgentCount:a=>`${a} agent${1===a?"":"s"}`,quickStatsMcp:a=>`${a} MCP`,quickStatsSkills:a=>`${a} skills`,showAllNative:a=>`Show all ${a}`,collapseNative:"Collapse",emptyGroup:"No skills in this group.",groupLabels:{research:"Research",coding:"Coding",docs:"Docs",ops:"Ops",memory:"Memory"},skillPopover:{close:"Close",source:"Source",sourceBuiltin:"Built-in",sourceUser:"Custom",sourceNative:"Native",capability:"Capability",path:"File path",enabled:"Enabled",disabled:"Disabled",agents:"Agents",noAgents:"No agents have this skill.",content:"Skill content",loading:"Loading...",loadFailed:"Failed to load skill content.",retry:"Retry",copyContent:"Copy",copied:"Copied!",noDescription:"No description available.",deleteSkill:"Delete",confirmDeleteTitle:"Delete skill?",confirmDeleteMessage:a=>`Permanently delete skill "${a}"? This cannot be undone.`,confirmDeleteAction:"Delete",cancelAction:"Cancel",deleted:"Skill deleted.",deleteFailed:"Failed to delete skill."}},detail:{healthStripTitle:"Status",healthConnected:"Connected",healthInstalled:"MCP installed",healthRuntimeSignals:"Runtime signals",healthConfiguredServers:"Configured servers",healthInstalledSkills:"Native installed skills",identity:"Identity",connection:"Connection",capabilities:"Capability Profile",skillAssignments:"Skill Assignments",runtimeSignals:"Runtime",recentActivity:"Recent Activity",spaceReach:"Space Reach",agentKey:"Agent key",status:"Status",transport:"Transport",endpoint:"Endpoint",port:"Port",auth:"Auth",authConfigured:"Configured",authMissing:"Missing",projectScope:"Project scope",globalScope:"Global scope",format:"Config format",skillMode:"Skill mode",hiddenRoot:"Hidden root path",hiddenRootPresent:"Hidden root",conversationSignal:"Conversation",usageSignal:"Usage",lastActivityAt:"Last active",skillsAll:"All skills",skillsEnabled:"Enabled skills",skillsSourceBuiltin:"Built-in",skillsSourceUser:"Custom",skillsSearchPlaceholder:"Search all configured skills...",skillsFilterAll:"All",skillsFilterBuiltin:"Built-in",skillsFilterUser:"Custom",skillEnable:"Enable",skillDisable:"Disable",skillEdit:"Edit",skillSave:"Save",skillCancel:"Cancel",skillActionLoading:"Working...",skillReadFailed:"Failed to read skill content.",skillSaveFailed:"Failed to save skill content.",mcpManagement:"MCP Management",mcpInstalled:"Installed",mcpScope:"Current scope",mcpConfigPath:"Config path",mcpTargetScope:"Target scope",mcpTargetTransport:"Target transport",mcpScopeProject:"Project",mcpScopeGlobal:"Global",mcpCopySnippet:"Copy snippet",mcpCopied:"Copied",mcpRefresh:"Refresh status",mcpReconnect:"Apply MCP config",mcpApplying:"Applying MCP config...",mcpApplySuccess:"MCP config applied.",mcpApplyFailed:"Failed to apply MCP config.",nativeInstalledSkills:"Installed Skills",nativeInstalledSkillsCount:a=>`${a} detected`,nativeInstalledSkillsEmpty:"No installed skills detected.",nativeInstalledSkillsMore:a=>`+${a} more`,configuredMcpServers:"MCP Servers",configuredMcpServersCount:a=>`${a} detected`,configuredMcpServersEmpty:"No MCP servers configured.",configuredMcpServersMore:a=>`+${a} more`,yes:"Yes",no:"No",noSkills:"No enabled skills.",noActivity:"No activity recorded yet.",noSpaceReach:"No space reach data yet.",skillDelete:"Delete",skillDeleteConfirm:a=>`Delete skill "${a}"? This cannot be undone.`,skillDeleteSuccess:"Skill deleted.",skillDeleteFailed:"Failed to delete skill.",mcpServerAdd:"Add MCP server",mcpServerRemove:"Remove",mcpServerRemoveConfirm:a=>`Remove "${a}" from this agent? This requires editing the config file.`,mcpServerHint:"Flagged — edit the agent config to finalize.",mcpReconnectAll:"Reconnect all",mcpReconnectAllRunning:"Reconnecting...",mcpReconnectAllDone:(a,b)=>`Reconnected ${a}${b>0?`, failed ${b}`:""}.`,runtimeDiagTitle:"Runtime & Diagnostics",runtimePing:"Ping",runtimePinging:"Pinging...",runtimePingOk:a=>`Reachable (${a}ms)`,runtimePingFail:"Unreachable",runtimeUptime:"Uptime",runtimePid:"Process",runtimeMemory:"Memory",runtimeVersion:"Version",runtimeStartedAt:"Started",runtimeNoData:"No runtime data available.",envPermTitle:"Environment & Permissions",envVars:"Environment variables",envVarsCount:a=>`${a} configured`,envVarsEmpty:"No custom environment variables.",envScope:"Scope",envReadOnly:"Read-only access",envWriteAccess:"Write access",envFileAccess:"File access",envNetworkAccess:"Network access",envAllowed:"Allowed",envRestricted:"Restricted",activityTitle:"Activity & Usage",activityTotal:"Total invocations",activityLast7d:"Last 7 days",activityLastInvocation:"Last invocation",activityTokensUsed:"Tokens used",activityAvgLatency:"Avg latency",activityNoData:"No activity recorded yet.",knowledgeInteraction:"Knowledge Interaction",knowledgeNoData:"No interactions yet. Agents will show activity here once they start working with your knowledge base.",recentOps:"Recent Operations",statTotalCalls:"Total calls",statFilesTouched:"Files touched",statReadWrite:"Read / Write",statHealth:"Health",viewFullLog:"View full log",showLess:"Show less"},detailSubtitle:"",detailNotFound:"Agent not found — it may have been removed or renamed.",detailNotFoundHint:"The agent may have disconnected or its configuration file was moved. Try restarting the agent or check the MCP configuration.",detailNotFoundSuggestion:"Connected agents you can explore:"},settings:{title:"Settings",tabs:{ai:"AI",appearance:"Appearance",knowledge:"General",sync:"Sync",mcp:"Connections",plugins:"Plugins",shortcuts:"Shortcuts",monitoring:"Monitoring",agents:"Agents",update:"Update",uninstall:"Uninstall"},ai:{provider:"Provider",model:"Model",apiKey:"API Key",baseUrl:"Base URL",baseUrlHint:"Optional. Use for proxies or custom API endpoints.",keyHint:"Stored locally in ~/.mindos/config.json",keyOptionalHint:"Optional for local providers. Stored in ~/.mindos/config.json",keyChange:"Change",keyCancel:"Cancel",envHint:"Fields marked env have a value from environment variables. You can override them here, or restore all to env defaults.",envFieldNote:a=>`Env var ${a} is set. Clear this field to fall back to it.`,resetToEnv:"Reset to env value",restoreFromEnv:"Restore from env",noApiKey:"API key is not set. AI features will be unavailable until you add one.",testKey:"Test",testKeyTesting:"Testing...",testKeyOk:a=>`\u2713 ${a}ms`,testKeyAuthError:"Invalid API key",testKeyModelNotFound:"Model not found",testKeyRateLimited:"Rate limited, try again later",testKeyNetworkError:"Network error",testKeyNoKey:"No API key configured",testKeyUnknown:"Test failed",listModels:"Browse",noModelsFound:"No models found"},agent:{title:"Agent Behavior",subtitle:"Configure how the AI agent operates",maxSteps:"Max Steps",maxStepsHint:"Maximum tool call steps per request (1-30)",contextStrategy:"Context Strategy",contextStrategyHint:"Auto: summarize early messages when context fills up. Off: no summarization (emergency pruning still applies).",contextStrategyAuto:"Auto (compact + prune)",contextStrategyOff:"Off",thinking:"Extended Thinking",thinkingHint:"Show Claude's reasoning process (uses more tokens)",thinkingBudget:"Thinking Budget",thinkingBudgetHint:"Max tokens for reasoning (1000-50000)",reconnectRetries:"Auto Reconnect",reconnectRetriesHint:"When connection drops, automatically retry this many times before giving up (0 = disabled)"},appearance:{readingTitle:"Reading",readingDesc:"Customize how your notes look",readingFont:"Reading font",fontSize:"Font size",fontSizePreview:"The quick brown fox.",contentWidth:"Content width",preferencesTitle:"Preferences",colorTheme:"Color theme",system:"System",dark:"Dark",light:"Light",language:"Language",browserNote:"Appearance settings are saved in your browser.",labsTitle:"Labs",labsDesc:"Experimental features still in development. May change or be removed.",labsEcho:"Echo",labsEchoDesc:"Reflective journaling powered by your notes.",labsWorkflows:"Flows",labsWorkflowsDesc:"Visual workflow automation for agents.",fontPreview:"The quick brown fox jumps over the lazy dog."},knowledge:{cardTitle:"Knowledge Base",securityTitle:"Security",passwordPlaceholder:"Leave empty to disable",passwordShow:"Show",passwordHide:"Hide",tokenNotSet:"— not set —",mcpUrl:"MCP URL",tokenGenerated:"New token generated. Copy it now — it won't be shown in full again.",monitoringTitle:"System Monitoring",monitoringFailed:"Failed to load monitoring data",monitorHeap:"Heap",monitorRss:"RSS",monitorUptime:"Uptime",monitorNode:"Node",monitorRequests:"Requests",monitorToolCalls:"Tool Calls",monitorTokens:"Tokens",monitorFiles:"Files",monitorErrors:"Errors",monitorMcpRunning:a=>`Running :${a}`,monitorMcpStopped:"Stopped",cancel:"Cancel",mindRoot:"Knowledge base root",mindRootHint:"Absolute path to your notes directory. Requires server restart to take effect.",mindRootEnvHint:a=>`MIND_ROOT env var is set to "${a}". Fill in above to override it.`,envNote:"MIND_ROOT env var is set. Fill in above to override it — your value takes priority.",webPassword:"Web UI password",webPasswordHint:"Protect the browser UI with a password. Leave empty to disable. Changes take effect on next page load.",webPasswordClear:"Clear password",authToken:"MCP / API auth token",authTokenHint:"Bearer token for Agent and MCP clients. Not required for browser access.",authTokenNone:"No token set — API is open to all requests.",authTokenCopy:"Copy",authTokenCopied:"Copied!",authTokenReset:"Regenerate",authTokenClear:"Clear token",authTokenResetConfirm:"Regenerate token? All existing MCP clients will need to update their config.",authTokenMcpPort:"MCP port",restartWalkthrough:"Restart walkthrough",showHiddenFiles:"Show hidden files",showHiddenFilesHint:"Display dot-prefixed folders (.agents, .claude, .mindos, etc.) in the file tree.",cleanupExamples:"Clean up example files",cleanupExamplesHint:"Remove all template example files (\uD83E\uDDEA_example_*) from your knowledge base.",cleanupExamplesButton:"Clean up",cleanupExamplesNone:"No example files found",cleanupExamplesConfirm:a=>`Delete ${a} example file${a>1?"s":""}? This cannot be undone.`,cleanupExamplesDone:a=>`Removed ${a} example file${a>1?"s":""}`,cleanupExamplesScanning:"Scanning..."},sync:{emptyTitle:"Cross-device Sync",emptyDesc:"Automatically sync your knowledge base across devices via Git.",featureAutoCommit:"Auto-commit on save",featureAutoPull:"Auto-pull from remote",featureConflict:"Conflict detection",featureMultiDevice:"Works across devices",remoteUrl:"Git Remote URL",invalidUrl:"Invalid Git URL — use HTTPS (https://...) or SSH (git@...)",sshBrief:"one-time key setup, no token needed",httpsBrief:"works anywhere, token recommended",sshHint:"Requires SSH key on this machine. Verify with: ssh -T git@github.com",accessToken:"Access Token",optional:"(optional, for private repos)",tokenHint:"GitHub:",tokenLink:"Create a token (repo scope)",branchLabel:"Branch",connectButton:"Connect & Start Sync",connecting:"Connecting...",stepConnecting:"Connecting to remote...",stepAuthenticating:"Authenticating...",stepSyncing:"Syncing data...",stepAlmostDone:"Almost done...",stepDone:"Sync configured successfully!",gitignoreTitle:"Excluded files",gitignorePlaceholder:"# Files to exclude from sync\n*.tmp\nsecret/",gitignoreSave:"Save",gitignoreSaved:"Saved",conflictExplain:"These files were changed on both this device and the remote. Choose which version to keep.",keepLocal:"Keep local",keepRemote:"Keep remote",keepLocalHint:"Keep this device's version",keepRemoteHint:"Replace with the remote version",viewDiff:"Click to compare versions",localVersion:"Local (this device)",remoteVersion:"Remote",emptyFile:"(empty)",sectionTitle:"Sync",labelProvider:"Provider",labelRemote:"Remote",labelBranch:"Branch",labelLastSync:"Last sync",labelUnpushed:"Unpushed",labelAutoSync:"Auto-sync",unpushedCommits:a=>`${a} commits`,syncNow:"Sync Now",disableAutoSync:"Disable Auto-sync",enableAutoSync:"Enable Auto-sync",syncComplete:"Sync complete",syncFailed:"Sync failed",autoSyncDisabled:"Auto-sync disabled",autoSyncEnabled:"Auto-sync enabled",toggleFailed:"Failed to toggle sync",conflictsTitle:a=>`Conflicts (${a})`,conflictHint:"Click a file to view your version. Hover and click",conflictHintSuffix:"to see the remote version.",timeNever:"never",timeJustNow:"just now",timeMinAgo:a=>`${a}m ago`,timeHourAgo:a=>`${a}h ago`,timeDayAgo:a=>`${a}d ago`},plugins:{title:"Installed Renderers",builtinBadge:"built-in",coreBadge:"core",enabled:"Enabled",disabled:"Disabled",matchHint:"Auto-activates on",coreHint:"Core renderer — always enabled",noPlugins:"No renderers installed.",comingSoon:"Plugin marketplace coming soon."},mcp:{modeCardTitle:"Connection Mode",modeCardDesc:"Choose how agents connect to MindOS.",cliLabel:"CLI",cliModeDesc:"Claude Code, Gemini CLI, Codex, etc.",mcpLabel:"MCP",mcpModeDesc:"Claude Desktop, Cursor, Windsurf, etc.",alwaysOn:"Always On",mcpRunning:"Running",mcpStopped:"Stopped",mcpEnabledHint:"MCP mode enabled. Disable to simplify the interface if you only use CLI agents.",mcpDisabledHint:"Enable MCP to connect Desktop clients like Claude Desktop or Cursor.",serverTitle:"MindOS MCP Server",status:"Status",running:"Running",stopped:"Stopped",transport:"Transport",endpoint:"Endpoint",tools:"Tools",toolsRegistered:a=>`${a} registered`,auth:"Auth",authSet:"Token set",authNotSet:"No token",copyEndpoint:"Copy Endpoint",copyConfig:"Copy Config",copied:"Copied!",agentsTitle:"Agent Configuration",agent:"Agent",scope:"Scope",project:"Project",global:"Global",installed:"Installed",notInstalled:"Not installed",detected:"Detected",notFound:"Not found",transportStdio:"stdio (recommended)",transportHttp:"http",transportAuto:"auto (recommended)",httpUrl:"MCP URL",httpToken:"Auth Token",installSelected:"Install Selected",installing:"Installing...",installSuccess:a=>`${a} agent(s) configured`,installFailed:"Install failed",portLabel:"MCP Port",portHint:"Changes require server restart",skillsTitle:"Skills",skillsDesc:"Teach agents how to operate your knowledge base.",skillAutoLoaded:"Auto-loaded on every request",skillSource:"Source",skillBuiltin:"Built-in",skillUser:"Custom",addSkill:"+ Add Skill",cliInstallHint:"Install via CLI:",skillPathHint:"Skill files installed at:",deleteSkill:"Delete",editSkill:"Edit",saveSkill:"Save",cancelSkill:"Cancel",skillName:"Name",skillDesc:"Description",skillContent:"Content",skillNameConflict:"A skill with this name already exists",skillDeleteConfirm:a=>`Delete skill "${a}"? This cannot be undone.`,skillLanguage:"Skill Language",skillLangEn:"English",skillLangZh:"中文",searchSkills:"Search skills...",customGroup:"Custom",builtinGroup:"Built-in",noSkillsMatch:a=>`No skills match "${a}"`,skillTemplate:"Template",skillTemplateGeneral:"General",skillTemplateToolUse:"Tool-use",skillTemplateWorkflow:"Workflow",selectDetected:"Select Detected",clearSelection:"Clear",quickSetup:"Quick Setup",configureFor:"Configure for",configPath:"Config path",transportLocal:"Local",transportRemote:"Remote",transportLocalHint:"Local — same machine as MindOS server",transportRemoteHint:"Remote — connect from another device via HTTP",remoteDetectedHint:"Using your current remote IP.",remoteManualHint:"Replace 127.0.0.1 with your server's public or LAN IP.",remoteSteps:"To connect from another device: ① Open port {port} in firewall/security group ② Use the config below in your Agent ③ For public networks, consider SSH tunnel for encryption.",noAuthWarning:"⚠ No auth token — set one in Settings → General before enabling remote access.",showJson:"Show JSON",hideJson:"Hide JSON",connectionTitle:"Connect Agents",connectionHint:"Choose how your AI agents connect to MindOS.",tokenCardTitle:"Auth Token",tokenCardDesc:"Used by CLI remote mode and MCP connections.",mcpHint:"For Claude Desktop, Cursor, and agents that use MCP tool protocol.",tokenLabel:"Auth Token",tokenMasked:"Click Show to reveal the full token",tokenShow:"Show",tokenHide:"Hide",tokenCopy:"Copy",tokenCopied:"Token copied!",tokenNone:"No token set — your MCP server is open to all requests.",tokenNoneAction:"Generate a token in Settings → General → Security.",serverUrl:"MCP Server URL",serverUrlCopy:"Copy URL",howToConnect:"How to connect an AI agent",howToStep1:"Open your agent's MCP settings (e.g. Claude Code, Cursor)",howToStep2:"Add a new MCP server with the URL above",howToStep3:"Set the Auth Token as the bearer token",howToStep4:"Save and verify the connection",cliSkillTitle:"CLI Skill",cliSkillHint:"For agents with bash (Claude Code, Gemini CLI, Codex) — lower token cost, no MCP needed.",cliSkillDesc:"Lower token cost, Skill included — just install and go.",cliLocalDesc:"MindOS Skill is built-in. Install the CLI and you're good to go.",cliRemoteDesc:"Install the CLI on another machine and connect to this MindOS server.",cliSkillInstall:"Install",cliSkillInstallCmd:"npm install -g @geminilight/mindos",cliSkillRemote:"Remote",cliSkillVerify:"Verify",cliSkillVerifyCmd:"mindos file list",cliRemoteConfigure:"Configure",cliInstallSkill:"Install Skill",cliAgents:"Claude Code \xb7 Gemini CLI \xb7 Codex",mcpAgents:"Claude Desktop \xb7 Cursor",mcpDesc:"Requires per-agent MCP config. Install Skill separately via",mcpLocalDesc:"Copy the config snippet and paste into your agent's MCP settings.",mcpRunningLabel:"MCP Running",mcpServerStatus:"MCP Server",autoInstallAgents:"Auto-install to detected agents",detectedAgentsTitle:"Detected Agents",cliInstallDesc:"Install the MindOS Skill to your agent so it can operate your knowledge base.",mcpInstallDesc:"Install MCP config + Skill to detected agents on this machine.",tokenCopyFullHint:"Copies full token",skillsInstalled:"skills installed",recommended:"Recommended",localTitle:"Local",localReady:"Ready to use",remoteTitle:"Remote Access",remoteSubtitle:"Connect from another device",restarting:"Restarting...",restart:"Restart"},monitoring:{system:"System",heapMemory:"Heap Memory",rss:"RSS",uptime:"Uptime",nodeVersion:"Node",application:"Application",requests:"Requests",toolCalls:"Tool Calls",avgResponse:"Avg Response",tokens:"Tokens",errors:"Errors",knowledgeBase:"Knowledge Base",files:"Files",totalSize:"Total Size",rootPath:"Root",mcpStatus:"Status",mcpRunning:"Running",mcpStopped:"Stopped",mcpPort:"Port",autoRefresh:"Auto-refresh every 5s",fetchError:"Failed to load monitoring data"},agents:{mcpServer:"MCP Server",running:"Running",stopped:"Not running",restarting:"Restarting...",restart:"Restart",onPort:a=>`on :${a}`,refresh:"Refresh",refreshing:"Refreshing...",connected:"Connected",connectedCount:a=>`Connected (${a})`,detectedNotConfigured:"Detected but not configured",detectedCount:a=>`Detected but not configured (${a})`,notDetected:"Not Detected",notDetectedCount:a=>`Not Detected (${a})`,showAll:"Show all",hideAll:"Hide",connect:"Connect",noAgents:"No agents detected on this machine.",fetchError:"Failed to load agent data",autoRefresh:"Auto-refresh every 30s"},save:"Save",saved:"Saved",saveFailed:"Save failed",reconfigure:"Reconfigure",askDisplayMode:{label:"Display Mode",hint:"Side panel stays docked on the right. Popup opens a floating dialog.",panel:"Side Panel",popup:"Popup"},update:{checking:"Checking for updates...",upToDate:"You're up to date",available:(a,b)=>`Update available: v${a} → v${b}`,updating:"Updating MindOS... The server will restart shortly.",updatingHint:"This may take 1–3 minutes. Do not close this page.",serverRestarting:"Server is restarting, please wait...",updated:"Updated successfully! Reloading...",timeout:"Update may still be in progress.",timeoutHint:"The server may need more time to rebuild. Try refreshing.",refreshButton:"Refresh Page",retryButton:"Retry Update",error:"Failed to check for updates. Check your network connection.",checkButton:"Check for Updates",updateButton:a=>`Update to v${a}`,releaseNotes:"View release notes",hint:"Updates are installed via npm. Equivalent to running",inTerminal:"in your terminal.",desktopDownloading:"Downloading update...",desktopReady:"Update downloaded. Restart to apply.",desktopRestart:"Restart Now",desktopHint:"Updates are delivered through the Desktop app auto-updater.",coreTitle:"MindOS Core",coreUpToDate:"Core is up to date",coreAvailable:a=>`Update available (${a})`,coreDownloading:"Downloading...",coreCancel:"Cancel",coreReady:"Ready — restart services to apply",coreRestartServices:"Restart Services",coreApplying:"Applying update...",coreApplied:"Updated! Reloading...",coreError:"Core update failed.",coreRetry:"Retry",coreDesktopTooOld:a=>`v${a} requires a newer Desktop version.`,coreDesktopTooOldHint:"Please update MindOS Desktop first.",coreHint:"Core updates only restart services — no app restart needed.",shellTitle:"MindOS Desktop"},uninstall:{title:"Uninstall MindOS",descCli:"Remove MindOS CLI, background services, and configuration files from this machine.",descDesktop:"Remove MindOS Desktop, background services, and configuration files from this machine.",warning:"Select what to clean up. Your knowledge base files are always kept safe.",stopServices:"Stop services & remove daemon",stopServicesDesc:"Stop all running MindOS processes and remove the background daemon.",removeConfig:"Remove configuration",removeConfigDesc:"Delete ~/.mindos/ directory (config, logs, PID files).",removeNpm:"Uninstall CLI package",removeNpmDesc:"Run npm uninstall -g @geminilight/mindos.",removeApp:"Move Desktop app to Trash",removeAppDesc:"Move MindOS.app to Trash. You can restore it later if needed.",confirmTitle:"Confirm Uninstall",confirmButton:"Uninstall",cancelButton:"Cancel",running:"Uninstalling...",success:"MindOS has been uninstalled.",successDesktop:"MindOS has been uninstalled. The app will quit now.",error:"Uninstall failed. You can run `mindos uninstall` in terminal manually.",nothingSelected:"Select at least one item to uninstall.",kbSafe:"Your knowledge base files are always safe — they are never deleted by this action."}},onboarding:{subtitle:"Your knowledge base is empty. Pick a starter template to get going.",templates:{en:{title:"English",desc:"Pre-built structure with Profile, Notes, Projects, and more."},zh:{title:"中文",desc:"预置画像、笔记、项目等中文目录结构。"},empty:{title:"Empty",desc:"Just the essentials — README, CONFIG, and INSTRUCTION."}},importHint:"Already have notes? Set MIND_ROOT to your existing directory in Settings.",syncHint:"Want cross-device sync? Run",syncHintSuffix:"in the terminal after setup.",initError:"Initialization failed. Please refresh the page or try a different template.",dismiss:"Dismiss"},setup:{stepTitles:["Knowledge Base","AI Configuration","Agent Connection","Confirm"],kbPath:"Knowledge base path",kbPathHint:"Absolute path to your notes directory.",kbPathDefault:"~/MindOS/mind",kbPathUseDefault:a=>`Use ${a}`,kbPathHasFiles:a=>`This directory already contains ${a} file${a>1?"s":""}. You can skip the template or merge (existing files won't be overwritten).`,kbTemplateSkip:"Skip template",kbTemplateMerge:"Choose a template to merge",template:"Starter template",templateSkip:"Skip (directory already has files)",aiProvider:"AI Provider",aiProviderHint:"Choose your preferred AI service.",aiSkip:"Skip — configure later",apiKey:"API Key",apiKeyExisting:"Existing key configured. Leave blank to keep it.",model:"Model",baseUrl:"Base URL",baseUrlHint:"Optional. For proxies or custom API endpoints.",webPort:"Web UI port",mcpPort:"MCP server port",portHint:"Valid range: 1024–65535",portRestartWarning:"The service will start on these ports after setup completes.",portInUse:a=>`Port ${a} is already in use.`,portSuggest:a=>`Use ${a}`,portChecking:"Checking…",portSelf:"Current port",portConflict:"Web UI and MCP ports must be different.",portVerifyHint:"Click outside each field to verify, or wait for auto-check.",authToken:"Auth Token",authTokenHint:"Bearer token for MCP / API clients. Auto-generated.",authTokenUsage:"Used for MCP connections and API clients. When configuring an Agent, this token is written automatically — no manual steps needed.",authTokenUsageWhat:"What is this?",authTokenSeed:"Custom seed (optional)",authTokenSeedHint:"Enter a passphrase to derive a deterministic token.",generateToken:"Generate",copyToken:"Copy",copiedToken:"Copied!",webPassword:"Web Password",webPasswordHint:"Protect your knowledge base from unauthorized browser access.",webPasswordRequired:"Password is required to protect your data.",advancedPorts:"Advanced Settings",tokenSectionTitle:"Auth Token (auto-generated)",tokenSectionHint:"Used by AI agents to connect to your MindOS server.",agentToolsTitle:"Agent Connection",connectionModeTitle:"Connection Mode",connectionModeCliHint:"Recommended \xb7 Lower token usage",connectionModeMcpHint:"Optional \xb7 Higher token usage",agentToolsHint:"Select which AI agents to configure. This step is optional.",agentToolsHintCliOnly:"Agent selection applies when MCP mode is enabled. CLI works with all agents that have bash access.",agentToolsHintNone:"No connection mode selected. Select at least one mode to connect agents.",agentTransport:"Transport",agentScope:"Scope",agentToolsLoading:"Loading agents…",agentToolsEmpty:"No supported agents detected.",agentNoneSelected:"No agents selected. You can configure agents later in Settings.",agentSkipLater:"Clear all",agentSelectDetected:"Select detected agents",agentNoneDetected:"No agents detected on your system.",agentShowMore:a=>`Show ${a} more agents`,agentAdvanced:"Advanced options",agentScopeGlobal:"Install for all projects",agentScopeProject:"This project only",badgeInstalled:"Installed",badgeDetected:"Detected",badgeNotFound:"Not found",agentNotInstalled:"not installed",agentDetected:"detected",agentNotFound:"not found",agentGetIt:"Get it →",agentStatusOk:"configured",agentStatusError:"failed",agentInstalling:"Configuring…",agentTransportAuto:"Auto (recommended)",agentTransportLabel:"Transport",agentVerified:"verified",agentUnverified:"unverified",agentVerifyNote:"stdio agents are verified after restart",skillWhat:"",skillAutoHint:()=>"",skillLabel:"Skill",skillInstalling:"Installing skill…",skillInstalled:"Skill installed",skillFailed:"Skill install failed",aiSkipTitle:"Skip for now",aiSkipDesc:"You can add an API key later in Settings → AI.",reviewHint:"Verify your settings, then press Complete Setup.",reviewInstallResults:"Agent configuration results:",phaseSaving:"Saving configuration…",phaseAgents:"Configuring agents…",phaseSkill:"Installing skill…",phaseDone:"Setup complete!",retryAgent:"Retry",agentFailedCount:a=>`${a} agent${a>1?"s":""} failed`,agentCountSummary:a=>`${a} agent${a>1?"s":""}`,agentFailureNote:"Agent failures are non-blocking — you can enter MindOS and retry from Settings → Connections.",portAvailable:"Available",portChanged:"Port changed — please restart the server for it to take effect.",restartRequired:"Server restart required for these changes to take effect.",restartNow:"Restart now",restarting:"Restarting…",restartDone:"Server is restarting. Redirecting shortly…",restartManual:"Restart manually:",back:"Back",next:"Next",complete:"Complete Setup",skip:"Skip",completing:"Saving...",completeDone:"Setup complete!",completeFailed:"Setup failed. Please try again.",healthKb:"Knowledge Base",healthKbNone:"Not configured",healthAi:"AI Provider",healthAiNone:"Not configured — AI features disabled",healthAiAction:"Add an API key in Settings → AI.",healthAgents:"Agent Connection",healthAgentsOk:a=>`${a} agent${a>1?"s":""} configured`,healthAgentsPartial:"Configuration in progress...",healthAgentsNone:"No agents configured",healthAgentsAction:"You can add agents later in Settings → Connections.",healthSkills:"Skills",healthSkillsOk:"Skills installed successfully",healthSkillsError:"Skill installation failed",healthSkillsSkipped:"Skipped",healthSkillsInstalling:"Installing skills...",healthSkillsAction:"You can install skills manually later.",healthTokenTitle:"Auth Token",healthTokenCopy:"Copy token",healthTokenHint:"Used by CLI remote mode and MCP connections. Also available in Settings → Connections.",healthGoHome:"Go to MindOS",welcomeTitle:"Welcome to MindOS!",welcomeDesc:"Setup is complete. Start by asking AI a question, browsing your knowledge base, or configuring MCP agents.",welcomeLinkReconfigure:"Reconfigure",welcomeLinkAskAI:"MindOS Agent",welcomeLinkMCP:"MCP Settings"},guide:{title:"Quick Start",showGuide:"Show getting started guide",close:"Close",skip:"Skip",import:{title:"Import your files",cta:"Import",desc:"Upload your resume, project docs, or notes — anything you want AI agents to know about you.",button:"Import Files"},ai:{title:"Save with AI",cta:"Try it",desc:"Ask MindOS Agent to capture knowledge from this conversation into your KB:",prompt:"Help me distill the key takeaways from our conversation into a reusable SOP in my knowledge base.",promptEmpty:"Help me design a knowledge base folder structure that fits my needs"},agent:{title:"Connect other Agents",cta:"Copy prompt",desc:"Open Cursor, Claude Code, or any Agent with MindOS CLI and paste:",copyPrompt:"Summarize what we discussed and save it to my MindOS knowledge base as a reusable SOP.",copy:"Copy",copied:"Copied!"},done:{title:"You're all set!",titleFinal:"You've mastered MindOS essentials!",steps:[{hint:"Next: try saving an article into your KB →",prompt:"Help me save the key points from this article into MindOS."},{hint:"Next: try turning experience into a reusable SOP →",prompt:"Help me distill this conversation into a reusable workflow in MindOS."}]}},walkthrough:{step:(a,b)=>`${a} of ${b}`,next:"Next",back:"Back",skip:"Skip tour",done:"Done",exploreCta:"Explore what you can do →",steps:[{title:"Your Project Memory",body:"Organize projects, SOPs, and preferences in Spaces. Everything is local-first and under your control."},{title:"AI That Already Knows You",body:"MindOS Agent reads your entire knowledge base automatically. Ask about your projects — no need to re-explain anything."},{title:"Connect Any Agent",body:"Link Cursor, Claude Code, or Windsurf via MCP — they all share the same project memory."}]},shortcuts:[{keys:["⌘","K"],description:"Search"},{keys:["⌘","/"],description:"MindOS Agent"},{keys:["⌘",","],description:"Settings"},{keys:["E"],description:"Edit current file"},{keys:["⌘","S"],description:"Save"},{keys:["Esc"],description:"Cancel edit / close modal"},{keys:["@"],description:"Attach file in MindOS Agent"}],help:{title:"Help & Guide",subtitle:"Everything you need to get started with MindOS",whatIs:{title:"What is MindOS?",body:"MindOS is where you think, and where your AI agents act. You and AI share the same brain — when you correct AI, that correction is captured automatically; next time AI understands you better, and your own thinking gets sharper along the way. You and AI grow together. In an age of AI anxiety, MindOS focuses on human growth — think clearly, make better decisions, ship faster, and build up knowledge that's truly yours."},quickStart:{title:"Quick Start",step1Title:"Browse your knowledge base",step1Desc:'Click the Spaces icon in the left sidebar to explore your files. Each top-level folder is a "Space" — a themed area like Profile, Notes, or Projects.',step2Title:"Chat with AI",step2Desc:"Press ⌘/ (or Ctrl/) to open the AI panel. Ask anything about your knowledge base, or use @ to attach a specific file for context.",step3Title:"Connect your AI agents",step3Desc:"Go to Settings → Connections to connect external agents like Claude Code, Cursor, or Windsurf. Once connected, they can read and write your knowledge base directly."},concepts:{title:"Core Concepts",spaceTitle:"Space",spaceDesc:"Spaces are knowledge partitions organized the way you think. You decide the structure, and AI agents follow it to read, write, and manage automatically.",instructionTitle:"Instruction",instructionDesc:"A rules file that all AI agents obey. You write the boundaries once, and every agent connected to your knowledge base follows them.",skillTitle:"Skill",skillDesc:"Teaches agents how to operate your knowledge base — reading, writing, organizing. Agents don't guess; they follow the skills you've installed."},shortcutsTitle:"Keyboard Shortcuts",agentUsage:{title:"Using MindOS with AI Agents",intro:"Once you connect an agent (Claude Code, Cursor, Windsurf, etc.) via MCP, just talk to it naturally. The agent can read and write your knowledge base directly — no special commands needed. Here are the most common scenarios:",scenarios:[{emoji:"\uD83E\uDEAA",title:"Inject Your Identity",desc:"Tell all AI agents who you are — preferences, tech stack, communication style — in one shot.",prompt:'"Here\'s my resume, read it and organize my info into MindOS."'},{emoji:"\uD83D\uDD04",title:"Cross-Agent Handoff",desc:"Brainstorm ideas in GPT, then execute in Claude Code — zero context loss.",prompt:'"Save this conversation to MindOS."\n"Read the plan in MindOS and help me start coding."'},{emoji:"\uD83D\uDCCB",title:"Experience → SOP",desc:"Turn hard-won debugging sessions into reusable workflows that prevent future mistakes.",prompt:'"Help me distill this conversation into a reusable workflow in MindOS."'},{emoji:"\uD83D\uDE80",title:"Project Cold Start",desc:"Spin up a new project in minutes — your profile and SOPs guide the scaffolding automatically.",prompt:'"Help me start a new project following the Startup SOP in MindOS."'},{emoji:"\uD83D\uDD0D",title:"Research & Archive",desc:"Let agents research competitors or topics for you, then file structured results in your knowledge base.",prompt:'"Help me research X, Y, Z products and save results to the MindOS product library."'}],copy:"Copy prompt",hint:'Tip: The agent auto-discovers your knowledge base structure. Just mention "MindOS" in your prompt and it will know where to look. Click "Explore" in the left sidebar for more scenarios.'},shortcuts:{search:"Search files",askAI:"Toggle AI panel",settings:"Open Settings",shortcutPanel:"Keyboard shortcuts panel",editFile:"Edit current file",save:"Save file",closePanel:"Close panel / Exit modal",attachFile:"Attach file in AI chat"},faq:{title:"FAQ",items:[{q:"How do I change the language?",a:"Go to Settings → Appearance → Language. You can switch between English and Chinese."},{q:"How do I connect an AI agent?",a:"Go to Settings → Connections. MindOS auto-detects installed agents (Claude Code, Cursor, etc.) and lets you connect them with one click."},{q:"Where is my data stored?",a:"All your data stays on your local machine as plain Markdown files. MindOS never uploads your data to any cloud service. You own everything."},{q:"How do I sync across devices?",a:"Go to Settings → Sync. MindOS uses Git for cross-device sync. Enter your Git remote URL and access token to start syncing."},{q:"Can I use my own AI provider?",a:"Yes! Go to Settings → AI. You can use OpenAI, Anthropic, Google, or any OpenAI-compatible API with a custom base URL."},{q:"What file formats are supported?",a:"MindOS works best with Markdown (.md) files, but also supports JSON, CSV, and plain text. Plugins extend rendering for special formats like Kanban boards or timelines."},{q:"How do I create a new note?",a:"Click the + icon next to any folder in the file tree, or ask AI to create one for you. Notes are just Markdown files — you can also create them from your file system."}]}},explore:{title:"Explore Use Cases",subtitle:"Discover what you can do with MindOS — pick a scenario and try it now.",tryIt:"Try it",all:"All",byCapability:"By Capability",byScenario:"By Scenario",categories:{"knowledge-management":"Knowledge Management","memory-sync":"Memory Sync","auto-execute":"Auto Execute","experience-evolution":"Experience Evolution","human-insights":"Human Insights","audit-control":"Audit & Control"},scenarios:{"first-day":"First Day",daily:"Daily Work",project:"Project Work",advanced:"Advanced"},c1:{title:"Inject Your Identity",desc:"Tell all AI agents who you are — preferences, tech stack, communication style — in one shot.",prompt:"Here's my resume, read it and organize my info into MindOS."},c2:{title:"Save Information",desc:"Archive articles, meeting notes, or web pages into your knowledge base with one prompt.",prompt:"Help me save the key points from this article into MindOS."},c3:{title:"Cross-Agent Handoff",desc:"Start a plan in MindOS, continue coding in Claude Code, refine in Cursor — zero context loss.",prompt:"Help me start coding based on the plan in MindOS."},c4:{title:"Experience → SOP",desc:"Turn hard-won debugging sessions into reusable workflows that prevent future mistakes.",prompt:"Help me distill this conversation into a reusable workflow in MindOS."},c5:{title:"Capture Ideas on the Go",desc:"Jot down an inspiration on your phone — MindOS archives, decomposes, and assigns to agents.",prompt:"Help me organize this idea into MindOS and break it into actionable sub-tasks."},c6:{title:"Project Cold Start",desc:"Spin up a new project in 4 minutes — your profile and SOPs guide the scaffolding automatically.",prompt:"Help me start a new project following the Startup SOP in MindOS."},c7:{title:"Research & Archive",desc:"Let agents research competitors or topics for you, then file structured results in your KB.",prompt:"Help me research X, Y, Z products and save results to the MindOS product library."},c8:{title:"Network Management",desc:"Log conversations with contacts, auto-generate follow-up TODOs, and keep full context.",prompt:"I met with someone today — update MindOS Connections and create follow-up TODOs."},c9:{title:"Audit & Correct",desc:"Review what agents know about you, fix mistakes in one place, and all agents update instantly.",prompt:"Check my MindOS Profile for accuracy and correct any errors."}}},f={common:{relatedFiles:"关联视图"},app:{tagline:"你在此思考,Agent 依此行动。",footer:"MindOS \xb7 人机共生知识系统"},login:{tagline:"人类在此思考,Agent 依此行动。",subtitle:"请输入密码以继续",passwordLabel:"密码",passwordPlaceholder:"输入密码",signIn:"登录",signingIn:"登录中…",incorrectPassword:"密码错误,请重试。",connectionError:"连接错误,请重试。"},notFound:{title:"文件未找到",description:"该文件不存在于你的知识库中。",createButton:"创建此文件",creating:"创建中...",goToParent:"返回上级目录",goHome:"首页"},updateBanner:{newVersion:(a,b)=>`MindOS v${a} 可用(当前 v${b})`,updateNow:"更新",runUpdate:"终端运行",orSee:"或",releaseNotes:"查看更新说明"},sidebar:{files:"知识库",search:"搜索",searchTitle:"搜索",askTitle:"MindOS Agent",settingsTitle:"设置",plugins:"插件",agents:"智能体",echo:"回响",discover:"探索",workflows:"流程",history:"历史",help:"帮助",syncLabel:"同步",collapseTitle:"收起侧栏",expandTitle:"展开侧栏",collapseLevel:"折叠一级",collapseLevelHint:"折叠一级(双击:全部折叠)",expandLevel:"展开一级",expandLevelHint:"展开一级(双击:全部展开)",importFile:"导入文件",new:"新建",newFile:"新建文件",newSpace:"新建空间",more:"更多",capture:"暂存台",showHiddenFiles:"显示隐藏文件",sync:{synced:"已同步",unpushed:"待推送",unpushedHint:"个提交尚未推送到远程 — 将自动同步",conflicts:"冲突",conflictsHint:"个文件存在合并冲突 — 前往 设置 > 同步 解决",syncError:"同步出错",syncOff:"同步关闭",syncing:"同步中...",syncNow:"立即同步",syncDone:"同步完成",syncFailed:"同步失败",syncRestored:"同步已恢复",enableSync:"启用同步",enableHint:"设置跨设备同步"}},search:{placeholder:"搜索文件...",noResults:"没有找到结果",prompt:"输入关键词搜索所有文件",navigate:"上下导航",open:"打开",close:"关闭",tabSearch:"搜索",tabActions:"快捷操作",openSettings:"打开设置",restartWalkthrough:"重新开始引导",toggleDarkMode:"切换深色模式",goToAgents:"前往智能体",goToDiscover:"前往探索",goToHelp:"前往帮助",walkthroughRestarted:"引导已重置"},shortcutPanel:{title:"快捷键",navigation:"导航",panelsSection:"面板",editor:"编辑器",toggleSearch:"切换搜索",toggleAskAI:"切换 AI 助手",openSettings:"打开设置",keyboardShortcuts:"快捷键",closePanel:"关闭面板 / 退出最大化",saveFile:"保存文件",undo:"撤销",redo:"重做",toggleHint:"切换此面板"},...d,home:{recentlyModified:"最近修改",recentlyActive:"最近活跃",recentlyEdited:"最近编辑",allSpaces:"所有空间",spaces:"心智空间",nFiles:a=>`${a} 个文件`,other:"其他",newSpace:"新建空间",spaceName:"空间名称",spaceDescription:"描述",spaceDescPlaceholder:"描述这个空间的用途",spaceNameNoSlash:"名称不能包含 / 或 \\",spaceExists:"已存在同名空间",spaceCreateFailed:"创建空间失败",noSpacesYet:"还没有空间,创建一个来整理你的知识吧。",spaceLocation:"位置",rootLevel:"根目录",optional:"可选",aiInit:"AI 初始化内容",aiInitHint:"AI 将自动生成空间说明和操作指南",aiInitNoKey:"在 设置 → AI 中配置 API 密钥以启用",aiInitGenerating:a=>`正在为「${a}」生成内容`,aiInitReady:a=>`「${a}」已就绪`,aiInitReview:"查看",aiInitDiscard:"撤销",aiInitReverted:a=>`「${a}」已恢复为模板`,createSpace:"创建",cancelCreate:"取消",continueEditing:"继续编辑",newNote:"新建笔记",builtinFeatures:"工具面板",builtinActive:"已启用",builtinInactive:"未激活",toolName:{"agent-inspector":"审计面板","config-panel":"配置面板",todo:"待办面板","workflow-yaml":"工作流"},toolDesc:{"agent-inspector":"查看 Agent 操作日志与调用轨迹","config-panel":"编辑和管理全局配置项",todo:"以看板形式管理待办事项","workflow-yaml":"执行多步骤工作流,AI 辅助执行"},plugins:"扩展",changeHistory:"变更历史",showMore:"查看更多",showLess:"收起",viewAll:"查看全部",wikiTagline:"你的知识空间,井然有序。",sortRecent:"最近",sortName:"字母序",sortCount:"文件数",createToActivate:"创建 {file} 以启用",shortcuts:{searchFiles:"搜索文件",askAI:"MindOS Agent",editFile:"编辑文件",save:"保存",settings:"设置"},relativeTime:{justNow:"刚刚",minutesAgo:a=>`${a} 分钟前`,hoursAgo:a=>`${a} 小时前`,daysAgo:a=>`${a} 天前`},cleanupExamples:a=>`有 ${a} 个模板示例文件可以清理`,cleanupExamplesButton:"一键清理",cleanupExamplesDone:"示例文件已清理"},echoSpotlight:{title:"回响",dailyLine:"今日一行",placeholder:"写下今天的一行想法…",invite:"记录今天的一行想法",inviteDesc:"一行就够。回响会沉淀你的思维模式。",goToEcho:"打开回响",savedLocally:"保存在本设备"},suggestion:{title:"你可能想",staleFiles:a=>`${a} 个文件超过 30 天未更新`,reviewStale:"查看",dismiss:"忽略"},inbox:{title:"暂存台",count:a=>`${a}`,emptyTitle:"快速捕获,稍后整理",emptyDesc:"拖拽文件到此处,或点击上传按钮,即刻保存到暂存台。",uploadButton:"上传文件",organizeButton:"AI 整理",organizing:"整理中...",viewAll:"查看全部",more:a=>`还有 ${a} 个`,viewAllFiles:a=>`查看 Inbox 中全部 ${a} 个文件`,viewAllHistory:a=>`查看全部 ${a} 条记录 →`,agingHint:"7天+",savedToast:a=>`${a} 个文件已保存到暂存台`,savedToDir:(a,b)=>`${a} 个文件已保存到 ${b}`,savedWithSkipped:(a,b)=>a>0?`已保存 ${a} 个,跳过 ${b} 个(格式不支持)`:`${b} 个文件被跳过(格式不支持)`,tooLarge:a=>`${a} 个文件过大(上限 10 MB)`,savedWithOversized:(a,b)=>`已保存 ${a} 个,${b} 个过大被跳过`,organizePrompt:a=>`请将暂存台中的这些文件整理到知识库的合适位置。分析每个文件的内容,将其移动到最匹配的空间或目录。需要的话可以创建新目录。以下是待整理的文件:
|
|
240
240
|
|
|
241
|
-
${a.map(a=>`- Inbox/${a}`).join("\n")}`,dropOverlay:"拖放到暂存台快速保存",dropOverlayFormats:"md \xb7 txt \xb7 pdf \xb7 csv \xb7 json",noMindRoot:"请先配置知识库路径",saveFailed:"保存文件失败,请检查磁盘空间和权限。",organizeFailed:"无法读取文件进行整理,请检查文件权限。"},pulse:{title:"你的 Agent",manage:"管理",connectTitle:"连接你的 AI 工具",connectDesc:"让 Cursor、Claude Code 等 AI 读到你的笔记。",connectAction:"连接 Agent",active:"已连接",detected:"已检测",notFound:"未发现",running:"在线",offline:"离线",summary:(a,b)=>`${a} 个 Agent \xb7 ${b} 个技能`,skillCount:(a,b)=>`${a}/${b} 个技能`,showMore:a=>`还有 ${a} 个`,showLess:"收起",otherDetected:"已检测到"},fileTree:{newFileTitle:"在此目录新建文件",rename:"重命名",delete:"删除",create:"创建",enterFileName:"请输入文件名",failed:"操作失败",confirmDelete:a=>`确定删除「${a}」?可在回收站恢复(30 天内)。`,rules:"规则",about:"说明",viewAll:"查看全部",editRules:"编辑规则",viewRules:"查看规则",renameSpace:"重命名空间",deleteSpace:"删除空间",confirmDeleteSpace:a=>`删除空间「${a}」及其所有文件?可在回收站恢复(30 天内)。`,convertToSpace:"转为空间",deleteFolder:"删除文件夹",confirmDeleteFolder:a=>`删除文件夹「${a}」及其所有内容?可在回收站恢复(30 天内)。`,newFile:"新建文件",importFile:"导入文件",importToSpace:"导入文件到此空间",copyPath:"复制路径",pathCopied:"路径已复制",pinToFavorites:"固定到收藏",removeFromFavorites:"取消收藏",export:"导出..."},pinnedFiles:{title:"收藏文件",addedToast:"已添加到收藏",removedToast:"已取消收藏",empty:"还没有收藏文件",emptyHint:"点击任何文件上的星标图标即可收藏"},trash:{title:"回收站",subtitle:"删除的文件将保留 30 天。",empty:"回收站为空",emptySubtext:"删除的文件将在此处保留 30 天。",emptyTrash:"清空回收站",emptyTrashConfirm:"永久删除回收站中的所有项目?此操作不可撤销。",restore:"恢复",deletePermanently:"彻底删除",deletePermanentlyConfirm:a=>`确定彻底删除「${a}」?此操作不可撤销。`,from:"来自",deletedAgo:a=>`${a}删除`,expiresIn:a=>`${a} 天后过期`,restored:"已恢复",deleted:"已彻底删除",movedToTrash:"已删除",undo:"撤销",undoFailed:"撤销失败",restoreFailed:"无法恢复文件,请检查磁盘空间后重试。",deleteFailed:"无法彻底删除,请重试。",emptyFailed:"无法清空回收站,请重试。",emptied:a=>`已清空 ${a} 个项目`,restoreConflict:"原位置已有同名文件。",overwrite:"覆盖",saveAsCopy:"保存副本",itemCount:a=>`${a} 个项目`,undoDelete:"撤销",viewInTrash:"查看回收站",fileDeleted:a=>`「${a}」已移至回收站`,cancel:"取消",justNow:"刚刚",minutesAgo:a=>`${a} 分钟前`,hoursAgo:a=>`${a} 小时前`,daysAgo:a=>`${a} 天前`},export:{title:"导出",exportFile:"导出文件",exportSpace:"导出空间",chooseFormat:"选择格式",formatMd:"Markdown (.md)",formatMdDesc:"原始格式,可编辑",formatHtml:"HTML (.html)",formatHtmlDesc:"静态网页,可分享",formatZipMd:"Markdown ZIP",formatZipMdDesc:"所有文件,原始格式",formatZipHtml:"HTML ZIP",formatZipHtmlDesc:"所有文件,网页格式",preview:"预览",exporting:"导出中...",exportButton:"导出",cancel:"取消",close:"完成",done:"导出完成",downloadAgain:"再次下载",fileCount:a=>`${a} 个文件`,downloaded:"已下载",error:"导出失败,请检查磁盘空间后重试。",retry:"重试"},fileImport:{title:"导入文件",subtitle:"将外部文件存入知识库或让 AI 帮你整理",dropzoneText:"拖拽文件到这里,或",dropzoneButton:"点击选择",dropzoneCompact:"拖拽更多文件,或",dropzoneCompactButton:"点击添加",dropzoneMobile:"点击选择文件",fileCount:a=>`${a} 个文件`,clearAll:"清空全部",unsupported:"不支持的文件类型",tooLarge:a=>`文件过大(最大 ${a})`,archiveTitle:"存入知识库",archiveDesc:"原样归档到指定空间",digestTitle:"AI 帮我整理",digestDesc:"提取要点,沉淀到笔记",archiveConfigTitle:"存入知识库",back:"← 返回",targetSpace:"目标空间",rootDir:"根目录",conflictLabel:"同名文件已存在时",conflictRename:"自动重命名(添加序号后缀)",conflictSkip:"跳过不导入",conflictOverwrite:"覆盖已有文件",overwriteWarn:"将永久替换已有文件内容",cancel:"取消",importButton:a=>`存入 ${a} 个文件`,importing:"正在存入...",preparing:"准备中...",successToast:(a,b)=>`已存入 ${a} 个文件到 ${b||"知识库"}`,updatedIndex:a=>`更新了 ${a} 个索引文件`,partialToast:(a,b)=>`存入 ${a}/${b} 个文件`,skipReason:"同名文件已存在",failToast:"导入失败",retry:"重试",undo:"撤销",discardTitle:"放弃导入?",discardMessage:a=>`放弃已选的 ${a} 个文件?`,discardConfirm:"放弃",discardCancel:"取消",dropOverlay:"松开鼠标,导入文件到知识库",dropOverlayFormats:"支持 .md .txt .pdf .csv .json .yaml .html",onboardingHint:"已有笔记?导入文件到知识库 →",digestPromptSingle:(a,b)=>{let c=b?`"${b}" 空间下`:"知识库中合适的位置";return`用户上传了「${a}」。你必须:
|
|
241
|
+
${a.map(a=>`- Inbox/${a}`).join("\n")}`,dropOverlay:"拖放到暂存台快速保存",dropOverlayFormats:"md \xb7 txt \xb7 pdf \xb7 csv \xb7 json",noMindRoot:"请先配置知识库路径",saveFailed:"保存文件失败,请检查磁盘空间和权限。",organizeFailed:"无法读取文件进行整理,请检查文件权限。",removeFile:"从暂存台移除",openFile:"打开",copyName:"复制文件名",fileRemoved:"文件已从暂存台移除",fileRemoveFailed:"移除文件失败"},pulse:{title:"你的 Agent",manage:"管理",connectTitle:"连接你的 AI 工具",connectDesc:"让 Cursor、Claude Code 等 AI 读到你的笔记。",connectAction:"连接 Agent",active:"已连接",detected:"已检测",notFound:"未发现",running:"在线",offline:"离线",summary:(a,b)=>`${a} 个 Agent \xb7 ${b} 个技能`,skillCount:(a,b)=>`${a}/${b} 个技能`,showMore:a=>`还有 ${a} 个`,showLess:"收起",otherDetected:"已检测到"},fileTree:{newFileTitle:"在此目录新建文件",rename:"重命名",delete:"删除",create:"创建",enterFileName:"请输入文件名",failed:"操作失败",confirmDelete:a=>`确定删除「${a}」?可在回收站恢复(30 天内)。`,rules:"规则",about:"说明",viewAll:"查看全部",editRules:"编辑规则",viewRules:"查看规则",renameSpace:"重命名空间",deleteSpace:"删除空间",confirmDeleteSpace:a=>`删除空间「${a}」及其所有文件?可在回收站恢复(30 天内)。`,convertToSpace:"转为空间",deleteFolder:"删除文件夹",confirmDeleteFolder:a=>`删除文件夹「${a}」及其所有内容?可在回收站恢复(30 天内)。`,newFile:"新建文件",importFile:"导入文件",importToSpace:"导入文件到此空间",copyPath:"复制路径",pathCopied:"路径已复制",pinToFavorites:"固定到收藏",removeFromFavorites:"取消收藏",export:"导出..."},pinnedFiles:{title:"收藏文件",addedToast:"已添加到收藏",removedToast:"已取消收藏",empty:"还没有收藏文件",emptyHint:"点击任何文件上的星标图标即可收藏"},trash:{title:"回收站",subtitle:"删除的文件将保留 30 天。",empty:"回收站为空",emptySubtext:"删除的文件将在此处保留 30 天。",emptyTrash:"清空回收站",emptyTrashConfirm:"永久删除回收站中的所有项目?此操作不可撤销。",restore:"恢复",deletePermanently:"彻底删除",deletePermanentlyConfirm:a=>`确定彻底删除「${a}」?此操作不可撤销。`,from:"来自",deletedAgo:a=>`${a}删除`,expiresIn:a=>`${a} 天后过期`,restored:"已恢复",deleted:"已彻底删除",movedToTrash:"已删除",undo:"撤销",undoFailed:"撤销失败",restoreFailed:"无法恢复文件,请检查磁盘空间后重试。",deleteFailed:"无法彻底删除,请重试。",emptyFailed:"无法清空回收站,请重试。",emptied:a=>`已清空 ${a} 个项目`,restoreConflict:"原位置已有同名文件。",overwrite:"覆盖",saveAsCopy:"保存副本",itemCount:a=>`${a} 个项目`,undoDelete:"撤销",viewInTrash:"查看回收站",fileDeleted:a=>`「${a}」已移至回收站`,cancel:"取消",justNow:"刚刚",minutesAgo:a=>`${a} 分钟前`,hoursAgo:a=>`${a} 小时前`,daysAgo:a=>`${a} 天前`},export:{title:"导出",exportFile:"导出文件",exportSpace:"导出空间",chooseFormat:"选择格式",formatMd:"Markdown (.md)",formatMdDesc:"原始格式,可编辑",formatHtml:"HTML (.html)",formatHtmlDesc:"静态网页,可分享",formatZipMd:"Markdown ZIP",formatZipMdDesc:"所有文件,原始格式",formatZipHtml:"HTML ZIP",formatZipHtmlDesc:"所有文件,网页格式",preview:"预览",exporting:"导出中...",exportButton:"导出",cancel:"取消",close:"完成",done:"导出完成",downloadAgain:"再次下载",fileCount:a=>`${a} 个文件`,downloaded:"已下载",error:"导出失败,请检查磁盘空间后重试。",retry:"重试"},fileImport:{title:"导入文件",subtitle:"将外部文件存入知识库或让 AI 帮你整理",dropzoneText:"拖拽文件到这里,或",dropzoneButton:"点击选择",dropzoneCompact:"拖拽更多文件,或",dropzoneCompactButton:"点击添加",dropzoneMobile:"点击选择文件",fileCount:a=>`${a} 个文件`,clearAll:"清空全部",unsupported:"不支持的文件类型",tooLarge:a=>`文件过大(最大 ${a})`,archiveTitle:"存入知识库",archiveDesc:"原样归档到指定空间",digestTitle:"AI 帮我整理",digestDesc:"提取要点,沉淀到笔记",archiveConfigTitle:"存入知识库",back:"← 返回",targetSpace:"目标空间",rootDir:"根目录",conflictLabel:"同名文件已存在时",conflictRename:"自动重命名(添加序号后缀)",conflictSkip:"跳过不导入",conflictOverwrite:"覆盖已有文件",overwriteWarn:"将永久替换已有文件内容",cancel:"取消",importButton:a=>`存入 ${a} 个文件`,importing:"正在存入...",preparing:"准备中...",successToast:(a,b)=>`已存入 ${a} 个文件到 ${b||"知识库"}`,updatedIndex:a=>`更新了 ${a} 个索引文件`,partialToast:(a,b)=>`存入 ${a}/${b} 个文件`,skipReason:"同名文件已存在",failToast:"导入失败",retry:"重试",undo:"撤销",discardTitle:"放弃导入?",discardMessage:a=>`放弃已选的 ${a} 个文件?`,discardConfirm:"放弃",discardCancel:"取消",dropOverlay:"松开鼠标,导入文件到知识库",dropOverlayFormats:"支持 .md .txt .pdf .csv .json .yaml .html",onboardingHint:"已有笔记?导入文件到知识库 →",digestPromptSingle:(a,b)=>{let c=b?`"${b}" 空间下`:"知识库中合适的位置";return`用户上传了「${a}」。你必须:
|
|
242
242
|
1. 从上方「USER-UPLOADED FILES」区域读取文件内容
|
|
243
243
|
2. 提取和重新整理关键信息为结构清晰的 Markdown 笔记
|
|
244
244
|
3. 将整理后的内容保存到${c}——可以创建新文件,也可以更新已有文件
|