@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.
Files changed (714) hide show
  1. package/README.md +31 -15
  2. package/README_zh.md +31 -15
  3. package/_standalone/.mindos-build-version +1 -1
  4. package/_standalone/.next/BUILD_ID +1 -1
  5. package/_standalone/.next/app-path-routes-manifest.json +18 -17
  6. package/_standalone/.next/build-manifest.json +3 -3
  7. package/_standalone/.next/cache/.previewinfo +1 -1
  8. package/_standalone/.next/cache/.rscinfo +1 -1
  9. package/_standalone/.next/cache/config.json +3 -3
  10. package/_standalone/.next/prerender-manifest.json +3 -3
  11. package/_standalone/.next/react-loadable-manifest.json +68 -6
  12. package/_standalone/.next/routes-manifest.json +6 -0
  13. package/_standalone/.next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -1
  14. package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  15. package/_standalone/.next/server/app/_global-error.html +2 -2
  16. package/_standalone/.next/server/app/_global-error.rsc +1 -1
  17. package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  18. package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  19. package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  20. package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  21. package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  22. package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  23. package/_standalone/.next/server/app/_not-found/page.js +2 -2
  24. package/_standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  25. package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  26. package/_standalone/.next/server/app/agents/[agentKey]/page.js +2 -2
  27. package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
  28. package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
  29. package/_standalone/.next/server/app/agents/page.js +3 -3
  30. package/_standalone/.next/server/app/agents/page.js.nft.json +1 -1
  31. package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  32. package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
  33. package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
  34. package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
  35. package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
  36. package/_standalone/.next/server/app/api/acp/config/route.js +1 -1
  37. package/_standalone/.next/server/app/api/acp/config/route.js.nft.json +1 -1
  38. package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
  39. package/_standalone/.next/server/app/api/acp/detect/route.js +1 -1
  40. package/_standalone/.next/server/app/api/acp/detect/route.js.nft.json +1 -1
  41. package/_standalone/.next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -1
  42. package/_standalone/.next/server/app/api/acp/install/route_client-reference-manifest.js +1 -1
  43. package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
  44. package/_standalone/.next/server/app/api/acp/session/route.js +1 -1
  45. package/_standalone/.next/server/app/api/acp/session/route.js.nft.json +1 -1
  46. package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
  47. package/_standalone/.next/server/app/api/agent-activity/route.js +1 -1
  48. package/_standalone/.next/server/app/api/agent-activity/route.js.nft.json +1 -1
  49. package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
  50. package/_standalone/.next/server/app/api/ask/route.js +137 -99
  51. package/_standalone/.next/server/app/api/ask/route.js.nft.json +1 -1
  52. package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +1 -1
  53. package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
  54. package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +1 -1
  55. package/_standalone/.next/server/app/api/backlinks/route.js +1 -1
  56. package/_standalone/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  57. package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
  58. package/_standalone/.next/server/app/api/bootstrap/route.js +1 -1
  59. package/_standalone/.next/server/app/api/bootstrap/route.js.nft.json +1 -1
  60. package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
  61. package/_standalone/.next/server/app/api/changes/route.js +1 -1
  62. package/_standalone/.next/server/app/api/changes/route.js.nft.json +1 -1
  63. package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
  64. package/_standalone/.next/server/app/api/export/route.js +3 -3
  65. package/_standalone/.next/server/app/api/export/route.js.nft.json +1 -1
  66. package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +1 -1
  67. package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
  68. package/_standalone/.next/server/app/api/file/import/route.js +2 -19
  69. package/_standalone/.next/server/app/api/file/import/route.js.nft.json +1 -1
  70. package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
  71. package/_standalone/.next/server/app/api/file/route.js +1 -18
  72. package/_standalone/.next/server/app/api/file/route.js.nft.json +1 -1
  73. package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
  74. package/_standalone/.next/server/app/api/files/route.js +1 -1
  75. package/_standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  76. package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  77. package/_standalone/.next/server/app/api/git/route.js +1 -1
  78. package/_standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  79. package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  80. package/_standalone/.next/server/app/api/graph/route.js +1 -1
  81. package/_standalone/.next/server/app/api/graph/route.js.nft.json +1 -1
  82. package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -1
  83. package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  84. package/_standalone/.next/server/app/api/inbox/route.js +1 -0
  85. package/_standalone/.next/server/app/api/inbox/route.js.nft.json +1 -0
  86. package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -0
  87. package/_standalone/.next/server/app/api/init/route.js +1 -1
  88. package/_standalone/.next/server/app/api/init/route.js.nft.json +1 -1
  89. package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  90. package/_standalone/.next/server/app/api/mcp/agents/route.js +1 -1
  91. package/_standalone/.next/server/app/api/mcp/agents/route.js.nft.json +1 -1
  92. package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
  93. package/_standalone/.next/server/app/api/mcp/install/route.js +1 -1
  94. package/_standalone/.next/server/app/api/mcp/install/route.js.nft.json +1 -1
  95. package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
  96. package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
  97. package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
  98. package/_standalone/.next/server/app/api/mcp/status/route.js +1 -1
  99. package/_standalone/.next/server/app/api/mcp/status/route.js.nft.json +1 -1
  100. package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  101. package/_standalone/.next/server/app/api/monitoring/route.js +1 -1
  102. package/_standalone/.next/server/app/api/monitoring/route.js.nft.json +1 -1
  103. package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
  104. package/_standalone/.next/server/app/api/recent-files/route.js +1 -1
  105. package/_standalone/.next/server/app/api/recent-files/route.js.nft.json +1 -1
  106. package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
  107. package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  108. package/_standalone/.next/server/app/api/search/route.js +1 -1
  109. package/_standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  110. package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  111. package/_standalone/.next/server/app/api/settings/list-models/route.js +1 -1
  112. package/_standalone/.next/server/app/api/settings/list-models/route.js.nft.json +1 -1
  113. package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
  114. package/_standalone/.next/server/app/api/settings/reset-token/route.js +1 -1
  115. package/_standalone/.next/server/app/api/settings/reset-token/route.js.nft.json +1 -1
  116. package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
  117. package/_standalone/.next/server/app/api/settings/route.js +1 -1
  118. package/_standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
  119. package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  120. package/_standalone/.next/server/app/api/settings/test-key/route.js +1 -1
  121. package/_standalone/.next/server/app/api/settings/test-key/route.js.nft.json +1 -1
  122. package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
  123. package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
  124. package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
  125. package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
  126. package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
  127. package/_standalone/.next/server/app/api/setup/route.js +1 -1
  128. package/_standalone/.next/server/app/api/setup/route.js.nft.json +1 -1
  129. package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -1
  130. package/_standalone/.next/server/app/api/skills/route.js +2 -2
  131. package/_standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  132. package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  133. package/_standalone/.next/server/app/api/sync/route.js +1 -1
  134. package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
  135. package/_standalone/.next/server/app/api/tree-version/route.js +1 -1
  136. package/_standalone/.next/server/app/api/tree-version/route.js.nft.json +1 -1
  137. package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
  138. package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
  139. package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  140. package/_standalone/.next/server/app/api/update-check/route.js +1 -1
  141. package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
  142. package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
  143. package/_standalone/.next/server/app/api/workflows/route.js +2 -2
  144. package/_standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  145. package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
  146. package/_standalone/.next/server/app/changes/page.js +2 -2
  147. package/_standalone/.next/server/app/changes/page.js.nft.json +1 -1
  148. package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +1 -1
  149. package/_standalone/.next/server/app/echo/[segment]/page.js +6 -6
  150. package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +1 -1
  151. package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
  152. package/_standalone/.next/server/app/echo/page.js +2 -2
  153. package/_standalone/.next/server/app/echo/page.js.nft.json +1 -1
  154. package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +1 -1
  155. package/_standalone/.next/server/app/explore/page.js +3 -3
  156. package/_standalone/.next/server/app/explore/page.js.nft.json +1 -1
  157. package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +1 -1
  158. package/_standalone/.next/server/app/help/page.js +2 -2
  159. package/_standalone/.next/server/app/help/page.js.nft.json +1 -1
  160. package/_standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  161. package/_standalone/.next/server/app/login/page.js +2 -2
  162. package/_standalone/.next/server/app/login/page.js.nft.json +1 -1
  163. package/_standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  164. package/_standalone/.next/server/app/page.js +3 -3
  165. package/_standalone/.next/server/app/page.js.nft.json +1 -1
  166. package/_standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  167. package/_standalone/.next/server/app/setup/page.js +2 -2
  168. package/_standalone/.next/server/app/setup/page.js.nft.json +1 -1
  169. package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  170. package/_standalone/.next/server/app/trash/page.js +3 -3
  171. package/_standalone/.next/server/app/trash/page.js.nft.json +1 -1
  172. package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -1
  173. package/_standalone/.next/server/app/view/[...path]/page.js +4 -4
  174. package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -1
  175. package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
  176. package/_standalone/.next/server/app-paths-manifest.json +18 -17
  177. package/_standalone/.next/server/chunks/1550.js +1 -1
  178. package/_standalone/.next/server/chunks/1750.js +1 -0
  179. package/_standalone/.next/server/chunks/1955.js +11 -0
  180. package/_standalone/.next/server/chunks/3680.js +1 -0
  181. package/_standalone/.next/server/chunks/4497.js +219 -0
  182. package/_standalone/.next/server/chunks/5560.js +2 -0
  183. package/_standalone/.next/server/chunks/6365.js +52 -0
  184. package/_standalone/.next/server/chunks/6539.js +1 -1
  185. package/_standalone/.next/server/chunks/8388.js +15 -0
  186. package/_standalone/.next/server/chunks/953.js +42 -2
  187. package/_standalone/.next/server/functions-config-manifest.json +2 -1
  188. package/_standalone/.next/server/instrumentation.js +1 -1
  189. package/_standalone/.next/server/middleware-build-manifest.js +1 -1
  190. package/_standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  191. package/_standalone/.next/server/next-font-manifest.js +1 -1
  192. package/_standalone/.next/server/next-font-manifest.json +1 -1
  193. package/_standalone/.next/server/pages/500.html +2 -2
  194. package/_standalone/.next/server/server-reference-manifest.js +1 -1
  195. package/_standalone/.next/server/server-reference-manifest.json +1 -1
  196. package/_standalone/.next/static/chunks/1053-0adaccc98a752a58.js +29 -0
  197. package/_standalone/.next/static/chunks/1239.10a0710c2772ab34.js +1 -0
  198. package/_standalone/.next/static/chunks/{1814.e2da5460ded71d71.js → 1814.2ee1d03297c0bccd.js} +1 -1
  199. package/_standalone/.next/static/chunks/{1a258343-030e4d6735874dd4.js → 1a258343-9803591e4aaee1f6.js} +1 -1
  200. package/_standalone/.next/static/chunks/2631.dc56e83472bde281.js +1 -0
  201. package/_standalone/.next/static/chunks/2872.045858d00bd8307f.js +8 -0
  202. package/_standalone/.next/static/chunks/2968.f10ccee9e7e2324d.js +2 -0
  203. package/_standalone/.next/static/chunks/3160-83a7e0b94414b3ac.js +1 -0
  204. package/_standalone/.next/static/chunks/{3637.4bcd01a4db78b894.js → 3637.f9a42cca59fd5bb5.js} +1 -1
  205. package/_standalone/.next/static/chunks/4033.6666700547b20141.js +1 -0
  206. package/_standalone/.next/static/chunks/4563-c2afaeacb241d1d0.js +6 -0
  207. package/_standalone/.next/static/chunks/516.24ee058b1d4b1fed.js +8 -0
  208. package/_standalone/.next/static/chunks/5627.c4337d7289acb31f.js +1 -0
  209. package/_standalone/.next/static/chunks/5956.b445072b35915129.js +1 -0
  210. package/_standalone/.next/static/chunks/6090-c98268ca726a68d3.js +1 -0
  211. package/_standalone/.next/static/chunks/6357-c645842834c0d4cd.js +1 -0
  212. package/_standalone/.next/static/chunks/6826.7b7d94dd0fd83812.js +1 -0
  213. package/_standalone/.next/static/chunks/{8409-de5726a4a278d28f.js → 6926-4af497b83952fa87.js} +1 -1
  214. package/_standalone/.next/static/chunks/7266-bb7be1128eccd48e.js +13 -0
  215. package/_standalone/.next/static/chunks/7753.63831cfc54a55fbb.js +1 -0
  216. package/_standalone/.next/static/chunks/862.9f526e964489e2e5.js +1 -0
  217. package/_standalone/.next/static/chunks/{1384-55276d40a9da4e88.js → 8663-de911d2d395622be.js} +2 -2
  218. package/_standalone/.next/static/chunks/9300.118b8c840634383f.js +28 -0
  219. package/_standalone/.next/static/chunks/9371-575600301da5d6bb.js +1 -0
  220. package/_standalone/.next/static/chunks/95247769.3b5caae1c1a76ce1.js +4 -0
  221. package/_standalone/.next/static/chunks/9602-423291fdb36396d1.js +1 -0
  222. package/_standalone/.next/static/chunks/app/.well-known/agent-card.json/route-400c3c09b1540c14.js +1 -0
  223. package/_standalone/.next/static/chunks/app/_global-error/page-400c3c09b1540c14.js +1 -0
  224. package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-3e08abb495ecd5fd.js +1 -0
  225. package/_standalone/.next/static/chunks/app/agents/page-e7e0f87ad3d765ac.js +5 -0
  226. package/_standalone/.next/static/chunks/app/api/a2a/agents/route-400c3c09b1540c14.js +1 -0
  227. package/_standalone/.next/static/chunks/app/api/a2a/delegations/route-400c3c09b1540c14.js +1 -0
  228. package/_standalone/.next/static/chunks/app/api/a2a/discover/route-400c3c09b1540c14.js +1 -0
  229. package/_standalone/.next/static/chunks/app/api/a2a/route-400c3c09b1540c14.js +1 -0
  230. package/_standalone/.next/static/chunks/app/api/acp/config/route-400c3c09b1540c14.js +1 -0
  231. package/_standalone/.next/static/chunks/app/api/acp/detect/route-400c3c09b1540c14.js +1 -0
  232. package/_standalone/.next/static/chunks/app/api/acp/install/route-400c3c09b1540c14.js +1 -0
  233. package/_standalone/.next/static/chunks/app/api/acp/registry/route-400c3c09b1540c14.js +1 -0
  234. package/_standalone/.next/static/chunks/app/api/acp/session/route-400c3c09b1540c14.js +1 -0
  235. package/_standalone/.next/static/chunks/app/api/agent-activity/route-400c3c09b1540c14.js +1 -0
  236. package/_standalone/.next/static/chunks/app/api/ask/route-400c3c09b1540c14.js +1 -0
  237. package/_standalone/.next/static/chunks/app/api/ask-sessions/route-400c3c09b1540c14.js +1 -0
  238. package/_standalone/.next/static/chunks/app/api/auth/route-400c3c09b1540c14.js +1 -0
  239. package/_standalone/.next/static/chunks/app/api/backlinks/route-400c3c09b1540c14.js +1 -0
  240. package/_standalone/.next/static/chunks/app/api/bootstrap/route-400c3c09b1540c14.js +1 -0
  241. package/_standalone/.next/static/chunks/app/api/changes/route-400c3c09b1540c14.js +1 -0
  242. package/_standalone/.next/static/chunks/app/api/export/route-400c3c09b1540c14.js +1 -0
  243. package/_standalone/.next/static/chunks/app/api/extract-pdf/route-400c3c09b1540c14.js +1 -0
  244. package/_standalone/.next/static/chunks/app/api/file/import/route-400c3c09b1540c14.js +1 -0
  245. package/_standalone/.next/static/chunks/app/api/file/route-400c3c09b1540c14.js +1 -0
  246. package/_standalone/.next/static/chunks/app/api/files/route-400c3c09b1540c14.js +1 -0
  247. package/_standalone/.next/static/chunks/app/api/git/route-400c3c09b1540c14.js +1 -0
  248. package/_standalone/.next/static/chunks/app/api/graph/route-400c3c09b1540c14.js +1 -0
  249. package/_standalone/.next/static/chunks/app/api/health/route-400c3c09b1540c14.js +1 -0
  250. package/_standalone/.next/static/chunks/app/api/inbox/route-400c3c09b1540c14.js +1 -0
  251. package/_standalone/.next/static/chunks/app/api/init/route-400c3c09b1540c14.js +1 -0
  252. package/_standalone/.next/static/chunks/app/api/mcp/agents/route-400c3c09b1540c14.js +1 -0
  253. package/_standalone/.next/static/chunks/app/api/mcp/install/route-400c3c09b1540c14.js +1 -0
  254. package/_standalone/.next/static/chunks/app/api/mcp/install-skill/route-400c3c09b1540c14.js +1 -0
  255. package/_standalone/.next/static/chunks/app/api/mcp/restart/route-400c3c09b1540c14.js +1 -0
  256. package/_standalone/.next/static/chunks/app/api/mcp/status/route-400c3c09b1540c14.js +1 -0
  257. package/_standalone/.next/static/chunks/app/api/monitoring/route-400c3c09b1540c14.js +1 -0
  258. package/_standalone/.next/static/chunks/app/api/recent-files/route-400c3c09b1540c14.js +1 -0
  259. package/_standalone/.next/static/chunks/app/api/restart/route-400c3c09b1540c14.js +1 -0
  260. package/_standalone/.next/static/chunks/app/api/search/route-400c3c09b1540c14.js +1 -0
  261. package/_standalone/.next/static/chunks/app/api/settings/list-models/route-400c3c09b1540c14.js +1 -0
  262. package/_standalone/.next/static/chunks/app/api/settings/reset-token/route-400c3c09b1540c14.js +1 -0
  263. package/_standalone/.next/static/chunks/app/api/settings/route-400c3c09b1540c14.js +1 -0
  264. package/_standalone/.next/static/chunks/app/api/settings/test-key/route-400c3c09b1540c14.js +1 -0
  265. package/_standalone/.next/static/chunks/app/api/setup/check-path/route-400c3c09b1540c14.js +1 -0
  266. package/_standalone/.next/static/chunks/app/api/setup/check-port/route-400c3c09b1540c14.js +1 -0
  267. package/_standalone/.next/static/chunks/app/api/setup/generate-token/route-400c3c09b1540c14.js +1 -0
  268. package/_standalone/.next/static/chunks/app/api/setup/ls/route-400c3c09b1540c14.js +1 -0
  269. package/_standalone/.next/static/chunks/app/api/setup/route-400c3c09b1540c14.js +1 -0
  270. package/_standalone/.next/static/chunks/app/api/skills/route-400c3c09b1540c14.js +1 -0
  271. package/_standalone/.next/static/chunks/app/api/sync/route-400c3c09b1540c14.js +1 -0
  272. package/_standalone/.next/static/chunks/app/api/tree-version/route-400c3c09b1540c14.js +1 -0
  273. package/_standalone/.next/static/chunks/app/api/uninstall/route-400c3c09b1540c14.js +1 -0
  274. package/_standalone/.next/static/chunks/app/api/update/route-400c3c09b1540c14.js +1 -0
  275. package/_standalone/.next/static/chunks/app/api/update-check/route-400c3c09b1540c14.js +1 -0
  276. package/_standalone/.next/static/chunks/app/api/update-status/route-400c3c09b1540c14.js +1 -0
  277. package/_standalone/.next/static/chunks/app/api/workflows/route-400c3c09b1540c14.js +1 -0
  278. package/_standalone/.next/static/chunks/app/changes/page-350992cf5091bc5b.js +1 -0
  279. package/_standalone/.next/static/chunks/app/echo/[segment]/page-addf014fcf23fad5.js +11 -0
  280. package/_standalone/.next/static/chunks/app/echo/page-400c3c09b1540c14.js +1 -0
  281. package/_standalone/.next/static/chunks/app/explore/page-5eb2835e9e3ab4bb.js +4 -0
  282. package/_standalone/.next/static/chunks/app/help/page-3d0e1ceaa4abc243.js +1 -0
  283. package/_standalone/.next/static/chunks/app/layout-9378c1c8d3e5761b.js +186 -0
  284. package/_standalone/.next/static/chunks/app/login/page-24236460fa7c11d0.js +1 -0
  285. package/_standalone/.next/static/chunks/app/page-9bae420fbbdc5fff.js +7 -0
  286. package/_standalone/.next/static/chunks/app/setup/page-99ed3d1bb6b8f4ef.js +1 -0
  287. package/_standalone/.next/static/chunks/app/trash/page-b61ef2d5cd4f8d73.js +1 -0
  288. package/_standalone/.next/static/chunks/app/view/[...path]/loading-400c3c09b1540c14.js +1 -0
  289. package/_standalone/.next/static/chunks/app/view/[...path]/not-found-61474670d6bb6116.js +1 -0
  290. package/_standalone/.next/static/chunks/app/view/[...path]/page-44fa78cbea613a78.js +12 -0
  291. package/_standalone/.next/static/chunks/e71f6c19-4df85185bf989b49.js +1 -0
  292. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-400c3c09b1540c14.js +1 -0
  293. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-400c3c09b1540c14.js +1 -0
  294. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-400c3c09b1540c14.js +1 -0
  295. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-400c3c09b1540c14.js +1 -0
  296. package/_standalone/.next/static/chunks/webpack-c28c55d0a6021a6b.js +1 -0
  297. package/_standalone/.next/static/css/d300701f384db50d.css +1 -0
  298. package/_standalone/.next/static/rZLs1krFuduixvcVNe6q3/_buildManifest.js +1 -0
  299. package/_standalone/.next/trace +63 -53
  300. package/_standalone/.next/types/routes.d.ts +2 -1
  301. package/_standalone/.next/types/validator.ts +9 -0
  302. package/_standalone/__tests__/agent/chat-mode.test.ts +103 -0
  303. package/_standalone/__tests__/agents/agents-content-dashboard.test.tsx +4 -3
  304. package/_standalone/__tests__/api/bootstrap.test.ts +0 -2
  305. package/_standalone/__tests__/api/file.test.ts +22 -1
  306. package/_standalone/__tests__/api/install-skill.test.ts +2 -2
  307. package/_standalone/__tests__/api/mcp-install.test.ts +9 -10
  308. package/_standalone/__tests__/api/setup.test.ts +2 -2
  309. package/_standalone/__tests__/api/test-key.test.ts +73 -147
  310. package/_standalone/__tests__/ask/ask-content-input-during-run.test.tsx +1 -1
  311. package/_standalone/__tests__/ask/mode-capsule.test.ts +95 -0
  312. package/_standalone/__tests__/core/inbox.test.ts +250 -0
  313. package/_standalone/__tests__/core/skill-install-logic.test.ts +3 -3
  314. package/_standalone/__tests__/core/sync-status.test.ts +1 -1
  315. package/_standalone/__tests__/core/tools.test.ts +11 -6
  316. package/_standalone/__tests__/lib/echo-pages-visual-i18n.test.ts +2 -2
  317. package/_standalone/__tests__/lib/i18n-new-keys.test.ts +2 -2
  318. package/_standalone/__tests__/panels/agents-panel-hub.test.tsx +2 -2
  319. package/_standalone/__tests__/settings/activity-bar-update-badge.test.tsx +1 -1
  320. package/_standalone/__tests__/settings/settings-update-badge.test.tsx +1 -1
  321. package/_standalone/__tests__/settings/update-tab-availability-sync.test.tsx +1 -1
  322. package/_standalone/__tests__/settings/update-tab-browser.test.tsx +1 -1
  323. package/_standalone/__tests__/settings/update-tab-desktop.test.tsx +1 -1
  324. package/_standalone/__tests__/setup.ts +3 -5
  325. package/_standalone/app/globals.css +11 -1
  326. package/_standalone/components/ActivityBar.tsx +26 -10
  327. package/_standalone/components/AskFab.tsx +1 -1
  328. package/_standalone/components/AskModal.tsx +1 -1
  329. package/_standalone/components/Backlinks.tsx +1 -1
  330. package/_standalone/components/CreateSpaceModal.tsx +7 -55
  331. package/_standalone/components/EchoSpotlight.tsx +1 -1
  332. package/_standalone/components/ExportModal.tsx +1 -1
  333. package/_standalone/components/FileTree.tsx +64 -79
  334. package/_standalone/components/FindInPage.tsx +1 -1
  335. package/_standalone/components/GuideCard.tsx +1 -1
  336. package/_standalone/components/ImportModal.tsx +1 -1
  337. package/_standalone/components/KeyboardShortcuts.tsx +1 -1
  338. package/_standalone/components/MarkdownView.tsx +11 -1
  339. package/_standalone/components/OnboardingView.tsx +1 -1
  340. package/_standalone/components/OrganizeToast.tsx +1 -1
  341. package/_standalone/components/Panel.tsx +82 -4
  342. package/_standalone/components/QuickSuggestion.tsx +1 -1
  343. package/_standalone/components/RightAgentDetailPanel.tsx +2 -2
  344. package/_standalone/components/RightAskPanel.tsx +58 -22
  345. package/_standalone/components/SearchModal.tsx +1 -1
  346. package/_standalone/components/Sidebar.tsx +1 -1
  347. package/_standalone/components/SidebarLayout.tsx +52 -16
  348. package/_standalone/components/SpaceInitToast.tsx +1 -1
  349. package/_standalone/components/SyncStatusBar.tsx +2 -2
  350. package/_standalone/components/SystemPulse.tsx +12 -6
  351. package/_standalone/components/TableOfContents.tsx +86 -39
  352. package/_standalone/components/agents/AgentActivitySection.tsx +225 -0
  353. package/_standalone/components/agents/AgentsMcpSection.tsx +7 -16
  354. package/_standalone/components/agents/AgentsOverviewSection.tsx +28 -27
  355. package/_standalone/components/agents/AgentsPanelA2aTab.tsx +1 -1
  356. package/_standalone/components/agents/AgentsPanelSessionsTab.tsx +6 -1
  357. package/_standalone/components/agents/AgentsSkillsSection.tsx +1 -1
  358. package/_standalone/components/agents/DiscoverAgentModal.tsx +1 -1
  359. package/_standalone/components/agents/RecentActivityFeed.tsx +49 -88
  360. package/_standalone/components/agents/agent-activity-shared.tsx +110 -0
  361. package/_standalone/components/ask/AgentSelectorCapsule.tsx +1 -1
  362. package/_standalone/components/ask/AskContent.tsx +332 -486
  363. package/_standalone/components/ask/AskHeader.tsx +61 -0
  364. package/_standalone/components/ask/FileChip.tsx +9 -5
  365. package/_standalone/components/ask/MessageList.tsx +88 -21
  366. package/_standalone/components/ask/ModeCapsule.tsx +180 -0
  367. package/_standalone/components/ask/ProviderModelCapsule.tsx +284 -0
  368. package/_standalone/components/ask/SessionHistory.tsx +63 -10
  369. package/_standalone/components/ask/SessionTabBar.tsx +1 -1
  370. package/_standalone/components/ask/ThinkingBlock.tsx +1 -1
  371. package/_standalone/components/ask/ToolCallBlock.tsx +28 -24
  372. package/_standalone/components/changes/ChangesBanner.tsx +1 -1
  373. package/_standalone/components/echo/EchoInsightCollapsible.tsx +1 -1
  374. package/_standalone/components/echo/EchoSegmentNav.tsx +1 -1
  375. package/_standalone/components/home/InboxSection.tsx +268 -0
  376. package/_standalone/components/panels/AgentsPanel.tsx +3 -2
  377. package/_standalone/components/panels/AgentsPanelHubNav.tsx +2 -6
  378. package/_standalone/components/panels/DiscoverPanel.tsx +1 -1
  379. package/_standalone/components/panels/EchoPanel.tsx +1 -1
  380. package/_standalone/components/panels/EchoSidebarStats.tsx +1 -1
  381. package/_standalone/components/panels/ImportHistoryPanel.tsx +1 -1
  382. package/_standalone/components/panels/PanelHeader.tsx +1 -1
  383. package/_standalone/components/panels/PluginsPanel.tsx +1 -1
  384. package/_standalone/components/panels/SearchPanel.tsx +5 -2
  385. package/_standalone/components/panels/SyncPopover.tsx +1 -1
  386. package/_standalone/components/panels/WorkflowsPanel.tsx +1 -1
  387. package/_standalone/components/renderers/agent-inspector/AgentInspectorRenderer.tsx +18 -0
  388. package/_standalone/components/renderers/agent-inspector/manifest.ts +16 -0
  389. package/_standalone/components/renderers/todo/TodoRenderer.tsx +489 -75
  390. package/_standalone/components/settings/AiTab.tsx +198 -127
  391. package/_standalone/components/settings/AppearanceTab.tsx +48 -50
  392. package/_standalone/components/settings/KnowledgeTab.tsx +92 -27
  393. package/_standalone/components/settings/McpAgentInstall.tsx +1 -1
  394. package/_standalone/components/settings/McpSkillsSection.tsx +1 -1
  395. package/_standalone/components/settings/McpTab.tsx +145 -7
  396. package/_standalone/components/settings/PluginsTab.tsx +1 -1
  397. package/_standalone/components/settings/SettingsContent.tsx +5 -2
  398. package/_standalone/components/settings/SyncTab.tsx +615 -230
  399. package/_standalone/components/settings/UninstallTab.tsx +1 -1
  400. package/_standalone/components/settings/UpdateTab.tsx +2 -2
  401. package/_standalone/components/settings/types.ts +4 -5
  402. package/_standalone/components/setup/StepAI.tsx +70 -49
  403. package/_standalone/components/setup/StepDots.tsx +1 -1
  404. package/_standalone/components/setup/StepReview.tsx +176 -8
  405. package/_standalone/components/setup/types.ts +11 -8
  406. package/_standalone/components/shared/ProviderSelect.tsx +134 -0
  407. package/_standalone/components/walkthrough/WalkthroughOverlay.tsx +2 -2
  408. package/_standalone/components/walkthrough/WalkthroughTooltip.tsx +2 -2
  409. package/_standalone/components/walkthrough/index.ts +1 -1
  410. package/_standalone/data/skills/mindos/SKILL.md +3 -3
  411. package/_standalone/data/skills/mindos-zh/SKILL.md +3 -3
  412. package/_standalone/hooks/useAcpDetection.ts +1 -1
  413. package/_standalone/hooks/useAskChat.ts +248 -0
  414. package/_standalone/hooks/useAskPanel.ts +24 -4
  415. package/_standalone/hooks/useAskSession.ts +15 -0
  416. package/_standalone/lib/acp/types.ts +1 -1
  417. package/_standalone/lib/api.ts +3 -1
  418. package/_standalone/lib/core/types.ts +2 -0
  419. package/_standalone/lib/i18n/modules/ai-chat.ts +35 -13
  420. package/_standalone/lib/i18n/modules/features.ts +2 -2
  421. package/_standalone/lib/i18n/modules/knowledge.ts +82 -2
  422. package/_standalone/lib/i18n/modules/navigation.ts +6 -2
  423. package/_standalone/lib/i18n/modules/onboarding.ts +39 -9
  424. package/_standalone/lib/i18n/modules/panels.ts +78 -29
  425. package/_standalone/lib/i18n/modules/settings.ts +207 -23
  426. package/_standalone/lib/inbox-upload.ts +93 -0
  427. package/_standalone/lib/settings-ai-client.ts +13 -12
  428. package/_standalone/lib/space-ai-init.ts +66 -0
  429. package/_standalone/lib/stores/McpStoreInit.tsx +18 -0
  430. package/_standalone/lib/stores/WalkthroughInit.tsx +20 -0
  431. package/_standalone/lib/stores/locale-store.ts +55 -0
  432. package/_standalone/lib/stores/mcp-store.ts +156 -0
  433. package/_standalone/lib/stores/walkthrough-store.ts +118 -0
  434. package/_standalone/package-lock.json +40 -8
  435. package/_standalone/package.json +3 -1
  436. package/_standalone/tsconfig.json +1 -1
  437. package/_standalone/tsconfig.tsbuildinfo +1 -1
  438. package/app/app/api/acp/detect/route.ts +29 -20
  439. package/app/app/api/agent-activity/route.ts +1 -1
  440. package/app/app/api/ask/route.ts +103 -29
  441. package/app/app/api/ask-sessions/route.ts +1 -0
  442. package/app/app/api/bootstrap/route.ts +1 -3
  443. package/app/app/api/file/route.ts +34 -4
  444. package/app/app/api/inbox/route.ts +61 -0
  445. package/app/app/api/settings/list-models/route.ts +73 -53
  446. package/app/app/api/settings/route.ts +46 -55
  447. package/app/app/api/settings/test-key/route.ts +57 -114
  448. package/app/app/api/setup/route.ts +31 -21
  449. package/app/app/api/sync/route.ts +122 -12
  450. package/app/app/api/update-check/route.ts +2 -2
  451. package/app/app/globals.css +11 -1
  452. package/app/app/layout.tsx +2 -3
  453. package/app/app/login/page.tsx +1 -1
  454. package/app/app/view/[...path]/ViewPageClient.tsx +10 -10
  455. package/app/app/view/[...path]/not-found.tsx +1 -1
  456. package/app/components/ActivityBar.tsx +26 -10
  457. package/app/components/AskFab.tsx +1 -1
  458. package/app/components/AskModal.tsx +1 -1
  459. package/app/components/Backlinks.tsx +1 -1
  460. package/app/components/CreateSpaceModal.tsx +7 -55
  461. package/app/components/DirView.tsx +93 -11
  462. package/app/components/EchoSpotlight.tsx +1 -1
  463. package/app/components/ExportModal.tsx +1 -1
  464. package/app/components/FileTree.tsx +64 -79
  465. package/app/components/FindInPage.tsx +1 -1
  466. package/app/components/GuideCard.tsx +1 -1
  467. package/app/components/HomeContent.tsx +21 -14
  468. package/app/components/ImportModal.tsx +1 -1
  469. package/app/components/KeyboardShortcuts.tsx +1 -1
  470. package/app/components/MarkdownView.tsx +11 -1
  471. package/app/components/OnboardingView.tsx +1 -1
  472. package/app/components/OrganizeToast.tsx +1 -1
  473. package/app/components/Panel.tsx +82 -4
  474. package/app/components/QuickSuggestion.tsx +1 -1
  475. package/app/components/RightAgentDetailPanel.tsx +2 -2
  476. package/app/components/RightAskPanel.tsx +58 -22
  477. package/app/components/SearchModal.tsx +1 -1
  478. package/app/components/Sidebar.tsx +1 -1
  479. package/app/components/SidebarLayout.tsx +52 -16
  480. package/app/components/SpaceInitToast.tsx +1 -1
  481. package/app/components/SyncStatusBar.tsx +2 -2
  482. package/app/components/SystemPulse.tsx +12 -6
  483. package/app/components/TableOfContents.tsx +86 -39
  484. package/app/components/TrashPageClient.tsx +1 -1
  485. package/app/components/UpdateOverlay.tsx +2 -2
  486. package/app/components/agents/AgentActivitySection.tsx +225 -0
  487. package/app/components/agents/AgentDetailContent.tsx +234 -3
  488. package/app/components/agents/AgentsContentPage.tsx +13 -2
  489. package/app/components/agents/AgentsMcpSection.tsx +7 -16
  490. package/app/components/agents/AgentsOverviewSection.tsx +28 -27
  491. package/app/components/agents/AgentsPanelA2aTab.tsx +1 -1
  492. package/app/components/agents/AgentsPanelSessionsTab.tsx +6 -1
  493. package/app/components/agents/AgentsSkillsSection.tsx +1 -1
  494. package/app/components/agents/DiscoverAgentModal.tsx +1 -1
  495. package/app/components/agents/RecentActivityFeed.tsx +49 -88
  496. package/app/components/agents/agent-activity-shared.tsx +110 -0
  497. package/app/components/agents/agents-content-model.ts +2 -2
  498. package/app/components/ask/AgentSelectorCapsule.tsx +1 -1
  499. package/app/components/ask/AskContent.tsx +332 -486
  500. package/app/components/ask/AskHeader.tsx +61 -0
  501. package/app/components/ask/FileChip.tsx +9 -5
  502. package/app/components/ask/MessageList.tsx +88 -21
  503. package/app/components/ask/ModeCapsule.tsx +180 -0
  504. package/app/components/ask/ProviderModelCapsule.tsx +284 -0
  505. package/app/components/ask/SessionHistory.tsx +63 -10
  506. package/app/components/ask/SessionTabBar.tsx +1 -1
  507. package/app/components/ask/ThinkingBlock.tsx +1 -1
  508. package/app/components/ask/ToolCallBlock.tsx +28 -24
  509. package/app/components/changes/ChangesBanner.tsx +1 -1
  510. package/app/components/changes/ChangesContentPage.tsx +1 -1
  511. package/app/components/echo/EchoInsightCollapsible.tsx +1 -1
  512. package/app/components/echo/EchoSegmentNav.tsx +1 -1
  513. package/app/components/echo/EchoSegmentPageClient.tsx +1 -1
  514. package/app/components/explore/ExploreContent.tsx +1 -1
  515. package/app/components/help/HelpContent.tsx +1 -1
  516. package/app/components/home/InboxSection.tsx +268 -0
  517. package/app/components/panels/AgentsPanel.tsx +3 -2
  518. package/app/components/panels/AgentsPanelHubNav.tsx +2 -6
  519. package/app/components/panels/DiscoverPanel.tsx +1 -1
  520. package/app/components/panels/EchoPanel.tsx +1 -1
  521. package/app/components/panels/EchoSidebarStats.tsx +1 -1
  522. package/app/components/panels/ImportHistoryPanel.tsx +1 -1
  523. package/app/components/panels/PanelHeader.tsx +1 -1
  524. package/app/components/panels/PluginsPanel.tsx +1 -1
  525. package/app/components/panels/SearchPanel.tsx +5 -2
  526. package/app/components/panels/SyncPopover.tsx +1 -1
  527. package/app/components/panels/WorkflowsPanel.tsx +1 -1
  528. package/app/components/renderers/agent-inspector/AgentInspectorRenderer.tsx +18 -0
  529. package/app/components/renderers/todo/TodoRenderer.tsx +489 -75
  530. package/app/components/settings/AiTab.tsx +198 -127
  531. package/app/components/settings/AppearanceTab.tsx +48 -50
  532. package/app/components/settings/KnowledgeTab.tsx +92 -27
  533. package/app/components/settings/McpAgentInstall.tsx +1 -1
  534. package/app/components/settings/McpSkillsSection.tsx +1 -1
  535. package/app/components/settings/McpTab.tsx +145 -7
  536. package/app/components/settings/PluginsTab.tsx +1 -1
  537. package/app/components/settings/SettingsContent.tsx +5 -2
  538. package/app/components/settings/SyncTab.tsx +615 -230
  539. package/app/components/settings/UninstallTab.tsx +1 -1
  540. package/app/components/settings/UpdateTab.tsx +2 -2
  541. package/app/components/settings/types.ts +4 -5
  542. package/app/components/setup/StepAI.tsx +70 -49
  543. package/app/components/setup/StepDots.tsx +1 -1
  544. package/app/components/setup/StepReview.tsx +176 -8
  545. package/app/components/setup/index.tsx +73 -39
  546. package/app/components/setup/types.ts +11 -8
  547. package/app/components/shared/ProviderSelect.tsx +134 -0
  548. package/app/components/walkthrough/WalkthroughOverlay.tsx +2 -2
  549. package/app/components/walkthrough/WalkthroughTooltip.tsx +2 -2
  550. package/app/components/walkthrough/index.ts +1 -1
  551. package/app/data/skills/mindos/SKILL.md +3 -3
  552. package/app/data/skills/mindos-zh/SKILL.md +3 -3
  553. package/app/hooks/useAcpDetection.ts +1 -1
  554. package/app/hooks/useAskChat.ts +248 -0
  555. package/app/hooks/useAskPanel.ts +24 -4
  556. package/app/hooks/useAskSession.ts +15 -0
  557. package/app/lib/acp/types.ts +1 -1
  558. package/app/lib/actions.ts +13 -0
  559. package/app/lib/agent/log.ts +2 -0
  560. package/app/lib/agent/model.ts +69 -81
  561. package/app/lib/agent/prompt.ts +27 -0
  562. package/app/lib/agent/providers.ts +299 -0
  563. package/app/lib/agent/tools.ts +26 -4
  564. package/app/lib/api.ts +3 -1
  565. package/app/lib/core/agent-audit-log.ts +7 -0
  566. package/app/lib/core/fs-ops.ts +9 -4
  567. package/app/lib/core/inbox.ts +181 -0
  568. package/app/lib/core/index.ts +4 -0
  569. package/app/lib/core/tree.ts +3 -0
  570. package/app/lib/core/types.ts +2 -0
  571. package/app/lib/fs.ts +26 -2
  572. package/app/lib/i18n/modules/ai-chat.ts +35 -13
  573. package/app/lib/i18n/modules/features.ts +2 -2
  574. package/app/lib/i18n/modules/knowledge.ts +82 -2
  575. package/app/lib/i18n/modules/navigation.ts +6 -2
  576. package/app/lib/i18n/modules/onboarding.ts +39 -9
  577. package/app/lib/i18n/modules/panels.ts +78 -29
  578. package/app/lib/i18n/modules/settings.ts +207 -23
  579. package/app/lib/inbox-upload.ts +93 -0
  580. package/app/lib/mcp-agents.ts +6 -7
  581. package/app/lib/renderers/index.ts +1 -2
  582. package/app/lib/settings-ai-client.ts +13 -12
  583. package/app/lib/settings.ts +48 -33
  584. package/app/lib/space-ai-init.ts +66 -0
  585. package/app/lib/stores/LocaleStoreInit.tsx +18 -0
  586. package/app/lib/stores/McpStoreInit.tsx +18 -0
  587. package/app/lib/stores/WalkthroughInit.tsx +20 -0
  588. package/app/lib/stores/locale-store.ts +55 -0
  589. package/app/lib/stores/mcp-store.ts +156 -0
  590. package/app/lib/stores/walkthrough-store.ts +118 -0
  591. package/app/lib/types.ts +20 -0
  592. package/app/package.json +3 -1
  593. package/app/tsconfig.json +1 -1
  594. package/bin/cli.js +46 -27
  595. package/bin/commands/file.js +7 -4
  596. package/bin/commands/space.js +4 -0
  597. package/bin/lib/mcp-agents.js +26 -2
  598. package/bin/lib/mcp-install.js +11 -3
  599. package/bin/lib/sync.js +140 -34
  600. package/mcp/README.md +2 -2
  601. package/mcp/dist/index.cjs +43 -43
  602. package/mcp/package.json +1 -1
  603. package/mcp/src/index.ts +77 -61
  604. package/package.json +1 -1
  605. package/scripts/setup.js +1 -1
  606. package/skills/mindos/SKILL.md +3 -3
  607. package/skills/mindos/references/preference-capture.md +4 -4
  608. package/skills/mindos/references/write-supplement.md +2 -2
  609. package/skills/mindos-zh/SKILL.md +3 -3
  610. package/skills/mindos-zh/references/preference-capture.md +4 -4
  611. package/skills/mindos-zh/references/write-supplement.md +2 -2
  612. package/templates/empty/INSTRUCTION.md +0 -1
  613. package/templates/en/INSTRUCTION.md +0 -1
  614. package/templates/template-generation-skill.md +0 -1
  615. package/templates/zh/INSTRUCTION.md +0 -1
  616. package/_standalone/.next/server/chunks/1473.js +0 -52
  617. package/_standalone/.next/server/chunks/248.js +0 -15
  618. package/_standalone/.next/server/chunks/359.js +0 -2
  619. package/_standalone/.next/server/chunks/4931.js +0 -202
  620. package/_standalone/.next/server/chunks/7670.js +0 -1
  621. package/_standalone/.next/server/chunks/9414.js +0 -11
  622. package/_standalone/.next/static/chunks/1038-ed04d6651ec92312.js +0 -1
  623. package/_standalone/.next/static/chunks/1263-6df1734e4273adb1.js +0 -25
  624. package/_standalone/.next/static/chunks/275-ebcaaedabe706903.js +0 -1
  625. package/_standalone/.next/static/chunks/5637-b97c869adf70c82e.js +0 -1
  626. package/_standalone/.next/static/chunks/5681-a53362a1cd629dc6.js +0 -1
  627. package/_standalone/.next/static/chunks/9602-35ca17b688f1a4fe.js +0 -1
  628. package/_standalone/.next/static/chunks/9670-d59e4d45ed705f58.js +0 -6
  629. package/_standalone/.next/static/chunks/app/.well-known/agent-card.json/route-d4762cc48529e566.js +0 -1
  630. package/_standalone/.next/static/chunks/app/_global-error/page-d4762cc48529e566.js +0 -1
  631. package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-519d4da1142db5ef.js +0 -1
  632. package/_standalone/.next/static/chunks/app/agents/page-b709cf3103321609.js +0 -5
  633. package/_standalone/.next/static/chunks/app/api/a2a/agents/route-d4762cc48529e566.js +0 -1
  634. package/_standalone/.next/static/chunks/app/api/a2a/delegations/route-d4762cc48529e566.js +0 -1
  635. package/_standalone/.next/static/chunks/app/api/a2a/discover/route-d4762cc48529e566.js +0 -1
  636. package/_standalone/.next/static/chunks/app/api/a2a/route-d4762cc48529e566.js +0 -1
  637. package/_standalone/.next/static/chunks/app/api/acp/config/route-d4762cc48529e566.js +0 -1
  638. package/_standalone/.next/static/chunks/app/api/acp/detect/route-d4762cc48529e566.js +0 -1
  639. package/_standalone/.next/static/chunks/app/api/acp/install/route-d4762cc48529e566.js +0 -1
  640. package/_standalone/.next/static/chunks/app/api/acp/registry/route-d4762cc48529e566.js +0 -1
  641. package/_standalone/.next/static/chunks/app/api/acp/session/route-d4762cc48529e566.js +0 -1
  642. package/_standalone/.next/static/chunks/app/api/agent-activity/route-d4762cc48529e566.js +0 -1
  643. package/_standalone/.next/static/chunks/app/api/ask/route-d4762cc48529e566.js +0 -1
  644. package/_standalone/.next/static/chunks/app/api/ask-sessions/route-d4762cc48529e566.js +0 -1
  645. package/_standalone/.next/static/chunks/app/api/auth/route-d4762cc48529e566.js +0 -1
  646. package/_standalone/.next/static/chunks/app/api/backlinks/route-d4762cc48529e566.js +0 -1
  647. package/_standalone/.next/static/chunks/app/api/bootstrap/route-d4762cc48529e566.js +0 -1
  648. package/_standalone/.next/static/chunks/app/api/changes/route-d4762cc48529e566.js +0 -1
  649. package/_standalone/.next/static/chunks/app/api/export/route-d4762cc48529e566.js +0 -1
  650. package/_standalone/.next/static/chunks/app/api/extract-pdf/route-d4762cc48529e566.js +0 -1
  651. package/_standalone/.next/static/chunks/app/api/file/import/route-d4762cc48529e566.js +0 -1
  652. package/_standalone/.next/static/chunks/app/api/file/route-d4762cc48529e566.js +0 -1
  653. package/_standalone/.next/static/chunks/app/api/files/route-d4762cc48529e566.js +0 -1
  654. package/_standalone/.next/static/chunks/app/api/git/route-d4762cc48529e566.js +0 -1
  655. package/_standalone/.next/static/chunks/app/api/graph/route-d4762cc48529e566.js +0 -1
  656. package/_standalone/.next/static/chunks/app/api/health/route-d4762cc48529e566.js +0 -1
  657. package/_standalone/.next/static/chunks/app/api/init/route-d4762cc48529e566.js +0 -1
  658. package/_standalone/.next/static/chunks/app/api/mcp/agents/route-d4762cc48529e566.js +0 -1
  659. package/_standalone/.next/static/chunks/app/api/mcp/install/route-d4762cc48529e566.js +0 -1
  660. package/_standalone/.next/static/chunks/app/api/mcp/install-skill/route-d4762cc48529e566.js +0 -1
  661. package/_standalone/.next/static/chunks/app/api/mcp/restart/route-d4762cc48529e566.js +0 -1
  662. package/_standalone/.next/static/chunks/app/api/mcp/status/route-d4762cc48529e566.js +0 -1
  663. package/_standalone/.next/static/chunks/app/api/monitoring/route-d4762cc48529e566.js +0 -1
  664. package/_standalone/.next/static/chunks/app/api/recent-files/route-d4762cc48529e566.js +0 -1
  665. package/_standalone/.next/static/chunks/app/api/restart/route-d4762cc48529e566.js +0 -1
  666. package/_standalone/.next/static/chunks/app/api/search/route-d4762cc48529e566.js +0 -1
  667. package/_standalone/.next/static/chunks/app/api/settings/list-models/route-d4762cc48529e566.js +0 -1
  668. package/_standalone/.next/static/chunks/app/api/settings/reset-token/route-d4762cc48529e566.js +0 -1
  669. package/_standalone/.next/static/chunks/app/api/settings/route-d4762cc48529e566.js +0 -1
  670. package/_standalone/.next/static/chunks/app/api/settings/test-key/route-d4762cc48529e566.js +0 -1
  671. package/_standalone/.next/static/chunks/app/api/setup/check-path/route-d4762cc48529e566.js +0 -1
  672. package/_standalone/.next/static/chunks/app/api/setup/check-port/route-d4762cc48529e566.js +0 -1
  673. package/_standalone/.next/static/chunks/app/api/setup/generate-token/route-d4762cc48529e566.js +0 -1
  674. package/_standalone/.next/static/chunks/app/api/setup/ls/route-d4762cc48529e566.js +0 -1
  675. package/_standalone/.next/static/chunks/app/api/setup/route-d4762cc48529e566.js +0 -1
  676. package/_standalone/.next/static/chunks/app/api/skills/route-d4762cc48529e566.js +0 -1
  677. package/_standalone/.next/static/chunks/app/api/sync/route-d4762cc48529e566.js +0 -1
  678. package/_standalone/.next/static/chunks/app/api/tree-version/route-d4762cc48529e566.js +0 -1
  679. package/_standalone/.next/static/chunks/app/api/uninstall/route-d4762cc48529e566.js +0 -1
  680. package/_standalone/.next/static/chunks/app/api/update/route-d4762cc48529e566.js +0 -1
  681. package/_standalone/.next/static/chunks/app/api/update-check/route-d4762cc48529e566.js +0 -1
  682. package/_standalone/.next/static/chunks/app/api/update-status/route-d4762cc48529e566.js +0 -1
  683. package/_standalone/.next/static/chunks/app/api/workflows/route-d4762cc48529e566.js +0 -1
  684. package/_standalone/.next/static/chunks/app/changes/page-def5210095f8698d.js +0 -1
  685. package/_standalone/.next/static/chunks/app/echo/[segment]/page-be28eff31b1a186e.js +0 -11
  686. package/_standalone/.next/static/chunks/app/echo/page-d4762cc48529e566.js +0 -1
  687. package/_standalone/.next/static/chunks/app/explore/page-e4b8098dca200389.js +0 -4
  688. package/_standalone/.next/static/chunks/app/help/page-d5e57d73d94bad19.js +0 -1
  689. package/_standalone/.next/static/chunks/app/layout-d91cdbe2ecf135e1.js +0 -173
  690. package/_standalone/.next/static/chunks/app/login/page-321875768b70938a.js +0 -1
  691. package/_standalone/.next/static/chunks/app/page-718fdf170428b43c.js +0 -7
  692. package/_standalone/.next/static/chunks/app/setup/page-01ab1f549d636057.js +0 -1
  693. package/_standalone/.next/static/chunks/app/trash/page-89b1430cc8a16f18.js +0 -1
  694. package/_standalone/.next/static/chunks/app/view/[...path]/loading-d4762cc48529e566.js +0 -1
  695. package/_standalone/.next/static/chunks/app/view/[...path]/not-found-f22c513bbc348cc8.js +0 -1
  696. package/_standalone/.next/static/chunks/app/view/[...path]/page-6e3dc47699a01de1.js +0 -12
  697. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-d4762cc48529e566.js +0 -1
  698. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-d4762cc48529e566.js +0 -1
  699. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-d4762cc48529e566.js +0 -1
  700. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-d4762cc48529e566.js +0 -1
  701. package/_standalone/.next/static/chunks/webpack-3489a2b6c2882b0c.js +0 -1
  702. package/_standalone/.next/static/css/f16595bc58a16d5d.css +0 -1
  703. package/_standalone/.next/static/ushZ_NJ8rE3rG5hZfaYOX/_buildManifest.js +0 -1
  704. package/_standalone/components/walkthrough/WalkthroughProvider.tsx +0 -133
  705. package/_standalone/hooks/useMcpData.tsx +0 -169
  706. package/_standalone/lib/i18n-en.ts +0 -2
  707. package/_standalone/lib/i18n-zh.ts +0 -2
  708. package/_standalone/lib/types.ts +0 -70
  709. package/app/components/walkthrough/WalkthroughProvider.tsx +0 -133
  710. package/app/hooks/useMcpData.tsx +0 -169
  711. package/app/lib/LocaleContext.tsx +0 -60
  712. package/app/lib/i18n-en.ts +0 -2
  713. package/app/lib/i18n-zh.ts +0 -2
  714. /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
