@geminilight/mindos 0.6.58 → 0.6.60
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 +23 -22
- 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 +1 -1
- 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 +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 +2 -2
- 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/agents/copy-skill/route.js +1 -0
- package/_standalone/.next/server/app/api/agents/copy-skill/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/agents/copy-skill/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/agents/custom/detect/route.js +1 -1
- package/_standalone/.next/server/app/api/agents/custom/detect/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/custom/route.js +1 -1
- package/_standalone/.next/server/app/api/agents/custom/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/ask/route.js +18 -7
- 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.js +2 -2
- package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/agents/route.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 +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 +3 -3
- 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 +2 -2
- 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/inbox/history/page.js +1 -1
- package/_standalone/.next/server/app/inbox/history/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/login/page.js +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 +2 -8
- 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 +3 -3
- package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/wiki/page.js +2 -2
- package/_standalone/.next/server/app/wiki/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app-paths-manifest.json +23 -22
- package/_standalone/.next/server/chunks/1550.js +1 -1
- package/_standalone/.next/server/chunks/3484.js +1 -1
- package/_standalone/.next/server/chunks/530.js +70 -71
- package/_standalone/.next/server/chunks/{6793.js → 9753.js} +2 -2
- package/_standalone/.next/server/chunks/9787.js +2 -0
- 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/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/K3wZNf5bj_AFYwtqcRXIf/_buildManifest.js +1 -0
- package/_standalone/.next/static/chunks/1369-7d0ac5d1564eed1e.js +1 -0
- package/_standalone/.next/static/chunks/{1814.a7c127b2c73d1f70.js → 1814.a79b84d37df75c43.js} +1 -1
- package/_standalone/.next/static/chunks/3427-2e61a5df1f5e55fb.js +1 -0
- package/_standalone/.next/static/chunks/{1053-fe009233cff06e72.js → 5581-974dfb26d1d1b38f.js} +3 -3
- package/_standalone/.next/static/chunks/6297-085daa21037d5f81.js +1 -0
- package/_standalone/.next/static/chunks/7249-b0a9c77b9a84b11c.js +11 -0
- package/_standalone/.next/static/chunks/7637-904b0a381dc3ec02.js +1 -0
- package/_standalone/.next/static/chunks/8520-76d1b05072178b43.js +22 -0
- package/_standalone/.next/static/chunks/9186-ead47513192f658b.js +1 -0
- package/_standalone/.next/static/chunks/9905-a19d379cb225246e.js +1 -0
- package/_standalone/.next/static/chunks/app/.well-known/agent-card.json/{route-2f4705aa66819b86.js → route-2ceea6eabf25b1f2.js} +1 -1
- package/_standalone/.next/static/chunks/app/_global-error/{page-2f4705aa66819b86.js → page-2ceea6eabf25b1f2.js} +1 -1
- package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-0ea3571c8fbae823.js +1 -0
- package/_standalone/.next/static/chunks/app/agents/page-66858acbcd1d4bf8.js +1 -0
- package/_standalone/.next/static/chunks/app/api/a2a/agents/{route-2f4705aa66819b86.js → route-2ceea6eabf25b1f2.js} +1 -1
- package/_standalone/.next/static/chunks/app/api/a2a/delegations/{route-2f4705aa66819b86.js → route-2ceea6eabf25b1f2.js} +1 -1
- package/_standalone/.next/static/chunks/app/api/a2a/discover/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/a2a/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/config/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/detect/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/install/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/registry/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/session/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agent-activity/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agents/copy-skill/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agents/custom/detect/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agents/custom/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/ask/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/ask-sessions/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/auth/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/backlinks/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/bootstrap/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/changes/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/export/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/extract-pdf/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/file/import/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/file/raw/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/file/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/files/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/git/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/graph/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/health/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/inbox/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/init/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/agents/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/install/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/install-skill/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/restart/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/status/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/uninstall/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/monitoring/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/recent-files/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/restart/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/search/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/list-models/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/reset-token/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/test-key/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/check-path/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/check-port/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/generate-token/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/ls/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/skills/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/sync/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/tree-version/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/uninstall/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/update/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/update-check/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/update-status/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/api/workflows/route-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/changes/page-dd0b00a7b81f74e2.js +1 -0
- package/_standalone/.next/static/chunks/app/echo/[segment]/page-bf5c290fa3ccff09.js +11 -0
- package/_standalone/.next/static/chunks/app/echo/page-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/explore/{page-d3d99308146c2240.js → page-d9f58000bc445360.js} +2 -2
- package/_standalone/.next/static/chunks/app/help/{page-222df603080b5fab.js → page-f8cb806371b3175f.js} +1 -1
- package/_standalone/.next/static/chunks/app/inbox/history/{page-07819cf95cb0805f.js → page-3279585360df132c.js} +1 -1
- package/_standalone/.next/static/chunks/app/layout-6a0169582db11a08.js +164 -0
- package/_standalone/.next/static/chunks/app/loading-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/login/{page-0eeef685052869a6.js → page-18fb00d568cd1f0e.js} +1 -1
- package/_standalone/.next/static/chunks/app/page-6a1f8d21c12b829e.js +1 -0
- package/_standalone/.next/static/chunks/app/setup/{page-99fcfc460fa29733.js → page-821714e7477be46c.js} +1 -1
- package/_standalone/.next/static/chunks/app/trash/page-ed7ba3b0b50223a6.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/loading-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/{not-found-fc04c2bd4f35bc6f.js → not-found-6e0c75ad26ce8572.js} +1 -1
- package/_standalone/.next/static/chunks/app/view/[...path]/page-678139779971cfcb.js +12 -0
- package/_standalone/.next/static/chunks/app/wiki/page-194ae9af2d461481.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-2ceea6eabf25b1f2.js +1 -0
- package/_standalone/.next/static/chunks/{webpack-2c19436659aa657b.js → webpack-72e8d9e9073fd1f9.js} +1 -1
- package/_standalone/.next/static/css/9c558c42831fae58.css +1 -0
- package/_standalone/.next/trace +65 -64
- package/_standalone/.next/types/routes.d.ts +2 -1
- package/_standalone/.next/types/validator.ts +9 -0
- package/_standalone/__tests__/api/mcp-install.test.ts +4 -2
- package/_standalone/app/globals.css +2 -1
- package/_standalone/components/AskFab.tsx +11 -5
- package/_standalone/components/AskModal.tsx +1 -1
- package/_standalone/components/FileTree.tsx +83 -1
- package/_standalone/components/GuideCard.tsx +101 -152
- package/_standalone/components/Panel.tsx +6 -1
- package/_standalone/components/RightAskPanel.tsx +2 -2
- package/_standalone/components/agents/AgentsOverviewSection.tsx +13 -11
- package/_standalone/components/agents/CustomAgentModal.tsx +72 -18
- package/_standalone/components/ask/AskContent.tsx +109 -54
- package/_standalone/components/ask/AskHeader.tsx +218 -18
- package/_standalone/components/ask/FileChip.tsx +93 -12
- package/_standalone/components/ask/MessageList.tsx +66 -47
- package/_standalone/components/ask/SessionHistory.tsx +86 -60
- package/_standalone/components/ask/SessionTabBar.tsx +29 -21
- package/_standalone/components/ask/ThinkingBlock.tsx +6 -5
- package/_standalone/components/ask/ToolCallBlock.tsx +10 -9
- package/_standalone/components/changes/ChangesBanner.tsx +1 -1
- package/_standalone/components/settings/SettingsContent.tsx +1 -1
- package/_standalone/components/walkthrough/WalkthroughTooltip.tsx +3 -1
- package/_standalone/components/walkthrough/steps.ts +1 -1
- package/_standalone/data/skills/mindos/SKILL.md +67 -15
- package/_standalone/data/skills/mindos-zh/SKILL.md +67 -11
- package/_standalone/hooks/useAskChat.ts +10 -8
- package/_standalone/hooks/useAskSession.ts +23 -1
- package/_standalone/hooks/useFileUpload.ts +97 -43
- package/_standalone/hooks/useImageUpload.ts +1 -1
- package/_standalone/lib/inbox-upload.ts +86 -0
- package/_standalone/lib/stores/locale-store.ts +20 -6
- package/_standalone/package-lock.json +2 -2
- package/_standalone/package.json +1 -1
- package/_standalone/scripts/extract-pdf.cjs +110 -3
- package/_standalone/tsconfig.tsbuildinfo +1 -1
- package/app/app/api/agents/copy-skill/route.ts +110 -0
- package/app/app/api/agents/custom/detect/route.ts +16 -1
- package/app/app/api/ask/route.ts +7 -1
- package/app/app/api/extract-pdf/route.ts +12 -5
- package/app/app/api/mcp/agents/route.ts +64 -2
- package/app/app/globals.css +2 -1
- package/app/app/layout.tsx +16 -4
- package/app/components/AskFab.tsx +11 -5
- package/app/components/AskModal.tsx +1 -1
- package/app/components/FileTree.tsx +83 -1
- package/app/components/GuideCard.tsx +101 -152
- package/app/components/HomeContent.tsx +123 -574
- package/app/components/Panel.tsx +6 -1
- package/app/components/RightAskPanel.tsx +2 -2
- package/app/components/WikiHomeContent.tsx +151 -3
- package/app/components/agents/AgentDetailContent.tsx +58 -1
- package/app/components/agents/AgentsOverviewSection.tsx +13 -11
- package/app/components/agents/CustomAgentModal.tsx +72 -18
- package/app/components/ask/AskContent.tsx +109 -54
- package/app/components/ask/AskHeader.tsx +218 -18
- package/app/components/ask/FileChip.tsx +93 -12
- package/app/components/ask/MessageList.tsx +66 -47
- package/app/components/ask/SessionHistory.tsx +86 -60
- package/app/components/ask/SessionTabBar.tsx +29 -21
- package/app/components/ask/ThinkingBlock.tsx +6 -5
- package/app/components/ask/ToolCallBlock.tsx +10 -9
- package/app/components/changes/ChangesBanner.tsx +1 -1
- package/app/components/changes/ChangesContentPage.tsx +368 -168
- package/app/components/settings/SettingsContent.tsx +1 -1
- package/app/components/walkthrough/WalkthroughTooltip.tsx +3 -1
- package/app/components/walkthrough/steps.ts +1 -1
- package/app/data/skills/mindos/SKILL.md +67 -15
- package/app/data/skills/mindos-zh/SKILL.md +67 -11
- package/app/hooks/useAskChat.ts +10 -8
- package/app/hooks/useAskSession.ts +23 -1
- package/app/hooks/useFileUpload.ts +97 -43
- package/app/hooks/useImageUpload.ts +1 -1
- package/app/lib/agent/prompt.ts +15 -4
- package/app/lib/custom-agents.ts +109 -1
- package/app/lib/file-ops.ts +58 -0
- package/app/lib/i18n/modules/ai-chat.ts +134 -10
- package/app/lib/i18n/modules/knowledge.ts +2 -0
- package/app/lib/i18n/modules/onboarding.ts +12 -12
- package/app/lib/inbox-upload.ts +86 -0
- package/app/lib/mcp-agents.ts +21 -1
- package/app/lib/stores/LocaleStoreInit.tsx +24 -1
- package/app/lib/stores/locale-store.ts +20 -6
- package/app/lib/types.ts +13 -0
- package/app/package.json +1 -1
- package/app/scripts/extract-pdf.cjs +110 -3
- package/package.json +1 -1
- package/skills/mindos/SKILL.md +67 -15
- package/skills/mindos/references/knowledge-health.md +120 -0
- package/skills/mindos-max/SKILL.md +52 -5
- package/skills/mindos-max-zh/SKILL.md +55 -6
- package/skills/mindos-zh/SKILL.md +67 -11
- package/_standalone/.next/server/chunks/2364.js +0 -2
- package/_standalone/.next/server/chunks/357.js +0 -1
- package/_standalone/.next/static/2ksXveDzEcnCMRIElDkLq/_buildManifest.js +0 -1
- package/_standalone/.next/static/chunks/178-105779afb62d36d9.js +0 -1
- package/_standalone/.next/static/chunks/2218-d54538000574ffef.js +0 -1
- package/_standalone/.next/static/chunks/2549-e63cf57fa927a41d.js +0 -1
- package/_standalone/.next/static/chunks/4237-ffc6e7c15d4007b6.js +0 -1
- package/_standalone/.next/static/chunks/6878-e2c5459e1c608f89.js +0 -1
- package/_standalone/.next/static/chunks/7249-fa98ca10e9a10f39.js +0 -11
- package/_standalone/.next/static/chunks/9274-296ab35f9f09e42e.js +0 -1
- package/_standalone/.next/static/chunks/9286-5b09baa5200318c2.js +0 -1
- package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-7bdeab5af8e4f5f2.js +0 -1
- package/_standalone/.next/static/chunks/app/agents/page-5d1446665ddb3801.js +0 -1
- package/_standalone/.next/static/chunks/app/api/a2a/discover/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/a2a/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/config/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/detect/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/install/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/registry/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/session/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/agent-activity/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/agents/custom/detect/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/agents/custom/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/ask/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/ask-sessions/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/auth/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/backlinks/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/bootstrap/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/changes/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/export/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/extract-pdf/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/file/import/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/file/raw/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/file/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/files/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/git/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/graph/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/health/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/inbox/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/init/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/agents/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/install/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/install-skill/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/restart/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/status/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/uninstall/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/monitoring/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/recent-files/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/restart/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/search/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/settings/list-models/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/settings/reset-token/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/settings/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/settings/test-key/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/check-path/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/check-port/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/generate-token/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/ls/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/skills/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/sync/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/tree-version/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/uninstall/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/update/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/update-check/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/update-status/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/api/workflows/route-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/changes/page-5a72144d1080a699.js +0 -1
- package/_standalone/.next/static/chunks/app/echo/[segment]/page-b0103509ce34444b.js +0 -11
- package/_standalone/.next/static/chunks/app/echo/page-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/layout-7e02ddf4144b01f1.js +0 -186
- package/_standalone/.next/static/chunks/app/loading-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/page-6a6a12bd6d6812d0.js +0 -7
- package/_standalone/.next/static/chunks/app/trash/page-54cbd5c98d9de69b.js +0 -1
- package/_standalone/.next/static/chunks/app/view/[...path]/loading-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/app/view/[...path]/page-ca7bdcbf27f88a46.js +0 -12
- package/_standalone/.next/static/chunks/app/wiki/page-d492256a93f0b8bc.js +0 -1
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-2f4705aa66819b86.js +0 -1
- package/_standalone/.next/static/css/fd84c8316ead16eb.css +0 -1
- /package/_standalone/.next/static/{2ksXveDzEcnCMRIElDkLq → K3wZNf5bj_AFYwtqcRXIf}/_ssgManifest.js +0 -0
package/app/lib/types.ts
CHANGED
|
@@ -52,6 +52,8 @@ export interface ImagePart {
|
|
|
52
52
|
/** Base64-encoded image data (no data: prefix) */
|
|
53
53
|
data: string;
|
|
54
54
|
mimeType: ImageMimeType;
|
|
55
|
+
/** Original file name, if available */
|
|
56
|
+
fileName?: string;
|
|
55
57
|
}
|
|
56
58
|
|
|
57
59
|
export type MessagePart = TextPart | ToolCallPart | ReasoningPart | ImagePart;
|
|
@@ -72,6 +74,16 @@ export interface Message {
|
|
|
72
74
|
export interface LocalAttachment {
|
|
73
75
|
name: string;
|
|
74
76
|
content: string;
|
|
77
|
+
/** Extraction status for PDF uploads. Absent / undefined = legacy (treated as success). */
|
|
78
|
+
status?: 'loading' | 'success' | 'error';
|
|
79
|
+
/** Human-readable error message (only when status = 'error'). */
|
|
80
|
+
error?: string;
|
|
81
|
+
/** Present when the full text was too long and had to be truncated. */
|
|
82
|
+
truncatedInfo?: {
|
|
83
|
+
totalChars: number;
|
|
84
|
+
includedChars: number;
|
|
85
|
+
totalPages: number;
|
|
86
|
+
};
|
|
75
87
|
}
|
|
76
88
|
|
|
77
89
|
/** User-facing Ask modes. 'organize' is internal-only (not selectable by users). */
|
|
@@ -87,4 +99,5 @@ export interface ChatSession {
|
|
|
87
99
|
createdAt: number;
|
|
88
100
|
updatedAt: number;
|
|
89
101
|
messages: Message[];
|
|
102
|
+
pinned?: boolean;
|
|
90
103
|
}
|
package/app/package.json
CHANGED
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
'use strict';
|
|
14
14
|
|
|
15
15
|
const fs = require('fs');
|
|
16
|
-
const path = require('path');
|
|
17
16
|
|
|
18
17
|
// Suppress pdfjs-dist warnings (loadFont etc.) that go to stdout/stderr
|
|
19
18
|
// and would corrupt our JSON output.
|
|
@@ -22,6 +21,115 @@ const _log = console.log;
|
|
|
22
21
|
console.warn = () => {};
|
|
23
22
|
console.log = () => {};
|
|
24
23
|
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// CJK-aware smart text joining
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Detect whether a character falls in CJK / fullwidth ranges where
|
|
30
|
+
* inter-item spaces are NOT desired.
|
|
31
|
+
*/
|
|
32
|
+
function isCJK(ch) {
|
|
33
|
+
const c = ch.codePointAt(0);
|
|
34
|
+
return (
|
|
35
|
+
(c >= 0x2E80 && c <= 0x2FDF) || // CJK Radicals Supplement, Kangxi Radicals
|
|
36
|
+
(c >= 0x4E00 && c <= 0x9FFF) || // CJK Unified Ideographs
|
|
37
|
+
(c >= 0x3400 && c <= 0x4DBF) || // CJK Extension A
|
|
38
|
+
(c >= 0xF900 && c <= 0xFAFF) || // CJK Compatibility Ideographs
|
|
39
|
+
(c >= 0x3040 && c <= 0x309F) || // Hiragana
|
|
40
|
+
(c >= 0x30A0 && c <= 0x30FF) || // Katakana
|
|
41
|
+
(c >= 0xAC00 && c <= 0xD7AF) || // Hangul Syllables
|
|
42
|
+
(c >= 0x20000 && c <= 0x2FA1F) // CJK Extensions B-F + Supplement
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** True for CJK fullwidth punctuation that already occupies its own space. */
|
|
47
|
+
function isCJKPunct(ch) {
|
|
48
|
+
const c = ch.codePointAt(0);
|
|
49
|
+
return (
|
|
50
|
+
(c >= 0x3000 && c <= 0x303F) || // 。、「」【】
|
|
51
|
+
(c >= 0xFF01 && c <= 0xFF0F) || // !"#$
|
|
52
|
+
(c >= 0xFF1A && c <= 0xFF20) || // :;<=>
|
|
53
|
+
(c >= 0xFF3B && c <= 0xFF40) || // [\]
|
|
54
|
+
(c >= 0xFF5B && c <= 0xFF65) || // {|}~
|
|
55
|
+
(c >= 0xFE50 && c <= 0xFE6B) // Small Form Variants
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Decide whether a space should be inserted between two adjacent characters
|
|
61
|
+
* that come from separate pdfjs-dist TextItem objects.
|
|
62
|
+
*
|
|
63
|
+
* Rules:
|
|
64
|
+
* CJK + CJK → no space (中文相邻不加)
|
|
65
|
+
* CJK + Punct → no space (标点紧跟)
|
|
66
|
+
* Punct + CJK → no space
|
|
67
|
+
* CJK + Latin → space (中英之间加)
|
|
68
|
+
* Latin + CJK → space
|
|
69
|
+
* Latin + Latin → space (英文单词间加)
|
|
70
|
+
* Punct + Latin → no space (e.g. `(hello`)
|
|
71
|
+
* Latin + Punct → no space (e.g. `hello.`)
|
|
72
|
+
*/
|
|
73
|
+
function shouldAddSpace(left, right) {
|
|
74
|
+
if (!left || !right) return false;
|
|
75
|
+
|
|
76
|
+
const lCJK = isCJK(left);
|
|
77
|
+
const rCJK = isCJK(right);
|
|
78
|
+
const lPunct = isCJKPunct(left) || /^[^\w\s]$/.test(left);
|
|
79
|
+
const rPunct = isCJKPunct(right) || /^[^\w\s]$/.test(right);
|
|
80
|
+
|
|
81
|
+
// Any side is punctuation → no space
|
|
82
|
+
if (lPunct || rPunct) return false;
|
|
83
|
+
// Both CJK → no space
|
|
84
|
+
if (lCJK && rCJK) return false;
|
|
85
|
+
// Mixed CJK/Latin → space
|
|
86
|
+
if (lCJK !== rCJK) return true;
|
|
87
|
+
// Both non-CJK (Latin/digit) → space between words
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Join pdfjs-dist TextItem[] into clean text, respecting CJK spacing
|
|
93
|
+
* rules and `hasEOL` line-break markers.
|
|
94
|
+
*/
|
|
95
|
+
function smartJoinTextItems(items) {
|
|
96
|
+
const lines = [];
|
|
97
|
+
let cur = '';
|
|
98
|
+
|
|
99
|
+
for (const item of items) {
|
|
100
|
+
const str = item.str ?? '';
|
|
101
|
+
|
|
102
|
+
if (str === '') {
|
|
103
|
+
// Empty str with hasEOL → line break
|
|
104
|
+
if (item.hasEOL && cur.trim()) {
|
|
105
|
+
lines.push(cur.trim());
|
|
106
|
+
cur = '';
|
|
107
|
+
}
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (cur === '') {
|
|
112
|
+
cur = str;
|
|
113
|
+
} else {
|
|
114
|
+
const left = cur[cur.length - 1];
|
|
115
|
+
const right = str[0];
|
|
116
|
+
cur += shouldAddSpace(left, right) ? ' ' + str : str;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (item.hasEOL) {
|
|
120
|
+
if (cur.trim()) lines.push(cur.trim());
|
|
121
|
+
cur = '';
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (cur.trim()) lines.push(cur.trim());
|
|
126
|
+
return lines.join('\n');
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// ---------------------------------------------------------------------------
|
|
130
|
+
// Main
|
|
131
|
+
// ---------------------------------------------------------------------------
|
|
132
|
+
|
|
25
133
|
async function main() {
|
|
26
134
|
const pdfPath = process.argv[2];
|
|
27
135
|
if (!pdfPath || !fs.existsSync(pdfPath)) {
|
|
@@ -43,8 +151,7 @@ async function main() {
|
|
|
43
151
|
for (let i = 1; i <= numPages; i++) {
|
|
44
152
|
const page = await doc.getPage(i);
|
|
45
153
|
const content = await page.getTextContent();
|
|
46
|
-
|
|
47
|
-
pageTexts.push(line);
|
|
154
|
+
pageTexts.push(smartJoinTextItems(content.items));
|
|
48
155
|
}
|
|
49
156
|
|
|
50
157
|
process.stdout.write(JSON.stringify({ text: pageTexts.join('\n\n'), pages: numPages }));
|
package/package.json
CHANGED
package/skills/mindos/SKILL.md
CHANGED
|
@@ -1,26 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mindos
|
|
3
3
|
description: >
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
distill experience, sync related docs.
|
|
4
|
+
The user's shared knowledge base — persistent across sessions and agents. MindOS stores decisions,
|
|
5
|
+
meeting notes, SOPs, debugging lessons, architecture choices, research findings, and preferences.
|
|
7
6
|
更新笔记, 搜索知识库, 整理文件, 执行SOP/工作流, 复盘, 追加CSV, 跨Agent交接,
|
|
8
7
|
路由非结构化输入到对应文件, 提炼经验, 同步关联文档.
|
|
9
8
|
NOT for editing app source, project docs, or paths outside the KB.
|
|
10
9
|
Core concepts: Space, Instruction (INSTRUCTION.md), Skill (SKILL.md); notes can embody both.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
10
|
+
|
|
11
|
+
Trigger on: save or record anything, search for prior notes or context, update or edit a file,
|
|
12
|
+
organize notes, run a workflow or SOP, capture decisions, append rows to a table or CSV,
|
|
13
|
+
hand off context to another agent, check if something was discussed before, look up a past
|
|
14
|
+
decision, distill lessons learned, prepare context for a meeting, quick-capture to staging area,
|
|
15
|
+
organize inbox, check knowledge health, detect conflicts or contradictions, find stale content.
|
|
16
|
+
Chinese triggers: 帮我记下来, 搜一下笔记, 更新知识库, 整理文件, 复盘, 提炼经验,
|
|
17
|
+
保存, 记录, 交接, 查一下之前的, 有没有相关笔记, 把这个存起来, 放到暂存台,
|
|
18
|
+
整理暂存台, 知识健康检查, 检测知识冲突.
|
|
19
|
+
|
|
20
|
+
Proactive behavior — do not wait for the user to mention MindOS:
|
|
21
|
+
(1) When user's question implies stored context may exist (past decisions, previous discussions,
|
|
22
|
+
meeting records) → search MindOS first, even if they don't explicitly mention it.
|
|
23
|
+
(2) After completing valuable work (bug fixed, decision made, lesson learned, architecture chosen,
|
|
24
|
+
meeting summarized) → offer to save it to MindOS for future reference.
|
|
25
|
+
(3) After a long or multi-topic conversation → suggest persisting key decisions and context.
|
|
19
26
|
---
|
|
20
27
|
|
|
21
28
|
# MindOS Skill
|
|
22
29
|
|
|
23
|
-
<!-- version: 3.
|
|
30
|
+
<!-- version: 3.2.0 — CLI-first, MCP optional -->
|
|
24
31
|
|
|
25
32
|
## CLI commands
|
|
26
33
|
|
|
@@ -85,6 +92,7 @@ npm install -g @geminilight/mindos
|
|
|
85
92
|
- **Space** — Knowledge partitions organized the way you think. Agents follow the same structure.
|
|
86
93
|
- **Instruction** — A rules file (`INSTRUCTION.md`) all connected agents obey.
|
|
87
94
|
- **Skill** — Teaches agents how to read, write, and organize the KB.
|
|
95
|
+
- **Inbox** — The `Inbox/` directory is a staging area for quick capture. Files land here when there's no obvious home yet. They get organized later — by the user manually or via AI-assisted batch organization.
|
|
88
96
|
|
|
89
97
|
Notes can embody both Instruction and Skill — they're just Markdown files in the tree.
|
|
90
98
|
|
|
@@ -99,9 +107,13 @@ User request
|
|
|
99
107
|
│ └─ [Read-only]: search → read → answer with citations. No writes.
|
|
100
108
|
│
|
|
101
109
|
├─ Save / record / update / organize specific content?
|
|
102
|
-
│ ├─
|
|
110
|
+
│ ├─ Know where it goes → [Single-file edit]
|
|
111
|
+
│ ├─ Don't know where it goes → [Inbox path] — save to Inbox/, classify later
|
|
103
112
|
│ └─ Multiple files or unclear → [Multi-file routing] — plan first
|
|
104
113
|
│
|
|
114
|
+
├─ Organize inbox / classify staged files?
|
|
115
|
+
│ └─ [Inbox organize] — read Inbox/ files, propose destinations, move after approval
|
|
116
|
+
│
|
|
105
117
|
├─ Structural change (rename / move / delete / reorganize)?
|
|
106
118
|
│ └─ [Structural path] — check backlinks before and after
|
|
107
119
|
│
|
|
@@ -111,6 +123,9 @@ User request
|
|
|
111
123
|
├─ Retrospective / distill / handoff?
|
|
112
124
|
│ └─ [Retrospective path]
|
|
113
125
|
│
|
|
126
|
+
├─ Knowledge health check / detect conflicts?
|
|
127
|
+
│ └─ [Health check path] — read references/knowledge-health.md
|
|
128
|
+
│
|
|
114
129
|
└─ Ambiguous?
|
|
115
130
|
└─ ASK. Propose 2-3 specific options based on KB state.
|
|
116
131
|
```
|
|
@@ -125,8 +140,9 @@ User request
|
|
|
125
140
|
- "organize" → ask: display only, or write back?
|
|
126
141
|
|
|
127
142
|
**File location uncertainty:**
|
|
128
|
-
- Can't decide in 5 seconds →
|
|
129
|
-
- "Just put it somewhere" →
|
|
143
|
+
- Can't decide in 5 seconds → save to `Inbox/`, inform user, propose classification later
|
|
144
|
+
- "Just put it somewhere" / "先放着" → save to `Inbox/`
|
|
145
|
+
- User drags files or pastes unstructured content without specifying location → `Inbox/`
|
|
130
146
|
|
|
131
147
|
**Scope creep:**
|
|
132
148
|
- Input routes to >5 files → pause, confirm scope
|
|
@@ -159,6 +175,42 @@ When user expresses a standing preference → read [references/preference-captur
|
|
|
159
175
|
|
|
160
176
|
When creating/rewriting an SOP → read [references/sop-template.md](./references/sop-template.md).
|
|
161
177
|
|
|
178
|
+
## Inbox (staging area)
|
|
179
|
+
|
|
180
|
+
The `Inbox/` directory is the KB's quick-capture zone. It has its own `INSTRUCTION.md` that governs behavior.
|
|
181
|
+
|
|
182
|
+
**When to use Inbox:**
|
|
183
|
+
- User says "just save it" / "先放着" / "放到暂存台" without specifying a location
|
|
184
|
+
- Content doesn't clearly fit any existing Space or directory
|
|
185
|
+
- Batch import of multiple files that need individual classification
|
|
186
|
+
|
|
187
|
+
**How to save to Inbox:**
|
|
188
|
+
```bash
|
|
189
|
+
mindos file create "Inbox/<filename>.md" --content "..."
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**How to organize Inbox:**
|
|
193
|
+
1. List Inbox files: `mindos file list Inbox/`
|
|
194
|
+
2. Read each file to understand its content
|
|
195
|
+
3. For each file, propose the best destination directory based on KB structure
|
|
196
|
+
4. Present the full routing plan to user for approval
|
|
197
|
+
5. Move files: `mindos file rename "Inbox/<file>" "<target-dir>/<file>"`
|
|
198
|
+
6. After moving, check if the target directory's README needs updating
|
|
199
|
+
|
|
200
|
+
**Aging reminder:** Files in Inbox older than 7 days are considered "aging". If you notice aging files during bootstrap, mention it: "You have N files in Inbox that have been sitting there for over a week. Want me to help organize them?"
|
|
201
|
+
|
|
202
|
+
## Knowledge health check
|
|
203
|
+
|
|
204
|
+
When user asks to check knowledge health, detect conflicts, audit quality, or says "知识健康检查" / "检测冲突" → read [references/knowledge-health.md](./references/knowledge-health.md) for the full procedure.
|
|
205
|
+
|
|
206
|
+
Quick summary of what gets checked:
|
|
207
|
+
- **Contradictions**: conflicting facts across files on the same topic
|
|
208
|
+
- **Broken links**: references to files that no longer exist
|
|
209
|
+
- **Stale content**: files with outdated date markers or untouched for >6 months
|
|
210
|
+
- **Duplicates**: two files covering the same ground without cross-referencing
|
|
211
|
+
- **Orphan files**: files with zero backlinks, hard to discover
|
|
212
|
+
- **Structural issues**: wrong directory, missing READMEs, aging Inbox files
|
|
213
|
+
|
|
162
214
|
---
|
|
163
215
|
|
|
164
216
|
## Error handling (CLI)
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Knowledge Health Check
|
|
2
|
+
|
|
3
|
+
When the user asks to check KB health, detect conflicts, or audit knowledge quality, follow this guide.
|
|
4
|
+
|
|
5
|
+
## Dimensions
|
|
6
|
+
|
|
7
|
+
### 1. Contradictions / Conflicts
|
|
8
|
+
|
|
9
|
+
Two or more files state conflicting facts about the same topic (e.g., one says "rate limit = 100/min", another says "rate limit = 200/min" without distinguishing context).
|
|
10
|
+
|
|
11
|
+
**Detection procedure:**
|
|
12
|
+
1. Identify the topic scope (user may specify, or scan recent edits)
|
|
13
|
+
2. Search for all files related to the topic (2-4 keyword variants)
|
|
14
|
+
3. Read each hit and extract key claims/decisions
|
|
15
|
+
4. Compare claims across files — flag any pair that contradicts
|
|
16
|
+
5. Present conflicts to user with file paths and quotes
|
|
17
|
+
|
|
18
|
+
**Resolution:** Ask user which version is authoritative. Update or annotate the non-authoritative file to reference the correct source. Never silently overwrite.
|
|
19
|
+
|
|
20
|
+
### 2. Orphan References
|
|
21
|
+
|
|
22
|
+
A file links to another file that no longer exists (broken `[[link]]` or markdown link).
|
|
23
|
+
|
|
24
|
+
**Detection procedure:**
|
|
25
|
+
1. List all files in KB
|
|
26
|
+
2. For each file, extract all internal links (markdown links, wiki-links)
|
|
27
|
+
3. Check if each link target exists
|
|
28
|
+
4. Report broken links with source file path and line
|
|
29
|
+
|
|
30
|
+
**Resolution:** Either remove the dead link, or recreate the missing file if the content is recoverable from git history.
|
|
31
|
+
|
|
32
|
+
### 3. Stale / Outdated Content
|
|
33
|
+
|
|
34
|
+
Files with explicit date markers (e.g., "Last verified: 2025-01-15") that are significantly old, or files whose topic has clearly evolved but the file hasn't been updated.
|
|
35
|
+
|
|
36
|
+
**Detection procedure:**
|
|
37
|
+
1. Search for date markers: "Last verified", "Last updated", "截止日期", "更新时间"
|
|
38
|
+
2. Flag any file where the marker date is >90 days old
|
|
39
|
+
3. Also check `mindos file history <path>` — files untouched for >6 months with active topics are suspects
|
|
40
|
+
|
|
41
|
+
**Resolution:** Present the list to user. For each stale file, ask: still accurate? update? archive?
|
|
42
|
+
|
|
43
|
+
### 4. Duplicate Content
|
|
44
|
+
|
|
45
|
+
Two files covering the same topic with substantial overlap, neither referencing the other.
|
|
46
|
+
|
|
47
|
+
**Detection procedure:**
|
|
48
|
+
1. Search for the topic from multiple angles
|
|
49
|
+
2. If two files return as top results for the same query, read both
|
|
50
|
+
3. Compare: are they covering the same ground? Is one a superset of the other?
|
|
51
|
+
4. Flag duplicates with a similarity summary
|
|
52
|
+
|
|
53
|
+
**Resolution:** Merge into one authoritative file. Convert the other into a redirect/link. Never delete without confirmation.
|
|
54
|
+
|
|
55
|
+
### 5. Orphan Files
|
|
56
|
+
|
|
57
|
+
Files that no other file references — isolated knowledge that may be hard to discover.
|
|
58
|
+
|
|
59
|
+
**Detection procedure:**
|
|
60
|
+
1. For each file, run `mindos file backlinks <path>`
|
|
61
|
+
2. Files with zero backlinks AND not in a well-indexed directory (no README listing them) are orphan candidates
|
|
62
|
+
3. Exclude governance files (INSTRUCTION.md, README.md) and root-level files
|
|
63
|
+
|
|
64
|
+
**Resolution:** Suggest adding links from relevant parent documents or READMEs.
|
|
65
|
+
|
|
66
|
+
### 6. Structural Issues
|
|
67
|
+
|
|
68
|
+
- Files in wrong directories (content doesn't match the directory's topic)
|
|
69
|
+
- Inbox files that have been sitting >7 days (aging)
|
|
70
|
+
- Missing READMEs in directories with >3 files
|
|
71
|
+
- Inconsistent naming conventions within a directory
|
|
72
|
+
|
|
73
|
+
**Detection procedure:**
|
|
74
|
+
1. Bootstrap the KB tree
|
|
75
|
+
2. For each directory: check if README exists, read a sample of files to verify topic consistency
|
|
76
|
+
3. Check Inbox for aging files (>7 days)
|
|
77
|
+
4. Spot-check naming patterns per directory
|
|
78
|
+
|
|
79
|
+
## Health Report Format
|
|
80
|
+
|
|
81
|
+
Present findings as a structured report:
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
# Knowledge Health Report — {date}
|
|
85
|
+
|
|
86
|
+
## Summary
|
|
87
|
+
- Contradictions found: N
|
|
88
|
+
- Broken links: N
|
|
89
|
+
- Stale files (>90 days): N
|
|
90
|
+
- Duplicates suspected: N
|
|
91
|
+
- Orphan files: N
|
|
92
|
+
- Structural issues: N
|
|
93
|
+
- **Overall health: {Good / Needs Attention / Critical}**
|
|
94
|
+
|
|
95
|
+
## Contradictions
|
|
96
|
+
1. `file-a.md` vs `file-b.md` — {description}
|
|
97
|
+
...
|
|
98
|
+
|
|
99
|
+
## Broken Links
|
|
100
|
+
1. `source.md` line N → `missing-target.md` (not found)
|
|
101
|
+
...
|
|
102
|
+
|
|
103
|
+
## Stale Content
|
|
104
|
+
1. `old-file.md` — Last updated: {date}, {N} days ago
|
|
105
|
+
...
|
|
106
|
+
|
|
107
|
+
(... other sections ...)
|
|
108
|
+
|
|
109
|
+
## Recommended Actions
|
|
110
|
+
1. {Highest priority fix}
|
|
111
|
+
2. ...
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Scope Control
|
|
115
|
+
|
|
116
|
+
- **Quick check**: User says "check health" / "快速检查" → Run dimensions 1-3 only (contradictions, orphan refs, stale)
|
|
117
|
+
- **Full audit**: User says "full audit" / "全面审计" → Run all 6 dimensions
|
|
118
|
+
- **Targeted check**: User specifies a topic or directory → Scope to that area only
|
|
119
|
+
|
|
120
|
+
Always confirm scope with user before starting a full audit on large KBs.
|
|
@@ -15,7 +15,8 @@ description: >
|
|
|
15
15
|
append CSV/table data, cross-agent handoff, distill experience, sync related docs, check if
|
|
16
16
|
something was discussed before, look up a past decision, find a template, prepare meeting context,
|
|
17
17
|
daily logging, track goals. Also trigger on Chinese equivalents: 帮我记下来, 搜一下笔记,
|
|
18
|
-
更新知识库, 整理文件, 复盘, 提炼经验, 保存, 记录,
|
|
18
|
+
更新知识库, 整理文件, 复盘, 提炼经验, 保存, 记录, 交接, 放到暂存台, 整理暂存台,
|
|
19
|
+
知识健康检查, 检测知识冲突.
|
|
19
20
|
|
|
20
21
|
When in doubt whether MindOS applies — it probably does. Check anyway.
|
|
21
22
|
NOT for editing app source code or project repos outside the KB.
|
|
@@ -24,7 +25,7 @@ description: >
|
|
|
24
25
|
|
|
25
26
|
# MindOS Skill
|
|
26
27
|
|
|
27
|
-
<!-- version: 3.
|
|
28
|
+
<!-- version: 3.2.0-max — aggressive global memory mode -->
|
|
28
29
|
|
|
29
30
|
> **You are the user's memory.** Every agent shares MindOS. If something is worth remembering, save it.
|
|
30
31
|
> If you need context, check MindOS first. Be proactive — don't wait to be asked.
|
|
@@ -105,6 +106,7 @@ npm install -g @geminilight/mindos
|
|
|
105
106
|
- **Space** — Knowledge partitions organized the way you think. Agents follow the same structure.
|
|
106
107
|
- **Instruction** — A rules file (`INSTRUCTION.md`) all connected agents obey.
|
|
107
108
|
- **Skill** — Teaches agents how to read, write, and organize the KB.
|
|
109
|
+
- **Inbox** — The `Inbox/` directory is a staging area for quick capture. Files land here when there's no obvious home yet. They get organized later — by the user manually or via AI-assisted batch organization.
|
|
108
110
|
|
|
109
111
|
Notes can embody both Instruction and Skill — they're just Markdown files in the tree.
|
|
110
112
|
|
|
@@ -119,9 +121,13 @@ User request
|
|
|
119
121
|
| -> [Read-only]: search -> read -> answer with citations. No writes.
|
|
120
122
|
|
|
|
121
123
|
|- Save / record / update / organize specific content?
|
|
122
|
-
| |-
|
|
124
|
+
| |- Know where it goes -> [Single-file edit]
|
|
125
|
+
| |- Don't know where it goes -> [Inbox path] -- save to Inbox/, classify later
|
|
123
126
|
| -> Multiple files or unclear -> [Multi-file routing] -- plan first
|
|
124
127
|
|
|
|
128
|
+
|- Organize inbox / classify staged files?
|
|
129
|
+
| -> [Inbox organize] -- read Inbox/ files, propose destinations, move after approval
|
|
130
|
+
|
|
|
125
131
|
|- Structural change (rename / move / delete / reorganize)?
|
|
126
132
|
| -> [Structural path] -- check backlinks before and after
|
|
127
133
|
|
|
|
@@ -131,6 +137,9 @@ User request
|
|
|
131
137
|
|- Retrospective / distill / handoff?
|
|
132
138
|
| -> [Retrospective path]
|
|
133
139
|
|
|
|
140
|
+
|- Knowledge health check / detect conflicts?
|
|
141
|
+
| -> [Health check path] -- read references/knowledge-health.md
|
|
142
|
+
|
|
|
134
143
|
-> Ambiguous?
|
|
135
144
|
-> ASK. Propose 2-3 specific options based on KB state.
|
|
136
145
|
```
|
|
@@ -145,8 +154,9 @@ User request
|
|
|
145
154
|
- "organize" -> ask: display only, or write back?
|
|
146
155
|
|
|
147
156
|
**File location uncertainty:**
|
|
148
|
-
- Can't decide in 5 seconds ->
|
|
149
|
-
- "Just put it somewhere" ->
|
|
157
|
+
- Can't decide in 5 seconds -> save to `Inbox/`, inform user, propose classification later
|
|
158
|
+
- "Just put it somewhere" / "先放着" -> save to `Inbox/`
|
|
159
|
+
- User drags files or pastes unstructured content without specifying location -> `Inbox/`
|
|
150
160
|
|
|
151
161
|
**Scope creep:**
|
|
152
162
|
- Input routes to >5 files -> pause, confirm scope
|
|
@@ -179,6 +189,43 @@ When user expresses a standing preference -> read [references/preference-capture
|
|
|
179
189
|
|
|
180
190
|
When creating/rewriting an SOP -> read [references/sop-template.md](../mindos/references/sop-template.md).
|
|
181
191
|
|
|
192
|
+
## Inbox (staging area)
|
|
193
|
+
|
|
194
|
+
The `Inbox/` directory is the KB's quick-capture zone. It has its own `INSTRUCTION.md` that governs behavior.
|
|
195
|
+
|
|
196
|
+
**When to use Inbox:**
|
|
197
|
+
- User says "just save it" / "先放着" / "放到暂存台" without specifying a location
|
|
198
|
+
- Content doesn't clearly fit any existing Space or directory
|
|
199
|
+
- Batch import of multiple files that need individual classification
|
|
200
|
+
|
|
201
|
+
**How to save to Inbox:**
|
|
202
|
+
```bash
|
|
203
|
+
mindos file create "Inbox/<filename>.md" --content "..."
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**How to organize Inbox:**
|
|
207
|
+
1. List Inbox files: `mindos file list Inbox/`
|
|
208
|
+
2. Read each file to understand its content
|
|
209
|
+
3. For each file, propose the best destination directory based on KB structure
|
|
210
|
+
4. Present the full routing plan to user for approval
|
|
211
|
+
5. Move files: `mindos file rename "Inbox/<file>" "<target-dir>/<file>"`
|
|
212
|
+
6. After moving, check if the target directory's README needs updating
|
|
213
|
+
|
|
214
|
+
**Aging reminder:** Files in Inbox older than 7 days are considered "aging". If you notice aging files during bootstrap, mention it: "You have N files in Inbox that have been sitting there for over a week. Want me to help organize them?"
|
|
215
|
+
|
|
216
|
+
## Knowledge health check
|
|
217
|
+
|
|
218
|
+
When user asks to check knowledge health, detect conflicts, audit quality, or says "知识健康检查" / "检测冲突" / "check knowledge health"
|
|
219
|
+
-> read [references/knowledge-health.md](../mindos/references/knowledge-health.md) for the full procedure.
|
|
220
|
+
|
|
221
|
+
Quick summary of what gets checked:
|
|
222
|
+
- **Contradictions**: conflicting facts across files on the same topic
|
|
223
|
+
- **Broken links**: references to files that no longer exist
|
|
224
|
+
- **Stale content**: files with outdated date markers or untouched for >6 months
|
|
225
|
+
- **Duplicates**: two files covering the same ground without cross-referencing
|
|
226
|
+
- **Orphan files**: files with zero backlinks, hard to discover
|
|
227
|
+
- **Structural issues**: wrong directory, missing READMEs, aging Inbox files
|
|
228
|
+
|
|
182
229
|
---
|
|
183
230
|
|
|
184
231
|
## Error handling (CLI)
|
|
@@ -15,8 +15,10 @@ description: >
|
|
|
15
15
|
|
|
16
16
|
触发词:帮我记下来、搜一下笔记、更新知识库、整理文件、复盘、提炼经验、保存、记录、
|
|
17
17
|
交接、把这个存起来、查一下之前的、有没有相关笔记、我之前写过什么、总结一下保存、
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
追加到表格、更新进度、查找模板、准备会议资料、记录今天的工作、
|
|
19
|
+
放到暂存台、整理暂存台、知识健康检查、检测知识冲突。
|
|
20
|
+
以及对应英文:save, record, search notes, organize, retrospective, handoff, lessons learned,
|
|
21
|
+
inbox, staging, knowledge health, detect conflicts。
|
|
20
22
|
|
|
21
23
|
拿不准是否该用——大概率该用。查一下不会错。
|
|
22
24
|
不用于:改代码仓库、项目源码、KB 外路径。
|
|
@@ -25,7 +27,7 @@ description: >
|
|
|
25
27
|
|
|
26
28
|
# MindOS 技能
|
|
27
29
|
|
|
28
|
-
<!-- version: 3.
|
|
30
|
+
<!-- version: 3.2.0-max — 激进全局记忆模式 -->
|
|
29
31
|
|
|
30
32
|
> **你就是用户的记忆。** 所有 Agent 共享 MindOS。值得记住就存,需要上下文就先查。
|
|
31
33
|
> 主动行动——不要等用户开口提醒。
|
|
@@ -106,6 +108,7 @@ npm install -g @geminilight/mindos
|
|
|
106
108
|
- **空间 (Space)** — 按你的思维方式组织的知识分区。Agent 遵循相同结构。
|
|
107
109
|
- **指令 (Instruction)** — `INSTRUCTION.md`,所有连接的 Agent 都遵守的规则文件。
|
|
108
110
|
- **技能 (Skill)** — 教 Agent 如何读写和整理知识库。
|
|
111
|
+
- **暂存台 (Inbox)** — `Inbox/` 目录是快速捕获区。内容暂时找不到归属时先放这里,之后再统一整理——用户手动或 AI 辅助批量归类。
|
|
109
112
|
|
|
110
113
|
笔记可以同时承载指令和技能——它们只是目录树中的 Markdown 文件。
|
|
111
114
|
|
|
@@ -120,9 +123,13 @@ npm install -g @geminilight/mindos
|
|
|
120
123
|
| -> [只读路径]:搜索 -> 读取 -> 带引用回答。不写入。
|
|
121
124
|
|
|
|
122
125
|
|- 保存 / 记录 / 更新 / 整理具体内容?
|
|
123
|
-
| |-
|
|
126
|
+
| |- 知道放哪 -> [单文件编辑]
|
|
127
|
+
| |- 不知道放哪 -> [暂存台路径] -- 存到 Inbox/,之后再归类
|
|
124
128
|
| -> 多文件或不确定 -> [多文件路由] -- 先出方案
|
|
125
129
|
|
|
|
130
|
+
|- 整理暂存台 / 归类暂存文件?
|
|
131
|
+
| -> [暂存台整理] -- 读 Inbox/ 文件,提议目标位置,获批后移动
|
|
132
|
+
|
|
|
126
133
|
|- 结构变更(重命名 / 移动 / 删除 / 重组)?
|
|
127
134
|
| -> [结构路径] -- 变更前后检查反向链接
|
|
128
135
|
|
|
|
@@ -132,6 +139,9 @@ npm install -g @geminilight/mindos
|
|
|
132
139
|
|- 复盘 / 提炼 / 交接?
|
|
133
140
|
| -> [复盘路径]
|
|
134
141
|
|
|
|
142
|
+
|- 知识健康检查 / 检测冲突?
|
|
143
|
+
| -> [健康检查路径] -- 读取 references/knowledge-health.md
|
|
144
|
+
|
|
|
135
145
|
-> 模糊?
|
|
136
146
|
-> 提问。基于知识库状态提出 2-3 个具体选项。
|
|
137
147
|
```
|
|
@@ -146,8 +156,9 @@ npm install -g @geminilight/mindos
|
|
|
146
156
|
- "整理一下" -> 先问:仅展示,还是写回知识库?
|
|
147
157
|
|
|
148
158
|
**文件位置不确定:**
|
|
149
|
-
- 5 秒内定不了 ->
|
|
150
|
-
- "随便放哪" ->
|
|
159
|
+
- 5 秒内定不了 -> 存到 `Inbox/`,告知用户,之后提议归类
|
|
160
|
+
- "随便放哪" / "先放着" -> 存到 `Inbox/`
|
|
161
|
+
- 用户拖拽文件或粘贴非结构化内容但没指定位置 -> `Inbox/`
|
|
151
162
|
|
|
152
163
|
**范围蔓延:**
|
|
153
164
|
- 输入路由到 >5 个文件 -> 暂停确认
|
|
@@ -180,6 +191,44 @@ npm install -g @geminilight/mindos
|
|
|
180
191
|
|
|
181
192
|
创建/重写工作流 SOP 时 -> 读取 [references/sop-template.md](../mindos/references/sop-template.md)。
|
|
182
193
|
|
|
194
|
+
## 暂存台 (Inbox)
|
|
195
|
+
|
|
196
|
+
`Inbox/` 目录是知识库的快速捕获区,有自己的 `INSTRUCTION.md` 约束行为。
|
|
197
|
+
|
|
198
|
+
**何时使用暂存台:**
|
|
199
|
+
- 用户说"先存着" / "放到暂存台" / "随便放哪",没指定具体位置
|
|
200
|
+
- 内容明显不属于任何现有空间或目录
|
|
201
|
+
- 批量导入多个文件,需要逐个归类
|
|
202
|
+
|
|
203
|
+
**如何存到暂存台:**
|
|
204
|
+
```bash
|
|
205
|
+
mindos file create "Inbox/<文件名>.md" --content "..."
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**如何整理暂存台:**
|
|
209
|
+
1. 列出暂存文件:`mindos file list Inbox/`
|
|
210
|
+
2. 读取每个文件,理解其内容
|
|
211
|
+
3. 根据知识库结构,为每个文件提议最佳目标目录
|
|
212
|
+
4. 向用户展示完整路由方案,获批后执行
|
|
213
|
+
5. 移动文件:`mindos file rename "Inbox/<文件>" "<目标目录>/<文件>"`
|
|
214
|
+
6. 移动后检查目标目录的 README 是否需要更新
|
|
215
|
+
|
|
216
|
+
**老化提醒:** Inbox 中超过 7 天的文件视为"老化"。如果在 bootstrap 时发现老化文件,主动提醒:
|
|
217
|
+
"暂存台有 N 个文件已经放了一周以上了,要我帮你整理一下吗?"
|
|
218
|
+
|
|
219
|
+
## 知识健康检查
|
|
220
|
+
|
|
221
|
+
用户要求检查知识库健康度、检测冲突、审计质量,或说"知识健康检查" / "检测冲突" / "check knowledge health" 时
|
|
222
|
+
-> 读取 [references/knowledge-health.md](../mindos/references/knowledge-health.md) 获取完整流程。
|
|
223
|
+
|
|
224
|
+
检查维度速览:
|
|
225
|
+
- **矛盾/冲突**:同一主题的不同文件说法互相矛盾
|
|
226
|
+
- **断裂链接**:引用了不存在的文件
|
|
227
|
+
- **过期内容**:带有过期日期标记的文件,或超过 6 个月未更新的活跃主题
|
|
228
|
+
- **重复内容**:两个文件覆盖同一主题且没有互相引用
|
|
229
|
+
- **孤立文件**:零反向链接,难以被发现
|
|
230
|
+
- **结构问题**:文件放错目录、缺少 README、暂存台老化文件
|
|
231
|
+
|
|
183
232
|
---
|
|
184
233
|
|
|
185
234
|
## 错误处理(CLI)
|