@geminilight/mindos 0.6.45 → 0.6.46
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 +18 -18
- 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_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/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/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_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/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-paths-manifest.json +18 -18
- package/_standalone/.next/server/chunks/1478.js +52 -0
- package/_standalone/.next/server/chunks/4241.js +21 -21
- package/_standalone/.next/server/next-font-manifest.js +1 -1
- package/_standalone/.next/server/next-font-manifest.json +1 -1
- 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/app/{layout-f82c47d2213ba451.js → layout-679057c9bc2ef95d.js} +11 -11
- package/_standalone/.next/static/chunks/app/page-acbd56efe51d705d.js +7 -0
- package/_standalone/.next/static/chunks/app/trash/{page-842a9e8ebd653a0b.js → page-8d99e37e76d698d7.js} +1 -1
- package/_standalone/.next/static/chunks/app/view/[...path]/{page-d1bd9b6231bb91a6.js → page-f1189fe2a2950e72.js} +2 -2
- package/_standalone/.next/trace +63 -63
- package/bin/commands/doctor.js +13 -0
- package/package.json +1 -1
- package/_standalone/.next/server/chunks/1405.js +0 -52
- package/_standalone/.next/static/chunks/app/page-adc8d13a522f9f8d.js +0 -7
- /package/_standalone/.next/static/{VjO4Ig1MkVHtQkepV2ZoO → xi8zq47n-naAWA5f555ew}/_buildManifest.js +0 -0
- /package/_standalone/.next/static/{VjO4Ig1MkVHtQkepV2ZoO → xi8zq47n-naAWA5f555ew}/_ssgManifest.js +0 -0
package/bin/commands/doctor.js
CHANGED
|
@@ -105,6 +105,19 @@ export const run = async (_args, flags) => {
|
|
|
105
105
|
hasError = true;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
+
// 4c. ~/.mindos/bin in PATH (Desktop CLI shim)
|
|
109
|
+
const mindosBin = resolve(homedir(), '.mindos', 'bin');
|
|
110
|
+
const pathDirs = (process.env.PATH || '').split(':');
|
|
111
|
+
if (pathDirs.some(d => d === mindosBin || d === '$HOME/.mindos/bin' || d === '~/.mindos/bin')) {
|
|
112
|
+
ok(`~/.mindos/bin is in PATH`);
|
|
113
|
+
} else if (existsSync(resolve(mindosBin, 'mindos'))) {
|
|
114
|
+
warn(`~/.mindos/bin/mindos exists but is NOT in PATH — AI Agents cannot find the mindos command`);
|
|
115
|
+
if (!jsonMode) {
|
|
116
|
+
console.log(dim(' Fix: Relaunch MindOS Desktop, or add to your shell config:'));
|
|
117
|
+
console.log(dim(' export PATH="$HOME/.mindos/bin:$PATH"'));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
108
121
|
const { hasPrebuiltStandalone, needsBuild } = await import('../lib/build.js');
|
|
109
122
|
|
|
110
123
|
// 5. Build
|
package/package.json
CHANGED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=1405,exports.ids=[1405],exports.modules={1160:(a,b,c)=>{c.d(b,{GL:()=>d,_l:()=>e,e1:()=>f}),c(29021),c(33873);let d=a=>`# ${a} Instruction Set
|
|
2
|
-
|
|
3
|
-
## Goal
|
|
4
|
-
|
|
5
|
-
- Define local execution rules for this directory.
|
|
6
|
-
|
|
7
|
-
## Local Rules
|
|
8
|
-
|
|
9
|
-
- Read root \`INSTRUCTION.md\` first.
|
|
10
|
-
- Then read this directory \`README.md\` for navigation.
|
|
11
|
-
- Keep edits minimal, structured, and traceable.
|
|
12
|
-
|
|
13
|
-
## Execution Order
|
|
14
|
-
|
|
15
|
-
1. Root \`INSTRUCTION.md\`
|
|
16
|
-
2. This directory \`INSTRUCTION.md\`
|
|
17
|
-
3. This directory \`README.md\` and target files
|
|
18
|
-
|
|
19
|
-
## Boundary
|
|
20
|
-
|
|
21
|
-
- Root rules win on conflict.
|
|
22
|
-
`,e=a=>`# ${a}
|
|
23
|
-
|
|
24
|
-
## 📁 Structure
|
|
25
|
-
|
|
26
|
-
\`\`\`bash
|
|
27
|
-
${a}/
|
|
28
|
-
├── INSTRUCTION.md
|
|
29
|
-
├── README.md
|
|
30
|
-
└── (your files here)
|
|
31
|
-
\`\`\`
|
|
32
|
-
|
|
33
|
-
## 💡 Usage
|
|
34
|
-
|
|
35
|
-
(Describe the purpose and usage of this space.)
|
|
36
|
-
`;function f(a){return a.replace(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}\s]+/u,"")||a}},4120:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{kh:()=>o});var e=c(29021),f=c.n(e),g=c(33873),h=c.n(g),i=c(21820),j=c.n(i),k=c(61374),l=c(27313),m=a([l]);l=(m.then?(await m)():m)[0];let p=h().join(j().homedir(),".mindos","config.json"),q={ai:{provider:"anthropic",providers:{anthropic:{apiKey:"",model:"claude-sonnet-4-6"},openai:{apiKey:"",model:"gpt-5.4",baseUrl:""}}},mindRoot:""};function n(a,b,c){if(a&&"object"==typeof a){let c=a[b];if("string"==typeof c&&""!==c.trim())return c}return c}function o(){return function(){try{var a;let b=f().readFileSync(p,"utf-8"),c=JSON.parse(b);return{ai:function(a){let b=a.ai;if(!b)return{...q.ai};let c="string"==typeof b.provider?b.provider:"anthropic",d=(0,l.rl)(c)?c:"anthropic";if(b.providers&&"object"==typeof b.providers){let a=b.providers,c={};for(let b of Object.keys(a)){var e;if(!(0,l.rl)(b))continue;let d=l.T_[b],f=q.ai.providers[b]??{apiKey:"",model:d.defaultModel};c[b]=(e=a[b],{apiKey:n(e,"apiKey",f.apiKey),model:n(e,"model",f.model),...void 0!==f.baseUrl?{baseUrl:n(e,"baseUrl",f.baseUrl)}:{}})}return c.anthropic||(c.anthropic=q.ai.providers.anthropic),c.openai||(c.openai=q.ai.providers.openai),{provider:d,providers:c}}return{provider:d,providers:{anthropic:{apiKey:n(b,"anthropicApiKey",""),model:n(b,"anthropicModel","claude-sonnet-4-6")},openai:{apiKey:n(b,"openaiApiKey",""),model:n(b,"openaiModel","gpt-5.4"),baseUrl:n(b,"openaiBaseUrl","")}}}}(c),agent:function(a){if(!a||"object"!=typeof a)return;let b={};return"number"==typeof a.maxSteps&&(b.maxSteps=Math.min(30,Math.max(1,a.maxSteps))),"boolean"==typeof a.enableThinking&&(b.enableThinking=a.enableThinking),"number"==typeof a.thinkingBudget&&(b.thinkingBudget=Math.min(5e4,Math.max(1e3,a.thinkingBudget))),("auto"===a.contextStrategy||"off"===a.contextStrategy)&&(b.contextStrategy=a.contextStrategy),"number"==typeof a.reconnectRetries&&(b.reconnectRetries=Math.min(10,Math.max(0,a.reconnectRetries))),Object.keys(b).length>0?b:void 0}(c.agent),acpAgents:(a=c.acpAgents,(0,k.gG)(a)),mindRoot:c.mindRoot??q.mindRoot,webPassword:"string"==typeof c.webPassword?c.webPassword:void 0,authToken:"string"==typeof c.authToken?c.authToken:void 0,mcpPort:"number"==typeof c.mcpPort?c.mcpPort:void 0,port:"number"==typeof c.port?c.port:void 0,startMode:"string"==typeof c.startMode?c.startMode:void 0,setupPending:!0===c.setupPending||void 0,disabledSkills:Array.isArray(c.disabledSkills)?c.disabledSkills:void 0,guideState:function(a){if(!a||"object"!=typeof a||!0!==a.active)return;let b="en"===a.template||"zh"===a.template||"empty"===a.template?a.template:"en";return{active:!0,dismissed:!0===a.dismissed,template:b,step1Done:!0===a.step1Done,askedAI:!0===a.askedAI,nextStepIndex:"number"==typeof a.nextStepIndex?a.nextStepIndex:0,walkthroughStep:"number"==typeof a.walkthroughStep?a.walkthroughStep:void 0,walkthroughDismissed:"boolean"==typeof a.walkthroughDismissed?a.walkthroughDismissed:void 0}}(c.guideState)}}catch{return{...q,ai:{...q.ai,providers:{...q.ai.providers}},setupPending:!0}}}().mindRoot||process.env.MIND_ROOT||h().join(j().homedir(),"MindOS","mind")}d()}catch(a){d(a)}})},14432:(a,b,c)=>{c.d(b,{Xs:()=>z,As:()=>v,rt:()=>d.rt,x3:()=>d.x3,_E:()=>u,H5:()=>d.H5,OV:()=>d.OV}),c(99863);var d=c(18451),e=c(29021),f=c.n(e);c(79748);var g=c(33873),h=c.n(g);let i=new Set([".git","node_modules","app",".next",".DS_Store","mcp"]),j=new Set([".md",".csv"]),k=new Set(["INSTRUCTION.md","README.md","CONFIG.json","CHANGELOG.md"]);function l(a,b,c={}){let d,e=h().resolve(a),g=b??e,m=c.ignoredDirs??i,n=c.allowedExtensions??j;try{d=f().readdirSync(g,{withFileTypes:!0})}catch{return[]}let o=[];for(let b of d){let d=h().join(g,b.name);if(b.isDirectory()){if(m.has(b.name))continue;o.push(...l(a,d,c))}else if(b.isFile()){if(g===e&&k.has(b.name))continue;let a=h().extname(b.name).toLowerCase();n.has(a)&&o.push(h().relative(e,d))}}return o}var m=c(21820),n=c.n(m);let o=/[\u4e00-\u9fff\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/,p="u">typeof Intl&&Intl.Segmenter?new Intl.Segmenter("zh",{granularity:"word"}):null;function q(a){let b=new Set,c=a.toLowerCase(),d=c.match(/[a-z0-9_$@#]+/g);if(d)for(let a of d)a.length>=2&&b.add(a);if(o.test(c))if(p)for(let{segment:a,isWordLike:d}of p.segment(c)){if(!d)continue;let c=a.trim();if(c)for(let a of(b.add(c),c))o.test(a)&&b.add(a)}else{let a=[];for(let d of c)o.test(d)?a.push(d):a.length>0&&(r(a,b),a.length=0);a.length>0&&r(a,b)}return b}function r(a,b){for(let c=0;c<a.length;c++)b.add(a[c]),c+1<a.length&&b.add(a[c]+a[c+1])}class s{rebuild(a){let b=l(a),c=new Map,e=new Map,f=new Map,g=0;for(let h of b){let b;try{b=(0,d.TA)(a,h)}catch{continue}e.set(h,b.length),g+=b.length,b.length>5e4&&(b=b.slice(0,5e4));let i=q(h+"\n"+b);for(let a of(f.set(h,i),i)){let b=c.get(a);b||(b=new Set,c.set(a,b)),b.add(h)}}this.invertedIndex=c,this.builtForRoot=a,this.fileCount=b.length,this.docLengths=e,this.totalChars=g,this.fileTokens=f}invalidate(){this.invertedIndex=null,this.builtForRoot=null,this.fileCount=0,this.docLengths.clear(),this.totalChars=0,this.fileTokens.clear()}removeFile(a){if(!this.invertedIndex)return;let b=this.fileTokens.get(a);if(b){for(let c of b)this.invertedIndex.get(c)?.delete(a);this.fileTokens.delete(a)}let c=this.docLengths.get(a)??0;this.totalChars-=c,this.docLengths.delete(a),this.fileCount=Math.max(0,this.fileCount-1)}addFile(a,b){let c;if(!this.invertedIndex)return;try{c=(0,d.TA)(a,b)}catch{return}this.docLengths.set(b,c.length),this.totalChars+=c.length,this.fileCount++,c.length>5e4&&(c=c.slice(0,5e4));let e=q(b+"\n"+c);for(let a of(this.fileTokens.set(b,e),e)){let c=this.invertedIndex.get(a);c||(c=new Set,this.invertedIndex.set(a,c)),c.add(b)}}updateFile(a,b){this.invertedIndex&&(this.removeFile(b),this.addFile(a,b))}isBuiltFor(a){return null!==this.invertedIndex&&this.builtForRoot===a}isBuilt(){return null!==this.invertedIndex}getFileCount(){return this.fileCount}getAvgDocLength(){return this.fileCount>0?this.totalChars/this.fileCount:0}getDocLength(a){return this.docLengths.get(a)??0}getDocFrequency(a){return this.invertedIndex?this.invertedIndex.get(a)?.size??0:0}getCandidatesUnion(a){if(!a.trim()||!this.invertedIndex)return null;let b=q(a.toLowerCase().trim());if(0===b.size)return null;let c=new Map;for(let a of b){let b=this.invertedIndex.get(a);if(b)for(let a of b)c.set(a,(c.get(a)??0)+1)}if(0===c.size)return[];let d=b.size;if(d>=3){let a=Math.max(1,Math.floor(d/2)),b=[...c.entries()].filter(([,b])=>b>=a).map(([a])=>a);if(b.length>0)return b}return[...c.keys()]}getCandidates(a){if(!a.trim()||!this.invertedIndex)return null;let b=q(a.toLowerCase().trim());if(0===b.size)return null;let c=null;for(let a of b){let b=this.invertedIndex.get(a);if(!b)return[];if(null===c)c=new Set(b);else{for(let a of c)b.has(a)||c.delete(a);if(0===c.size)return[]}}return c?Array.from(c):[]}persist(a){if(!this.invertedIndex)return;let b={version:1,builtForRoot:this.builtForRoot??"",fileCount:this.fileCount,totalChars:this.totalChars,docLengths:Object.fromEntries(this.docLengths),invertedIndex:{},timestamp:Date.now()};for(let[a,c]of this.invertedIndex)b.invertedIndex[a]=[...c];let c=h().join(a,"search-index.json");try{f().mkdirSync(a,{recursive:!0}),f().writeFileSync(c,JSON.stringify(b),"utf-8")}catch{}}load(a,b){let c,d,e=h().join(a,"search-index.json");try{c=f().readFileSync(e,"utf-8")}catch{return!1}try{d=JSON.parse(c)}catch{return!1}if(1!==d.version||d.builtForRoot!==b||l(b).length!==d.fileCount)return!1;let g=Object.keys(d.docLengths);if(Math.min(50,g.length)===g.length)for(let a of g)try{if(f().statSync(h().join(b,a)).mtimeMs>d.timestamp)return!1}catch{return!1}else{let a=Math.max(1,Math.floor(g.length/40)),c=new Set;for(let b=0;b<g.length;b+=a)c.add(b);for(let a=Math.max(0,g.length-10);a<g.length;a++)c.add(a);for(let a of c)try{if(f().statSync(h().join(b,g[a])).mtimeMs>d.timestamp)return!1}catch{return!1}}this.builtForRoot=d.builtForRoot,this.fileCount=d.fileCount,this.totalChars=d.totalChars,this.docLengths=new Map(Object.entries(d.docLengths).map(([a,b])=>[a,b]));let i=new Map,j=new Map;for(let[a,b]of Object.entries(d.invertedIndex)){let c=new Set(b);for(let b of(i.set(a,c),c)){let c=j.get(b);c||(c=new Set,j.set(b,c)),c.add(a)}}return this.invertedIndex=i,this.fileTokens=j,!0}constructor(){this.invertedIndex=null,this.builtForRoot=null,this.fileCount=0,this.docLengths=new Map,this.totalChars=0,this.fileTokens=new Map}}let t=new s;function u(){t.invalidate()}function v(a,b){t.isBuilt()&&(t.addFile(a,b),x=!0,w&&clearTimeout(w),w=setTimeout(y,5e3))}let w=null,x=!1;function y(){if(w&&(clearTimeout(w),w=null),x){x=!1;try{t.persist(h().join(n().homedir(),".mindos"))}catch{}}}"u">typeof process&&(process.on("beforeExit",y),process.on("SIGTERM",()=>{y(),process.exit(0)}),process.on("SIGINT",()=>{y(),process.exit(0)}));class z{rebuild(a){let b=l(a).filter(a=>a.endsWith(".md")),c=new Set(b),e=function(a){let b=new Map;for(let c of a){let a=h().basename(c).toLowerCase();b.has(a)||b.set(a,[]),b.get(a).push(c)}return b}(b),f=new Map,g=new Map;for(let h of b){let b;try{b=(0,d.TA)(a,h)}catch{continue}let i=A(b,h,c,e),j=new Set;for(let a of i)a!==h&&j.add(a);for(let a of(f.set(h,j),j)){let b=g.get(a);b||(b=new Set,g.set(a,b)),b.add(h)}}this.forwardLinks=f,this.backwardLinks=g,this.builtForRoot=a,this.fileSet=c,this.basenameMap=e}invalidate(){this.forwardLinks.clear(),this.backwardLinks.clear(),this.builtForRoot=null,this.fileSet.clear(),this.basenameMap.clear()}isBuiltFor(a){return this.builtForRoot===a}isBuilt(){return null!==this.builtForRoot}getForwardLinks(a){return[...this.forwardLinks.get(a)??[]]}getBacklinks(a){return[...this.backwardLinks.get(a)??[]]}getAllEdges(){let a=[];for(let[b,c]of this.forwardLinks)for(let d of c)a.push({source:b,target:d});return a}removeFile(a){let b=this.forwardLinks.get(a);if(b){for(let c of b)this.backwardLinks.get(c)?.delete(a);this.forwardLinks.delete(a)}let c=this.backwardLinks.get(a);if(c){for(let b of c)this.forwardLinks.get(b)?.delete(a);this.backwardLinks.delete(a)}this.fileSet.delete(a);let d=h().basename(a).toLowerCase(),e=this.basenameMap.get(d);if(e){let b=e.indexOf(a);b>=0&&e.splice(b,1),0===e.length&&this.basenameMap.delete(d)}}updateFile(a,b){let c;if(!this.builtForRoot||!b.endsWith(".md"))return;let e=this.forwardLinks.get(b);if(e)for(let a of e)this.backwardLinks.get(a)?.delete(b);try{c=(0,d.TA)(a,b)}catch{return}if(!this.fileSet.has(b)){this.fileSet.add(b);let a=h().basename(b).toLowerCase();this.basenameMap.has(a)||this.basenameMap.set(a,[]),this.basenameMap.get(a).push(b)}let f=A(c,b,this.fileSet,this.basenameMap),g=new Set;for(let a of f)a!==b&&g.add(a);for(let a of(this.forwardLinks.set(b,g),g)){let c=this.backwardLinks.get(a);c||(c=new Set,this.backwardLinks.set(a,c)),c.add(b)}}constructor(){this.forwardLinks=new Map,this.backwardLinks=new Map,this.builtForRoot=null,this.fileSet=new Set,this.basenameMap=new Map}}function A(a,b,c,d){let e,f=[],g=h().dirname(b),i=/\[\[([^\]|#]+)(?:[|#][^\]]*)?/g;for(;null!==(e=i.exec(a));){let a=e[1].trim();if(!a)continue;if(c.has(a)){f.push(a);continue}let b=a.endsWith(".md")?a:a+".md";if(c.has(b)){f.push(b);continue}let g=h().basename(b).toLowerCase(),i=d.get(g);i&&1===i.length&&f.push(i[0])}let j=/\[[^\]]+\]\(([^)]+\.md)(?:#[^)]*)?\)/g;for(;null!==(e=j.exec(a));){let a=e[1].trim();if(!a||a.startsWith("http"))continue;let b=h().normalize(h().join(g,a));c.has(b)&&f.push(b)}return f}c(20018),c(79646),c(15872)},15872:(a,b,c)=>{c.d(b,{_:()=>l,c:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(20018),i=c(18451),j=c(1160);function k(a,b,c){let d=b.replace(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}\s]+/u,"")||b,e=c.trim()||"(Describe the purpose and usage of this space.)";return`# ${d}
|
|
37
|
-
|
|
38
|
-
${e}
|
|
39
|
-
|
|
40
|
-
## 📁 Structure
|
|
41
|
-
|
|
42
|
-
\`\`\`bash
|
|
43
|
-
${a}/
|
|
44
|
-
├── INSTRUCTION.md
|
|
45
|
-
├── README.md
|
|
46
|
-
└── (your files here)
|
|
47
|
-
\`\`\`
|
|
48
|
-
|
|
49
|
-
## 💡 Usage
|
|
50
|
-
|
|
51
|
-
(Add usage guidelines for this space.)
|
|
52
|
-
`}function l(a,b,c,d=""){let f=b.trim();if(!f)throw new h.Vt(h.tG.INVALID_REQUEST,"Space name is required",{name:b});if(f.includes("/")||f.includes("\\"))throw new h.Vt(h.tG.INVALID_PATH,"Space name must not contain path separators",{name:f});let m=d.replace(/\/+$/,"").trim();if(m.includes("..")||m.startsWith("/")||m.includes("\\"))throw new h.Vt(h.tG.INVALID_PATH,"Invalid parent path",{parentPath:d});let n=m?`${m}/`:"",o=`${n}${f}`,p=k(o,f,c);(0,i.x3)(a,`${o}/README.md`,p);let q=g().resolve(a,o),r=g().join(q,"INSTRUCTION.md");return e().existsSync(r)||e().writeFileSync(r,(0,j.GL)((0,j.e1)(f)),"utf-8"),{path:o}}},16081:(a,b,c)=>{c.d(b,{F0:()=>o,JI:()=>u,Lr:()=>p,YN:()=>t,hQ:()=>s,kz:()=>q,vn:()=>r});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f);function h(a,b){return g().join(g().dirname(a),b)}function i(a){return h(a,".trash")}function j(a){return h(a,".trash-meta")}function k(a){e().mkdirSync(i(a),{recursive:!0}),e().mkdirSync(j(a),{recursive:!0})}function l(a,b){let c=g().join(j(a),`${b}.json`);if(!e().existsSync(c))return null;try{return JSON.parse(e().readFileSync(c,"utf-8"))}catch{return null}}function m(a,b){let c=g().join(j(a),`${b}.json`);try{e().unlinkSync(c)}catch{}}function n(a,b,c){if(c)e().cpSync(a,b,{recursive:!0}),e().rmSync(a,{recursive:!0,force:!0});else try{e().renameSync(a,b)}catch(c){if("EXDEV"===c.code)e().copyFileSync(a,b),e().unlinkSync(a);else throw c}}function o(a,b){let c,d;k(a);let f=g().join(a,b);if(!e().existsSync(f))throw Error(`File not found: ${b}`);let h=e().statSync(f).isDirectory(),l=g().basename(b),m=(c=l.replace(/[^a-zA-Z0-9._\-\u4e00-\u9fff]/g,"_"),`${Date.now()}_${c}`),o=g().join(i(a),m);e().mkdirSync(g().dirname(o),{recursive:!0}),n(f,o,h);let p=new Date,q={id:m,originalPath:b,deletedAt:p.toISOString(),expiresAt:new Date(p.getTime()+2592e6).toISOString(),fileName:l,isDirectory:h};return d=g().join(j(a),`${q.id}.json`),e().writeFileSync(d,JSON.stringify(q,null,2),"utf-8"),q}function p(a,b,c=!1){let d=l(a,b);if(!d)throw Error("Item not found in trash");let f=g().join(i(a),b);if(!e().existsSync(f))throw Error("Trash file missing from disk");let h=g().join(a,d.originalPath);if(e().existsSync(h)&&!c)throw Object.assign(Error("Restore conflict: file exists at original location"),{code:"RESTORE_CONFLICT"});return e().mkdirSync(g().dirname(h),{recursive:!0}),d.isDirectory?c&&e().existsSync(h)&&e().rmSync(h,{recursive:!0,force:!0}):c&&e().existsSync(h)&&e().unlinkSync(h),n(f,h,d.isDirectory),m(a,b),{restoredPath:d.originalPath}}function q(a,b){let c=l(a,b);if(!c)throw Error("Item not found in trash");let d=g().join(i(a),b);if(!e().existsSync(d))throw Error("Trash file missing from disk");let f=g().dirname(c.originalPath),h=g().extname(c.fileName),j=g().basename(c.fileName,h),k=g().join(f,`${j} (copy)${h}`),o=2;for(;e().existsSync(g().join(a,k));)k=g().join(f,`${j} (copy ${o})${h}`),o++;let p=g().join(a,k);return e().mkdirSync(g().dirname(p),{recursive:!0}),n(d,p,c.isDirectory),m(a,b),{restoredPath:k}}function r(a,b){let c=g().join(i(a),b);try{e().existsSync(c)&&(e().statSync(c).isDirectory()?e().rmSync(c,{recursive:!0,force:!0}):e().unlinkSync(c))}catch{}m(a,b)}function s(a){let b;k(a);let c=j(a);try{b=e().readdirSync(c).filter(a=>a.endsWith(".json"))}catch{return[]}let d=[];for(let f of b)try{let b=JSON.parse(e().readFileSync(g().join(c,f),"utf-8")),h=g().join(i(a),b.id);if(e().existsSync(h))d.push(b);else try{e().unlinkSync(g().join(c,f))}catch{}}catch{}return d.sort((a,b)=>new Date(b.deletedAt).getTime()-new Date(a.deletedAt).getTime()),d}function t(a){let b=s(a);for(let c of b)r(a,c.id);return b.length}function u(a){let b=s(a),c=Date.now(),d=0;for(let e of b)new Date(e.expiresAt).getTime()<=c&&(r(a,e.id),d++);return d}},18451:(a,b,c)=>{c.d(b,{H5:()=>n,OV:()=>o,TA:()=>k,rt:()=>m,x3:()=>l});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(99863),i=c(20018),j=c(1160);function k(a,b){let c=(0,h.eX)(a,b);return e().readFileSync(c,"utf-8")}function l(a,b,c=""){let d=(0,h.eX)(a,b);e().mkdirSync(g().dirname(d),{recursive:!0});try{e().writeFileSync(d,c,{encoding:"utf-8",flag:"wx"})}catch(a){if(a instanceof Error&&"code"in a&&"EEXIST"===a.code)throw new i.Vt(i.tG.FILE_ALREADY_EXISTS,`File already exists: ${b}`,{filePath:b});throw a}}function m(a,b){let c=(0,h.eX)(a,b);if(!e().existsSync(c))throw new i.Vt(i.tG.FILE_NOT_FOUND,`Directory not found: ${b}`,{dirPath:b});if(!e().statSync(c).isDirectory())throw new i.Vt(i.tG.INVALID_PATH,`Not a directory: ${b}`,{dirPath:b});let d=g().basename(c),f=(0,j.e1)(d),k=g().join(c,"INSTRUCTION.md");e().existsSync(k)||e().writeFileSync(k,(0,j.GL)(f),"utf-8");let l=g().join(c,"README.md");e().existsSync(l)||e().writeFileSync(l,(0,j._l)(f),"utf-8")}function n(a,b,c){if(c.includes("/")||c.includes("\\"))throw new i.Vt(i.tG.INVALID_PATH,"Invalid filename: must not contain path separators",{newName:c});let d=g().resolve(a),f=g().resolve(g().join(d,b));(0,h.cP)(f,d);let j=g().dirname(f),k=g().join(j,c);if((0,h.cP)(k,d),e().existsSync(k))throw new i.Vt(i.tG.FILE_ALREADY_EXISTS,"A file with that name already exists",{newName:c});return e().renameSync(f,k),g().relative(d,k)}function o(a,b,c){let d=c.trim();if(!d||d.includes("/")||d.includes("\\"))throw new i.Vt(i.tG.INVALID_PATH,"Invalid space name: must not contain path separators",{newName:c});let f=b.replace(/\/+$/g,"").trim();if(!f)throw new i.Vt(i.tG.INVALID_PATH,"Space path is required",{spacePath:b});let j=g().resolve(a),k=(0,h.eX)(a,f);if(!e().existsSync(k))throw new i.Vt(i.tG.FILE_NOT_FOUND,`Space not found: ${f}`,{spacePath:f});if(!e().statSync(k).isDirectory())throw new i.Vt(i.tG.INVALID_PATH,`Not a directory: ${f}`,{spacePath:f});let l=g().dirname(k),m=g().join(l,d);if((0,h.cP)(m,j),e().existsSync(m))throw new i.Vt(i.tG.FILE_ALREADY_EXISTS,"A space with that name already exists",{newName:d});return e().renameSync(k,m),g().relative(j,m)}},20018:(a,b,c)=>{c.d(b,{Vt:()=>d,tG:()=>e}),c(20457);class d extends Error{constructor(a,b,c,d){super(b),this.code=a,this.context=c,this.userMessage=d,this.name="MindOSError"}}let e={FILE_NOT_FOUND:"FILE_NOT_FOUND",FILE_ALREADY_EXISTS:"FILE_ALREADY_EXISTS",PATH_OUTSIDE_ROOT:"PATH_OUTSIDE_ROOT",PROTECTED_FILE:"PROTECTED_FILE",INVALID_PATH:"INVALID_PATH",INVALID_RANGE:"INVALID_RANGE",HEADING_NOT_FOUND:"HEADING_NOT_FOUND",INVALID_FILE_TYPE:"INVALID_FILE_TYPE",INVALID_REQUEST:"INVALID_REQUEST",MODEL_INIT_FAILED:"MODEL_INIT_FAILED",INTERNAL_ERROR:"INTERNAL_ERROR",PERMISSION_DENIED:"PERMISSION_DENIED"}},27114:(a,b,c)=>{c.d(b,{A:()=>d});let d=new Set(["TODO.md"])},27313:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{T_:()=>h,rl:()=>g});var e=c(14270),f=a([e]);e=(f.then?(await f)():f)[0];let h={anthropic:{id:"anthropic",name:"Anthropic",nameZh:"Anthropic",defaultModel:"claude-sonnet-4-6",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://console.anthropic.com/settings/keys",category:"primary"},openai:{id:"openai",name:"OpenAI",nameZh:"OpenAI",defaultModel:"gpt-5.4",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://platform.openai.com/api-keys",category:"primary"},google:{id:"google",name:"Google Gemini",nameZh:"Google Gemini",defaultModel:"gemini-2.5-flash",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,signupUrl:"https://aistudio.google.com/apikey",category:"primary"},groq:{id:"groq",name:"Groq",nameZh:"Groq",defaultModel:"llama-3.3-70b-versatile",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://console.groq.com/keys",category:"more"},xai:{id:"xai",name:"xAI (Grok)",nameZh:"xAI (Grok)",defaultModel:"grok-3",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},openrouter:{id:"openrouter",name:"OpenRouter",nameZh:"OpenRouter",defaultModel:"anthropic/claude-sonnet-4",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},mistral:{id:"mistral",name:"Mistral",nameZh:"Mistral",defaultModel:"mistral-large-latest",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},deepseek:{id:"deepseek",name:"DeepSeek",nameZh:"DeepSeek",defaultModel:"deepseek-chat",piProviderOverride:"openai",fixedBaseUrl:"https://api.deepseek.com/v1",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://platform.deepseek.com/api_keys",category:"more"},zai:{id:"zai",name:"ZhipuAI (GLM)",nameZh:"智谱 AI (GLM)",defaultModel:"glm-4-plus",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},"kimi-coding":{id:"kimi-coding",name:"Kimi Coding",nameZh:"Kimi Coding (月之暗面)",defaultModel:"kimi-k2-thinking",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},cerebras:{id:"cerebras",name:"Cerebras",nameZh:"Cerebras",defaultModel:"llama-4-scout-17b-16e",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},minimax:{id:"minimax",name:"MiniMax",nameZh:"MiniMax",defaultModel:"MiniMax-M1",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!1,category:"more"},huggingface:{id:"huggingface",name:"Hugging Face",nameZh:"Hugging Face",defaultModel:"Qwen/Qwen3-235B-A22B-Thinking-2507",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},ollama:{id:"ollama",name:"Ollama",nameZh:"Ollama (本地)",defaultModel:"llama3.2",piProviderOverride:"openai",fixedBaseUrl:"http://localhost:11434/v1",apiKeyFallback:"ollama",supportsBaseUrl:!0,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://ollama.com/download",category:"more"}};function g(a){return a in h}Object.keys(h),d()}catch(a){d(a)}})},41405:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"0028ac07fa894e776b7666e1f2643e303526c52992":()=>e.Dg,"008ce10c99011aa085231609f599226e2fc202a5b7":()=>e.GB,"00a77aaa92b0d837329f618a317599128e4465e53f":()=>e.EG,"00f59dc5929d7c0ad2b800aa38b5a309973b9e59cc":()=>e.Bn,"40320bffb9c64de88b4b1cced0a4cb6ee6440760d2":()=>e.Ye,"4037047fbca1470b774a4234ec8e6580683ab890bc":()=>e.Ar,"4064893ba25ca78194dda7489e2204570fbec8ae6c":()=>e.bC,"40648f7ff6354f87b3ecb3ea6b69829f4a5b3b8877":()=>e.VO,"40712ef89b592cb0dfe83d48226e5d7e85d3a476fc":()=>e.iJ,"409f6527dde2a320f2d47ff4200072165e2eaf1004":()=>e.ku,"40e769760c6520fd9b7d98d8ebbed2af6665b635be":()=>e.jW,"60191bfbfd85e9682a7841c6b286714251e2fa6c3e":()=>e.NN,"60c8a9699fdf506bf82ba48c32aa2534ceb4afbf94":()=>e.pG,"60ce7c56bbc72c11734fa2f22e49b51ea8b836c828":()=>e.f,"60e8b8ade9e384ec961e149b3ff3e54439151e080e":()=>e.X3,"703abd5e75b95def61888421b1c7ebc7607e33b19a":()=>e.pX,"70a7920c511d310333012c3a11ba159f741b46c186":()=>e.FZ});var e=c(85224),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},53134:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{H5:()=>r,JX:()=>l,Jh:()=>s,f:()=>p,gm:()=>m,rt:()=>t,x3:()=>q});var e=c(29021),f=c.n(e),g=c(33873),h=c.n(g);c(20018);var i=c(14432),j=c(4120);c(16081);var k=a([j]);function l(){return(0,j.kh)()}j=(k.then?(await k)():k)[0];let u=new Set([".git","node_modules","app",".next",".DS_Store"]),v=new Set([".md",".csv",".json"]),w=null,x=0,y=new i.Xs;function m(){w=null,x++,(0,i._E)(),y.invalidate()}let z=null,A=null;function n(a,b){try{let c=f().readFileSync(a,"utf-8"),d=[];for(let a of c.split("\n")){let c=a.trim();if(!(!c||c.startsWith("#"))&&(d.push(c),d.length>=b))break}return d}catch{return[]}}let B=["Define local execution rules for this directory.","(your files here)","(Describe the purpose and usage of this space.)","(Add usage guidelines for this space.)"];function o(a){try{let b=f().readFileSync(a,"utf-8");return B.some(a=>b.includes(a))}catch{return!1}}function p(){var a;let b,c;return(null!==w&&Date.now()-w.timestamp<5e3?w:(a=l(),b=function a(b,c){let d,e=c??l();try{d=f().readdirSync(b,{withFileTypes:!0})}catch{return[]}let g=[];for(let c of d){let d=h().join(b,c.name),f=h().relative(e,d);if(c.isDirectory()){if(u.has(c.name))continue;let b=a(d,e);if(b.length>0){let a=b.some(a=>"file"===a.type&&"INSTRUCTION.md"===a.name),e={name:c.name,path:f,type:"directory",children:b};a&&(e.isSpace=!0,e.spacePreview=function(a){let b=h().join(a,"INSTRUCTION.md"),c=h().join(a,"README.md");return{instructionLines:n(b,3),readmeLines:n(c,3),isTemplate:o(b)&&o(c)}}(d)),g.push(e)}}else if(c.isFile()){let a=h().extname(c.name).toLowerCase();v.has(a)&&g.push({name:c.name,path:f,type:"file",extension:a})}}return g.sort((a,b)=>a.type!==b.type?"directory"===a.type?-1:1:a.name.localeCompare(b.name)),g}(a),c=[],function a(b){for(let d of b)"file"===d.type?c.push(d.path):d.children&&a(d.children)}(b),w={tree:b,allFiles:c,timestamp:Date.now()},z||function(){let a;if(!z){try{a=l()}catch{return}try{(z=f().watch(a,{recursive:!0},(a,b)=>{!b||b.startsWith(".git")||b.includes("node_modules")||b.includes(".next")||(A&&clearTimeout(A),A=setTimeout(()=>{w=null,A=null},500))})).on("error",()=>{A&&(clearTimeout(A),A=null),z&&(z.close(),z=null)})}catch{z=null}}}(),w)).allFiles}function q(a,b=""){(0,i.x3)(l(),a,b),w=null,x++,(0,i.As)(l(),a),y.isBuilt()&&y.updateFile(l(),a)}function r(a,b){let c=(0,i.H5)(l(),a,b);return m(),c}function s(a,b){let c=(0,i.OV)(l(),a,b);return m(),c}function t(a){(0,i.rt)(l(),a),m()}d()}catch(a){d(a)}})},61374:(a,b,c)=>{c.d(b,{gG:()=>d});function d(a){if(!a||"object"!=typeof a||Array.isArray(a))return;let b={},c=!1;for(let[d,e]of Object.entries(a)){if(!e||"object"!=typeof e||Array.isArray(e))continue;let a={};if("string"==typeof e.command&&e.command.trim()&&(a.command=e.command.trim()),Array.isArray(e.args)&&(a.args=e.args.filter(a=>"string"==typeof a)),e.env&&"object"==typeof e.env&&!Array.isArray(e.env)){let b={};for(let[a,c]of Object.entries(e.env))"string"==typeof c&&(b[a]=c);Object.keys(b).length>0&&(a.env=b)}"boolean"==typeof e.enabled&&(a.enabled=e.enabled),Object.keys(a).length>0&&(b[d]=a,c=!0)}return c?b:void 0}},85224:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ar:()=>v,Bn:()=>E,Dg:()=>B,EG:()=>C,FZ:()=>A,GB:()=>H,NN:()=>F,VO:()=>D,X3:()=>r,Ye:()=>y,bC:()=>G,f:()=>t,iJ:()=>s,jW:()=>u,ku:()=>x,pG:()=>w,pX:()=>z});var e=c(95349),f=c(29021),g=c.n(f),h=c(33873),i=c.n(h),j=c(53134),k=c(16081),l=c(15872),m=c(1160),n=c(42650),o=c(27114),p=c(89337),q=a([j]);async function r(a,b){try{let c=b.trim();if(!c)return{success:!1,error:"File name is required"};let d=c.endsWith(".md")||c.endsWith(".csv")?c:`${c}.md`,e=a?`${a}/${d}`:d;return(0,j.x3)(e),(0,n.revalidatePath)("/","layout"),{success:!0,filePath:e}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to create file"}}}async function s(a){try{let b=i().posix.basename(a);if(!a.includes("/")&&o.A.has(b))return{success:!1,error:`"${b}" is protected and cannot be deleted`};let c=(0,k.F0)((0,j.JX)(),a);return(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0,trashId:c.id}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete file"}}}async function t(a,b){try{let c=(0,j.H5)(a,b);return(0,n.revalidatePath)("/","layout"),{success:!0,newPath:c}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to rename file"}}}async function u(a){try{return(0,j.rt)(a),(0,n.revalidatePath)("/","layout"),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to convert to space"}}}async function v(a){try{let b=(0,k.F0)((0,j.JX)(),a);return(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0,trashId:b.id}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete folder"}}}async function w(a,b){try{let c=(0,j.Jh)(a,b);return(0,n.revalidatePath)("/","layout"),{success:!0,newPath:c}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to rename space"}}}async function x(a){try{let b=(0,k.F0)((0,j.JX)(),a);return(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0,trashId:b.id}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete space"}}}async function y(a){try{return(0,k.Lr)((0,j.JX)(),a,!1),(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Undo failed"}}}async function z(a,b,c=""){try{let{path:d}=(0,l._)((0,j.JX)(),a,b,c);return(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0,path:d}}catch(b){let a=b instanceof Error?b.message:"Failed to create space";if(a.includes("already exists"))return{success:!1,error:"A space with this name already exists"};return{success:!1,error:a}}}async function A(a,b,c){try{let d=(0,j.JX)(),e=i().resolve(d,a);if(!e.startsWith(d))return{success:!1,error:"Invalid path"};let f=i().join(e,"README.md"),h=i().join(e,"INSTRUCTION.md"),k=(0,l.c)(a,b,c);g().writeFileSync(f,k,"utf-8");let o=(0,m.e1)(b);return g().writeFileSync(h,(0,m.GL)(o),"utf-8"),(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to revert"}}}async function B(){return{files:(0,j.f)().filter(a=>i().basename(a).startsWith("\uD83E\uDDEA_example_"))}}async function C(){try{let{files:a}=await B();if(0===a.length)return{success:!0,deleted:0};let b=(0,j.JX)();for(let c of a){let a=i().resolve(b,c);a.startsWith(b)&&g().existsSync(a)&&g().unlinkSync(a)}for(let c of[...new Set(a.map(a=>i().dirname(i().resolve(b,a))))].sort((a,b)=>b.length-a.length))try{if(c.startsWith(b)&&c!==b){let a=g().readdirSync(c);0===a.length&&g().rmdirSync(c)}}catch{}return(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0,deleted:a.length}}catch(a){return{success:!1,deleted:0,error:a instanceof Error?a.message:"Failed to cleanup"}}}async function D(a){let b=(0,j.f)(),c=a.endsWith("/")?a:a+"/";return b.filter(a=>a.startsWith(c))}async function E(){return(0,k.JI)((0,j.JX)()),(0,k.hQ)((0,j.JX)())}async function F(a,b="restore"){try{let c,d=(0,j.JX)();return c="copy"===b?(0,k.kz)(d,a):(0,k.Lr)(d,a,"overwrite"===b),(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0,restoredPath:c.restoredPath}}catch(a){if("RESTORE_CONFLICT"===a.code)return{success:!1,error:a.message,conflict:!0};return{success:!1,error:a.message??"Failed to restore"}}}async function G(a){try{return(0,k.vn)((0,j.JX)(),a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete"}}}async function H(){try{let a=(0,k.YN)((0,j.JX)());return{success:!0,count:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to empty trash"}}}j=(q.then?(await q)():q)[0],(0,p.D)([r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H]),(0,e.A)(r,"60e8b8ade9e384ec961e149b3ff3e54439151e080e",null),(0,e.A)(s,"40712ef89b592cb0dfe83d48226e5d7e85d3a476fc",null),(0,e.A)(t,"60ce7c56bbc72c11734fa2f22e49b51ea8b836c828",null),(0,e.A)(u,"40e769760c6520fd9b7d98d8ebbed2af6665b635be",null),(0,e.A)(v,"4037047fbca1470b774a4234ec8e6580683ab890bc",null),(0,e.A)(w,"60c8a9699fdf506bf82ba48c32aa2534ceb4afbf94",null),(0,e.A)(x,"409f6527dde2a320f2d47ff4200072165e2eaf1004",null),(0,e.A)(y,"40320bffb9c64de88b4b1cced0a4cb6ee6440760d2",null),(0,e.A)(z,"703abd5e75b95def61888421b1c7ebc7607e33b19a",null),(0,e.A)(A,"70a7920c511d310333012c3a11ba159f741b46c186",null),(0,e.A)(B,"0028ac07fa894e776b7666e1f2643e303526c52992",null),(0,e.A)(C,"00a77aaa92b0d837329f618a317599128e4465e53f",null),(0,e.A)(D,"40648f7ff6354f87b3ecb3ea6b69829f4a5b3b8877",null),(0,e.A)(E,"00f59dc5929d7c0ad2b800aa38b5a309973b9e59cc",null),(0,e.A)(F,"60191bfbfd85e9682a7841c6b286714251e2fa6c3e",null),(0,e.A)(G,"4064893ba25ca78194dda7489e2204570fbec8ae6c",null),(0,e.A)(H,"008ce10c99011aa085231609f599226e2fc202a5b7",null),d()}catch(a){d(a)}})},99863:(a,b,c)=>{c.d(b,{cP:()=>g,eX:()=>h});var d=c(33873),e=c.n(d),f=c(20018);function g(a,b){if(!a.startsWith(b+e().sep)&&a!==b)throw new f.Vt(f.tG.PATH_OUTSIDE_ROOT,"Access denied: path outside MIND_ROOT",{resolved:a,root:b})}function h(a,b){let c=e().resolve(a),d=e().resolve(e().join(c,b));return g(d,c),d}}};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{1762:(e,t,s)=>{"use strict";s.d(t,{D:()=>n});var r=s(9339);let n=(0,r.createServerReference)("0028ac07fa894e776b7666e1f2643e303526c52992",r.callServer,void 0,r.findSourceMapURL,"scanExampleFilesAction")},4235:(e,t,s)=>{"use strict";s.d(t,{B1:()=>o,X8:()=>d,dV:()=>l,oR:()=>m});let r=[],n=[],a=0;function i(){for(let e of n)e()}function o(e){return n=[...n,e],()=>{n=n.filter(t=>t!==e)}}function l(){return r}function d(e){r=r.filter(t=>t.id!==e),i()}function c(e){let t=`toast-${++a}`,s={id:t,message:e.message,type:e.type??"info",duration:e.duration??2e3,action:e.action};r=[...r,s].slice(-3),i(),s.duration>0&&setTimeout(()=>d(t),s.duration)}function m(e,t){c({message:e,...t})}m.success=(e,t)=>c({message:e,type:"success",duration:t}),m.undo=(e,t,s)=>c({message:e,type:"info",duration:s?.duration??5e3,action:{label:s?.label??"Undo",onClick:t}}),m.error=(e,t)=>c({message:e,type:"error",duration:t}),m.copy=(e="Copied")=>c({message:e,type:"success",duration:1500})},6496:(e,t,s)=>{"use strict";s.d(t,{A:()=>h});var r=s(95155),n=s(12115),a=s(98500),i=s.n(a),o=s(93219),l=s(21628),d=s(12651),c=s(13545),m=s(66088),u=s(91337),x=s(91053),p=s(42833);function h(){let{t:e,locale:t}=(0,x.Y)(),[s,a]=(0,n.useState)([]),[h,f]=(0,n.useState)(!0),[g,b]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let e=!1,t=()=>{fetch("/api/agent-activity?limit=20").then(e=>e.json()).then(t=>{e||a(t.events??[])}).catch(()=>{}).finally(()=>{e||f(!1)})};t();let s=()=>{"visible"===document.visibilityState&&t()};return document.addEventListener("visibilitychange",s),()=>{e=!0,document.removeEventListener("visibilitychange",s)}},[]);let v=(0,n.useMemo)(()=>{let e=s.filter(e=>{let t=(0,p.wT)(e.tool);return"write"===t||"create"===t||"delete"===t});return e.length>=3?e:s},[s]),j=g?v:v.slice(0,5),N=v.length-5;if(h)return(0,r.jsxs)("section",{className:"animate-pulse","aria-label":"Recent Activity",children:[(0,r.jsx)("div",{className:"h-4 w-36 bg-muted rounded mb-3"}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("div",{className:"h-10 bg-muted/50 rounded-lg"}),(0,r.jsx)("div",{className:"h-10 bg-muted/50 rounded-lg"})]})]});if(0===s.length)return null;let y=e.agentsContent?.overview;return(0,r.jsxs)("section",{"aria-label":"Recent Activity",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,r.jsx)("span",{className:"text-[var(--amber)]",children:(0,r.jsx)(o.A,{size:13})}),(0,r.jsx)("h2",{className:"text-sm font-semibold font-display text-foreground",children:y?.recentActivity??"Recent Activity"}),(0,r.jsx)("div",{className:"ml-auto",children:(0,r.jsxs)(i(),{href:"/agents?tab=activity",className:"flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] hover:opacity-80 transition-colors font-display",children:[(0,r.jsx)(l.A,{size:12}),(0,r.jsx)("span",{children:y?.viewAll??"View all"})]})})]}),(0,r.jsx)("div",{className:"rounded-xl border border-border bg-card overflow-hidden",children:j.map((e,s)=>{let n=(0,p.wT)(e.tool),a=(0,p.oK)(e.params);return(0,r.jsxs)("div",{className:`flex items-center gap-3 px-3.5 py-2.5 ${s>0?"border-t border-border/30":""} hover:bg-muted/30 transition-colors`,children:[(0,r.jsx)(p.g,{kind:n,locale:t,size:"sm"}),a?(0,r.jsx)(i(),{href:`/view/${(0,u.O0)(a)}`,className:"text-xs text-[var(--amber)]/80 hover:text-[var(--amber)] truncate min-w-0 flex-1 font-display transition-colors",title:a,children:a}):(0,r.jsx)("span",{className:"flex-1"}),e.agentName&&(0,r.jsx)("span",{className:"text-[0.6rem] font-medium text-muted-foreground/70 bg-muted/60 px-1.5 py-0.5 rounded-full shrink-0 font-display",title:e.agentName,children:e.agentName.length>20?e.agentName.slice(0,20)+"...":e.agentName}),"ok"===e.result?(0,r.jsx)(d.A,{size:11,className:"shrink-0 text-[var(--success)]/60"}):(0,r.jsx)(c.A,{size:11,className:"shrink-0 text-[var(--error)]/60"}),(0,r.jsx)("span",{className:"text-2xs text-muted-foreground/40 tabular-nums shrink-0 font-display",title:e.ts,children:(0,p.MZ)(e.ts)})]},e.id??s)})}),N>0&&(0,r.jsxs)("button",{onClick:()=>b(e=>!e),className:"flex items-center gap-1.5 mt-2 text-xs font-medium text-[var(--amber)] hover:opacity-80 transition-opacity cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded",children:[(0,r.jsx)(m.A,{size:12,className:`transition-transform duration-200 ${g?"rotate-180":""}`}),(0,r.jsx)("span",{children:g?y?.showLess??"Show less":`${N} more`})]})]})}},7834:(e,t,s)=>{"use strict";async function r(e){if(navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}try{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let s=document.execCommand("copy");return document.body.removeChild(t),s}catch{return!1}}s.d(t,{l:()=>r})},10377:(e,t,s)=>{"use strict";s.d(t,{Z:()=>h});var r=s(12115);let n="mindos-pinned-files",a="mindos:pins-changed";function i(){try{let e=localStorage.getItem(n);return e?JSON.parse(e):[]}catch{return[]}}function o(){return c}let l=[];function d(){return l}let c=[],m=!1;function u(){m||(c=i(),m=!0)}function x(e){u();let t=t=>{t.key===n&&(c=i(),e())},s=()=>{c=i(),e()};return window.addEventListener("storage",t),window.addEventListener(a,s),()=>{window.removeEventListener("storage",t),window.removeEventListener(a,s)}}function p(e){c=e;try{localStorage.setItem(n,JSON.stringify(e))}catch{}window.dispatchEvent(new Event(a))}function h(){u();let e=(0,r.useSyncExternalStore)(x,o,d),t=(0,r.useCallback)(t=>e.includes(t),[e]),s=(0,r.useCallback)(e=>{let t=i(),s=t.indexOf(e);s>=0?t.splice(s,1):t.unshift(e),p(t)},[]);return{pinnedFiles:e,isPinned:t,togglePin:s,reorderPins:(0,r.useCallback)(e=>{p(e)},[]),removePin:(0,r.useCallback)(e=>{p(i().filter(t=>t!==e))},[])}}},14153:(e,t,s)=>{Promise.resolve().then(s.bind(s,46515))},22356:(e,t,s)=>{"use strict";s.d(t,{h:()=>r,n:()=>n});class r extends Error{constructor(e,t,s){super(e),this.name="ApiError",this.status=t,this.code=s}}async function n(e,t={}){let s,a,i,{timeout:o=3e4,signal:l,...d}=t;if((o>0||l)&&(s=new AbortController),o>0&&s&&(a=setTimeout(()=>{s.abort(Error(`Request timed out after ${Math.round(o/1e3)}s`))},o)),l&&s)if(l.aborted)s.abort();else{let e=()=>s?.abort();l.addEventListener("abort",e,{once:!0}),i=()=>{l.removeEventListener("abort",e)}}let c=s?.signal??l;try{let t=await fetch(e,{...d,signal:c});if(!t.ok){let e,s=`Request failed (${t.status})`;try{let r=await t.json();r?.error?.code&&r?.error?.message?(s=r.error.message,e=r.error.code):r?.error&&(s="string"==typeof r.error?r.error:r.error.message??s)}catch{}throw new r(s,t.status,e)}return await t.json()}finally{a&&clearTimeout(a),i&&i()}}},27318:(e,t,s)=>{"use strict";s.d(t,{KT:()=>c,NH:()=>d});var r=s(12115);let n={open:!1,initialMessage:"",source:"user",acpAgent:null},a=new Set;function i(){a.forEach(e=>e())}function o(e){return a.add(e),()=>{a.delete(e)}}function l(){return n}function d(e="",t="user",s=null){n={open:!0,initialMessage:e,source:t,acpAgent:s},i()}function c(){let e=(0,r.useSyncExternalStore)(o,l,l);return{open:e.open,initialMessage:e.initialMessage,source:e.source,acpAgent:e.acpAgent,openWith:(0,r.useCallback)((e,t="user",s=null)=>d(e,t,s),[]),close:(0,r.useCallback)(()=>void(n={open:!1,initialMessage:"",source:"user",acpAgent:null},i()),[])}}},29494:(e,t,s)=>{"use strict";s.d(t,{Q:()=>n});var r=s(4235);async function n(e,t){let s=[],n=0;for(let t of e){if(t.size>0xa00000){n++;continue}try{if(t.name.toLowerCase().endsWith(".pdf")){let e=await t.arrayBuffer();s.push({name:t.name,content:function(e){let t=new Uint8Array(e),s=[];for(let e=0;e<t.length;e+=8192)s.push(String.fromCharCode(...t.subarray(e,e+8192)));return btoa(s.join(""))}(e),encoding:"base64"})}else{let e=await t.text();s.push({name:t.name,content:e})}}catch{}}if(0===s.length)return void(n>0?r.oR.error(t.inbox.tooLarge(n),4e3):e.length>0&&r.oR.error(t.inbox.saveFailed,4e3));try{var a;let e=await fetch("/api/inbox",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:s})});if(!e.ok){let s=await e.json().catch(()=>({}));console.error("[QuickDrop] Save failed:",s.error),r.oR.error(t.inbox.saveFailed,4e3);return}let i=await e.json(),o=i.saved?.length??0,l=i.skipped?.length??0;a=n,o>0&&a>0&&0===l?r.oR.success(t.inbox.savedWithOversized(o,a),4e3):o>0&&l+a>0?r.oR.success(t.inbox.savedWithSkipped(o,l+a),4e3):o>0?r.oR.success(t.inbox.savedToast(o),3e3):(a>0&&r.oR.error(t.inbox.tooLarge(a),4e3),l>0&&r.oR.error(t.inbox.savedWithSkipped(0,l),4e3),0===a&&0===l&&r.oR.error(t.inbox.saveFailed,4e3)),window.dispatchEvent(new Event("mindos:files-changed")),window.dispatchEvent(new Event("mindos:inbox-updated"))}catch(e){console.error("[QuickDrop] Network error:",e),r.oR.error(t.inbox.saveFailed,4e3)}}},42833:(e,t,s)=>{"use strict";s.d(t,{$2:()=>p,CF:()=>m,MZ:()=>h,g:()=>g,hf:()=>x,oK:()=>f,wT:()=>c,zR:()=>u});var r=s(95155),n=s(84980),a=s(3926),i=s(93631),o=s(68459),l=s(61878),d=s(10762);function c(e){return/search/.test(e)?"search":/read|list|get/.test(e)?"read":/create/.test(e)?"create":/delete/.test(e)?"delete":/write|update|insert|append/.test(e)?"write":"other"}let m={en:{read:"Read",write:"Write",create:"Create",delete:"Delete",search:"Search",other:"Other"},zh:{read:"读取",write:"写入",create:"创建",delete:"删除",search:"搜索",other:"其他"}},u={read:{bg:"rgba(138,180,216,0.10)",text:"#8ab4d8",border:"rgba(138,180,216,0.25)"},write:{bg:"rgba(200,135,58,0.10)",text:"var(--amber)",border:"rgba(200,135,58,0.25)"},create:{bg:"rgba(122,173,128,0.10)",text:"var(--success)",border:"rgba(122,173,128,0.25)"},delete:{bg:"rgba(200,80,80,0.10)",text:"var(--error)",border:"rgba(200,80,80,0.25)"},search:{bg:"rgba(200,160,216,0.10)",text:"#c8a0d8",border:"rgba(200,160,216,0.25)"},other:{bg:"var(--muted)",text:"var(--muted-foreground)",border:"var(--border)"}};function x({kind:e,size:t=13}){return"read"===e?(0,r.jsx)(n.A,{size:t}):"write"===e?(0,r.jsx)(a.A,{size:t}):"create"===e?(0,r.jsx)(i.A,{size:t}):"delete"===e?(0,r.jsx)(o.A,{size:t}):"search"===e?(0,r.jsx)(l.A,{size:t}):(0,r.jsx)(d.A,{size:t})}function p(e){try{return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return e}}function h(e){let t=Date.now()-new Date(e).getTime(),s=Math.floor(t/6e4),r=Math.floor(t/36e5),n=Math.floor(t/864e5);return s<1?"<1m":s<60?`${s}m`:r<24?`${r}h`:`${n}d`}function f(e){return"string"==typeof e.path?e.path:null}function g({kind:e,locale:t,size:s="md"}){let n=u[e],a=m[t?.startsWith("zh")?"zh":"en"][e];return(0,r.jsxs)("span",{className:"font-display",style:{display:"inline-flex",alignItems:"center",gap:3,padding:"sm"===s?"1px 6px":"2px 8px",borderRadius:999,fontSize:"sm"===s?"0.6rem":"0.68rem",fontWeight:600,background:n.bg,color:n.text,border:`1px solid ${n.border}`,flexShrink:0,whiteSpace:"nowrap"},children:[(0,r.jsx)(x,{kind:e,size:"sm"===s?9:10}),a]})}},46515:(e,t,s)=>{"use strict";s.d(t,{default:()=>eo});var r=s(95155),n=s(98500),a=s.n(n),i=s(66088),o=s(33078),l=s(48368),d=s(86901),c=s(61878),m=s(93631),u=s(21628),x=s(90718),p=s(38798),h=s(84980),f=s(50538),g=s(94290),b=s(33210),v=s(51914),j=s(94514),N=s(6296),y=s(68459),w=s(12115),k=s(91053),A=s(91337),z=s(10377),C=s(73321),E=s(92451),S=s(97810),T=s(13545),L=s(31025);let M=[{id:"en",icon:(0,r.jsx)(E.A,{size:20}),dirs:["Profile/","Connections/","Notes/","Workflows/","Resources/","Projects/"]},{id:"zh",icon:(0,r.jsx)(S.A,{size:20}),dirs:["画像/","关系/","笔记/","流程/","资源/","项目/"]},{id:"empty",icon:(0,r.jsx)(l.A,{size:20}),dirs:["README.md","CONFIG.json","INSTRUCTION.md"]}];function $(){let{t:e}=(0,k.Y)(),t=(0,C.useRouter)(),[s,n]=(0,w.useState)(null),[a,i]=(0,w.useState)(null),o=e.onboarding;async function l(e){n(e),i(null);try{let s=await fetch("/api/init",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({template:e})});if(!s.ok){let e=await s.json().catch(()=>({}));throw Error(e.error||`HTTP ${s.status}`)}t.refresh()}catch(e){console.error("[Onboarding] init failed:",e),i(e instanceof Error?e.message:"Unknown error"),n(null)}}return(0,r.jsxs)("div",{className:"content-width px-4 md:px-6 py-12 md:py-20",children:[(0,r.jsxs)("div",{className:"text-center mb-10",children:[(0,r.jsxs)("div",{className:"inline-flex items-center gap-2 mb-4",children:[(0,r.jsx)(d.A,{size:18,className:"text-[var(--amber)]"}),(0,r.jsx)("h1",{className:"text-2xl font-semibold tracking-tight font-display text-foreground",children:"MindOS"})]}),(0,r.jsx)("p",{className:"text-sm leading-relaxed max-w-md mx-auto text-muted-foreground",children:o.subtitle})]}),a&&(0,r.jsxs)("div",{role:"alert",className:"max-w-2xl mx-auto mb-6 flex items-center gap-2.5 px-4 py-3 rounded-lg border border-destructive/30 bg-destructive/5 text-sm text-destructive",children:[(0,r.jsx)(T.A,{size:16,className:"shrink-0"}),(0,r.jsx)("span",{className:"flex-1",children:o.initError??"Initialization failed. Please try again."}),(0,r.jsx)("button",{onClick:()=>i(null),className:"text-xs underline shrink-0 hover:opacity-80",children:o.dismiss??"Dismiss"})]}),(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4 max-w-2xl mx-auto mb-10",children:M.map(t=>{let n=s===t.id,a=null!==s;return(0,r.jsxs)("button",{disabled:a,title:a?e.hints.templateInitializing:void 0,onClick:()=>l(t.id),className:"group relative flex flex-col items-start gap-3 p-5 rounded-xl border border-border bg-card text-left transition-all duration-150 hover:border-[var(--amber)]/50 hover:bg-[var(--amber)]/5 disabled:opacity-60 disabled:cursor-not-allowed",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2.5 w-full",children:[(0,r.jsx)("span",{className:"text-[var(--amber)]",children:t.icon}),(0,r.jsx)("span",{className:"text-sm font-semibold text-foreground",children:o.templates[t.id].title}),n&&(0,r.jsx)(N.A,{size:14,className:"animate-spin ml-auto text-[var(--amber)]"})]}),(0,r.jsx)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:o.templates[t.id].desc}),(0,r.jsx)("div",{className:"w-full rounded-lg px-3 py-2 text-xs leading-relaxed font-display bg-muted text-muted-foreground opacity-80",children:t.dirs.map(e=>(0,r.jsx)("div",{children:e},e))})]},t.id)})}),(0,r.jsx)("p",{className:"text-center text-xs leading-relaxed max-w-sm mx-auto font-display text-muted-foreground opacity-60",children:o.importHint}),(0,r.jsx)("p",{className:"text-center mt-2",children:(0,r.jsx)("button",{type:"button",onClick:()=>window.dispatchEvent(new CustomEvent("mindos:open-import")),className:"text-xs text-[var(--amber-text)] hover:underline transition-colors",children:e.fileImport.onboardingHint})}),(0,r.jsxs)("div",{className:"max-w-md mx-auto mt-6 flex items-center gap-3 px-4 py-3 rounded-lg border border-border bg-card text-left",children:[(0,r.jsx)(L.A,{size:16,className:"text-muted-foreground shrink-0"}),(0,r.jsx)("div",{className:"min-w-0",children:(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:[o.syncHint??"Want cross-device sync? Run"," ",(0,r.jsx)("code",{className:"font-mono px-1 py-0.5 rounded select-all bg-muted text-[11px]",children:"mindos sync init"})," ",o.syncHintSuffix??"in the terminal after setup."]})})]})]})}var R=s(21362),D=s(21975),O=s(92564),W=s(22164),P=s(67635),I=s(7834),H=s(4235),F=s(27318),K=s(76449);function U(){let{t:e}=(0,k.Y)(),t=e.guide,[s,n]=(0,w.useState)(null),[i,o]=(0,w.useState)(null),[l,c]=(0,w.useState)(!1),[m,u]=(0,w.useState)(!1),x=(0,w.useCallback)(()=>{fetch("/api/setup").then(e=>e.json()).then(e=>{let t=e.guideState;t?.active&&!t.dismissed?n(t):n(null)}).catch(e=>{console.warn("[GuideCard] Fetch guide state failed:",e)})},[]);(0,w.useEffect)(()=>{x();let e=()=>{c(!0)};window.addEventListener("mindos:first-visit",e);let t=()=>x();return window.addEventListener("focus",t),window.addEventListener("guide-state-updated",t),()=>{window.removeEventListener("mindos:first-visit",e),window.removeEventListener("focus",t),window.removeEventListener("guide-state-updated",t)}},[x]);let p=(0,w.useCallback)(e=>{n(t=>t?{...t,...e}:t),fetch("/api/setup",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({guideState:e})}).catch(e=>{console.warn("[GuideCard] PATCH guide state failed:",e)})},[]),h=(0,w.useCallback)(()=>{p({dismissed:!0}),n(null)},[p]),f=(0,w.useCallback)(()=>{window.dispatchEvent(new CustomEvent("mindos:open-import"))},[]),g=(0,w.useCallback)(()=>{p({step1Done:!0}),o(null)},[p]);(0,w.useEffect)(()=>{if(!s||s.step1Done)return;let e=()=>p({step1Done:!0});return window.addEventListener("mindos:files-changed",e),()=>window.removeEventListener("mindos:files-changed",e)},[s,s?.step1Done,p]);let v=(0,w.useCallback)(()=>{let e=s?.template==="empty"?t.ai.promptEmpty:t.ai.prompt;(0,F.NH)(e,"guide")},[s,t]),j=(0,w.useCallback)(async()=>{await (0,I.l)(t.agent.copyPrompt)&&H.oR.copy()},[t]),N=(0,w.useCallback)(()=>{u(!0),o(null),p({nextStepIndex:0})},[p]),y=(0,w.useCallback)(()=>{if(!s)return;let e=s.nextStepIndex,r=t.done.steps;e<r.length&&((0,F.NH)(r[e].prompt,"guide-next"),p({nextStepIndex:e+1}))},[s,t,p]);(0,w.useEffect)(()=>{l&&s&&!s.step1Done&&o("import")},[l,s]);let A=(0,w.useRef)({s1:!1,s2:!1});(0,w.useEffect)(()=>{if(!s)return;let e=A.current;s.step1Done&&!e.s1&&(o("ai"),e.s1=!0),s.askedAI&&!e.s2&&(o("agent"),e.s2=!0)},[s?.step1Done,s?.askedAI,s]);let z=s?.step1Done??!1,C=s?.askedAI??!1,E=s?.nextStepIndex??0,S=z&&C&&m,T=S&&E>=t.done.steps.length,L=(0,w.useRef)(null);if((0,w.useEffect)(()=>(T&&(L.current=setTimeout(()=>h(),8e3)),()=>{L.current&&clearTimeout(L.current)}),[T,h]),!s||void 0!==s.walkthroughStep&&s.walkthroughStep>=0&&s.walkthroughStep<K.g.length&&!s.walkthroughDismissed)return null;let M=z&&C&&!m;if(S&&T)return(0,r.jsxs)("div",{className:"mb-6 rounded-xl border border-[var(--amber)] px-5 py-4 flex items-center gap-3 animate-in fade-in duration-300 bg-[var(--amber-subtle)]",children:[(0,r.jsx)(d.A,{size:16,className:"animate-spin-slow text-[var(--amber)]"}),(0,r.jsx)("span",{className:"text-sm font-semibold flex-1 text-foreground",children:t.done.titleFinal}),(0,r.jsx)(a(),{href:"/explore",className:"text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80",children:e.walkthrough.exploreCta}),(0,r.jsx)("button",{onClick:h,className:"p-1 rounded hover:bg-muted transition-colors text-muted-foreground",children:(0,r.jsx)(b.A,{size:14})})]});if(S){let e=t.done.steps[E];return(0,r.jsxs)("div",{className:"mb-6 rounded-xl border border-[var(--amber)] px-5 py-4 animate-in fade-in duration-300 bg-[var(--amber-subtle)]",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)(d.A,{size:16,className:"text-[var(--amber)]"}),(0,r.jsx)("span",{className:"text-sm font-semibold flex-1 text-foreground",children:t.done.title}),(0,r.jsx)("button",{onClick:h,className:"p-1 rounded hover:bg-muted transition-colors text-muted-foreground",children:(0,r.jsx)(b.A,{size:14})})]}),e&&(0,r.jsxs)("button",{onClick:y,className:"mt-3 flex items-center gap-2 text-sm text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer animate-in fade-in slide-in-from-left-2 duration-300",children:[(0,r.jsx)(R.A,{size:14}),(0,r.jsx)("span",{children:e.hint})]})]})}return(0,r.jsxs)("div",{className:"mb-6 rounded-xl border border-[var(--amber)] overflow-hidden bg-[var(--amber-subtle)]",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 px-5 pt-4 pb-2",children:[(0,r.jsx)(d.A,{size:16,className:"text-[var(--amber)]"}),(0,r.jsx)("span",{className:"text-sm font-semibold flex-1 font-display text-foreground",children:t.title}),(0,r.jsx)("button",{onClick:h,className:"p-1 rounded hover:bg-muted transition-colors text-muted-foreground",children:(0,r.jsx)(b.A,{size:14})})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-2 px-5 py-3",children:[(0,r.jsx)(_,{icon:(0,r.jsx)(D.A,{size:16}),title:t.import.title,cta:t.import.cta,done:z,active:"import"===i,onClick:()=>z?null:o("import"===i?null:"import")}),(0,r.jsx)(_,{icon:(0,r.jsx)(O.A,{size:16}),title:t.ai.title,cta:t.ai.cta,done:C,active:"ai"===i,dimmed:!z,onClick:()=>{!C&&z&&o("ai"===i?null:"ai")}}),(0,r.jsx)(_,{icon:(0,r.jsx)(W.A,{size:16}),title:t.agent.title,cta:t.agent.cta,done:m,active:"agent"===i,dimmed:!z||!C,onClick:()=>{z&&C&&o("agent"===i?null:"agent")}})]}),"import"===i&&!z&&(0,r.jsx)("div",{className:"px-5 pb-4 animate-in slide-in-from-top-2 duration-200",children:(0,r.jsxs)("div",{className:"rounded-lg border border-border bg-card p-4",children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground mb-3",children:t.import.desc}),(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("button",{onClick:f,className:"text-xs font-medium px-4 py-2 rounded-lg transition-all hover:opacity-90",style:{background:"var(--amber)",color:"var(--amber-foreground)"},children:t.import.button}),(0,r.jsx)("button",{onClick:g,className:"text-xs px-3 py-1 rounded-lg text-muted-foreground transition-colors hover:bg-muted",children:t.skip})]})]})}),"ai"===i&&z&&!C&&(0,r.jsx)("div",{className:"px-5 pb-4 animate-in slide-in-from-top-2 duration-200",children:(0,r.jsxs)("div",{className:"rounded-lg border border-border bg-card p-4",children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground mb-3",children:t.ai.desc}),(0,r.jsxs)("button",{onClick:v,className:"text-xs font-medium px-4 py-2 rounded-lg transition-all hover:opacity-90",style:{background:"var(--amber)",color:"var(--amber-foreground)"},children:[t.ai.cta," →"]})]})}),"agent"===i&&M&&(0,r.jsx)("div",{className:"px-5 pb-4 animate-in slide-in-from-top-2 duration-200",children:(0,r.jsxs)("div",{className:"rounded-lg border border-border bg-card p-4",children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground mb-3",children:t.agent.desc}),(0,r.jsxs)("div",{className:"relative rounded-lg border border-border bg-muted/50 p-3 pr-16",children:[(0,r.jsx)("p",{className:"text-xs font-mono text-foreground leading-relaxed whitespace-pre-wrap",children:t.agent.copyPrompt}),(0,r.jsxs)("button",{onClick:j,className:"absolute top-2 right-2 flex items-center gap-1 text-2xs font-medium px-2.5 py-1.5 rounded-md border transition-all border-border bg-card text-muted-foreground hover:text-foreground hover:border-[var(--amber)]/30",children:[(0,r.jsx)(P.A,{size:11}),t.agent.copy]})]}),(0,r.jsx)("div",{className:"flex items-center justify-end mt-3 pt-3 border-t border-border",children:(0,r.jsx)("button",{onClick:N,className:"text-xs px-3 py-1 rounded-lg text-muted-foreground transition-colors hover:bg-muted",children:t.skip})})]})})]})}function _({icon:e,title:t,cta:s,done:n,active:a,dimmed:i,onClick:o}){return(0,r.jsxs)("button",{onClick:o,disabled:n||i,className:`
|
|
2
|
-
flex flex-col items-center gap-1.5 px-3 py-3 rounded-lg border text-center
|
|
3
|
-
transition-all duration-150
|
|
4
|
-
${n?"opacity-60":i?"opacity-40 cursor-default":"hover:border-[var(--amber)]/30 hover:bg-muted/50 cursor-pointer"}
|
|
5
|
-
${a?"border-[var(--amber)]/40 bg-muted/50":""}
|
|
6
|
-
${n||a?"border-[var(--amber)]":"border-border"}
|
|
7
|
-
`,children:[(0,r.jsx)("span",{className:`${n?"animate-in zoom-in-50 duration-300 text-success":"text-[var(--amber)]"}`,children:n?(0,r.jsx)(j.A,{size:16}):e}),(0,r.jsx)("span",{className:"text-xs font-medium text-foreground",children:t}),!n&&!i&&(0,r.jsxs)("span",{className:"text-2xs text-[var(--amber-text)]",children:[s," →"]})]})}var Y=s(49619),J=s(70617);let B="mindos:pulse-collapsed";function Q(){let e=(0,J.cd)(),{t}=(0,k.Y)(),s=t.pulse,[n,o]=(0,w.useState)(!1),[l,d]=(0,w.useState)(!1);(0,w.useEffect)(()=>{let e=localStorage.getItem(B);null!==e&&o("1"===e)},[]);let c=e?.agents??[],m=e?.status??null,x=(0,w.useMemo)(()=>[...c].sort((e,t)=>{let s=e=>e.installed?3:2*!!e.present,r=s(t)-s(e);if(0!==r)return r;let n=e.runtimeLastActivityAt?new Date(e.runtimeLastActivityAt).getTime():0;return(t.runtimeLastActivityAt?new Date(t.runtimeLastActivityAt).getTime():0)-n}),[c]).filter(e=>e.installed),p=m?.running??!1,h=()=>{let e=!n;o(e),localStorage.setItem(B,e?"1":"0")};if(!e||e.loading)return(0,r.jsxs)("section",{className:"mb-8 animate-pulse",children:[(0,r.jsx)("div",{className:"h-4 w-32 bg-muted rounded mb-3"}),(0,r.jsx)("div",{className:"h-16 bg-muted/50 rounded-xl"})]});if(c.every(e=>!e.present))return(0,r.jsxs)("section",{className:"mb-10",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,r.jsx)("span",{className:"text-[var(--amber)]",children:(0,r.jsx)(Y.A,{size:13})}),(0,r.jsx)("h2",{className:"text-sm font-semibold font-display text-foreground",children:s.title})]}),(0,r.jsx)("div",{className:"rounded-xl border border-dashed border-border/60 p-4",children:(0,r.jsxs)("div",{className:"flex items-center gap-4",children:[(0,r.jsx)("div",{className:"w-9 h-9 rounded-lg bg-[var(--amber)]/8 flex items-center justify-center shrink-0",children:(0,r.jsx)(Y.A,{size:16,className:"text-[var(--amber)]"})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("p",{className:"text-sm font-medium text-foreground",children:s.connectTitle}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:s.connectDesc})]}),(0,r.jsxs)(a(),{href:"/agents",className:"shrink-0 inline-flex items-center gap-1.5 px-3.5 py-2 rounded-lg text-xs font-medium bg-[var(--amber)] text-[var(--amber-foreground)] transition-opacity hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[s.connectAction,(0,r.jsx)(u.A,{size:11})]})]})})]});let f=x.length;if(n)return(0,r.jsx)("section",{className:"mb-10",children:(0,r.jsxs)("button",{onClick:h,className:"w-full flex items-center gap-2 group cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded",children:[(0,r.jsx)("span",{className:"text-[var(--amber)]",children:(0,r.jsx)(Y.A,{size:13})}),(0,r.jsx)("h2",{className:"text-sm font-semibold font-display text-foreground",children:s.title}),f>0&&(0,r.jsx)("span",{className:"text-xs tabular-nums text-muted-foreground font-display",children:f}),(0,r.jsxs)("div",{className:"flex items-center gap-2 ml-1",children:[x.slice(0,3).map(e=>(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground/60",children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-emerald-500 shrink-0"}),(0,r.jsx)("span",{className:"hidden sm:inline",children:e.name})]},e.key)),f>3&&(0,r.jsxs)("span",{className:"text-xs text-muted-foreground/40",children:["+",f-3]})]}),(0,r.jsx)(i.A,{size:12,className:"ml-auto text-muted-foreground/30 group-hover:text-[var(--amber)] transition-colors"})]})});let g=l?x:x.slice(0,3),b=x.length-3;return(0,r.jsxs)("section",{className:"mb-10",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,r.jsx)("span",{className:"text-[var(--amber)]",children:(0,r.jsx)(Y.A,{size:13})}),(0,r.jsx)("h2",{className:"text-sm font-semibold font-display text-foreground",children:s.title}),f>0&&(0,r.jsx)("span",{className:"text-xs tabular-nums text-muted-foreground font-display",children:f}),p&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground/50 ml-1",children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-emerald-500"}),(0,r.jsx)("span",{className:"hidden sm:inline",children:s.running})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 ml-auto",children:[(0,r.jsx)(a(),{href:"/agents",className:"text-xs font-medium text-[var(--amber)] hover:opacity-80 transition-opacity font-display",children:s.manage}),(0,r.jsx)("button",{onClick:h,className:"p-1 rounded hover:bg-muted transition-colors text-muted-foreground/40 hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","aria-label":"Collapse",children:(0,r.jsx)(i.A,{size:12,className:"rotate-180"})})]})]}),(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-2",children:g.map(e=>{var t;let n,i=function(e){if(!e)return null;let t=Date.now()-new Date(e).getTime();return t<6e4?"<1m":t<36e5?`${Math.floor(t/6e4)}m`:t<864e5?`${Math.floor(t/36e5)}h`:`${Math.floor(t/864e5)}d`}(e.runtimeLastActivityAt);return(0,r.jsxs)(a(),{href:`/agents/${encodeURIComponent(e.key)}`,className:"flex items-center gap-3 px-3.5 py-3 rounded-xl border border-border hover:border-[var(--amber)]/30 hover:shadow-sm transition-all duration-150 hover:bg-muted/30 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,r.jsxs)("div",{className:"relative w-8 h-8 rounded-lg bg-[var(--amber)]/8 text-[var(--amber-text)] ring-1 ring-[var(--amber)]/15 flex items-center justify-center text-xs font-semibold font-display shrink-0",children:[(n=(t=e.name).split(/[\s-]+/)).length>=2?(n[0][0]+n[1][0]).toUpperCase():t.slice(0,2).toUpperCase(),(0,r.jsx)("span",{className:"absolute -top-0.5 -right-0.5 w-2 h-2 rounded-full bg-emerald-500 ring-[1.5px] ring-card"})]}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground block truncate",children:e.name}),(0,r.jsxs)("span",{className:"text-xs text-muted-foreground/60 block",children:[s.active,i?` \xb7 ${i}`:""]})]})]},e.key)})}),b>0&&(0,r.jsxs)("button",{onClick:()=>d(e=>!e),className:"flex items-center gap-1.5 mt-2 text-xs font-medium text-[var(--amber)] hover:opacity-80 transition-opacity cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded",children:[(0,r.jsx)(i.A,{size:12,className:`transition-transform duration-200 ${l?"rotate-180":""}`}),(0,r.jsx)("span",{children:l?s.showLess:s.showMore(b)})]})]})}var Z=s(15282),G=s(29494);function X({isOrganizing:e=!1}){let{t}=(0,k.Y)(),[s,n]=(0,w.useState)([]),[a,i]=(0,w.useState)(!0),[o,l]=(0,w.useState)(!1),[c,m]=(0,w.useState)(!1),u=(0,w.useRef)(null),x=e||c,p=(0,w.useCallback)(()=>{0===s.length||x||(m(!0),window.dispatchEvent(new CustomEvent("mindos:inbox-organize",{detail:{files:s}})))},[s,x]),h=(0,w.useCallback)(e=>{e&&0!==e.length&&((0,G.Q)(Array.from(e),t),u.current&&(u.current.value=""))},[t]),f=(0,w.useCallback)(async()=>{try{let e=await fetch("/api/inbox");if(!e.ok)return;let t=await e.json();Array.isArray(t.files)&&n(t.files)}catch(e){console.warn("[InboxSection] Failed to fetch inbox:",e)}finally{i(!1)}},[]),g=(0,w.useRef)(void 0),b=(0,w.useCallback)(()=>{clearTimeout(g.current),g.current=setTimeout(f,80)},[f]);(0,w.useEffect)(()=>{f();let e=()=>{m(!1),b()};return window.addEventListener("mindos:files-changed",b),window.addEventListener("mindos:inbox-updated",b),window.addEventListener("mindos:organize-done",e),()=>{clearTimeout(g.current),window.removeEventListener("mindos:files-changed",b),window.removeEventListener("mindos:inbox-updated",b),window.removeEventListener("mindos:organize-done",e)}},[f,b]);let v=(0,w.useMemo)(()=>o?s:s.slice(0,5),[s,o]),j=s.length-5;return a?(0,r.jsxs)("section",{className:"mb-10 animate-pulse",children:[(0,r.jsx)("div",{className:"h-4 w-24 bg-muted rounded mb-3"}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("div",{className:"h-10 bg-muted/50 rounded-lg"}),(0,r.jsx)("div",{className:"h-10 bg-muted/50 rounded-lg"})]})]}):(0,r.jsxs)("section",{className:"mb-10",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,r.jsx)("span",{className:"text-[var(--amber)]",children:(0,r.jsx)(Z.A,{size:13})}),(0,r.jsx)("h2",{className:"text-sm font-semibold font-display text-foreground",children:t.inbox.title}),s.length>0&&(0,r.jsx)("span",{className:"inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 text-2xs font-semibold rounded-full bg-[var(--amber)]/15 text-[var(--amber)] tabular-nums font-display",children:t.inbox.count(s.length)}),s.length>0&&(0,r.jsxs)("div",{className:"ml-auto flex items-center gap-3",children:[(0,r.jsx)("button",{type:"button",onClick:()=>u.current?.click(),className:"flex items-center gap-1.5 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground cursor-pointer font-display",title:t.inbox.uploadButton,children:(0,r.jsx)(D.A,{size:12})}),(0,r.jsxs)("button",{onClick:p,disabled:x,className:"flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer font-display disabled:opacity-50 disabled:cursor-not-allowed",title:x?t.inbox.organizing:void 0,children:[x?(0,r.jsx)(N.A,{size:12,className:"animate-spin"}):(0,r.jsx)(d.A,{size:12}),(0,r.jsx)("span",{children:x?t.inbox.organizing:t.inbox.organizeButton})]})]})]}),(0,r.jsx)("input",{ref:u,type:"file",multiple:!0,accept:".md,.txt,.csv,.json,.pdf",className:"hidden",onChange:e=>h(e.target.files)}),0===s.length?(0,r.jsxs)("div",{className:"rounded-xl border-2 border-dashed border-border px-4 py-8 text-center",children:[(0,r.jsx)(Z.A,{size:24,className:"mx-auto mb-2 text-muted-foreground/30"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground/70 font-display",children:t.inbox.emptyTitle}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground/40 mt-1",children:t.inbox.emptyDesc}),(0,r.jsxs)("button",{type:"button",onClick:()=>u.current?.click(),className:"mt-3 inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors bg-muted text-muted-foreground hover:text-foreground hover:bg-muted/80",children:[(0,r.jsx)(D.A,{size:12}),t.inbox.uploadButton]})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"flex flex-col gap-0.5",children:v.map(e=>(0,r.jsx)(q,{file:e},e.path))}),j>0&&(0,r.jsxs)("button",{onClick:()=>l(e=>!e),className:"flex items-center gap-1 mt-2 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer font-display",children:[(0,r.jsx)(R.A,{size:12,className:`transition-transform duration-150 ${o?"rotate-90":""}`}),o?t.home.showLess:t.inbox.more(j)]})]})]})}function q({file:e}){let{t}=(0,k.Y)(),s=e.name.endsWith(".csv"),n=function(e,t){let s=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(s<1)return t.justNow;if(s<60)return t.minutesAgo(s);let r=Math.floor(s/60);if(r<24)return t.hoursAgo(r);let n=Math.floor(r/24);return t.daysAgo(n)}(e.modifiedAt,t.home.relativeTime);return(0,r.jsxs)(a(),{href:`/view/${(0,A.O0)(e.path)}`,className:"flex items-center gap-3 px-3 py-2 rounded-lg transition-all duration-100 hover:translate-x-0.5 hover:bg-muted group",children:[(0,r.jsx)("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${e.isAging?"bg-[var(--amber)]/60":"bg-[var(--amber)]"}`}),s?(0,r.jsx)(o.A,{size:12,className:"shrink-0 text-success"}):(0,r.jsx)(l.A,{size:12,className:"shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{className:"text-sm truncate flex-1 text-foreground",title:e.name,suppressHydrationWarning:!0,children:e.name}),(0,r.jsx)("span",{className:"text-2xs text-muted-foreground/50 tabular-nums shrink-0 font-display",children:n}),e.isAging&&(0,r.jsx)("span",{title:"7+ days",children:(0,r.jsx)(T.A,{size:11,className:"shrink-0 text-[var(--amber)]/60"})})]})}var V=s(1762),ee=s(53138),et=s(6496);function es(){window.dispatchEvent(new KeyboardEvent("keydown",{key:"k",metaKey:!0,bubbles:!0}))}function er(){window.dispatchEvent(new KeyboardEvent("keydown",{key:"/",metaKey:!0,bubbles:!0}))}function en({icon:e,children:t,count:s,action:n}){return(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,r.jsx)("span",{className:"text-[var(--amber)]",children:e}),(0,r.jsx)("h2",{className:"text-sm font-semibold font-display text-foreground",children:t}),null!=s&&s>0&&(0,r.jsx)("span",{className:"text-xs tabular-nums text-muted-foreground font-display",children:s}),n?(0,r.jsx)("div",{className:"ml-auto",children:n}):null]})}function ea({expanded:e,onToggle:t,showLabel:s,hideLabel:n,className:a=""}){return(0,r.jsxs)("button",{onClick:t,"aria-expanded":e,className:`flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer font-display ${a}`,children:[(0,r.jsx)(i.A,{size:12,className:`transition-transform duration-200 ${e?"rotate-180":""}`}),(0,r.jsx)("span",{children:e?n:s})]})}function ei({filePath:e,mtime:t,formatTime:s,subPath:n}){let i=e.endsWith(".csv"),d=e.split("/").pop()||e;return(0,r.jsxs)(a(),{href:`/view/${(0,A.O0)(e)}`,className:"flex items-center gap-3 px-3 py-2 rounded-lg transition-all duration-100 hover:translate-x-0.5 hover:bg-muted group",children:[i?(0,r.jsx)(o.A,{size:12,className:"shrink-0 text-success"}):(0,r.jsx)(l.A,{size:12,className:"shrink-0 text-muted-foreground"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"text-sm truncate block text-foreground",suppressHydrationWarning:!0,children:d}),n&&(0,r.jsx)("span",{className:"text-xs truncate block text-muted-foreground opacity-50",suppressHydrationWarning:!0,children:n})]}),(0,r.jsx)("span",{className:"text-xs shrink-0 tabular-nums font-display text-muted-foreground opacity-40",suppressHydrationWarning:!0,children:s(t)})]})}function eo({recent:e,existingFiles:t,spaces:s}){let{t:n}=(0,k.Y)(),[i,g]=(0,w.useState)(!1),[b,v]=(0,w.useState)(!1),[j,N]=(0,w.useState)(0),y=n.ask?.suggestions??["Summarize this document","List all action items and TODOs","What are the key points?","Find related notes on this topic"];(0,w.useEffect)(()=>{let e=setInterval(()=>{N(e=>(e+1)%y.length)},4e3);return()=>clearInterval(e)},[y.length]);let z=s??[],{groups:C,rootFiles:E}=(0,w.useMemo)(()=>(function(e,t){let s=new Map,r=[];for(let n of e){let e=n.path.split("/");if(e.length<2){r.push(n);continue}let a=e[0],i=t.find(e=>e.name===a);s.has(a)||s.set(a,{space:a,spacePath:a+"/",files:[],latestMtime:0,totalFiles:i?.fileCount??0});let o=s.get(a);o.files.push(n),o.latestMtime=Math.max(o.latestMtime,n.mtime)}return{groups:[...s.values()].sort((e,t)=>t.latestMtime-e.latestMtime),rootFiles:r}})(e,z),[e,z]);if(0===e.length)return(0,r.jsx)($,{});let S=e=>(0,A.KW)(e,n.home.relativeTime),T=e[0];return(0,r.jsxs)("div",{className:"content-width px-4 md:px-6 py-10 md:py-14",children:[(0,r.jsx)(U,{}),(0,r.jsx)(ec,{}),(0,r.jsxs)("div",{className:"mb-10",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 mb-2",children:[(0,r.jsx)("div",{className:"w-1 h-7 rounded-full bg-gradient-to-b from-[var(--amber)] to-[var(--amber)]/20"}),(0,r.jsx)("h1",{className:"text-2xl font-semibold tracking-tight font-display text-foreground",children:"MindOS"})]}),(0,r.jsx)("p",{className:"text-sm leading-relaxed text-muted-foreground pl-4 max-w-lg mb-6",children:n.app.tagline}),(0,r.jsxs)("div",{className:"w-full max-w-xl flex flex-col sm:flex-row items-stretch sm:items-center gap-2 pl-4",children:[(0,r.jsxs)("button",{onClick:er,title:"⌘/","data-walkthrough":"ask-button",className:"flex-1 flex items-center gap-3 px-4 py-3 rounded-xl border border-border/60 shadow-sm bg-card transition-all duration-150 hover:border-[var(--amber)]/50 hover:shadow-md group",children:[(0,r.jsx)(d.A,{size:15,className:"shrink-0 text-[var(--amber)] group-hover:scale-110 transition-transform duration-150"}),(0,r.jsx)("div",{className:"flex-1 min-h-[1.5rem] flex items-center",children:(0,r.jsx)("span",{className:"text-sm text-left text-muted-foreground animate-in fade-in duration-300",children:y[j]},j)}),(0,r.jsx)("kbd",{className:"hidden sm:inline-flex items-center gap-0.5 px-2 py-0.5 rounded text-xs font-mono font-medium bg-[var(--amber-dim)] text-[var(--amber-text)]",children:"⌘/"})]}),(0,r.jsxs)("button",{onClick:es,title:"⌘K",className:"flex items-center gap-2 px-3.5 py-3 rounded-xl border border-border/60 text-sm text-muted-foreground transition-all duration-150 shrink-0 hover:bg-muted hover:shadow-sm",children:[(0,r.jsx)(c.A,{size:14}),(0,r.jsx)("kbd",{className:"hidden sm:inline-flex items-center px-1.5 py-0.5 rounded text-2xs font-mono bg-muted",children:"⌘K"})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 mt-4 pl-4",children:[(0,r.jsxs)(a(),{href:"/view/Untitled.md",className:"inline-flex items-center gap-2 px-3.5 py-2 rounded-lg text-sm font-medium transition-all duration-150 hover:shadow-sm bg-[var(--amber)] text-[var(--amber-foreground)]",children:[(0,r.jsx)(m.A,{size:14}),(0,r.jsx)("span",{children:n.home.newNote})]}),T&&(0,r.jsxs)(a(),{href:`/view/${(0,A.O0)(T.path)}`,className:"inline-flex items-center gap-2 px-3.5 py-2 rounded-lg text-sm font-medium transition-colors text-muted-foreground hover:text-foreground hover:bg-muted",children:[(0,r.jsx)(u.A,{size:14,className:"text-[var(--amber)]/60"}),(0,r.jsx)("span",{children:n.home.continueEditing}),(0,r.jsx)("span",{className:"text-xs opacity-40 truncate max-w-32",suppressHydrationWarning:!0,children:T.path.split("/").pop()})]})]})]}),(0,r.jsx)(Q,{}),(0,r.jsx)("div",{className:"mb-10",children:(0,r.jsx)(et.A,{})}),(0,r.jsx)(X,{}),(z.length,(0,r.jsxs)("section",{className:"mb-10",children:[(0,r.jsx)(en,{icon:(0,r.jsx)(x.A,{size:13}),count:z.length>0?z.length:void 0,action:(0,r.jsx)(ed,{t:n}),children:n.home.spaces}),z.length>0?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-2",children:(b?z:z.slice(0,6)).map(e=>{let t=(0,A.IX)(e.name),s=(0,A.vr)(e.name),i=0===e.fileCount;return(0,r.jsxs)(a(),{href:`/view/${(0,A.O0)(e.path)}`,className:`flex items-start gap-3 px-3.5 py-3 rounded-xl border transition-all duration-150 ${i?"border-dashed border-border/50 opacity-50 hover:opacity-70":"border-border hover:border-[var(--amber)]/30 hover:shadow-sm"}`,children:[t?(0,r.jsx)("span",{className:"text-lg leading-none shrink-0 mt-0.5",suppressHydrationWarning:!0,children:t}):(0,r.jsx)(p.A,{size:16,className:"shrink-0 text-[var(--amber)] mt-0.5"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("span",{className:"text-sm font-medium truncate block text-foreground",children:s}),e.description&&(0,r.jsx)("span",{className:"text-xs text-muted-foreground line-clamp-1 mt-0.5",suppressHydrationWarning:!0,children:e.description}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground/50 mt-0.5 block tabular-nums",children:n.home.nFiles(e.fileCount)})]})]},e.name)})}),z.length>6&&(0,r.jsx)(ea,{expanded:b,onToggle:()=>v(e=>!e),showLabel:n.home.showMore,hideLabel:n.home.showLess,className:"mt-2"})]}):(0,r.jsx)("p",{className:"text-xs text-muted-foreground py-2",children:n.home.noSpacesYet??"No spaces yet. Create one to organize your knowledge."})]})),(0,r.jsx)(el,{formatTime:S}),e.length>0&&(0,r.jsxs)("section",{className:"mb-10",children:[(0,r.jsx)(en,{icon:(0,r.jsx)(h.A,{size:13}),count:e.length,action:(0,r.jsxs)(a(),{href:"/changes",className:"flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 font-display",children:[(0,r.jsx)(f.A,{size:12}),(0,r.jsx)("span",{children:n.home.changeHistory})]}),children:n.home.recentlyEdited}),C.length>0?(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[C.map(e=>{let t=i?e.files:e.files.slice(0,3),s=e.files.length>3;return(0,r.jsxs)("div",{children:[(0,r.jsxs)(a(),{href:`/view/${(0,A.O0)(e.spacePath)}`,className:"flex items-center gap-2 px-1 py-1.5 rounded-lg group transition-colors hover:bg-muted/50",children:[(0,r.jsx)(p.A,{size:13,className:"shrink-0 text-[var(--amber)]"}),(0,r.jsx)("span",{className:"text-xs font-semibold font-display text-foreground group-hover:text-[var(--amber)] transition-colors",suppressHydrationWarning:!0,children:e.space}),(0,r.jsxs)("span",{className:"text-xs text-muted-foreground/50 tabular-nums",suppressHydrationWarning:!0,children:[n.home.nFiles(e.totalFiles)," \xb7 ",S(e.latestMtime)]}),s&&!i&&(0,r.jsxs)("span",{className:"text-xs text-muted-foreground/30 tabular-nums",children:["+",e.files.length-3]})]}),(0,r.jsx)("div",{className:"flex flex-col gap-0.5 ml-2 border-l border-border/40 pl-3",children:t.map(({path:e,mtime:t})=>(0,r.jsx)(ei,{filePath:e,mtime:t,formatTime:S,subPath:e.split("/").slice(1,-1).join("/")},e))})]},e.space)}),E.length>0&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-1 py-1.5",children:[(0,r.jsx)(l.A,{size:13,className:"shrink-0 text-muted-foreground/50"}),(0,r.jsx)("span",{className:"text-xs font-semibold font-display text-muted-foreground/60",children:n.home.other})]}),(0,r.jsx)("div",{className:"flex flex-col gap-0.5 ml-2 border-l border-border/40 pl-3",children:E.map(({path:e,mtime:t})=>(0,r.jsx)(ei,{filePath:e,mtime:t,formatTime:S},e))})]}),C.some(e=>e.files.length>3)&&(0,r.jsx)(ea,{expanded:i,onToggle:()=>g(e=>!e),showLabel:n.home.showMore,hideLabel:n.home.showLess,className:"mt-1 ml-1"})]}):(0,r.jsxs)("div",{className:"relative pl-4",children:[(0,r.jsx)("div",{className:"absolute left-0 top-1 bottom-1 w-px bg-border/40"}),(0,r.jsx)("div",{className:"flex flex-col gap-0.5",children:(i?e:e.slice(0,5)).map(({path:e,mtime:t},s)=>{let n=e.endsWith(".csv"),i=e.split("/").pop()||e,d=e.split("/").slice(0,-1).join("/");return(0,r.jsxs)("div",{className:"relative group",children:[(0,r.jsx)("div",{"aria-hidden":"true",className:`absolute -left-4 top-1/2 -translate-y-1/2 rounded-full transition-all duration-150 group-hover:scale-150 ${0===s?"w-2 h-2 bg-[var(--amber)] ring-2 ring-[var(--amber)]/20":"w-1.5 h-1.5 bg-muted-foreground/20"}`}),(0,r.jsxs)(a(),{href:`/view/${(0,A.O0)(e)}`,className:"flex items-center gap-3 px-3 py-2 rounded-lg transition-all duration-100 group-hover:translate-x-0.5 hover:bg-muted",children:[n?(0,r.jsx)(o.A,{size:12,className:"shrink-0 text-success"}):(0,r.jsx)(l.A,{size:12,className:"shrink-0 text-muted-foreground/50"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"text-sm truncate block text-foreground",suppressHydrationWarning:!0,children:i}),d&&(0,r.jsx)("span",{className:"text-xs truncate block text-muted-foreground/40",suppressHydrationWarning:!0,children:d})]}),(0,r.jsx)("span",{className:"text-xs shrink-0 tabular-nums font-display text-muted-foreground/40",suppressHydrationWarning:!0,children:S(t)})]})]},e)})}),e.length>5&&(0,r.jsx)(ea,{expanded:i,onToggle:()=>g(e=>!e),showLabel:n.home.showMore,hideLabel:n.home.showLess,className:"mt-2 ml-3"})]})]}),(0,r.jsxs)("div",{className:"py-6 border-t border-border/20 flex items-center gap-1.5 text-xs font-display text-muted-foreground/30",children:[(0,r.jsx)(d.A,{size:10,className:"text-[var(--amber)]/40"}),(0,r.jsx)("span",{children:n.app.footer})]})]})}function el({formatTime:e}){let{t}=(0,k.Y)(),{pinnedFiles:s,removePin:n}=(0,z.Z)();return 0===s.length?null:(0,r.jsxs)("section",{className:"mb-12",children:[(0,r.jsx)(en,{icon:(0,r.jsx)(g.A,{size:13}),count:s.length,children:t.pinnedFiles.title}),(0,r.jsx)("div",{className:"flex flex-col gap-0.5",children:s.map(e=>{let s=e.split("/").pop()||e,i=e.split("/").slice(0,-1).join("/"),d=e.endsWith(".csv");return(0,r.jsxs)("div",{className:"group/pin relative",children:[(0,r.jsxs)(a(),{href:`/view/${(0,A.O0)(e)}`,className:"flex items-center gap-3 px-3 py-2 rounded-lg transition-all duration-100 hover:translate-x-0.5 hover:bg-muted",children:[(0,r.jsx)(g.A,{size:12,className:"shrink-0 fill-[var(--amber)] text-[var(--amber)]"}),d?(0,r.jsx)(o.A,{size:12,className:"shrink-0 text-success"}):(0,r.jsx)(l.A,{size:12,className:"shrink-0 text-muted-foreground"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"text-sm truncate block text-foreground",suppressHydrationWarning:!0,children:s}),i&&(0,r.jsx)("span",{className:"text-xs truncate block text-muted-foreground opacity-50",suppressHydrationWarning:!0,children:i})]})]}),(0,r.jsx)("button",{onClick:t=>{t.preventDefault(),t.stopPropagation(),n(e)},className:"absolute right-2 top-1/2 -translate-y-1/2 hidden group-hover/pin:flex p-1 rounded text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",title:t.pinnedFiles.removedToast,children:(0,r.jsx)(b.A,{size:12})})]},e)})})]})}function ed({t:e}){return(0,r.jsxs)("button",{onClick:()=>window.dispatchEvent(new Event("mindos:create-space")),className:"flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer font-display",children:[(0,r.jsx)(v.A,{size:12}),(0,r.jsx)("span",{children:e.home.newSpace})]})}function ec(){let{t:e}=(0,k.Y)(),[t,s]=(0,w.useState)(null),[n,a]=(0,w.useState)(!1),[i,o]=(0,w.useState)(!1),[l,d]=(0,w.useState)(!1);(0,w.useEffect)(()=>{(0,V.D)().then(e=>{e.files.length>0&&s(e.files.length)}).catch(e=>{console.warn("[HomeContent] scanExampleFilesAction failed:",e)})},[]);let c=(0,w.useCallback)(async()=>{if(null!==t){a(!0);try{(await (0,ee.E)()).success&&(o(!0),setTimeout(()=>d(!0),2500))}catch{}a(!1)}},[t]);return l||null===t||0===t?null:i?(0,r.jsxs)("div",{className:"mb-6 flex items-center gap-2.5 px-4 py-3 rounded-xl border border-success/30 bg-success/5 animate-in fade-in duration-300",children:[(0,r.jsx)(j.A,{size:14,className:"text-success shrink-0"}),(0,r.jsx)("span",{className:"text-xs text-success",children:e.home.cleanupExamplesDone})]}):(0,r.jsxs)("div",{className:"mb-6 flex items-center gap-3 px-4 py-3 rounded-xl border border-border bg-muted/30 animate-in fade-in duration-300",children:[(0,r.jsx)("span",{className:"text-sm leading-none shrink-0",children:"\uD83E\uDDEA"}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground flex-1",children:e.home.cleanupExamples(t)}),(0,r.jsxs)("button",{onClick:c,disabled:n,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors shrink-0 disabled:opacity-50 bg-[var(--amber-dim)] text-[var(--amber-text)] hover:opacity-80",children:[n?(0,r.jsx)(N.A,{size:11,className:"animate-spin"}):(0,r.jsx)(y.A,{size:11}),e.home.cleanupExamplesButton]}),(0,r.jsx)("button",{onClick:()=>d(!0),className:"p-1 rounded hover:bg-muted transition-colors text-muted-foreground shrink-0",children:(0,r.jsx)(b.A,{size:12})})]})}},53138:(e,t,s)=>{"use strict";s.d(t,{E:()=>n});var r=s(9339);let n=(0,r.createServerReference)("00a77aaa92b0d837329f618a317599128e4465e53f",r.callServer,void 0,r.findSourceMapURL,"cleanupExamplesAction")},70617:(e,t,s)=>{"use strict";s.d(t,{cd:()=>d,kr:()=>l,zd:()=>o});var r=s(1934),n=s(22356);let a=null;async function i(e){a?.abort();let t=new AbortController;a=t;try{let[s,r,a]=await Promise.all([(0,n.n)("/api/mcp/status",{signal:t.signal}),(0,n.n)("/api/mcp/agents",{signal:t.signal}),(0,n.n)("/api/skills",{signal:t.signal})]);t.signal.aborted||e({status:s,agents:r.agents,skills:a.skills})}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return}finally{t.signal.aborted||e({loading:!1})}}let o=(0,r.v)((e,t)=>({status:null,agents:[],skills:[],loading:!0,refresh:()=>i(e),toggleSkill:async(s,r)=>{e({skills:t().skills.map(e=>e.name===s?{...e,enabled:r}:e)});try{return await (0,n.n)("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"toggle",name:s,enabled:r})}),!0}catch{return e({skills:t().skills.map(e=>e.name===s?{...e,enabled:!r}:e)}),!1}},installAgent:async(s,r)=>{let a=t().agents.find(e=>e.key===s);if(!a)return!1;try{let t=await (0,n.n)("/api/mcp/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:[{key:s,scope:r?.scope??(a.hasProjectScope?"project":"global"),transport:r?.transport??a.preferredTransport}],transport:"auto"})}),o=t.results?.[0],l=o?.ok===!0||o?.status==="ok";return l&&await i(e),l}catch{return!1}},_init:()=>{let t;i(e);let s=()=>{clearTimeout(t),t=setTimeout(()=>i(e),500)};window.addEventListener("mindos:skills-changed",s);let r=setInterval(()=>{"visible"===document.visibilityState&&i(e)},3e4);return()=>{a?.abort(),clearTimeout(t),clearInterval(r),window.removeEventListener("mindos:skills-changed",s)}}}));function l(){return o()}function d(){return o()}},76449:(e,t,s)=>{"use strict";s.d(t,{g:()=>r});let r=[{anchor:"files-panel",position:"right"},{anchor:"ask-button",position:"right"},{anchor:"agents-panel",position:"right"}]},91337:(e,t,s)=>{"use strict";s.d(t,{IX:()=>l,KW:()=>o,O0:()=>i,cn:()=>a,vr:()=>d});var r=s(29722),n=s(622);function a(...e){return(0,n.QP)((0,r.$)(e))}function i(e){return e.split("/").map(encodeURIComponent).join("/")}function o(e,t){let s=Date.now()-e,r=Math.floor(s/6e4),n=Math.floor(s/36e5),a=Math.floor(s/864e5);return r<1?t.justNow:r<60?t.minutesAgo(r):n<24?t.hoursAgo(n):a<7?t.daysAgo(a):new Date(e).toLocaleDateString()}function l(e){let t=e.match(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]+/u);return t?.[0]??""}function d(e){return e.replace(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}\s]+/u,"")||e}}},e=>{e.O(0,[6926,9602,3160,1053,8441,3794,7358],()=>e(e.s=14153)),_N_E=e.O()}]);
|
/package/_standalone/.next/static/{VjO4Ig1MkVHtQkepV2ZoO → xi8zq47n-naAWA5f555ew}/_buildManifest.js
RENAMED
|
File without changes
|
/package/_standalone/.next/static/{VjO4Ig1MkVHtQkepV2ZoO → xi8zq47n-naAWA5f555ew}/_ssgManifest.js
RENAMED
|
File without changes
|