+ }
@@ -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,
@@ -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));
@@ -1,6 +1,8 @@
1
1
  export interface SpacePreview {
2
2
  instructionLines: string[];
3
3
  readmeLines: string[];
4
+ /** True when both files still contain only the default scaffold template. */
5
+ isTemplate?: boolean;
4
6
  }
5
7
 
6
8
  export interface FileNode {
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(path.join(dirAbsPath, 'INSTRUCTION.md'), SPACE_PREVIEW_MAX_LINES),
237
- readmeLines: extractBodyLines(path.join(dirAbsPath, 'README.md'), SPACE_PREVIEW_MAX_LINES),
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: 'Ask anything about your knowledge base',
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
- 'List all action items and TODOs',
34
- 'What are the key points?',
35
- 'Find related notes on this topic',
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: 'Maximize panel',
101
- restorePanel: 'Restore panel',
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: 'Tools(操作)',
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: '点击左侧边栏的"空间"图标来浏览你的文件。每个顶级文件夹是一个"空间"——比如 Profile、Notes 或 Projects。',
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 & Skills。MindOS 会自动检测已安装的 Agent(Claude Code、Cursor 等),一键即可连接。' },
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: 'Knowledge Pulse',
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: '前往 Agents',
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: '切换 Ask AI',
148
+ toggleAskAI: '切换 AI 助手',
145
149
  openSettings: '打开设置',
146
150
  keyboardShortcuts: '快捷键',
147
151
  closePanel: '关闭面板 / 退出最大化',