@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
@@ -9,8 +9,9 @@ export const settingsEn = {
9
9
  model: 'Model',
10
10
  apiKey: 'API Key',
11
11
  baseUrl: 'Base URL',
12
- baseUrlHint: 'Optional. Use for proxies or OpenAI-compatible APIs.',
12
+ baseUrlHint: 'Optional. Use for proxies or custom API endpoints.',
13
13
  keyHint: 'Stored locally in ~/.mindos/config.json',
14
+ keyOptionalHint: 'Optional for local providers. Stored in ~/.mindos/config.json',
14
15
  envHint: 'Fields marked env have a value from environment variables. You can override them here, or restore all to env defaults.',
15
16
  envFieldNote: (key: string) => `Env var ${key} is set. Clear this field to fall back to it.`,
16
17
  resetToEnv: 'Reset to env value',
@@ -58,12 +59,40 @@ export const settingsEn = {
58
59
  light: 'Light',
59
60
  language: 'Language',
60
61
  browserNote: 'Appearance settings are saved in your browser.',
62
+ labsTitle: 'Labs',
63
+ labsDesc: 'Experimental features still in development. May change or be removed.',
64
+ labsEcho: 'Echo',
65
+ labsEchoDesc: 'Reflective journaling powered by your notes.',
66
+ labsWorkflows: 'Flows',
67
+ labsWorkflowsDesc: 'Visual workflow automation for agents.',
61
68
  fontPreview: 'The quick brown fox jumps over the lazy dog.',
62
69
  },
63
70
  knowledge: {
64
- sopRoot: 'Knowledge base root',
65
- sopRootHint: 'Absolute path to your notes directory. Requires server restart to take effect.',
66
- sopRootEnvHint: (key: string) => `MIND_ROOT env var is set to "${key}". Fill in above to override it.`,
71
+ cardTitle: 'Knowledge Base',
72
+ securityTitle: 'Security',
73
+ passwordPlaceholder: 'Leave empty to disable',
74
+ passwordShow: 'Show',
75
+ passwordHide: 'Hide',
76
+ tokenNotSet: '— not set —',
77
+ mcpUrl: 'MCP URL',
78
+ tokenGenerated: 'New token generated. Copy it now — it won\'t be shown in full again.',
79
+ monitoringTitle: 'System Monitoring',
80
+ monitoringFailed: 'Failed to load monitoring data',
81
+ monitorHeap: 'Heap',
82
+ monitorRss: 'RSS',
83
+ monitorUptime: 'Uptime',
84
+ monitorNode: 'Node',
85
+ monitorRequests: 'Requests',
86
+ monitorToolCalls: 'Tool Calls',
87
+ monitorTokens: 'Tokens',
88
+ monitorFiles: 'Files',
89
+ monitorErrors: 'Errors',
90
+ monitorMcpRunning: (port: number) => `Running :${port}`,
91
+ monitorMcpStopped: 'Stopped',
92
+ cancel: 'Cancel',
93
+ mindRoot: 'Knowledge base root',
94
+ mindRootHint: 'Absolute path to your notes directory. Requires server restart to take effect.',
95
+ mindRootEnvHint: (key: string) => `MIND_ROOT env var is set to "${key}". Fill in above to override it.`,
67
96
  envNote: 'MIND_ROOT env var is set. Fill in above to override it — your value takes priority.',
68
97
  webPassword: 'Web UI password',
69
98
  webPasswordHint: 'Protect the browser UI with a password. Leave empty to disable. Changes take effect on next page load.',
@@ -97,17 +126,63 @@ export const settingsEn = {
97
126
  featureMultiDevice: 'Works across devices',
98
127
  remoteUrl: 'Git Remote URL',
99
128
  invalidUrl: 'Invalid Git URL — use HTTPS (https://...) or SSH (git@...)',
100
- sshHint: 'SSH URLs require SSH key configured on this machine. HTTPS with token recommended.',
129
+ sshBrief: 'one-time key setup, no token needed',
130
+ httpsBrief: 'works anywhere, token recommended',
131
+ sshHint: 'Requires SSH key on this machine. Verify with: ssh -T git@github.com',
101
132
  accessToken: 'Access Token',
102
133
  optional: '(optional, for private repos)',
103
- tokenHint: 'GitHub: Settings → Developer settings → Personal access tokens → repo scope',
134
+ tokenHint: 'GitHub:',
135
+ tokenLink: 'Create a token (repo scope)',
104
136
  branchLabel: 'Branch',
105
137
  connectButton: 'Connect & Start Sync',
106
138
  connecting: 'Connecting...',
139
+ stepConnecting: 'Connecting to remote...',
140
+ stepAuthenticating: 'Authenticating...',
141
+ stepSyncing: 'Syncing data...',
142
+ stepAlmostDone: 'Almost done...',
143
+ stepDone: 'Sync configured successfully!',
144
+ gitignoreTitle: 'Excluded files',
145
+ gitignorePlaceholder: '# Files to exclude from sync\n*.tmp\nsecret/',
146
+ gitignoreSave: 'Save',
147
+ gitignoreSaved: 'Saved',
148
+ conflictExplain: 'These files were changed on both this device and the remote. Choose which version to keep.',
149
+ keepLocal: 'Keep local',
150
+ keepRemote: 'Keep remote',
151
+ keepLocalHint: 'Keep this device\'s version',
152
+ keepRemoteHint: 'Replace with the remote version',
153
+ viewDiff: 'Click to compare versions',
154
+ localVersion: 'Local (this device)',
155
+ remoteVersion: 'Remote',
156
+ emptyFile: '(empty)',
157
+ sectionTitle: 'Sync',
158
+ labelProvider: 'Provider',
159
+ labelRemote: 'Remote',
160
+ labelBranch: 'Branch',
161
+ labelLastSync: 'Last sync',
162
+ labelUnpushed: 'Unpushed',
163
+ labelAutoSync: 'Auto-sync',
164
+ unpushedCommits: (n: number) => `${n} commits`,
165
+ syncNow: 'Sync Now',
166
+ disableAutoSync: 'Disable Auto-sync',
167
+ enableAutoSync: 'Enable Auto-sync',
168
+ syncComplete: 'Sync complete',
169
+ syncFailed: 'Sync failed',
170
+ autoSyncDisabled: 'Auto-sync disabled',
171
+ autoSyncEnabled: 'Auto-sync enabled',
172
+ toggleFailed: 'Failed to toggle sync',
173
+ conflictsTitle: (n: number) => `Conflicts (${n})`,
174
+ conflictHint: 'Click a file to view your version. Hover and click',
175
+ conflictHintSuffix: 'to see the remote version.',
176
+ timeNever: 'never',
177
+ timeJustNow: 'just now',
178
+ timeMinAgo: (m: number) => `${m}m ago`,
179
+ timeHourAgo: (h: number) => `${h}h ago`,
180
+ timeDayAgo: (d: number) => `${d}d ago`,
107
181
  },
108
182
  plugins: {
109
183
  title: 'Installed Renderers',
110
184
  builtinBadge: 'built-in',
185
+ coreBadge: 'core',
111
186
  enabled: 'Enabled',
112
187
  disabled: 'Disabled',
113
188
  matchHint: 'Auto-activates on',
@@ -193,6 +268,23 @@ export const settingsEn = {
193
268
  noAuthWarning: '⚠ No auth token — set one in Settings → General before enabling remote access.',
194
269
  showJson: 'Show JSON',
195
270
  hideJson: 'Hide JSON',
271
+ connectionTitle: 'Connection',
272
+ connectionHint: 'Use these credentials to connect AI agents to your MindOS knowledge base.',
273
+ tokenLabel: 'Auth Token',
274
+ tokenMasked: 'Click Show to reveal the full token',
275
+ tokenShow: 'Show',
276
+ tokenHide: 'Hide',
277
+ tokenCopy: 'Copy',
278
+ tokenCopied: 'Token copied!',
279
+ tokenNone: 'No token set — your MCP server is open to all requests.',
280
+ tokenNoneAction: 'Generate a token in Settings → General → Security.',
281
+ serverUrl: 'MCP Server URL',
282
+ serverUrlCopy: 'Copy URL',
283
+ howToConnect: 'How to connect an AI agent',
284
+ howToStep1: 'Open your agent\'s MCP settings (e.g. Claude Code, Cursor)',
285
+ howToStep2: 'Add a new MCP server with the URL above',
286
+ howToStep3: 'Set the Auth Token as the bearer token',
287
+ howToStep4: 'Save and verify the connection',
196
288
  },
197
289
  monitoring: {
198
290
  system: 'System',
@@ -317,14 +409,15 @@ export const settingsEn = {
317
409
  export const settingsZh = {
318
410
  settings: {
319
411
  title: '设置',
320
- tabs: { ai: 'AI', appearance: '外观', knowledge: '通用', sync: '同步', mcp: 'MCP & Skills', plugins: '插件', shortcuts: '快捷键', monitoring: '监控', agents: 'Agents', update: '更新', uninstall: '卸载' },
412
+ tabs: { ai: 'AI', appearance: '外观', knowledge: '通用', sync: '同步', mcp: 'MCP 与技能', plugins: '插件', shortcuts: '快捷键', monitoring: '监控', agents: '智能体', update: '更新', uninstall: '卸载' },
321
413
  ai: {
322
414
  provider: '服务商',
323
415
  model: '模型',
324
416
  apiKey: 'API 密钥',
325
417
  baseUrl: '接口地址',
326
- baseUrlHint: '可选。用于代理或 OpenAI 兼容 API。',
418
+ baseUrlHint: '可选。用于代理或自定义 API 端点。',
327
419
  keyHint: '本地存储于 ~/.mindos/config.json',
420
+ keyOptionalHint: '本地服务商可选。存储于 ~/.mindos/config.json',
328
421
  envHint: '标有 env 的字段存在环境变量值。你可以在此覆盖,或一键恢复为环境变量默认值。',
329
422
  envFieldNote: (key: string) => `环境变量 ${key} 已设置。清空此字段将回退到环境变量值。`,
330
423
  resetToEnv: '恢复为环境变量',
@@ -372,12 +465,40 @@ export const settingsZh = {
372
465
  light: '浅色',
373
466
  language: '语言',
374
467
  browserNote: '外观设置保存在浏览器本地。',
468
+ labsTitle: '实验性功能',
469
+ labsDesc: '仍在开发中的功能,可能会变更或移除。',
470
+ labsEcho: '回响',
471
+ labsEchoDesc: '基于笔记的反思性日记。',
472
+ labsWorkflows: '工作流',
473
+ labsWorkflowsDesc: 'Agent 可视化工作流自动化。',
375
474
  fontPreview: '人之初,性本善;性相近,习相远。',
376
475
  },
377
476
  knowledge: {
378
- sopRoot: '知识库根目录',
379
- sopRootHint: '笔记目录的绝对路径,修改后需要重启服务器。',
380
- sopRootEnvHint: (key: string) => `MIND_ROOT 环境变量已设置为 "${key}",填写上方路径可覆盖它。`,
477
+ cardTitle: '知识库',
478
+ securityTitle: '安全',
479
+ passwordPlaceholder: '留空可禁用',
480
+ passwordShow: '显示',
481
+ passwordHide: '隐藏',
482
+ tokenNotSet: '— 未设置 —',
483
+ mcpUrl: 'MCP 地址',
484
+ tokenGenerated: '已生成新令牌。请立即复制 — 之后不会再次完整显示。',
485
+ monitoringTitle: '系统监控',
486
+ monitoringFailed: '加载监控数据失败',
487
+ monitorHeap: '堆内存',
488
+ monitorRss: 'RSS',
489
+ monitorUptime: '运行时间',
490
+ monitorNode: 'Node',
491
+ monitorRequests: '请求数',
492
+ monitorToolCalls: '工具调用',
493
+ monitorTokens: 'Token',
494
+ monitorFiles: '文件',
495
+ monitorErrors: '错误',
496
+ monitorMcpRunning: (port: number) => `运行中 :${port}`,
497
+ monitorMcpStopped: '已停止',
498
+ cancel: '取消',
499
+ mindRoot: '知识库根目录',
500
+ mindRootHint: '笔记目录的绝对路径,修改后需要重启服务器。',
501
+ mindRootEnvHint: (key: string) => `MIND_ROOT 环境变量已设置为 "${key}",填写上方路径可覆盖它。`,
381
502
  envNote: 'MIND_ROOT 环境变量已设置。填写上方路径后,你的值优先生效。',
382
503
  webPassword: '网页访问密码',
383
504
  webPasswordHint: '设置后访问浏览器 UI 需要登录,留空则关闭密码保护。下次刷新页面后生效。',
@@ -411,17 +532,63 @@ export const settingsZh = {
411
532
  featureMultiDevice: '多设备同步',
412
533
  remoteUrl: 'Git 远程仓库 URL',
413
534
  invalidUrl: '无效的 Git URL — 请使用 HTTPS (https://...) 或 SSH (git@...) 格式',
414
- sshHint: 'SSH URL 需要在本机配置 SSH 密钥。推荐使用 HTTPS + Token。',
535
+ sshBrief: '一次配置,无需令牌',
536
+ httpsBrief: '通用性强,建议配令牌',
537
+ sshHint: '需要本机已配置 SSH 密钥。验证命令:ssh -T git@github.com',
415
538
  accessToken: '访问令牌',
416
539
  optional: '(可选,私有仓库需要)',
417
- tokenHint: 'GitHub: Settings → Developer settings → Personal access tokens → repo scope',
540
+ tokenHint: 'GitHub:',
541
+ tokenLink: '创建令牌(勾选 repo 权限)',
418
542
  branchLabel: '分支',
419
543
  connectButton: '连接并开始同步',
420
544
  connecting: '连接中...',
545
+ stepConnecting: '正在连接远程仓库...',
546
+ stepAuthenticating: '正在验证身份...',
547
+ stepSyncing: '正在同步数据...',
548
+ stepAlmostDone: '即将完成...',
549
+ stepDone: '同步配置成功!',
550
+ gitignoreTitle: '排除文件',
551
+ gitignorePlaceholder: '# 不同步的文件\n*.tmp\nsecret/',
552
+ gitignoreSave: '保存',
553
+ gitignoreSaved: '已保存',
554
+ conflictExplain: '这些文件在本机和远程都被修改了。请选择保留哪个版本。',
555
+ keepLocal: '保留本地',
556
+ keepRemote: '保留远程',
557
+ keepLocalHint: '保留本机的版本',
558
+ keepRemoteHint: '替换为远程版本',
559
+ viewDiff: '点击查看两个版本的差异',
560
+ localVersion: '本地(本机)',
561
+ remoteVersion: '远程',
562
+ emptyFile: '(空)',
563
+ sectionTitle: '同步',
564
+ labelProvider: '提供商',
565
+ labelRemote: '远程',
566
+ labelBranch: '分支',
567
+ labelLastSync: '最后同步',
568
+ labelUnpushed: '未推送',
569
+ labelAutoSync: '自动同步',
570
+ unpushedCommits: (n: number) => `${n} 次提交`,
571
+ syncNow: '立即同步',
572
+ disableAutoSync: '禁用自动同步',
573
+ enableAutoSync: '启用自动同步',
574
+ syncComplete: '同步完成',
575
+ syncFailed: '同步失败',
576
+ autoSyncDisabled: '已禁用自动同步',
577
+ autoSyncEnabled: '已启用自动同步',
578
+ toggleFailed: '切换同步失败',
579
+ conflictsTitle: (n: number) => `冲突 (${n})`,
580
+ conflictHint: '单击文件查看你的版本。悬停并单击',
581
+ conflictHintSuffix: '查看远程版本。',
582
+ timeNever: '从未',
583
+ timeJustNow: '刚刚',
584
+ timeMinAgo: (m: number) => `${m} 分钟前`,
585
+ timeHourAgo: (h: number) => `${h} 小时前`,
586
+ timeDayAgo: (d: number) => `${d} 天前`,
421
587
  },
422
588
  plugins: {
423
589
  title: '已安装渲染器',
424
590
  builtinBadge: '内置',
591
+ coreBadge: '核心',
425
592
  enabled: '已启用',
426
593
  disabled: '已禁用',
427
594
  matchHint: '自动匹配',
@@ -464,14 +631,14 @@ export const settingsZh = {
464
631
  installFailed: '安装失败',
465
632
  portLabel: 'MCP 端口',
466
633
  portHint: '修改后需重启服务',
467
- skillsTitle: 'Skills',
634
+ skillsTitle: '技能',
468
635
  skillAutoLoaded: '每次请求自动加载',
469
636
  skillSource: '来源',
470
637
  skillBuiltin: '内置',
471
638
  skillUser: '自定义',
472
- addSkill: '+ 添加 Skill',
639
+ addSkill: '+ 添加技能',
473
640
  cliInstallHint: '通过命令行安装:',
474
- skillPathHint: 'Skill 文件安装路径:',
641
+ skillPathHint: '技能文件安装路径:',
475
642
  deleteSkill: '删除',
476
643
  editSkill: '编辑',
477
644
  saveSkill: '保存',
@@ -479,15 +646,15 @@ export const settingsZh = {
479
646
  skillName: '名称',
480
647
  skillDesc: '描述',
481
648
  skillContent: '内容',
482
- skillNameConflict: '同名 skill 已存在',
649
+ skillNameConflict: '同名技能已存在',
483
650
  skillDeleteConfirm: (name: string) => `确定删除「${name}」?此操作不可撤销。`,
484
- skillLanguage: 'Skill 语言',
651
+ skillLanguage: '技能语言',
485
652
  skillLangEn: 'English',
486
653
  skillLangZh: '中文',
487
- searchSkills: '搜索 Skill...',
654
+ searchSkills: '搜索技能...',
488
655
  customGroup: '自定义',
489
656
  builtinGroup: '内置',
490
- noSkillsMatch: (query: string) => `没有匹配「${query}」的 Skill`,
657
+ noSkillsMatch: (query: string) => `没有匹配「${query}」的技能`,
491
658
  skillTemplate: '模板',
492
659
  skillTemplateGeneral: '通用',
493
660
  skillTemplateToolUse: '工具调用',
@@ -507,6 +674,23 @@ export const settingsZh = {
507
674
  noAuthWarning: '⚠ 未设置认证令牌 — 请先在 设置 → 通用 中配置,再启用远程访问。',
508
675
  showJson: '显示 JSON',
509
676
  hideJson: '隐藏 JSON',
677
+ connectionTitle: '连接信息',
678
+ connectionHint: '使用以下凭据将 AI 助手连接到你的 MindOS 知识库。',
679
+ tokenLabel: '认证令牌',
680
+ tokenMasked: '点击「显示」查看完整令牌',
681
+ tokenShow: '显示',
682
+ tokenHide: '隐藏',
683
+ tokenCopy: '复制',
684
+ tokenCopied: '令牌已复制!',
685
+ tokenNone: '未设置令牌 — MCP 服务对所有请求开放。',
686
+ tokenNoneAction: '请在 设置 → 通用 → 安全 中生成令牌。',
687
+ serverUrl: 'MCP 服务地址',
688
+ serverUrlCopy: '复制地址',
689
+ howToConnect: '如何连接 AI 助手',
690
+ howToStep1: '打开你的 AI 助手的 MCP 设置(如 Claude Code、Cursor)',
691
+ howToStep2: '添加一个新的 MCP 服务,填入上方地址',
692
+ howToStep3: '将认证令牌设为 Bearer Token',
693
+ howToStep4: '保存并验证连接',
510
694
  },
511
695
  monitoring: {
512
696
  system: '系统',
@@ -587,7 +771,7 @@ export const settingsZh = {
587
771
  desktopHint: '更新通过桌面端自动更新推送。',
588
772
  // Core Hot Update
589
773
  coreTitle: 'MindOS Core',
590
- coreUpToDate: 'Core 已是最新',
774
+ coreUpToDate: '核心已是最新',
591
775
  coreAvailable: (size: string) => `有新版本可用(${size})`,
592
776
  coreDownloading: '下载中...',
593
777
  coreCancel: '取消',
@@ -595,11 +779,11 @@ export const settingsZh = {
595
779
  coreRestartServices: '重启服务',
596
780
  coreApplying: '正在应用更新...',
597
781
  coreApplied: '更新成功!正在刷新...',
598
- coreError: 'Core 更新失败。',
782
+ coreError: '核心更新失败。',
599
783
  coreRetry: '重试',
600
784
  coreDesktopTooOld: (version: string) => `v${version} 需要更新版本的 Desktop。`,
601
785
  coreDesktopTooOldHint: '请先更新 MindOS Desktop。',
602
- coreHint: 'Core 更新只需重启服务,无需重启应用。',
786
+ coreHint: '核心更新只需重启服务,无需重启应用。',
603
787
  shellTitle: 'MindOS Desktop',
604
788
  },
605
789
  uninstall: {
@@ -0,0 +1,93 @@
1
+ import { toast } from '@/lib/toast';
2
+ import type { useLocale } from '@/lib/stores/locale-store';
3
+
4
+ const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10 MB per file
5
+
6
+ function arrayBufferToBase64(buf: ArrayBuffer): string {
7
+ const bytes = new Uint8Array(buf);
8
+ const chunks: string[] = [];
9
+ for (let i = 0; i < bytes.length; i += 8192) {
10
+ chunks.push(String.fromCharCode(...bytes.subarray(i, i + 8192)));
11
+ }
12
+ return btoa(chunks.join(''));
13
+ }
14
+
15
+ function showQuickDropToast(
16
+ saved: number,
17
+ formatSkipped: number,
18
+ oversized: number,
19
+ t: ReturnType<typeof useLocale>['t'],
20
+ ) {
21
+ if (saved > 0 && oversized > 0 && formatSkipped === 0) {
22
+ toast.success(t.inbox.savedWithOversized(saved, oversized), 4000);
23
+ } else if (saved > 0 && (formatSkipped + oversized) > 0) {
24
+ toast.success(t.inbox.savedWithSkipped(saved, formatSkipped + oversized), 4000);
25
+ } else if (saved > 0) {
26
+ toast.success(t.inbox.savedToast(saved), 3000);
27
+ } else {
28
+ if (oversized > 0) toast.error(t.inbox.tooLarge(oversized), 4000);
29
+ if (formatSkipped > 0) toast.error(t.inbox.savedWithSkipped(0, formatSkipped), 4000);
30
+ if (oversized === 0 && formatSkipped === 0) toast.error(t.inbox.saveFailed, 4000);
31
+ }
32
+ }
33
+
34
+ export async function quickDropToInbox(
35
+ files: File[],
36
+ t: ReturnType<typeof useLocale>['t'],
37
+ ) {
38
+ const payload: Array<{ name: string; content: string; encoding?: string }> = [];
39
+ let oversizedCount = 0;
40
+
41
+ for (const file of files) {
42
+ if (file.size > MAX_FILE_SIZE) {
43
+ oversizedCount++;
44
+ continue;
45
+ }
46
+ try {
47
+ if (file.name.toLowerCase().endsWith('.pdf')) {
48
+ const buf = await file.arrayBuffer();
49
+ payload.push({ name: file.name, content: arrayBufferToBase64(buf), encoding: 'base64' });
50
+ } else {
51
+ const text = await file.text();
52
+ payload.push({ name: file.name, content: text });
53
+ }
54
+ } catch {
55
+ /* skip unreadable files */
56
+ }
57
+ }
58
+
59
+ if (payload.length === 0) {
60
+ if (oversizedCount > 0) {
61
+ toast.error(t.inbox.tooLarge(oversizedCount), 4000);
62
+ } else if (files.length > 0) {
63
+ toast.error(t.inbox.saveFailed, 4000);
64
+ }
65
+ return;
66
+ }
67
+
68
+ try {
69
+ const res = await fetch('/api/inbox', {
70
+ method: 'POST',
71
+ headers: { 'Content-Type': 'application/json' },
72
+ body: JSON.stringify({ files: payload }),
73
+ });
74
+
75
+ if (!res.ok) {
76
+ const data = await res.json().catch(() => ({}));
77
+ console.error('[QuickDrop] Save failed:', data.error);
78
+ toast.error(t.inbox.saveFailed, 4000);
79
+ return;
80
+ }
81
+
82
+ const result = await res.json();
83
+ const saved = result.saved?.length ?? 0;
84
+ const formatSkipped = result.skipped?.length ?? 0;
85
+
86
+ showQuickDropToast(saved, formatSkipped, oversizedCount, t);
87
+ window.dispatchEvent(new Event('mindos:files-changed'));
88
+ window.dispatchEvent(new Event('mindos:inbox-updated'));
89
+ } catch (err) {
90
+ console.error('[QuickDrop] Network error:', err);
91
+ toast.error(t.inbox.saveFailed, 4000);
92
+ }
93
+ }
@@ -2,25 +2,26 @@
2
2
  * Client-side mirror of "can /api/ask run?" using GET /api/settings payload.
3
3
  * Must stay aligned with server `effectiveAiConfig()` provider + key resolution.
4
4
  */
5
+ import { type ProviderId, PROVIDER_PRESETS, isProviderId, getApiKeyEnvVar } from './agent/providers';
5
6
 
6
7
  export type SettingsJsonForAi = {
7
8
  ai?: {
8
9
  provider?: string;
9
- providers?: {
10
- anthropic?: { apiKey?: string };
11
- openai?: { apiKey?: string };
12
- };
10
+ providers?: Partial<Record<string, { apiKey?: string }>>;
13
11
  };
14
- envOverrides?: Partial<Record<'ANTHROPIC_API_KEY' | 'OPENAI_API_KEY', boolean>>;
12
+ envOverrides?: Partial<Record<string, boolean>>;
15
13
  };
16
14
 
17
15
  export function isAiConfiguredForAsk(data: SettingsJsonForAi): boolean {
18
- const prov = data.ai?.provider === 'openai' ? 'openai' : 'anthropic';
16
+ const provId = data.ai?.provider;
17
+ const provider: ProviderId = (provId && isProviderId(provId)) ? provId : 'anthropic';
19
18
  const env = data.envOverrides ?? {};
20
- if (prov === 'openai') {
21
- const k = data.ai?.providers?.openai?.apiKey;
22
- return (typeof k === 'string' && k.length > 0) || !!env.OPENAI_API_KEY;
23
- }
24
- const k = data.ai?.providers?.anthropic?.apiKey;
25
- return (typeof k === 'string' && k.length > 0) || !!env.ANTHROPIC_API_KEY;
19
+
20
+ const k = data.ai?.providers?.[provider]?.apiKey;
21
+ if (typeof k === 'string' && k.length > 0) return true;
22
+
23
+ const envVar = getApiKeyEnvVar(provider);
24
+ if (envVar && env[envVar]) return true;
25
+
26
+ return false;
26
27
  }
@@ -0,0 +1,66 @@
1
+ import { apiFetch } from '@/lib/api';
2
+
3
+ /**
4
+ * Check if AI is available by inspecting the active provider's API key.
5
+ */
6
+ export async function checkAiAvailable(): Promise<boolean> {
7
+ try {
8
+ const data = await apiFetch<{
9
+ ai?: { provider?: string; providers?: Record<string, { apiKey?: string }> };
10
+ }>('/api/settings');
11
+ const provider = data.ai?.provider ?? '';
12
+ const providers = data.ai?.providers ?? {};
13
+ const active = providers[provider as keyof typeof providers];
14
+ return !!(active?.apiKey);
15
+ } catch {
16
+ return false;
17
+ }
18
+ }
19
+
20
+ /**
21
+ * Trigger AI to generate README.md and INSTRUCTION.md for a space.
22
+ * Dispatches `mindos:ai-init` events consumed by SpaceInitToast.
23
+ * The call is fire-and-forget — returns immediately after starting the stream.
24
+ */
25
+ export function triggerSpaceAiInit(
26
+ spaceName: string,
27
+ spacePath: string,
28
+ description = '',
29
+ ): void {
30
+ const isZh = typeof document !== 'undefined' && document.documentElement.lang === 'zh';
31
+ const prompt = isZh
32
+ ? `初始化新建的心智空间「${spaceName}」,路径为「${spacePath}/」。${description ? `描述:「${description}」。` : ''}两个文件均已存在模板,用 write_file 覆盖:\n1. 「${spacePath}/README.md」— 写入空间用途、结构概览、使用指南\n2. 「${spacePath}/INSTRUCTION.md」— 写入 AI Agent 在此空间中的行为规则和操作约定\n\n内容简洁实用,直接使用工具写入。`
33
+ : `Initialize the new Mind Space "${spaceName}" at "${spacePath}/". ${description ? `Description: "${description}". ` : ''}Both files already exist with templates — use write_file to overwrite:\n1. "${spacePath}/README.md" — write purpose, structure overview, usage guidelines\n2. "${spacePath}/INSTRUCTION.md" — write rules for AI agents operating in this space\n\nKeep content concise and actionable. Write files directly using tools.`;
34
+
35
+ window.dispatchEvent(new CustomEvent('mindos:ai-init', {
36
+ detail: { spaceName, spacePath, description, state: 'working' },
37
+ }));
38
+
39
+ fetch('/api/ask', {
40
+ method: 'POST',
41
+ headers: { 'Content-Type': 'application/json' },
42
+ body: JSON.stringify({
43
+ messages: [{ role: 'user', content: prompt }],
44
+ currentFile: spacePath + '/INSTRUCTION.md',
45
+ }),
46
+ }).then(async (res) => {
47
+ if (!res.ok || !res.body) throw new Error(`HTTP ${res.status}`);
48
+ const reader = res.body.getReader();
49
+ try {
50
+ while (true) {
51
+ const { done } = await reader.read();
52
+ if (done) break;
53
+ }
54
+ } finally {
55
+ reader.releaseLock();
56
+ }
57
+ window.dispatchEvent(new CustomEvent('mindos:ai-init', {
58
+ detail: { spacePath, state: 'done' },
59
+ }));
60
+ window.dispatchEvent(new Event('mindos:files-changed'));
61
+ }).catch(() => {
62
+ window.dispatchEvent(new CustomEvent('mindos:ai-init', {
63
+ detail: { spacePath, state: 'error' },
64
+ }));
65
+ });
66
+ }
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+
3
+ import { useEffect } from 'react';
4
+ import { useMcpStore } from '@/lib/stores/mcp-store';
5
+
6
+ /**
7
+ * Thin component that initializes MCP store side-effects (polling, event listeners).
8
+ * Renders nothing — drop it anywhere in the tree that needs MCP data.
9
+ * Replaces the old <McpProvider> wrapper.
10
+ */
11
+ export default function McpStoreInit() {
12
+ useEffect(() => {
13
+ const cleanup = useMcpStore.getState()._init();
14
+ return cleanup;
15
+ }, []);
16
+
17
+ return null;
18
+ }
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+
3
+ import { useEffect } from 'react';
4
+ import { useWalkthroughStore } from '@/lib/stores/walkthrough-store';
5
+ import WalkthroughOverlay from '@/components/walkthrough/WalkthroughOverlay';
6
+
7
+ /**
8
+ * Initializes walkthrough store and conditionally renders the overlay.
9
+ * Replaces the old <WalkthroughProvider> wrapper.
10
+ */
11
+ export default function WalkthroughInit() {
12
+ useEffect(() => {
13
+ const cleanup = useWalkthroughStore.getState()._init();
14
+ return cleanup;
15
+ }, []);
16
+
17
+ const status = useWalkthroughStore(s => s.status);
18
+
19
+ return status === 'active' ? <WalkthroughOverlay /> : null;
20
+ }
@@ -0,0 +1,55 @@
1
+ 'use client';
2
+
3
+ import { create } from 'zustand';
4
+ import { Locale, messages, Messages } from '@/lib/i18n';
5
+
6
+ /* ── Store ── */
7
+
8
+ export interface LocaleStoreState {
9
+ locale: Locale;
10
+ t: Messages;
11
+ setLocale: (l: Locale) => void;
12
+ /** Hydrate from SSR value + attach listeners. Returns cleanup. */
13
+ _init: (ssrLocale: Locale) => () => void;
14
+ }
15
+
16
+ /** Read locale from localStorage, resolving 'system' */
17
+ function getLocaleSnapshot(): Locale {
18
+ if (typeof window === 'undefined') return 'en';
19
+ const saved = localStorage.getItem('locale');
20
+ if (saved === 'zh') return 'zh';
21
+ if (saved === 'en') return 'en';
22
+ return navigator.language.startsWith('zh') ? 'zh' : 'en';
23
+ }
24
+
25
+ export const useLocaleStore = create<LocaleStoreState>((set) => ({
26
+ locale: 'en',
27
+ t: messages['en'] as unknown as Messages,
28
+
29
+ setLocale: (l: Locale) => {
30
+ document.cookie = `locale=${l};path=/;max-age=31536000;SameSite=Lax`;
31
+ document.documentElement.lang = l === 'zh' ? 'zh' : 'en';
32
+ set({ locale: l, t: messages[l] as unknown as Messages });
33
+ window.dispatchEvent(new Event('mindos-locale-change'));
34
+ },
35
+
36
+ _init: (ssrLocale: Locale) => {
37
+ // Hydrate with client value (or SSR fallback)
38
+ const clientLocale = typeof window !== 'undefined' ? getLocaleSnapshot() : ssrLocale;
39
+ set({ locale: clientLocale, t: messages[clientLocale] as unknown as Messages });
40
+
41
+ // Listen for external changes (e.g. localStorage change in another tab, or pre-hydration script)
42
+ const handler = () => {
43
+ const l = getLocaleSnapshot();
44
+ set({ locale: l, t: messages[l] as unknown as Messages });
45
+ };
46
+ window.addEventListener('mindos-locale-change', handler);
47
+ return () => window.removeEventListener('mindos-locale-change', handler);
48
+ },
49
+ }));
50
+
51
+ /* ── Backward-compatible hook ── */
52
+
53
+ export function useLocale() {
54
+ return useLocaleStore();
55
+ }