@geminilight/mindos 0.6.39 → 0.6.40
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/README.md +31 -15
- package/README_zh.md +31 -15
- package/_standalone/.mindos-build-version +1 -1
- package/_standalone/.next/BUILD_ID +1 -1
- package/_standalone/.next/app-path-routes-manifest.json +18 -17
- package/_standalone/.next/build-manifest.json +3 -3
- 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/react-loadable-manifest.json +68 -6
- package/_standalone/.next/routes-manifest.json +6 -0
- 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 +2 -2
- 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 +2 -2
- 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 +3 -3
- 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.js +1 -1
- package/_standalone/.next/server/app/api/acp/config/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/acp/detect/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/acp/session/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/agent-activity/route.js.nft.json +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.js +137 -99
- package/_standalone/.next/server/app/api/ask/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/backlinks/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/bootstrap/route.js +1 -1
- package/_standalone/.next/server/app/api/bootstrap/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/changes/route.js +1 -1
- package/_standalone/.next/server/app/api/changes/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/export/route.js +3 -3
- package/_standalone/.next/server/app/api/export/route.js.nft.json +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.js +2 -19
- package/_standalone/.next/server/app/api/file/import/route.js.nft.json +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.js +1 -18
- package/_standalone/.next/server/app/api/file/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/files/route.js +1 -1
- package/_standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/git/route.js +1 -1
- package/_standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/graph/route.js +1 -1
- package/_standalone/.next/server/app/api/graph/route.js.nft.json +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.js +1 -0
- package/_standalone/.next/server/app/api/inbox/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/init/route.js +1 -1
- package/_standalone/.next/server/app/api/init/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/mcp/agents/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install/route.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/mcp/status/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/monitoring/route.js +1 -1
- package/_standalone/.next/server/app/api/monitoring/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/recent-files/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/search/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/settings/list-models/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/settings/reset-token/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/settings/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/settings/test-key/route.js.nft.json +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.js +1 -1
- package/_standalone/.next/server/app/api/setup/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/skills/route.js +2 -2
- package/_standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/sync/route.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.js +1 -1
- package/_standalone/.next/server/app/api/tree-version/route.js.nft.json +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.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.js +2 -2
- package/_standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/changes/page.js +2 -2
- 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 +6 -6
- 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 +2 -2
- 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 +3 -3
- 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 +2 -2
- 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 +2 -2
- 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 +3 -3
- 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 +2 -2
- 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.js.nft.json +1 -1
- package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/view/[...path]/page.js +4 -4
- 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 -17
- package/_standalone/.next/server/chunks/1550.js +1 -1
- package/_standalone/.next/server/chunks/1750.js +1 -0
- package/_standalone/.next/server/chunks/1955.js +11 -0
- package/_standalone/.next/server/chunks/3680.js +1 -0
- package/_standalone/.next/server/chunks/4497.js +219 -0
- package/_standalone/.next/server/chunks/5560.js +2 -0
- package/_standalone/.next/server/chunks/6365.js +52 -0
- package/_standalone/.next/server/chunks/6539.js +1 -1
- package/_standalone/.next/server/chunks/8388.js +15 -0
- package/_standalone/.next/server/chunks/953.js +42 -2
- package/_standalone/.next/server/functions-config-manifest.json +2 -1
- package/_standalone/.next/server/instrumentation.js +1 -1
- package/_standalone/.next/server/middleware-build-manifest.js +1 -1
- package/_standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- 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/1053-0adaccc98a752a58.js +29 -0
- package/_standalone/.next/static/chunks/1239.10a0710c2772ab34.js +1 -0
- package/_standalone/.next/static/chunks/{1814.e2da5460ded71d71.js → 1814.2ee1d03297c0bccd.js} +1 -1
- package/_standalone/.next/static/chunks/{1a258343-030e4d6735874dd4.js → 1a258343-9803591e4aaee1f6.js} +1 -1
- package/_standalone/.next/static/chunks/2631.dc56e83472bde281.js +1 -0
- package/_standalone/.next/static/chunks/2872.045858d00bd8307f.js +8 -0
- package/_standalone/.next/static/chunks/2968.f10ccee9e7e2324d.js +2 -0
- package/_standalone/.next/static/chunks/3160-83a7e0b94414b3ac.js +1 -0
- package/_standalone/.next/static/chunks/{3637.4bcd01a4db78b894.js → 3637.f9a42cca59fd5bb5.js} +1 -1
- package/_standalone/.next/static/chunks/4033.6666700547b20141.js +1 -0
- package/_standalone/.next/static/chunks/4563-c2afaeacb241d1d0.js +6 -0
- package/_standalone/.next/static/chunks/516.24ee058b1d4b1fed.js +8 -0
- package/_standalone/.next/static/chunks/5627.c4337d7289acb31f.js +1 -0
- package/_standalone/.next/static/chunks/5956.b445072b35915129.js +1 -0
- package/_standalone/.next/static/chunks/6090-c98268ca726a68d3.js +1 -0
- package/_standalone/.next/static/chunks/6357-c645842834c0d4cd.js +1 -0
- package/_standalone/.next/static/chunks/6826.7b7d94dd0fd83812.js +1 -0
- package/_standalone/.next/static/chunks/{8409-de5726a4a278d28f.js → 6926-4af497b83952fa87.js} +1 -1
- package/_standalone/.next/static/chunks/7266-bb7be1128eccd48e.js +13 -0
- package/_standalone/.next/static/chunks/7753.63831cfc54a55fbb.js +1 -0
- package/_standalone/.next/static/chunks/862.9f526e964489e2e5.js +1 -0
- package/_standalone/.next/static/chunks/{1384-55276d40a9da4e88.js → 8663-de911d2d395622be.js} +2 -2
- package/_standalone/.next/static/chunks/9300.118b8c840634383f.js +28 -0
- package/_standalone/.next/static/chunks/9371-575600301da5d6bb.js +1 -0
- package/_standalone/.next/static/chunks/95247769.3b5caae1c1a76ce1.js +4 -0
- package/_standalone/.next/static/chunks/9602-423291fdb36396d1.js +1 -0
- package/_standalone/.next/static/chunks/app/.well-known/agent-card.json/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/_global-error/page-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-3e08abb495ecd5fd.js +1 -0
- package/_standalone/.next/static/chunks/app/agents/page-e7e0f87ad3d765ac.js +5 -0
- package/_standalone/.next/static/chunks/app/api/a2a/agents/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/a2a/delegations/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/a2a/discover/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/a2a/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/config/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/detect/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/install/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/registry/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/session/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agent-activity/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/ask/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/ask-sessions/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/auth/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/backlinks/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/bootstrap/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/changes/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/export/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/extract-pdf/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/file/import/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/file/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/files/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/git/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/graph/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/health/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/inbox/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/init/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/agents/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/install/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/install-skill/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/restart/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/status/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/monitoring/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/recent-files/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/restart/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/search/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/list-models/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/reset-token/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/test-key/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/check-path/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/check-port/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/generate-token/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/ls/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/skills/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/sync/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/tree-version/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/uninstall/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/update/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/update-check/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/update-status/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/api/workflows/route-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/changes/page-350992cf5091bc5b.js +1 -0
- package/_standalone/.next/static/chunks/app/echo/[segment]/page-addf014fcf23fad5.js +11 -0
- package/_standalone/.next/static/chunks/app/echo/page-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/explore/page-5eb2835e9e3ab4bb.js +4 -0
- package/_standalone/.next/static/chunks/app/help/page-3d0e1ceaa4abc243.js +1 -0
- package/_standalone/.next/static/chunks/app/layout-9378c1c8d3e5761b.js +186 -0
- package/_standalone/.next/static/chunks/app/login/page-24236460fa7c11d0.js +1 -0
- package/_standalone/.next/static/chunks/app/page-9bae420fbbdc5fff.js +7 -0
- package/_standalone/.next/static/chunks/app/setup/page-99ed3d1bb6b8f4ef.js +1 -0
- package/_standalone/.next/static/chunks/app/trash/page-b61ef2d5cd4f8d73.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/loading-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/not-found-61474670d6bb6116.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/page-44fa78cbea613a78.js +12 -0
- package/_standalone/.next/static/chunks/e71f6c19-4df85185bf989b49.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-400c3c09b1540c14.js +1 -0
- package/_standalone/.next/static/chunks/webpack-c28c55d0a6021a6b.js +1 -0
- package/_standalone/.next/static/css/d300701f384db50d.css +1 -0
- package/_standalone/.next/static/rZLs1krFuduixvcVNe6q3/_buildManifest.js +1 -0
- package/_standalone/.next/trace +63 -53
- package/_standalone/.next/types/routes.d.ts +2 -1
- package/_standalone/.next/types/validator.ts +9 -0
- package/_standalone/__tests__/agent/chat-mode.test.ts +103 -0
- package/_standalone/__tests__/agents/agents-content-dashboard.test.tsx +4 -3
- package/_standalone/__tests__/api/bootstrap.test.ts +0 -2
- package/_standalone/__tests__/api/file.test.ts +22 -1
- package/_standalone/__tests__/api/install-skill.test.ts +2 -2
- package/_standalone/__tests__/api/mcp-install.test.ts +9 -10
- package/_standalone/__tests__/api/setup.test.ts +2 -2
- package/_standalone/__tests__/api/test-key.test.ts +73 -147
- package/_standalone/__tests__/ask/ask-content-input-during-run.test.tsx +1 -1
- package/_standalone/__tests__/ask/mode-capsule.test.ts +95 -0
- package/_standalone/__tests__/core/inbox.test.ts +250 -0
- package/_standalone/__tests__/core/skill-install-logic.test.ts +3 -3
- package/_standalone/__tests__/core/sync-status.test.ts +1 -1
- package/_standalone/__tests__/core/tools.test.ts +11 -6
- package/_standalone/__tests__/lib/echo-pages-visual-i18n.test.ts +2 -2
- package/_standalone/__tests__/lib/i18n-new-keys.test.ts +2 -2
- package/_standalone/__tests__/panels/agents-panel-hub.test.tsx +2 -2
- package/_standalone/__tests__/settings/activity-bar-update-badge.test.tsx +1 -1
- package/_standalone/__tests__/settings/settings-update-badge.test.tsx +1 -1
- package/_standalone/__tests__/settings/update-tab-availability-sync.test.tsx +1 -1
- package/_standalone/__tests__/settings/update-tab-browser.test.tsx +1 -1
- package/_standalone/__tests__/settings/update-tab-desktop.test.tsx +1 -1
- package/_standalone/__tests__/setup.ts +3 -5
- package/_standalone/app/globals.css +11 -1
- package/_standalone/components/ActivityBar.tsx +26 -10
- package/_standalone/components/AskFab.tsx +1 -1
- package/_standalone/components/AskModal.tsx +1 -1
- package/_standalone/components/Backlinks.tsx +1 -1
- package/_standalone/components/CreateSpaceModal.tsx +7 -55
- package/_standalone/components/EchoSpotlight.tsx +1 -1
- package/_standalone/components/ExportModal.tsx +1 -1
- package/_standalone/components/FileTree.tsx +64 -79
- package/_standalone/components/FindInPage.tsx +1 -1
- package/_standalone/components/GuideCard.tsx +1 -1
- package/_standalone/components/ImportModal.tsx +1 -1
- package/_standalone/components/KeyboardShortcuts.tsx +1 -1
- package/_standalone/components/MarkdownView.tsx +11 -1
- package/_standalone/components/OnboardingView.tsx +1 -1
- package/_standalone/components/OrganizeToast.tsx +1 -1
- package/_standalone/components/Panel.tsx +82 -4
- package/_standalone/components/QuickSuggestion.tsx +1 -1
- package/_standalone/components/RightAgentDetailPanel.tsx +2 -2
- package/_standalone/components/RightAskPanel.tsx +58 -22
- package/_standalone/components/SearchModal.tsx +1 -1
- package/_standalone/components/Sidebar.tsx +1 -1
- package/_standalone/components/SidebarLayout.tsx +52 -16
- package/_standalone/components/SpaceInitToast.tsx +1 -1
- package/_standalone/components/SyncStatusBar.tsx +2 -2
- package/_standalone/components/SystemPulse.tsx +12 -6
- package/_standalone/components/TableOfContents.tsx +86 -39
- package/_standalone/components/agents/AgentActivitySection.tsx +225 -0
- package/_standalone/components/agents/AgentsMcpSection.tsx +7 -16
- package/_standalone/components/agents/AgentsOverviewSection.tsx +28 -27
- package/_standalone/components/agents/AgentsPanelA2aTab.tsx +1 -1
- package/_standalone/components/agents/AgentsPanelSessionsTab.tsx +6 -1
- package/_standalone/components/agents/AgentsSkillsSection.tsx +1 -1
- package/_standalone/components/agents/DiscoverAgentModal.tsx +1 -1
- package/_standalone/components/agents/RecentActivityFeed.tsx +49 -88
- package/_standalone/components/agents/agent-activity-shared.tsx +110 -0
- package/_standalone/components/ask/AgentSelectorCapsule.tsx +1 -1
- package/_standalone/components/ask/AskContent.tsx +332 -486
- package/_standalone/components/ask/AskHeader.tsx +61 -0
- package/_standalone/components/ask/FileChip.tsx +9 -5
- package/_standalone/components/ask/MessageList.tsx +88 -21
- package/_standalone/components/ask/ModeCapsule.tsx +180 -0
- package/_standalone/components/ask/ProviderModelCapsule.tsx +284 -0
- package/_standalone/components/ask/SessionHistory.tsx +63 -10
- package/_standalone/components/ask/SessionTabBar.tsx +1 -1
- package/_standalone/components/ask/ThinkingBlock.tsx +1 -1
- package/_standalone/components/ask/ToolCallBlock.tsx +28 -24
- package/_standalone/components/changes/ChangesBanner.tsx +1 -1
- package/_standalone/components/echo/EchoInsightCollapsible.tsx +1 -1
- package/_standalone/components/echo/EchoSegmentNav.tsx +1 -1
- package/_standalone/components/home/InboxSection.tsx +268 -0
- package/_standalone/components/panels/AgentsPanel.tsx +3 -2
- package/_standalone/components/panels/AgentsPanelHubNav.tsx +2 -6
- package/_standalone/components/panels/DiscoverPanel.tsx +1 -1
- package/_standalone/components/panels/EchoPanel.tsx +1 -1
- package/_standalone/components/panels/EchoSidebarStats.tsx +1 -1
- package/_standalone/components/panels/ImportHistoryPanel.tsx +1 -1
- package/_standalone/components/panels/PanelHeader.tsx +1 -1
- package/_standalone/components/panels/PluginsPanel.tsx +1 -1
- package/_standalone/components/panels/SearchPanel.tsx +5 -2
- package/_standalone/components/panels/SyncPopover.tsx +1 -1
- package/_standalone/components/panels/WorkflowsPanel.tsx +1 -1
- package/_standalone/components/renderers/agent-inspector/AgentInspectorRenderer.tsx +18 -0
- package/_standalone/components/renderers/agent-inspector/manifest.ts +16 -0
- package/_standalone/components/renderers/todo/TodoRenderer.tsx +489 -75
- package/_standalone/components/settings/AiTab.tsx +198 -127
- package/_standalone/components/settings/AppearanceTab.tsx +48 -50
- package/_standalone/components/settings/KnowledgeTab.tsx +92 -27
- package/_standalone/components/settings/McpAgentInstall.tsx +1 -1
- package/_standalone/components/settings/McpSkillsSection.tsx +1 -1
- package/_standalone/components/settings/McpTab.tsx +145 -7
- package/_standalone/components/settings/PluginsTab.tsx +1 -1
- package/_standalone/components/settings/SettingsContent.tsx +5 -2
- package/_standalone/components/settings/SyncTab.tsx +615 -230
- package/_standalone/components/settings/UninstallTab.tsx +1 -1
- package/_standalone/components/settings/UpdateTab.tsx +2 -2
- package/_standalone/components/settings/types.ts +4 -5
- package/_standalone/components/setup/StepAI.tsx +70 -49
- package/_standalone/components/setup/StepDots.tsx +1 -1
- package/_standalone/components/setup/StepReview.tsx +176 -8
- package/_standalone/components/setup/types.ts +11 -8
- package/_standalone/components/shared/ProviderSelect.tsx +134 -0
- package/_standalone/components/walkthrough/WalkthroughOverlay.tsx +2 -2
- package/_standalone/components/walkthrough/WalkthroughTooltip.tsx +2 -2
- package/_standalone/components/walkthrough/index.ts +1 -1
- package/_standalone/data/skills/mindos/SKILL.md +3 -3
- package/_standalone/data/skills/mindos-zh/SKILL.md +3 -3
- package/_standalone/hooks/useAcpDetection.ts +1 -1
- package/_standalone/hooks/useAskChat.ts +248 -0
- package/_standalone/hooks/useAskPanel.ts +24 -4
- package/_standalone/hooks/useAskSession.ts +15 -0
- package/_standalone/lib/acp/types.ts +1 -1
- package/_standalone/lib/api.ts +3 -1
- package/_standalone/lib/core/types.ts +2 -0
- package/_standalone/lib/i18n/modules/ai-chat.ts +35 -13
- package/_standalone/lib/i18n/modules/features.ts +2 -2
- package/_standalone/lib/i18n/modules/knowledge.ts +82 -2
- package/_standalone/lib/i18n/modules/navigation.ts +6 -2
- package/_standalone/lib/i18n/modules/onboarding.ts +39 -9
- package/_standalone/lib/i18n/modules/panels.ts +78 -29
- package/_standalone/lib/i18n/modules/settings.ts +207 -23
- package/_standalone/lib/inbox-upload.ts +93 -0
- package/_standalone/lib/settings-ai-client.ts +13 -12
- package/_standalone/lib/space-ai-init.ts +66 -0
- package/_standalone/lib/stores/McpStoreInit.tsx +18 -0
- package/_standalone/lib/stores/WalkthroughInit.tsx +20 -0
- package/_standalone/lib/stores/locale-store.ts +55 -0
- package/_standalone/lib/stores/mcp-store.ts +156 -0
- package/_standalone/lib/stores/walkthrough-store.ts +118 -0
- package/_standalone/package-lock.json +40 -8
- package/_standalone/package.json +3 -1
- package/_standalone/tsconfig.json +1 -1
- package/_standalone/tsconfig.tsbuildinfo +1 -1
- package/app/app/api/acp/detect/route.ts +29 -20
- package/app/app/api/agent-activity/route.ts +1 -1
- package/app/app/api/ask/route.ts +103 -29
- package/app/app/api/ask-sessions/route.ts +1 -0
- package/app/app/api/bootstrap/route.ts +1 -3
- package/app/app/api/file/route.ts +34 -4
- package/app/app/api/inbox/route.ts +61 -0
- package/app/app/api/settings/list-models/route.ts +73 -53
- package/app/app/api/settings/route.ts +46 -55
- package/app/app/api/settings/test-key/route.ts +57 -114
- package/app/app/api/setup/route.ts +31 -21
- package/app/app/api/sync/route.ts +122 -12
- package/app/app/api/update-check/route.ts +2 -2
- package/app/app/globals.css +11 -1
- package/app/app/layout.tsx +2 -3
- package/app/app/login/page.tsx +1 -1
- package/app/app/view/[...path]/ViewPageClient.tsx +10 -10
- package/app/app/view/[...path]/not-found.tsx +1 -1
- package/app/components/ActivityBar.tsx +26 -10
- package/app/components/AskFab.tsx +1 -1
- package/app/components/AskModal.tsx +1 -1
- package/app/components/Backlinks.tsx +1 -1
- package/app/components/CreateSpaceModal.tsx +7 -55
- package/app/components/DirView.tsx +93 -11
- package/app/components/EchoSpotlight.tsx +1 -1
- package/app/components/ExportModal.tsx +1 -1
- package/app/components/FileTree.tsx +64 -79
- package/app/components/FindInPage.tsx +1 -1
- package/app/components/GuideCard.tsx +1 -1
- package/app/components/HomeContent.tsx +21 -14
- package/app/components/ImportModal.tsx +1 -1
- package/app/components/KeyboardShortcuts.tsx +1 -1
- package/app/components/MarkdownView.tsx +11 -1
- package/app/components/OnboardingView.tsx +1 -1
- package/app/components/OrganizeToast.tsx +1 -1
- package/app/components/Panel.tsx +82 -4
- package/app/components/QuickSuggestion.tsx +1 -1
- package/app/components/RightAgentDetailPanel.tsx +2 -2
- package/app/components/RightAskPanel.tsx +58 -22
- package/app/components/SearchModal.tsx +1 -1
- package/app/components/Sidebar.tsx +1 -1
- package/app/components/SidebarLayout.tsx +52 -16
- package/app/components/SpaceInitToast.tsx +1 -1
- package/app/components/SyncStatusBar.tsx +2 -2
- package/app/components/SystemPulse.tsx +12 -6
- package/app/components/TableOfContents.tsx +86 -39
- package/app/components/TrashPageClient.tsx +1 -1
- package/app/components/UpdateOverlay.tsx +2 -2
- package/app/components/agents/AgentActivitySection.tsx +225 -0
- package/app/components/agents/AgentDetailContent.tsx +234 -3
- package/app/components/agents/AgentsContentPage.tsx +13 -2
- package/app/components/agents/AgentsMcpSection.tsx +7 -16
- package/app/components/agents/AgentsOverviewSection.tsx +28 -27
- package/app/components/agents/AgentsPanelA2aTab.tsx +1 -1
- package/app/components/agents/AgentsPanelSessionsTab.tsx +6 -1
- package/app/components/agents/AgentsSkillsSection.tsx +1 -1
- package/app/components/agents/DiscoverAgentModal.tsx +1 -1
- package/app/components/agents/RecentActivityFeed.tsx +49 -88
- package/app/components/agents/agent-activity-shared.tsx +110 -0
- package/app/components/agents/agents-content-model.ts +2 -2
- package/app/components/ask/AgentSelectorCapsule.tsx +1 -1
- package/app/components/ask/AskContent.tsx +332 -486
- package/app/components/ask/AskHeader.tsx +61 -0
- package/app/components/ask/FileChip.tsx +9 -5
- package/app/components/ask/MessageList.tsx +88 -21
- package/app/components/ask/ModeCapsule.tsx +180 -0
- package/app/components/ask/ProviderModelCapsule.tsx +284 -0
- package/app/components/ask/SessionHistory.tsx +63 -10
- package/app/components/ask/SessionTabBar.tsx +1 -1
- package/app/components/ask/ThinkingBlock.tsx +1 -1
- package/app/components/ask/ToolCallBlock.tsx +28 -24
- package/app/components/changes/ChangesBanner.tsx +1 -1
- package/app/components/changes/ChangesContentPage.tsx +1 -1
- package/app/components/echo/EchoInsightCollapsible.tsx +1 -1
- package/app/components/echo/EchoSegmentNav.tsx +1 -1
- package/app/components/echo/EchoSegmentPageClient.tsx +1 -1
- package/app/components/explore/ExploreContent.tsx +1 -1
- package/app/components/help/HelpContent.tsx +1 -1
- package/app/components/home/InboxSection.tsx +268 -0
- package/app/components/panels/AgentsPanel.tsx +3 -2
- package/app/components/panels/AgentsPanelHubNav.tsx +2 -6
- package/app/components/panels/DiscoverPanel.tsx +1 -1
- package/app/components/panels/EchoPanel.tsx +1 -1
- package/app/components/panels/EchoSidebarStats.tsx +1 -1
- package/app/components/panels/ImportHistoryPanel.tsx +1 -1
- package/app/components/panels/PanelHeader.tsx +1 -1
- package/app/components/panels/PluginsPanel.tsx +1 -1
- package/app/components/panels/SearchPanel.tsx +5 -2
- package/app/components/panels/SyncPopover.tsx +1 -1
- package/app/components/panels/WorkflowsPanel.tsx +1 -1
- package/app/components/renderers/agent-inspector/AgentInspectorRenderer.tsx +18 -0
- package/app/components/renderers/todo/TodoRenderer.tsx +489 -75
- package/app/components/settings/AiTab.tsx +198 -127
- package/app/components/settings/AppearanceTab.tsx +48 -50
- package/app/components/settings/KnowledgeTab.tsx +92 -27
- package/app/components/settings/McpAgentInstall.tsx +1 -1
- package/app/components/settings/McpSkillsSection.tsx +1 -1
- package/app/components/settings/McpTab.tsx +145 -7
- package/app/components/settings/PluginsTab.tsx +1 -1
- package/app/components/settings/SettingsContent.tsx +5 -2
- package/app/components/settings/SyncTab.tsx +615 -230
- package/app/components/settings/UninstallTab.tsx +1 -1
- package/app/components/settings/UpdateTab.tsx +2 -2
- package/app/components/settings/types.ts +4 -5
- package/app/components/setup/StepAI.tsx +70 -49
- package/app/components/setup/StepDots.tsx +1 -1
- package/app/components/setup/StepReview.tsx +176 -8
- package/app/components/setup/index.tsx +73 -39
- package/app/components/setup/types.ts +11 -8
- package/app/components/shared/ProviderSelect.tsx +134 -0
- package/app/components/walkthrough/WalkthroughOverlay.tsx +2 -2
- package/app/components/walkthrough/WalkthroughTooltip.tsx +2 -2
- package/app/components/walkthrough/index.ts +1 -1
- package/app/data/skills/mindos/SKILL.md +3 -3
- package/app/data/skills/mindos-zh/SKILL.md +3 -3
- package/app/hooks/useAcpDetection.ts +1 -1
- package/app/hooks/useAskChat.ts +248 -0
- package/app/hooks/useAskPanel.ts +24 -4
- package/app/hooks/useAskSession.ts +15 -0
- package/app/lib/acp/types.ts +1 -1
- package/app/lib/actions.ts +13 -0
- package/app/lib/agent/log.ts +2 -0
- package/app/lib/agent/model.ts +69 -81
- package/app/lib/agent/prompt.ts +27 -0
- package/app/lib/agent/providers.ts +299 -0
- package/app/lib/agent/tools.ts +26 -4
- package/app/lib/api.ts +3 -1
- package/app/lib/core/agent-audit-log.ts +7 -0
- package/app/lib/core/fs-ops.ts +9 -4
- package/app/lib/core/inbox.ts +181 -0
- package/app/lib/core/index.ts +4 -0
- package/app/lib/core/tree.ts +3 -0
- package/app/lib/core/types.ts +2 -0
- package/app/lib/fs.ts +26 -2
- package/app/lib/i18n/modules/ai-chat.ts +35 -13
- package/app/lib/i18n/modules/features.ts +2 -2
- package/app/lib/i18n/modules/knowledge.ts +82 -2
- package/app/lib/i18n/modules/navigation.ts +6 -2
- package/app/lib/i18n/modules/onboarding.ts +39 -9
- package/app/lib/i18n/modules/panels.ts +78 -29
- package/app/lib/i18n/modules/settings.ts +207 -23
- package/app/lib/inbox-upload.ts +93 -0
- package/app/lib/mcp-agents.ts +6 -7
- package/app/lib/renderers/index.ts +1 -2
- package/app/lib/settings-ai-client.ts +13 -12
- package/app/lib/settings.ts +48 -33
- package/app/lib/space-ai-init.ts +66 -0
- package/app/lib/stores/LocaleStoreInit.tsx +18 -0
- package/app/lib/stores/McpStoreInit.tsx +18 -0
- package/app/lib/stores/WalkthroughInit.tsx +20 -0
- package/app/lib/stores/locale-store.ts +55 -0
- package/app/lib/stores/mcp-store.ts +156 -0
- package/app/lib/stores/walkthrough-store.ts +118 -0
- package/app/lib/types.ts +20 -0
- package/app/package.json +3 -1
- package/app/tsconfig.json +1 -1
- package/bin/cli.js +46 -27
- package/bin/commands/file.js +7 -4
- package/bin/commands/space.js +4 -0
- package/bin/lib/mcp-agents.js +26 -2
- package/bin/lib/mcp-install.js +11 -3
- package/bin/lib/sync.js +140 -34
- package/mcp/README.md +2 -2
- package/mcp/dist/index.cjs +43 -43
- package/mcp/package.json +1 -1
- package/mcp/src/index.ts +77 -61
- package/package.json +1 -1
- package/scripts/setup.js +1 -1
- package/skills/mindos/SKILL.md +3 -3
- package/skills/mindos/references/preference-capture.md +4 -4
- package/skills/mindos/references/write-supplement.md +2 -2
- package/skills/mindos-zh/SKILL.md +3 -3
- package/skills/mindos-zh/references/preference-capture.md +4 -4
- package/skills/mindos-zh/references/write-supplement.md +2 -2
- package/templates/empty/INSTRUCTION.md +0 -1
- package/templates/en/INSTRUCTION.md +0 -1
- package/templates/template-generation-skill.md +0 -1
- package/templates/zh/INSTRUCTION.md +0 -1
- package/_standalone/.next/server/chunks/1473.js +0 -52
- package/_standalone/.next/server/chunks/248.js +0 -15
- package/_standalone/.next/server/chunks/359.js +0 -2
- package/_standalone/.next/server/chunks/4931.js +0 -202
- package/_standalone/.next/server/chunks/7670.js +0 -1
- package/_standalone/.next/server/chunks/9414.js +0 -11
- package/_standalone/.next/static/chunks/1038-ed04d6651ec92312.js +0 -1
- package/_standalone/.next/static/chunks/1263-6df1734e4273adb1.js +0 -25
- package/_standalone/.next/static/chunks/275-ebcaaedabe706903.js +0 -1
- package/_standalone/.next/static/chunks/5637-b97c869adf70c82e.js +0 -1
- package/_standalone/.next/static/chunks/5681-a53362a1cd629dc6.js +0 -1
- package/_standalone/.next/static/chunks/9602-35ca17b688f1a4fe.js +0 -1
- package/_standalone/.next/static/chunks/9670-d59e4d45ed705f58.js +0 -6
- package/_standalone/.next/static/chunks/app/.well-known/agent-card.json/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/_global-error/page-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-519d4da1142db5ef.js +0 -1
- package/_standalone/.next/static/chunks/app/agents/page-b709cf3103321609.js +0 -5
- package/_standalone/.next/static/chunks/app/api/a2a/agents/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/a2a/delegations/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/a2a/discover/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/a2a/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/config/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/detect/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/install/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/registry/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/session/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/agent-activity/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/ask/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/ask-sessions/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/auth/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/backlinks/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/bootstrap/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/changes/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/export/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/extract-pdf/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/file/import/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/file/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/files/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/git/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/graph/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/health/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/init/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/agents/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/install/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/install-skill/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/restart/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/status/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/monitoring/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/recent-files/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/restart/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/search/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/settings/list-models/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/settings/reset-token/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/settings/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/settings/test-key/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/check-path/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/check-port/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/generate-token/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/ls/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/skills/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/sync/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/tree-version/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/uninstall/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/update/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/update-check/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/update-status/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/api/workflows/route-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/changes/page-def5210095f8698d.js +0 -1
- package/_standalone/.next/static/chunks/app/echo/[segment]/page-be28eff31b1a186e.js +0 -11
- package/_standalone/.next/static/chunks/app/echo/page-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/explore/page-e4b8098dca200389.js +0 -4
- package/_standalone/.next/static/chunks/app/help/page-d5e57d73d94bad19.js +0 -1
- package/_standalone/.next/static/chunks/app/layout-d91cdbe2ecf135e1.js +0 -173
- package/_standalone/.next/static/chunks/app/login/page-321875768b70938a.js +0 -1
- package/_standalone/.next/static/chunks/app/page-718fdf170428b43c.js +0 -7
- package/_standalone/.next/static/chunks/app/setup/page-01ab1f549d636057.js +0 -1
- package/_standalone/.next/static/chunks/app/trash/page-89b1430cc8a16f18.js +0 -1
- package/_standalone/.next/static/chunks/app/view/[...path]/loading-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/app/view/[...path]/not-found-f22c513bbc348cc8.js +0 -1
- package/_standalone/.next/static/chunks/app/view/[...path]/page-6e3dc47699a01de1.js +0 -12
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-d4762cc48529e566.js +0 -1
- package/_standalone/.next/static/chunks/webpack-3489a2b6c2882b0c.js +0 -1
- package/_standalone/.next/static/css/f16595bc58a16d5d.css +0 -1
- package/_standalone/.next/static/ushZ_NJ8rE3rG5hZfaYOX/_buildManifest.js +0 -1
- package/_standalone/components/walkthrough/WalkthroughProvider.tsx +0 -133
- package/_standalone/hooks/useMcpData.tsx +0 -169
- package/_standalone/lib/i18n-en.ts +0 -2
- package/_standalone/lib/i18n-zh.ts +0 -2
- package/_standalone/lib/types.ts +0 -70
- package/app/components/walkthrough/WalkthroughProvider.tsx +0 -133
- package/app/hooks/useMcpData.tsx +0 -169
- package/app/lib/LocaleContext.tsx +0 -60
- package/app/lib/i18n-en.ts +0 -2
- package/app/lib/i18n-zh.ts +0 -2
- /package/_standalone/.next/static/{ushZ_NJ8rE3rG5hZfaYOX → rZLs1krFuduixvcVNe6q3}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { resolveSafe } from './security';
|
|
4
|
+
import { sanitizeFileName, convertToMarkdown, ALLOWED_IMPORT_EXTENSIONS } from './file-convert';
|
|
5
|
+
|
|
6
|
+
export const INBOX_DIR = 'Inbox';
|
|
7
|
+
const AGING_THRESHOLD_MS = 7 * 24 * 60 * 60 * 1000; // 7 days
|
|
8
|
+
|
|
9
|
+
const INBOX_INSTRUCTION = `# Inbox Instruction Set
|
|
10
|
+
|
|
11
|
+
## Goal
|
|
12
|
+
This is the **Inbox** — a staging area for unprocessed files.
|
|
13
|
+
Files here are waiting to be organized into the right location in the knowledge base.
|
|
14
|
+
|
|
15
|
+
## Rules
|
|
16
|
+
- New files dropped here should be preserved as-is until the user triggers organization.
|
|
17
|
+
- When organizing, analyze file content and move each file to the most appropriate Space/directory.
|
|
18
|
+
- If a file belongs to an existing topic, merge or append rather than creating duplicates.
|
|
19
|
+
- After organizing, the Inbox should be empty or contain only files that don't fit anywhere.
|
|
20
|
+
- Never delete files from Inbox — always move them to a better location.
|
|
21
|
+
|
|
22
|
+
## Boundary
|
|
23
|
+
- Root INSTRUCTION.md rules take precedence.
|
|
24
|
+
- This INSTRUCTION.md only applies to the Inbox directory.
|
|
25
|
+
`;
|
|
26
|
+
|
|
27
|
+
const INBOX_README = `# Inbox
|
|
28
|
+
|
|
29
|
+
Quick capture staging area. Drop files here and organize them later with AI.
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
- Drag files onto the MindOS window to save them here instantly.
|
|
33
|
+
- Click "AI Organize" on the homepage to sort everything into the right place.
|
|
34
|
+
`;
|
|
35
|
+
|
|
36
|
+
export interface InboxFileInfo {
|
|
37
|
+
name: string;
|
|
38
|
+
path: string;
|
|
39
|
+
size: number;
|
|
40
|
+
modifiedAt: string;
|
|
41
|
+
isAging: boolean;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface InboxSaveResult {
|
|
45
|
+
saved: Array<{ original: string; path: string }>;
|
|
46
|
+
skipped: Array<{ name: string; reason: string }>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface InboxSaveInput {
|
|
50
|
+
name: string;
|
|
51
|
+
content: string;
|
|
52
|
+
encoding?: 'text' | 'base64';
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Creates the Inbox space if it doesn't exist.
|
|
57
|
+
* Idempotent — safe to call multiple times concurrently.
|
|
58
|
+
*/
|
|
59
|
+
export function ensureInboxSpace(mindRoot: string): string {
|
|
60
|
+
const inboxDir = path.resolve(mindRoot, INBOX_DIR);
|
|
61
|
+
fs.mkdirSync(inboxDir, { recursive: true });
|
|
62
|
+
|
|
63
|
+
const instructionPath = path.join(inboxDir, 'INSTRUCTION.md');
|
|
64
|
+
if (!fs.existsSync(instructionPath)) {
|
|
65
|
+
fs.writeFileSync(instructionPath, INBOX_INSTRUCTION, 'utf-8');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const readmePath = path.join(inboxDir, 'README.md');
|
|
69
|
+
if (!fs.existsSync(readmePath)) {
|
|
70
|
+
fs.writeFileSync(readmePath, INBOX_README, 'utf-8');
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return inboxDir;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Lists non-system files in the Inbox directory with metadata.
|
|
78
|
+
* Returns files sorted by modification time (newest first).
|
|
79
|
+
*/
|
|
80
|
+
export function listInboxFiles(mindRoot: string): InboxFileInfo[] {
|
|
81
|
+
const inboxDir = path.resolve(mindRoot, INBOX_DIR);
|
|
82
|
+
if (!fs.existsSync(inboxDir)) return [];
|
|
83
|
+
|
|
84
|
+
const entries = fs.readdirSync(inboxDir, { withFileTypes: true });
|
|
85
|
+
const now = Date.now();
|
|
86
|
+
const results: InboxFileInfo[] = [];
|
|
87
|
+
|
|
88
|
+
for (const entry of entries) {
|
|
89
|
+
if (!entry.isFile()) continue;
|
|
90
|
+
const lowerName = entry.name.toLowerCase();
|
|
91
|
+
if (lowerName === 'instruction.md' || lowerName === 'readme.md') continue;
|
|
92
|
+
if (entry.name.startsWith('.')) continue;
|
|
93
|
+
|
|
94
|
+
const filePath = path.join(inboxDir, entry.name);
|
|
95
|
+
try {
|
|
96
|
+
const stat = fs.statSync(filePath);
|
|
97
|
+
results.push({
|
|
98
|
+
name: entry.name,
|
|
99
|
+
path: `${INBOX_DIR}/${entry.name}`,
|
|
100
|
+
size: stat.size,
|
|
101
|
+
modifiedAt: stat.mtime.toISOString(),
|
|
102
|
+
isAging: now - stat.mtime.getTime() > AGING_THRESHOLD_MS,
|
|
103
|
+
});
|
|
104
|
+
} catch {
|
|
105
|
+
// file may have been deleted between readdir and stat
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
results.sort((a, b) => new Date(b.modifiedAt).getTime() - new Date(a.modifiedAt).getTime());
|
|
110
|
+
return results;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function decodeContent(encoding: string | undefined, content: string): string {
|
|
114
|
+
if (encoding === 'base64') {
|
|
115
|
+
return Buffer.from(content, 'base64').toString('utf-8');
|
|
116
|
+
}
|
|
117
|
+
return content;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function resolveUniqueName(inboxDir: string, targetName: string): string {
|
|
121
|
+
let resolved = path.join(inboxDir, targetName);
|
|
122
|
+
if (!fs.existsSync(resolved)) return targetName;
|
|
123
|
+
|
|
124
|
+
const ext = path.extname(targetName);
|
|
125
|
+
const stem = ext ? targetName.slice(0, -ext.length) : targetName;
|
|
126
|
+
let n = 1;
|
|
127
|
+
while (fs.existsSync(resolved)) {
|
|
128
|
+
const candidate = `${stem}-${n}${ext}`;
|
|
129
|
+
resolved = path.join(inboxDir, candidate);
|
|
130
|
+
if (!fs.existsSync(resolved)) return candidate;
|
|
131
|
+
n++;
|
|
132
|
+
}
|
|
133
|
+
return targetName;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Saves files to the Inbox directory.
|
|
138
|
+
* Handles format conversion (txt→md, html→md, etc.) and deduplication.
|
|
139
|
+
*/
|
|
140
|
+
export function saveToInbox(mindRoot: string, files: InboxSaveInput[]): InboxSaveResult {
|
|
141
|
+
const inboxDir = ensureInboxSpace(mindRoot);
|
|
142
|
+
const saved: InboxSaveResult['saved'] = [];
|
|
143
|
+
const skipped: InboxSaveResult['skipped'] = [];
|
|
144
|
+
|
|
145
|
+
for (const file of files) {
|
|
146
|
+
if (!file.name || typeof file.name !== 'string') {
|
|
147
|
+
skipped.push({ name: file.name || '(empty)', reason: 'Invalid file name' });
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if (file.content == null || typeof file.content !== 'string') {
|
|
152
|
+
skipped.push({ name: file.name, reason: 'Missing or invalid content' });
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const ext = path.extname(file.name).toLowerCase();
|
|
157
|
+
if (!ALLOWED_IMPORT_EXTENSIONS.has(ext)) {
|
|
158
|
+
skipped.push({ name: file.name, reason: `Unsupported format: ${ext}` });
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
try {
|
|
163
|
+
const sanitized = sanitizeFileName(file.name);
|
|
164
|
+
const raw = decodeContent(file.encoding, file.content);
|
|
165
|
+
const { content, targetName } = convertToMarkdown(sanitized, raw);
|
|
166
|
+
const uniqueName = resolveUniqueName(inboxDir, targetName);
|
|
167
|
+
|
|
168
|
+
// Security: resolve within mindRoot
|
|
169
|
+
const targetPath = `${INBOX_DIR}/${uniqueName}`;
|
|
170
|
+
resolveSafe(mindRoot, targetPath);
|
|
171
|
+
|
|
172
|
+
const absPath = path.join(inboxDir, uniqueName);
|
|
173
|
+
fs.writeFileSync(absPath, content, 'utf-8');
|
|
174
|
+
saved.push({ original: file.name, path: targetPath });
|
|
175
|
+
} catch (err) {
|
|
176
|
+
skipped.push({ name: file.name, reason: (err as Error).message });
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return { saved, skipped };
|
|
181
|
+
}
|
package/app/lib/core/index.ts
CHANGED
|
@@ -68,6 +68,10 @@ export { createSpaceFilesystem, generateReadmeTemplate } from './create-space';
|
|
|
68
68
|
export { summarizeTopLevelSpaces } from './list-spaces';
|
|
69
69
|
export type { MindSpaceSummary } from './list-spaces';
|
|
70
70
|
|
|
71
|
+
// Inbox
|
|
72
|
+
export { INBOX_DIR, ensureInboxSpace, listInboxFiles, saveToInbox } from './inbox';
|
|
73
|
+
export type { InboxFileInfo, InboxSaveResult, InboxSaveInput } from './inbox';
|
|
74
|
+
|
|
71
75
|
// Content changes
|
|
72
76
|
export {
|
|
73
77
|
appendContentChange,
|
package/app/lib/core/tree.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { FileNode } from './types';
|
|
|
5
5
|
|
|
6
6
|
const DEFAULT_IGNORED_DIRS = new Set(['.git', 'node_modules', 'app', '.next', '.DS_Store', 'mcp']);
|
|
7
7
|
const DEFAULT_ALLOWED_EXTENSIONS = new Set(['.md', '.csv']);
|
|
8
|
+
const SYSTEM_FILES = new Set(['INSTRUCTION.md', 'README.md', 'CONFIG.json', 'CHANGELOG.md']);
|
|
8
9
|
|
|
9
10
|
export interface TreeOptions {
|
|
10
11
|
ignoredDirs?: Set<string>;
|
|
@@ -86,6 +87,7 @@ export function collectAllFiles(
|
|
|
86
87
|
if (ignoredDirs.has(entry.name)) continue;
|
|
87
88
|
files.push(...collectAllFiles(mindRoot, fullPath, opts));
|
|
88
89
|
} else if (entry.isFile()) {
|
|
90
|
+
if (dir === root && SYSTEM_FILES.has(entry.name)) continue;
|
|
89
91
|
const ext = path.extname(entry.name).toLowerCase();
|
|
90
92
|
if (allowedExtensions.has(ext)) {
|
|
91
93
|
files.push(path.relative(root, fullPath));
|
|
@@ -147,6 +149,7 @@ export async function collectAllFilesAsync(
|
|
|
147
149
|
if (ignoredDirs.has(entry.name)) continue;
|
|
148
150
|
subdirPromises.push(collectAllFilesAsync(mindRoot, fullPath, opts));
|
|
149
151
|
} else if (entry.isFile()) {
|
|
152
|
+
if (dir === root && SYSTEM_FILES.has(entry.name)) continue;
|
|
150
153
|
const ext = path.extname(entry.name).toLowerCase();
|
|
151
154
|
if (allowedExtensions.has(ext)) {
|
|
152
155
|
files.push(path.relative(root, fullPath));
|
package/app/lib/core/types.ts
CHANGED
package/app/lib/fs.ts
CHANGED
|
@@ -49,6 +49,7 @@ export function getMindRoot(): string {
|
|
|
49
49
|
|
|
50
50
|
const IGNORED_DIRS = new Set(['.git', 'node_modules', 'app', '.next', '.DS_Store']);
|
|
51
51
|
const ALLOWED_EXTENSIONS = new Set(['.md', '.csv', '.json']);
|
|
52
|
+
const SYSTEM_FILES = new Set(['INSTRUCTION.md', 'README.md', 'CONFIG.json', 'CHANGELOG.md']);
|
|
52
53
|
|
|
53
54
|
// ─── In-memory cache ──────────────────────────────────────────────────────────
|
|
54
55
|
|
|
@@ -231,10 +232,27 @@ function extractBodyLines(filePath: string, maxLines: number): string[] {
|
|
|
231
232
|
} catch { return []; }
|
|
232
233
|
}
|
|
233
234
|
|
|
235
|
+
const TEMPLATE_MARKERS = [
|
|
236
|
+
'Define local execution rules for this directory.',
|
|
237
|
+
'(your files here)',
|
|
238
|
+
'(Describe the purpose and usage of this space.)',
|
|
239
|
+
'(Add usage guidelines for this space.)',
|
|
240
|
+
];
|
|
241
|
+
|
|
242
|
+
function isTemplateContent(filePath: string): boolean {
|
|
243
|
+
try {
|
|
244
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
245
|
+
return TEMPLATE_MARKERS.some(m => content.includes(m));
|
|
246
|
+
} catch { return false; }
|
|
247
|
+
}
|
|
248
|
+
|
|
234
249
|
function buildSpacePreview(dirAbsPath: string) {
|
|
250
|
+
const instructionPath = path.join(dirAbsPath, 'INSTRUCTION.md');
|
|
251
|
+
const readmePath = path.join(dirAbsPath, 'README.md');
|
|
235
252
|
return {
|
|
236
|
-
instructionLines: extractBodyLines(
|
|
237
|
-
readmeLines: extractBodyLines(
|
|
253
|
+
instructionLines: extractBodyLines(instructionPath, SPACE_PREVIEW_MAX_LINES),
|
|
254
|
+
readmeLines: extractBodyLines(readmePath, SPACE_PREVIEW_MAX_LINES),
|
|
255
|
+
isTemplate: isTemplateContent(instructionPath) && isTemplateContent(readmePath),
|
|
238
256
|
};
|
|
239
257
|
}
|
|
240
258
|
|
|
@@ -266,6 +284,9 @@ function buildFileTree(dirPath: string, rootOverride?: string): FileNode[] {
|
|
|
266
284
|
nodes.push(node);
|
|
267
285
|
}
|
|
268
286
|
} else if (entry.isFile()) {
|
|
287
|
+
// Filter out system files at root level
|
|
288
|
+
if (dirPath === root && SYSTEM_FILES.has(entry.name)) continue;
|
|
289
|
+
|
|
269
290
|
const ext = path.extname(entry.name).toLowerCase();
|
|
270
291
|
if (ALLOWED_EXTENSIONS.has(ext)) {
|
|
271
292
|
nodes.push({ name: entry.name, path: relativePath, type: 'file', extension: ext });
|
|
@@ -302,6 +323,9 @@ function buildAllFiles(dirPath: string): string[] {
|
|
|
302
323
|
if (IGNORED_DIRS.has(entry.name)) continue;
|
|
303
324
|
files.push(...buildAllFiles(fullPath));
|
|
304
325
|
} else if (entry.isFile()) {
|
|
326
|
+
// Filter out system files at root level
|
|
327
|
+
if (dirPath === root && SYSTEM_FILES.has(entry.name)) continue;
|
|
328
|
+
|
|
305
329
|
const ext = path.extname(entry.name).toLowerCase();
|
|
306
330
|
if (ALLOWED_EXTENSIONS.has(ext)) {
|
|
307
331
|
files.push(path.relative(root, fullPath));
|
|
@@ -5,7 +5,8 @@ export const aiChatEn = {
|
|
|
5
5
|
title: 'MindOS Agent',
|
|
6
6
|
fabLabel: 'Ask AI',
|
|
7
7
|
placeholder: 'Ask a question... @ files, / skills',
|
|
8
|
-
emptyPrompt: '
|
|
8
|
+
emptyPrompt: 'How can I help?',
|
|
9
|
+
emptyHint: 'Type @ to reference files · / to use skills',
|
|
9
10
|
send: 'send',
|
|
10
11
|
newlineHint: 'new line',
|
|
11
12
|
panelComposerResize: 'Drag up to enlarge the input area',
|
|
@@ -13,6 +14,8 @@ export const aiChatEn = {
|
|
|
13
14
|
panelComposerResetHint: 'Double-click to reset height',
|
|
14
15
|
panelComposerKeyboard: 'Arrow keys adjust height; Home/End min/max',
|
|
15
16
|
attachFile: 'Context',
|
|
17
|
+
attachFileLabel: 'Document',
|
|
18
|
+
attachImageLabel: 'Image',
|
|
16
19
|
uploadedFiles: 'Uploaded',
|
|
17
20
|
skillsHint: 'skills',
|
|
18
21
|
attachCurrent: 'attach current file',
|
|
@@ -30,15 +33,23 @@ export const aiChatEn = {
|
|
|
30
33
|
retry: 'Retry',
|
|
31
34
|
suggestions: [
|
|
32
35
|
'Summarize this document',
|
|
33
|
-
'
|
|
34
|
-
'
|
|
35
|
-
'
|
|
36
|
+
'Organize my recent notes',
|
|
37
|
+
'Find related notes',
|
|
38
|
+
'Draft a new note',
|
|
36
39
|
],
|
|
40
|
+
modeChat: 'Chat',
|
|
41
|
+
modeAgent: 'Agent',
|
|
42
|
+
modeChatHint: 'Can search / read KB · saves tokens',
|
|
43
|
+
modeAgentHint: 'Full tool access · can modify KB',
|
|
37
44
|
sessionHistory: 'Session History',
|
|
38
45
|
clearAll: 'Clear all',
|
|
39
46
|
confirmClear: 'Confirm clear?',
|
|
40
47
|
noSessions: 'No saved sessions.',
|
|
48
|
+
renameSession: 'Rename',
|
|
41
49
|
draftingHint: 'AI is still running — you can draft the next step now.',
|
|
50
|
+
providerCapsule: 'Switch model provider',
|
|
51
|
+
providerDefault: 'Default',
|
|
52
|
+
providerNoKey: 'No configured providers',
|
|
42
53
|
},
|
|
43
54
|
changes: {
|
|
44
55
|
unreadBanner: (n: number) => `${n} content change${n === 1 ? '' : 's'} unread`,
|
|
@@ -97,8 +108,8 @@ export const aiChatEn = {
|
|
|
97
108
|
sessionHistory: 'Session history',
|
|
98
109
|
newSession: 'New session',
|
|
99
110
|
attachFile: 'Attach local file',
|
|
100
|
-
maximizePanel: '
|
|
101
|
-
restorePanel: '
|
|
111
|
+
maximizePanel: 'Focus mode',
|
|
112
|
+
restorePanel: 'Exit focus',
|
|
102
113
|
dockToSide: 'Dock to side panel',
|
|
103
114
|
openAsPopup: 'Open as popup',
|
|
104
115
|
closePanel: 'Close',
|
|
@@ -112,7 +123,8 @@ export const aiChatZh = {
|
|
|
112
123
|
title: 'MindOS Agent',
|
|
113
124
|
fabLabel: 'AI 助手',
|
|
114
125
|
placeholder: '输入问题… @ 附加文件,/ 技能',
|
|
115
|
-
emptyPrompt: '
|
|
126
|
+
emptyPrompt: '有什么可以帮你?',
|
|
127
|
+
emptyHint: '输入 @ 引用文件 · / 使用技能',
|
|
116
128
|
send: '发送',
|
|
117
129
|
newlineHint: '换行',
|
|
118
130
|
panelComposerResize: '向上拖拽以拉高输入区',
|
|
@@ -120,6 +132,8 @@ export const aiChatZh = {
|
|
|
120
132
|
panelComposerResetHint: '双击恢复默认高度',
|
|
121
133
|
panelComposerKeyboard: '方向键调节高度;Home/End 最小或最大',
|
|
122
134
|
attachFile: '上下文',
|
|
135
|
+
attachFileLabel: '文档',
|
|
136
|
+
attachImageLabel: '图片',
|
|
123
137
|
uploadedFiles: '已上传',
|
|
124
138
|
skillsHint: '技能',
|
|
125
139
|
attachCurrent: '附加当前文件',
|
|
@@ -137,15 +151,23 @@ export const aiChatZh = {
|
|
|
137
151
|
retry: '重试',
|
|
138
152
|
suggestions: [
|
|
139
153
|
'总结这篇文档',
|
|
140
|
-
'
|
|
141
|
-
'
|
|
142
|
-
'
|
|
154
|
+
'整理最近的笔记',
|
|
155
|
+
'查找相关笔记',
|
|
156
|
+
'起草一篇新笔记',
|
|
143
157
|
],
|
|
158
|
+
modeChat: '对话',
|
|
159
|
+
modeAgent: 'Agent',
|
|
160
|
+
modeChatHint: '可搜索/阅读知识库 · 省 token',
|
|
161
|
+
modeAgentHint: '完整工具权限 · 可修改知识库',
|
|
144
162
|
sessionHistory: '对话历史',
|
|
145
163
|
clearAll: '清除全部',
|
|
146
164
|
confirmClear: '确认清除?',
|
|
147
165
|
noSessions: '暂无历史对话。',
|
|
166
|
+
renameSession: '重命名',
|
|
148
167
|
draftingHint: 'AI 仍在执行,你可以先输入下一步。',
|
|
168
|
+
providerCapsule: '切换模型服务商',
|
|
169
|
+
providerDefault: '默认',
|
|
170
|
+
providerNoKey: '暂无已配置的服务商',
|
|
149
171
|
},
|
|
150
172
|
changes: {
|
|
151
173
|
unreadBanner: (n: number) => `${n} 条内容变更未读`,
|
|
@@ -162,7 +184,7 @@ export const aiChatZh = {
|
|
|
162
184
|
filePath: '文件路径',
|
|
163
185
|
filePathPlaceholder: '例如:Projects/plan.md',
|
|
164
186
|
source: 'Agents(来源)',
|
|
165
|
-
operation: '
|
|
187
|
+
operation: '工具(操作)',
|
|
166
188
|
operationAll: '全部操作',
|
|
167
189
|
keyword: '关键词',
|
|
168
190
|
keywordPlaceholder: '摘要 / 操作 / 路径',
|
|
@@ -204,8 +226,8 @@ export const aiChatZh = {
|
|
|
204
226
|
sessionHistory: '会话历史',
|
|
205
227
|
newSession: '新会话',
|
|
206
228
|
attachFile: '附加本地文件',
|
|
207
|
-
maximizePanel: '
|
|
208
|
-
restorePanel: '
|
|
229
|
+
maximizePanel: '专注模式',
|
|
230
|
+
restorePanel: '退出专注',
|
|
209
231
|
dockToSide: '停靠到侧边栏',
|
|
210
232
|
openAsPopup: '弹窗模式',
|
|
211
233
|
closePanel: '关闭',
|
|
@@ -96,7 +96,7 @@ export const featuresZh = {
|
|
|
96
96
|
quickStart: {
|
|
97
97
|
title: '快速开始',
|
|
98
98
|
step1Title: '浏览你的知识库',
|
|
99
|
-
step1Desc: '点击左侧边栏的"空间"图标来浏览你的文件。每个顶级文件夹是一个"空间"
|
|
99
|
+
step1Desc: '点击左侧边栏的"空间"图标来浏览你的文件。每个顶级文件夹是一个"空间"——比如个人档案、笔记或项目。',
|
|
100
100
|
step2Title: '和 AI 对话',
|
|
101
101
|
step2Desc: '按 ⌘/(或 Ctrl/)打开 AI 面板。询问任何关于知识库的问题,或使用 @ 附加特定文件作为上下文。',
|
|
102
102
|
step3Title: '连接你的 AI Agent',
|
|
@@ -139,7 +139,7 @@ export const featuresZh = {
|
|
|
139
139
|
title: '常见问题',
|
|
140
140
|
items: [
|
|
141
141
|
{ q: '如何切换语言?', a: '前往 设置 → 外观 → 语言。支持中文和英文切换。' },
|
|
142
|
-
{ q: '如何连接 AI Agent?', a: '前往 设置 → MCP
|
|
142
|
+
{ q: '如何连接 AI Agent?', a: '前往 设置 → MCP 与技能。MindOS 会自动检测已安装的 Agent(Claude Code、Cursor 等),一键即可连接。' },
|
|
143
143
|
{ q: '我的数据存储在哪里?', a: '所有数据以纯 Markdown 文件的形式存储在你的本地机器上。MindOS 不会将你的数据上传到任何云服务。数据完全由你掌控。' },
|
|
144
144
|
{ q: '如何跨设备同步?', a: '前往 设置 → 同步。MindOS 使用 Git 进行跨设备同步。输入 Git 远程仓库 URL 和访问令牌即可开始同步。' },
|
|
145
145
|
{ q: '可以使用自己的 AI 服务商吗?', a: '可以!前往 设置 → AI。支持 OpenAI、Anthropic、Google,或任何 OpenAI 兼容的 API(自定义 Base URL)。' },
|
|
@@ -85,8 +85,36 @@ export const knowledgeEn = {
|
|
|
85
85
|
reviewStale: 'Review',
|
|
86
86
|
dismiss: 'Dismiss',
|
|
87
87
|
},
|
|
88
|
+
inbox: {
|
|
89
|
+
title: 'Capture',
|
|
90
|
+
count: (n: number) => `${n}`,
|
|
91
|
+
emptyTitle: 'Quick capture, organize later',
|
|
92
|
+
emptyDesc: 'Drag files here or click Upload to save them instantly.',
|
|
93
|
+
uploadButton: 'Upload Files',
|
|
94
|
+
organizeButton: 'AI Organize',
|
|
95
|
+
organizing: 'Organizing...',
|
|
96
|
+
viewAll: 'View all',
|
|
97
|
+
more: (n: number) => `${n} more`,
|
|
98
|
+
agingHint: '7+ days',
|
|
99
|
+
savedToast: (n: number) => `${n} file${n === 1 ? '' : 's'} saved to Capture`,
|
|
100
|
+
savedWithSkipped: (saved: number, skipped: number) =>
|
|
101
|
+
saved > 0
|
|
102
|
+
? `${saved} saved, ${skipped} skipped (unsupported format)`
|
|
103
|
+
: `${skipped} file${skipped === 1 ? '' : 's'} skipped — unsupported format`,
|
|
104
|
+
tooLarge: (n: number) =>
|
|
105
|
+
`${n} file${n === 1 ? '' : 's'} too large (max 10 MB)`,
|
|
106
|
+
savedWithOversized: (saved: number, oversized: number) =>
|
|
107
|
+
`${saved} saved, ${oversized} skipped (too large)`,
|
|
108
|
+
organizePrompt: (fileNames: string[]) =>
|
|
109
|
+
`Please organize these files from Inbox into appropriate locations in my knowledge base. Analyze each file's content and move it to the most fitting Space or directory. Create new directories if needed. Here are the files:\n\n${fileNames.map(n => `- Inbox/${n}`).join('\n')}`,
|
|
110
|
+
dropOverlay: 'Drop to save to Capture',
|
|
111
|
+
dropOverlayFormats: 'md · txt · pdf · csv · json',
|
|
112
|
+
noMindRoot: 'Please configure your knowledge base first',
|
|
113
|
+
saveFailed: 'Failed to save files',
|
|
114
|
+
organizeFailed: 'Could not read files for organizing',
|
|
115
|
+
},
|
|
88
116
|
pulse: {
|
|
89
|
-
title: '
|
|
117
|
+
title: 'Your Agents',
|
|
90
118
|
manage: 'Manage',
|
|
91
119
|
connectTitle: 'Connect your AI tools',
|
|
92
120
|
connectDesc: 'Let Cursor, Claude Code, and ChatGPT read your notes.',
|
|
@@ -114,6 +142,7 @@ export const knowledgeEn = {
|
|
|
114
142
|
about: 'About',
|
|
115
143
|
viewAll: 'View all',
|
|
116
144
|
editRules: 'Edit Rules',
|
|
145
|
+
viewRules: 'View Rules',
|
|
117
146
|
renameSpace: 'Rename Space',
|
|
118
147
|
deleteSpace: 'Delete Space',
|
|
119
148
|
confirmDeleteSpace: (name: string) => `Delete space "${name}" and all its files? You can recover from Trash for 30 days.`,
|
|
@@ -300,6 +329,11 @@ export const knowledgeEn = {
|
|
|
300
329
|
emptyFolder: 'This folder is empty.',
|
|
301
330
|
fileCount: (n: number) => `${n} files`,
|
|
302
331
|
newFile: 'New file',
|
|
332
|
+
uninitTitle: 'Space not yet initialized',
|
|
333
|
+
uninitDesc: 'README.md and INSTRUCTION.md contain default templates. Configure an AI API key in Settings to auto-generate personalized content, or edit them manually.',
|
|
334
|
+
uninitEditReadme: 'Edit README',
|
|
335
|
+
uninitEditInstruction: 'Edit Instruction',
|
|
336
|
+
uninitSettings: 'Settings',
|
|
303
337
|
},
|
|
304
338
|
view: {
|
|
305
339
|
saveDirectory: 'Directory',
|
|
@@ -308,7 +342,13 @@ export const knowledgeEn = {
|
|
|
308
342
|
deleteConfirm: (name: string) => `Delete "${name}"? It will be moved to Trash.`,
|
|
309
343
|
cancel: 'Cancel',
|
|
310
344
|
rename: 'Rename',
|
|
345
|
+
copyPath: 'Copy Path',
|
|
346
|
+
more: 'More',
|
|
311
347
|
dismiss: 'Dismiss',
|
|
348
|
+
tocTitle: 'On this page',
|
|
349
|
+
tocCollapse: 'Collapse',
|
|
350
|
+
tocExpand: 'Expand',
|
|
351
|
+
emptyNote: 'This note is empty. Press E to start writing.',
|
|
312
352
|
},
|
|
313
353
|
findInPage: {
|
|
314
354
|
placeholder: 'Find in document…',
|
|
@@ -402,8 +442,36 @@ export const knowledgeZh = {
|
|
|
402
442
|
reviewStale: '查看',
|
|
403
443
|
dismiss: '忽略',
|
|
404
444
|
},
|
|
445
|
+
inbox: {
|
|
446
|
+
title: '暂存台',
|
|
447
|
+
count: (n: number) => `${n}`,
|
|
448
|
+
emptyTitle: '快速捕获,稍后整理',
|
|
449
|
+
emptyDesc: '拖拽文件到此处,或点击上传按钮,即刻保存到暂存台。',
|
|
450
|
+
uploadButton: '上传文件',
|
|
451
|
+
organizeButton: 'AI 整理',
|
|
452
|
+
organizing: '整理中...',
|
|
453
|
+
viewAll: '查看全部',
|
|
454
|
+
more: (n: number) => `还有 ${n} 个`,
|
|
455
|
+
agingHint: '7天+',
|
|
456
|
+
savedToast: (n: number) => `${n} 个文件已保存到暂存台`,
|
|
457
|
+
savedWithSkipped: (saved: number, skipped: number) =>
|
|
458
|
+
saved > 0
|
|
459
|
+
? `已保存 ${saved} 个,跳过 ${skipped} 个(格式不支持)`
|
|
460
|
+
: `${skipped} 个文件被跳过(格式不支持)`,
|
|
461
|
+
tooLarge: (n: number) =>
|
|
462
|
+
`${n} 个文件过大(上限 10 MB)`,
|
|
463
|
+
savedWithOversized: (saved: number, oversized: number) =>
|
|
464
|
+
`已保存 ${saved} 个,${oversized} 个过大被跳过`,
|
|
465
|
+
organizePrompt: (fileNames: string[]) =>
|
|
466
|
+
`请将暂存台中的这些文件整理到知识库的合适位置。分析每个文件的内容,将其移动到最匹配的空间或目录。需要的话可以创建新目录。以下是待整理的文件:\n\n${fileNames.map(n => `- Inbox/${n}`).join('\n')}`,
|
|
467
|
+
dropOverlay: '拖放到暂存台快速保存',
|
|
468
|
+
dropOverlayFormats: 'md · txt · pdf · csv · json',
|
|
469
|
+
noMindRoot: '请先配置知识库路径',
|
|
470
|
+
saveFailed: '保存文件失败',
|
|
471
|
+
organizeFailed: '无法读取文件进行整理',
|
|
472
|
+
},
|
|
405
473
|
pulse: {
|
|
406
|
-
title: '
|
|
474
|
+
title: '你的 Agent',
|
|
407
475
|
manage: '管理',
|
|
408
476
|
connectTitle: '连接你的 AI 工具',
|
|
409
477
|
connectDesc: '让 Cursor、Claude Code 等 AI 读到你的笔记。',
|
|
@@ -431,6 +499,7 @@ export const knowledgeZh = {
|
|
|
431
499
|
about: '说明',
|
|
432
500
|
viewAll: '查看全部',
|
|
433
501
|
editRules: '编辑规则',
|
|
502
|
+
viewRules: '查看规则',
|
|
434
503
|
renameSpace: '重命名空间',
|
|
435
504
|
deleteSpace: '删除空间',
|
|
436
505
|
confirmDeleteSpace: (name: string) => `删除空间「${name}」及其所有文件?可在回收站恢复(30 天内)。`,
|
|
@@ -617,6 +686,11 @@ export const knowledgeZh = {
|
|
|
617
686
|
emptyFolder: '此目录为空。',
|
|
618
687
|
fileCount: (n: number) => `${n} 个文件`,
|
|
619
688
|
newFile: '新建文件',
|
|
689
|
+
uninitTitle: '空间尚未初始化',
|
|
690
|
+
uninitDesc: 'README.md 和 INSTRUCTION.md 仍是默认模板。配置 AI API 密钥后可自动生成个性化内容,或手动编辑。',
|
|
691
|
+
uninitEditReadme: '编辑 README',
|
|
692
|
+
uninitEditInstruction: '编辑 Instruction',
|
|
693
|
+
uninitSettings: '设置',
|
|
620
694
|
},
|
|
621
695
|
view: {
|
|
622
696
|
saveDirectory: '目录',
|
|
@@ -625,7 +699,13 @@ export const knowledgeZh = {
|
|
|
625
699
|
deleteConfirm: (name: string) => `确定删除「${name}」?文件将移至回收站。`,
|
|
626
700
|
cancel: '取消',
|
|
627
701
|
rename: '重命名',
|
|
702
|
+
copyPath: '复制路径',
|
|
703
|
+
more: '更多',
|
|
628
704
|
dismiss: '关闭',
|
|
705
|
+
tocTitle: '本页目录',
|
|
706
|
+
tocCollapse: '收起',
|
|
707
|
+
tocExpand: '展开',
|
|
708
|
+
emptyNote: '此笔记为空。按 E 开始编辑。',
|
|
629
709
|
},
|
|
630
710
|
findInPage: {
|
|
631
711
|
placeholder: '在文档中查找…',
|
|
@@ -25,6 +25,8 @@ export const navigationEn = {
|
|
|
25
25
|
new: 'New',
|
|
26
26
|
newFile: 'New file',
|
|
27
27
|
newSpace: 'New Space',
|
|
28
|
+
more: 'More',
|
|
29
|
+
showHiddenFiles: 'Show hidden files',
|
|
28
30
|
sync: {
|
|
29
31
|
synced: 'Synced',
|
|
30
32
|
unpushed: 'awaiting push',
|
|
@@ -101,6 +103,8 @@ export const navigationZh = {
|
|
|
101
103
|
new: '新建',
|
|
102
104
|
newFile: '新建文件',
|
|
103
105
|
newSpace: '新建空间',
|
|
106
|
+
more: '更多',
|
|
107
|
+
showHiddenFiles: '显示隐藏文件',
|
|
104
108
|
sync: {
|
|
105
109
|
synced: '已同步',
|
|
106
110
|
unpushed: '待推送',
|
|
@@ -130,7 +134,7 @@ export const navigationZh = {
|
|
|
130
134
|
openSettings: '打开设置',
|
|
131
135
|
restartWalkthrough: '重新开始引导',
|
|
132
136
|
toggleDarkMode: '切换深色模式',
|
|
133
|
-
goToAgents: '
|
|
137
|
+
goToAgents: '前往智能体',
|
|
134
138
|
goToDiscover: '前往探索',
|
|
135
139
|
goToHelp: '前往帮助',
|
|
136
140
|
walkthroughRestarted: '引导已重置',
|
|
@@ -141,7 +145,7 @@ export const navigationZh = {
|
|
|
141
145
|
panelsSection: '面板',
|
|
142
146
|
editor: '编辑器',
|
|
143
147
|
toggleSearch: '切换搜索',
|
|
144
|
-
toggleAskAI: '切换
|
|
148
|
+
toggleAskAI: '切换 AI 助手',
|
|
145
149
|
openSettings: '打开设置',
|
|
146
150
|
keyboardShortcuts: '快捷键',
|
|
147
151
|
closePanel: '关闭面板 / 退出最大化',
|