@geminilight/mindos 0.6.53 → 0.6.55

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 (512) hide show
  1. package/README.md +27 -5
  2. package/README_zh.md +27 -5
  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 +28 -25
  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 +18 -2
  12. package/_standalone/.next/routes-manifest.json +18 -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.js +1 -1
  15. package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  16. package/_standalone/.next/server/app/_global-error.html +2 -2
  17. package/_standalone/.next/server/app/_global-error.rsc +2 -2
  18. package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  19. package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  20. package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  21. package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  22. package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  23. package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  24. package/_standalone/.next/server/app/_not-found/page.js +1 -1
  25. package/_standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  26. package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  27. package/_standalone/.next/server/app/agents/[agentKey]/page.js +1 -1
  28. package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
  29. package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
  30. package/_standalone/.next/server/app/agents/page.js +3 -3
  31. package/_standalone/.next/server/app/agents/page.js.nft.json +1 -1
  32. package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  33. package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
  34. package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
  35. package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
  36. package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
  37. package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
  38. package/_standalone/.next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -1
  39. package/_standalone/.next/server/app/api/acp/install/route_client-reference-manifest.js +1 -1
  40. package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
  41. package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
  42. package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
  43. package/_standalone/.next/server/app/api/ask/route.js +5 -5
  44. package/_standalone/.next/server/app/api/ask/route.js.nft.json +1 -1
  45. package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +1 -1
  46. package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
  47. package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +1 -1
  48. package/_standalone/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  49. package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
  50. package/_standalone/.next/server/app/api/bootstrap/route.js.nft.json +1 -1
  51. package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
  52. package/_standalone/.next/server/app/api/changes/route.js.nft.json +1 -1
  53. package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
  54. package/_standalone/.next/server/app/api/export/route.js +2 -2
  55. package/_standalone/.next/server/app/api/export/route.js.nft.json +1 -1
  56. package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +1 -1
  57. package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
  58. package/_standalone/.next/server/app/api/file/import/route.js.nft.json +1 -1
  59. package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
  60. package/_standalone/.next/server/app/api/file/raw/route.js +1 -0
  61. package/_standalone/.next/server/app/api/file/raw/route.js.nft.json +1 -0
  62. package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +1 -0
  63. package/_standalone/.next/server/app/api/file/route.js +1 -1
  64. package/_standalone/.next/server/app/api/file/route.js.nft.json +1 -1
  65. package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
  66. package/_standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  67. package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  68. package/_standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  69. package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  70. package/_standalone/.next/server/app/api/graph/route.js.nft.json +1 -1
  71. package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -1
  72. package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  73. package/_standalone/.next/server/app/api/inbox/route.js +1 -1
  74. package/_standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  75. package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
  76. package/_standalone/.next/server/app/api/init/route.js.nft.json +1 -1
  77. package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  78. package/_standalone/.next/server/app/api/mcp/agents/route.js.nft.json +1 -1
  79. package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
  80. package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
  81. package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
  82. package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
  83. package/_standalone/.next/server/app/api/mcp/status/route.js +1 -1
  84. package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  85. package/_standalone/.next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -1
  86. package/_standalone/.next/server/app/api/monitoring/route.js.nft.json +1 -1
  87. package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
  88. package/_standalone/.next/server/app/api/recent-files/route.js.nft.json +1 -1
  89. package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
  90. package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  91. package/_standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  92. package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  93. package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
  94. package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
  95. package/_standalone/.next/server/app/api/settings/route.js +1 -1
  96. package/_standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
  97. package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  98. package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
  99. package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
  100. package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
  101. package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
  102. package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
  103. package/_standalone/.next/server/app/api/setup/route.js +1 -1
  104. package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -1
  105. package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  106. package/_standalone/.next/server/app/api/sync/route.js +1 -1
  107. package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
  108. package/_standalone/.next/server/app/api/tree-version/route.js.nft.json +1 -1
  109. package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
  110. package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
  111. package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  112. package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
  113. package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
  114. package/_standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  115. package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
  116. package/_standalone/.next/server/app/changes/page.js +2 -2
  117. package/_standalone/.next/server/app/changes/page.js.nft.json +1 -1
  118. package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +1 -1
  119. package/_standalone/.next/server/app/echo/[segment]/page.js +3 -3
  120. package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +1 -1
  121. package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
  122. package/_standalone/.next/server/app/echo/page.js +1 -1
  123. package/_standalone/.next/server/app/echo/page.js.nft.json +1 -1
  124. package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +1 -1
  125. package/_standalone/.next/server/app/explore/page.js +2 -2
  126. package/_standalone/.next/server/app/explore/page.js.nft.json +1 -1
  127. package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +1 -1
  128. package/_standalone/.next/server/app/help/page.js +2 -2
  129. package/_standalone/.next/server/app/help/page.js.nft.json +1 -1
  130. package/_standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  131. package/_standalone/.next/server/app/inbox/history/page.js +2 -0
  132. package/_standalone/.next/server/app/inbox/history/page.js.nft.json +1 -0
  133. package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +1 -0
  134. package/_standalone/.next/server/app/login/page.js +2 -2
  135. package/_standalone/.next/server/app/login/page.js.nft.json +1 -1
  136. package/_standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  137. package/_standalone/.next/server/app/page.js +3 -3
  138. package/_standalone/.next/server/app/page.js.nft.json +1 -1
  139. package/_standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  140. package/_standalone/.next/server/app/setup/page.js +2 -2
  141. package/_standalone/.next/server/app/setup/page.js.nft.json +1 -1
  142. package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  143. package/_standalone/.next/server/app/trash/page.js +3 -3
  144. package/_standalone/.next/server/app/trash/page.js.nft.json +1 -1
  145. package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -1
  146. package/_standalone/.next/server/app/view/[...path]/page.js +3 -3
  147. package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -1
  148. package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
  149. package/_standalone/.next/server/app/wiki/page.js +2 -0
  150. package/_standalone/.next/server/app/wiki/page.js.nft.json +1 -0
  151. package/_standalone/.next/server/app/wiki/page_client-reference-manifest.js +1 -0
  152. package/_standalone/.next/server/app-paths-manifest.json +28 -25
  153. package/_standalone/.next/server/chunks/1981.js +52 -0
  154. package/_standalone/.next/server/chunks/2190.js +2 -2
  155. package/_standalone/.next/server/chunks/2364.js +2 -0
  156. package/_standalone/.next/server/chunks/357.js +1 -0
  157. package/_standalone/.next/server/chunks/530.js +219 -0
  158. package/_standalone/.next/server/chunks/6539.js +1 -1
  159. package/_standalone/.next/server/chunks/8388.js +2 -2
  160. package/_standalone/.next/server/chunks/953.js +4 -4
  161. package/_standalone/.next/server/middleware-build-manifest.js +1 -1
  162. package/_standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  163. package/_standalone/.next/server/next-font-manifest.js +1 -1
  164. package/_standalone/.next/server/next-font-manifest.json +1 -1
  165. package/_standalone/.next/server/pages/500.html +2 -2
  166. package/_standalone/.next/server/server-reference-manifest.js +1 -1
  167. package/_standalone/.next/server/server-reference-manifest.json +1 -1
  168. package/_standalone/.next/static/QXZErVsiRQxfqUnWMUsH6/_buildManifest.js +1 -0
  169. package/_standalone/.next/static/chunks/1053-2874859f7caefa0f.js +29 -0
  170. package/_standalone/.next/static/chunks/178-105779afb62d36d9.js +1 -0
  171. package/_standalone/.next/static/chunks/1814.b08e9fb85dd3b13c.js +1 -0
  172. package/_standalone/.next/static/chunks/{1880-3ec02adc80531825.js → 1880-7abf971bcfd2389b.js} +2 -2
  173. package/_standalone/.next/static/chunks/{3160-83a7e0b94414b3ac.js → 2218-d54538000574ffef.js} +1 -1
  174. package/_standalone/.next/static/chunks/254-32719a9bea2e74f0.js +1 -0
  175. package/_standalone/.next/static/chunks/362.a77be2f206db7b19.js +1 -0
  176. package/_standalone/.next/static/chunks/4237-ffc6e7c15d4007b6.js +1 -0
  177. package/_standalone/.next/static/chunks/7035-2af69391c7b1ad95.js +1 -0
  178. package/_standalone/.next/static/chunks/7322-d67d05067544864c.js +1 -0
  179. package/_standalone/.next/static/chunks/{6926-4af497b83952fa87.js → 8409-de5726a4a278d28f.js} +1 -1
  180. package/_standalone/.next/static/chunks/8753-ea9db680b0f70f25.js +1 -0
  181. package/_standalone/.next/static/chunks/app/.well-known/agent-card.json/{route-b07a5983e85bc5e3.js → route-e240db6d5049d336.js} +1 -1
  182. package/_standalone/.next/static/chunks/app/_global-error/{page-b07a5983e85bc5e3.js → page-e240db6d5049d336.js} +1 -1
  183. package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-f006a70f6889eb56.js +1 -0
  184. package/_standalone/.next/static/chunks/app/agents/page-bd522e428e3acb78.js +5 -0
  185. package/_standalone/.next/static/chunks/app/api/a2a/agents/{route-b07a5983e85bc5e3.js → route-e240db6d5049d336.js} +1 -1
  186. package/_standalone/.next/static/chunks/app/api/a2a/delegations/{route-b07a5983e85bc5e3.js → route-e240db6d5049d336.js} +1 -1
  187. package/_standalone/.next/static/chunks/app/api/a2a/discover/route-e240db6d5049d336.js +1 -0
  188. package/_standalone/.next/static/chunks/app/api/a2a/route-e240db6d5049d336.js +1 -0
  189. package/_standalone/.next/static/chunks/app/api/acp/config/route-e240db6d5049d336.js +1 -0
  190. package/_standalone/.next/static/chunks/app/api/acp/detect/route-e240db6d5049d336.js +1 -0
  191. package/_standalone/.next/static/chunks/app/api/acp/install/route-e240db6d5049d336.js +1 -0
  192. package/_standalone/.next/static/chunks/app/api/acp/registry/route-e240db6d5049d336.js +1 -0
  193. package/_standalone/.next/static/chunks/app/api/acp/session/route-e240db6d5049d336.js +1 -0
  194. package/_standalone/.next/static/chunks/app/api/agent-activity/route-e240db6d5049d336.js +1 -0
  195. package/_standalone/.next/static/chunks/app/api/ask/route-e240db6d5049d336.js +1 -0
  196. package/_standalone/.next/static/chunks/app/api/ask-sessions/route-e240db6d5049d336.js +1 -0
  197. package/_standalone/.next/static/chunks/app/api/auth/route-e240db6d5049d336.js +1 -0
  198. package/_standalone/.next/static/chunks/app/api/backlinks/route-e240db6d5049d336.js +1 -0
  199. package/_standalone/.next/static/chunks/app/api/bootstrap/route-e240db6d5049d336.js +1 -0
  200. package/_standalone/.next/static/chunks/app/api/changes/route-e240db6d5049d336.js +1 -0
  201. package/_standalone/.next/static/chunks/app/api/export/route-e240db6d5049d336.js +1 -0
  202. package/_standalone/.next/static/chunks/app/api/extract-pdf/route-e240db6d5049d336.js +1 -0
  203. package/_standalone/.next/static/chunks/app/api/file/import/route-e240db6d5049d336.js +1 -0
  204. package/_standalone/.next/static/chunks/app/api/file/raw/route-e240db6d5049d336.js +1 -0
  205. package/_standalone/.next/static/chunks/app/api/file/route-e240db6d5049d336.js +1 -0
  206. package/_standalone/.next/static/chunks/app/api/files/route-e240db6d5049d336.js +1 -0
  207. package/_standalone/.next/static/chunks/app/api/git/route-e240db6d5049d336.js +1 -0
  208. package/_standalone/.next/static/chunks/app/api/graph/route-e240db6d5049d336.js +1 -0
  209. package/_standalone/.next/static/chunks/app/api/health/route-e240db6d5049d336.js +1 -0
  210. package/_standalone/.next/static/chunks/app/api/inbox/route-e240db6d5049d336.js +1 -0
  211. package/_standalone/.next/static/chunks/app/api/init/route-e240db6d5049d336.js +1 -0
  212. package/_standalone/.next/static/chunks/app/api/mcp/agents/route-e240db6d5049d336.js +1 -0
  213. package/_standalone/.next/static/chunks/app/api/mcp/install/route-e240db6d5049d336.js +1 -0
  214. package/_standalone/.next/static/chunks/app/api/mcp/install-skill/route-e240db6d5049d336.js +1 -0
  215. package/_standalone/.next/static/chunks/app/api/mcp/restart/route-e240db6d5049d336.js +1 -0
  216. package/_standalone/.next/static/chunks/app/api/mcp/status/route-e240db6d5049d336.js +1 -0
  217. package/_standalone/.next/static/chunks/app/api/mcp/uninstall/route-e240db6d5049d336.js +1 -0
  218. package/_standalone/.next/static/chunks/app/api/monitoring/route-e240db6d5049d336.js +1 -0
  219. package/_standalone/.next/static/chunks/app/api/recent-files/route-e240db6d5049d336.js +1 -0
  220. package/_standalone/.next/static/chunks/app/api/restart/route-e240db6d5049d336.js +1 -0
  221. package/_standalone/.next/static/chunks/app/api/search/route-e240db6d5049d336.js +1 -0
  222. package/_standalone/.next/static/chunks/app/api/settings/list-models/route-e240db6d5049d336.js +1 -0
  223. package/_standalone/.next/static/chunks/app/api/settings/reset-token/route-e240db6d5049d336.js +1 -0
  224. package/_standalone/.next/static/chunks/app/api/settings/route-e240db6d5049d336.js +1 -0
  225. package/_standalone/.next/static/chunks/app/api/settings/test-key/route-e240db6d5049d336.js +1 -0
  226. package/_standalone/.next/static/chunks/app/api/setup/check-path/route-e240db6d5049d336.js +1 -0
  227. package/_standalone/.next/static/chunks/app/api/setup/check-port/route-e240db6d5049d336.js +1 -0
  228. package/_standalone/.next/static/chunks/app/api/setup/generate-token/route-e240db6d5049d336.js +1 -0
  229. package/_standalone/.next/static/chunks/app/api/setup/ls/route-e240db6d5049d336.js +1 -0
  230. package/_standalone/.next/static/chunks/app/api/setup/route-e240db6d5049d336.js +1 -0
  231. package/_standalone/.next/static/chunks/app/api/skills/route-e240db6d5049d336.js +1 -0
  232. package/_standalone/.next/static/chunks/app/api/sync/route-e240db6d5049d336.js +1 -0
  233. package/_standalone/.next/static/chunks/app/api/tree-version/route-e240db6d5049d336.js +1 -0
  234. package/_standalone/.next/static/chunks/app/api/uninstall/route-e240db6d5049d336.js +1 -0
  235. package/_standalone/.next/static/chunks/app/api/update/route-e240db6d5049d336.js +1 -0
  236. package/_standalone/.next/static/chunks/app/api/update-check/route-e240db6d5049d336.js +1 -0
  237. package/_standalone/.next/static/chunks/app/api/update-status/route-e240db6d5049d336.js +1 -0
  238. package/_standalone/.next/static/chunks/app/api/workflows/route-e240db6d5049d336.js +1 -0
  239. package/_standalone/.next/static/chunks/app/changes/page-5a72144d1080a699.js +1 -0
  240. package/_standalone/.next/static/chunks/app/echo/[segment]/{page-88df174dd64b2c76.js → page-6710da1f581b2854.js} +2 -2
  241. package/_standalone/.next/static/chunks/app/echo/page-e240db6d5049d336.js +1 -0
  242. package/_standalone/.next/static/chunks/app/explore/{page-5eb2835e9e3ab4bb.js → page-d3d99308146c2240.js} +1 -1
  243. package/_standalone/.next/static/chunks/app/global-error-c37d50db6128ec01.js +1 -0
  244. package/_standalone/.next/static/chunks/app/help/page-222df603080b5fab.js +1 -0
  245. package/_standalone/.next/static/chunks/app/inbox/history/page-07819cf95cb0805f.js +1 -0
  246. package/_standalone/.next/static/chunks/app/layout-45e66033ba1bdb05.js +186 -0
  247. package/_standalone/.next/static/chunks/app/loading-e240db6d5049d336.js +1 -0
  248. package/_standalone/.next/static/chunks/app/login/{page-24236460fa7c11d0.js → page-0eeef685052869a6.js} +1 -1
  249. package/_standalone/.next/static/chunks/app/page-71bd113f66bd7617.js +7 -0
  250. package/_standalone/.next/static/chunks/app/setup/{page-99f40e9337388cda.js → page-9a81fa4d82c6351b.js} +1 -1
  251. package/_standalone/.next/static/chunks/app/trash/page-ba3802cf675d029a.js +1 -0
  252. package/_standalone/.next/static/chunks/app/view/[...path]/loading-e240db6d5049d336.js +1 -0
  253. package/_standalone/.next/static/chunks/app/view/[...path]/not-found-fc04c2bd4f35bc6f.js +1 -0
  254. package/_standalone/.next/static/chunks/app/view/[...path]/page-35da7f9f5a009292.js +12 -0
  255. package/_standalone/.next/static/chunks/app/wiki/page-d492256a93f0b8bc.js +1 -0
  256. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-e240db6d5049d336.js +1 -0
  257. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-e240db6d5049d336.js +1 -0
  258. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-e240db6d5049d336.js +1 -0
  259. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-e240db6d5049d336.js +1 -0
  260. package/_standalone/.next/static/chunks/{webpack-bbd44cbc83dc0aa4.js → webpack-73c9da80c6c1ebfe.js} +1 -1
  261. package/_standalone/.next/static/css/66f8a81e4eda06d4.css +1 -0
  262. package/_standalone/.next/static/css/a4a2b71142b311af.css +31 -0
  263. package/_standalone/.next/trace +64 -64
  264. package/_standalone/.next/types/routes.d.ts +5 -2
  265. package/_standalone/.next/types/validator.ts +27 -0
  266. package/_standalone/__tests__/agents/agents-content-dashboard.test.tsx +1 -0
  267. package/_standalone/__tests__/agents/agents-content-model.test.ts +13 -0
  268. package/_standalone/__tests__/core/inbox.test.ts +168 -0
  269. package/_standalone/__tests__/core/sync.test.ts +37 -0
  270. package/_standalone/__tests__/panels/agents-panel-hub.test.tsx +1 -0
  271. package/_standalone/__tests__/settings/update-tab-desktop.test.tsx +40 -0
  272. package/_standalone/app/globals.css +29 -3
  273. package/_standalone/components/ActivityBar.tsx +9 -9
  274. package/_standalone/components/AskFab.tsx +1 -1
  275. package/_standalone/components/Backlinks.tsx +1 -1
  276. package/_standalone/components/Breadcrumb.tsx +1 -1
  277. package/_standalone/components/CreateSpaceModal.tsx +1 -1
  278. package/_standalone/components/EchoSpotlight.tsx +14 -10
  279. package/_standalone/components/Editor.tsx +1 -1
  280. package/_standalone/components/ExportModal.tsx +3 -3
  281. package/_standalone/components/FileTree.tsx +6 -11
  282. package/_standalone/components/GuideCard.tsx +1 -1
  283. package/_standalone/components/ImportModal.tsx +1 -2
  284. package/_standalone/components/KeyboardShortcuts.tsx +1 -1
  285. package/_standalone/components/MarkdownEditor.tsx +1 -1
  286. package/_standalone/components/OnboardingView.tsx +2 -2
  287. package/_standalone/components/OrganizeToast.tsx +3 -1
  288. package/_standalone/components/Panel.tsx +27 -6
  289. package/_standalone/components/Sidebar.tsx +1 -1
  290. package/_standalone/components/SidebarLayout.tsx +30 -7
  291. package/_standalone/components/SystemPulse.tsx +16 -16
  292. package/_standalone/components/agents/AgentsOverviewSection.tsx +18 -92
  293. package/_standalone/components/agents/AgentsPanelA2aTab.tsx +67 -66
  294. package/_standalone/components/agents/AgentsPrimitives.tsx +1 -1
  295. package/_standalone/components/agents/RecentActivityFeed.tsx +6 -6
  296. package/_standalone/components/agents/SkillDetailPopover.tsx +1 -1
  297. package/_standalone/components/ask/AskHeader.tsx +1 -1
  298. package/_standalone/components/echo/EchoHero.tsx +1 -1
  299. package/_standalone/components/echo/EchoPageSections.tsx +1 -1
  300. package/_standalone/components/explore/UseCaseCard.tsx +1 -1
  301. package/_standalone/components/home/InboxSection.tsx +262 -54
  302. package/_standalone/components/panels/AgentsPanel.tsx +4 -3
  303. package/_standalone/components/panels/AgentsPanelAgentDetail.tsx +1 -1
  304. package/_standalone/components/panels/AgentsPanelHubNav.tsx +10 -6
  305. package/_standalone/components/panels/PanelHeader.tsx +1 -1
  306. package/_standalone/components/renderers/audio/AudioRenderer.tsx +79 -0
  307. package/_standalone/components/renderers/image/ImageRenderer.tsx +203 -0
  308. package/_standalone/components/renderers/pdf/PdfRenderer.tsx +57 -0
  309. package/_standalone/components/renderers/video/VideoRenderer.tsx +91 -0
  310. package/_standalone/components/settings/McpTab.tsx +154 -28
  311. package/_standalone/components/settings/PluginsTab.tsx +1 -1
  312. package/_standalone/components/settings/SettingsContent.tsx +41 -7
  313. package/_standalone/components/settings/UpdateTab.tsx +18 -2
  314. package/_standalone/components/settings/types.ts +7 -1
  315. package/_standalone/components/walkthrough/WalkthroughOverlay.tsx +1 -1
  316. package/_standalone/components/walkthrough/WalkthroughTooltip.tsx +1 -1
  317. package/_standalone/hooks/useAiOrganize.ts +14 -1
  318. package/_standalone/lib/organize-history.ts +6 -0
  319. package/_standalone/tsconfig.tsbuildinfo +1 -1
  320. package/app/app/api/file/raw/route.ts +121 -0
  321. package/app/app/api/file/route.ts +21 -0
  322. package/app/app/api/inbox/route.ts +38 -2
  323. package/app/app/api/mcp/status/route.ts +1 -0
  324. package/app/app/api/settings/route.ts +13 -0
  325. package/app/app/api/setup/route.ts +11 -1
  326. package/app/app/api/sync/route.ts +36 -13
  327. package/app/app/global-error.tsx +3 -3
  328. package/app/app/globals.css +29 -3
  329. package/app/app/inbox/history/page.tsx +250 -0
  330. package/app/app/layout.tsx +5 -11
  331. package/app/app/login/page.tsx +1 -1
  332. package/app/app/page.tsx +3 -3
  333. package/app/app/view/[...path]/ViewPageClient.tsx +15 -10
  334. package/app/app/view/[...path]/not-found.tsx +1 -1
  335. package/app/app/view/[...path]/page.tsx +32 -1
  336. package/app/app/wiki/page.tsx +58 -0
  337. package/app/components/ActivityBar.tsx +9 -9
  338. package/app/components/AskFab.tsx +1 -1
  339. package/app/components/Backlinks.tsx +1 -1
  340. package/app/components/Breadcrumb.tsx +1 -1
  341. package/app/components/CreateSpaceModal.tsx +1 -1
  342. package/app/components/DirView.tsx +2 -2
  343. package/app/components/EchoSpotlight.tsx +14 -10
  344. package/app/components/Editor.tsx +1 -1
  345. package/app/components/ExportModal.tsx +3 -3
  346. package/app/components/FileTree.tsx +6 -11
  347. package/app/components/GuideCard.tsx +1 -1
  348. package/app/components/HomeContent.tsx +50 -39
  349. package/app/components/ImportModal.tsx +1 -2
  350. package/app/components/KeyboardShortcuts.tsx +1 -1
  351. package/app/components/MarkdownEditor.tsx +1 -1
  352. package/app/components/OnboardingView.tsx +2 -2
  353. package/app/components/OrganizeToast.tsx +3 -1
  354. package/app/components/Panel.tsx +27 -6
  355. package/app/components/Sidebar.tsx +1 -1
  356. package/app/components/SidebarLayout.tsx +30 -7
  357. package/app/components/SystemPulse.tsx +16 -16
  358. package/app/components/TrashPageClient.tsx +8 -6
  359. package/app/components/UpdateOverlay.tsx +1 -1
  360. package/app/components/WikiHomeContent.tsx +273 -0
  361. package/app/components/agents/AgentDetailContent.tsx +5 -5
  362. package/app/components/agents/AgentsContentPage.tsx +14 -3
  363. package/app/components/agents/AgentsOverviewSection.tsx +18 -92
  364. package/app/components/agents/AgentsPanelA2aTab.tsx +67 -66
  365. package/app/components/agents/AgentsPrimitives.tsx +1 -1
  366. package/app/components/agents/RecentActivityFeed.tsx +6 -6
  367. package/app/components/agents/SkillDetailPopover.tsx +1 -1
  368. package/app/components/agents/agents-content-model.ts +4 -1
  369. package/app/components/ask/AskHeader.tsx +1 -1
  370. package/app/components/changes/ChangesContentPage.tsx +10 -6
  371. package/app/components/echo/EchoHero.tsx +1 -1
  372. package/app/components/echo/EchoPageSections.tsx +1 -1
  373. package/app/components/explore/ExploreContent.tsx +1 -1
  374. package/app/components/explore/UseCaseCard.tsx +1 -1
  375. package/app/components/help/HelpContent.tsx +3 -3
  376. package/app/components/home/InboxSection.tsx +262 -54
  377. package/app/components/panels/AgentsPanel.tsx +4 -3
  378. package/app/components/panels/AgentsPanelAgentDetail.tsx +1 -1
  379. package/app/components/panels/AgentsPanelHubNav.tsx +10 -6
  380. package/app/components/panels/PanelHeader.tsx +1 -1
  381. package/app/components/renderers/audio/AudioRenderer.tsx +79 -0
  382. package/app/components/renderers/audio/manifest.ts +17 -0
  383. package/app/components/renderers/image/ImageRenderer.tsx +203 -0
  384. package/app/components/renderers/image/manifest.ts +17 -0
  385. package/app/components/renderers/pdf/PdfRenderer.tsx +57 -0
  386. package/app/components/renderers/pdf/manifest.ts +15 -0
  387. package/app/components/renderers/video/VideoRenderer.tsx +91 -0
  388. package/app/components/renderers/video/manifest.ts +17 -0
  389. package/app/components/settings/McpTab.tsx +154 -28
  390. package/app/components/settings/PluginsTab.tsx +1 -1
  391. package/app/components/settings/SettingsContent.tsx +41 -7
  392. package/app/components/settings/UpdateTab.tsx +18 -2
  393. package/app/components/settings/types.ts +7 -1
  394. package/app/components/setup/index.tsx +4 -3
  395. package/app/components/walkthrough/WalkthroughOverlay.tsx +1 -1
  396. package/app/components/walkthrough/WalkthroughTooltip.tsx +1 -1
  397. package/app/hooks/useAiOrganize.ts +14 -1
  398. package/app/lib/core/inbox.ts +131 -2
  399. package/app/lib/core/pdf-text.ts +28 -0
  400. package/app/lib/core/search-index.ts +29 -5
  401. package/app/lib/core/tree.ts +6 -1
  402. package/app/lib/fs.ts +32 -4
  403. package/app/lib/i18n/modules/ai-chat.ts +34 -0
  404. package/app/lib/i18n/modules/knowledge.ts +30 -0
  405. package/app/lib/i18n/modules/navigation.ts +4 -2
  406. package/app/lib/i18n/modules/panels.ts +22 -4
  407. package/app/lib/i18n/modules/settings.ts +26 -0
  408. package/app/lib/organize-history.ts +6 -0
  409. package/app/lib/renderers/index.ts +5 -1
  410. package/app/lib/settings.ts +28 -0
  411. package/bin/commands/doctor.js +12 -6
  412. package/bin/commands/file.js +7 -4
  413. package/bin/commands/logs.js +39 -4
  414. package/bin/commands/onboard.js +1 -1
  415. package/bin/commands/open.js +6 -1
  416. package/bin/commands/space.js +7 -4
  417. package/bin/commands/update.js +8 -18
  418. package/bin/lib/build.js +19 -8
  419. package/bin/lib/cli-shim.js +67 -2
  420. package/bin/lib/config.js +4 -5
  421. package/bin/lib/gateway.js +10 -23
  422. package/bin/lib/jsonc.js +7 -2
  423. package/bin/lib/mcp-agents.js +26 -5
  424. package/bin/lib/path-expand.js +6 -3
  425. package/bin/lib/port.js +5 -1
  426. package/bin/lib/stop.js +72 -51
  427. package/bin/lib/sync.js +1 -1
  428. package/package.json +1 -1
  429. package/scripts/setup.js +7 -5
  430. package/_standalone/.next/server/chunks/3436.js +0 -52
  431. package/_standalone/.next/server/chunks/5648.js +0 -2
  432. package/_standalone/.next/server/chunks/8408.js +0 -219
  433. package/_standalone/.next/static/W-wLgvhPtPJ5Psq9V4i3M/_buildManifest.js +0 -1
  434. package/_standalone/.next/static/chunks/1053-17786066ecd6f216.js +0 -29
  435. package/_standalone/.next/static/chunks/1814.72f7fe7c61e2b647.js +0 -1
  436. package/_standalone/.next/static/chunks/362.4c226d7887d5f696.js +0 -1
  437. package/_standalone/.next/static/chunks/6357-c645842834c0d4cd.js +0 -1
  438. package/_standalone/.next/static/chunks/6981-3d7dcac2d12a5670.js +0 -1
  439. package/_standalone/.next/static/chunks/7035-032641fb6f4e07b2.js +0 -1
  440. package/_standalone/.next/static/chunks/7144-5febf62f1a79fe64.js +0 -1
  441. package/_standalone/.next/static/chunks/9602-423291fdb36396d1.js +0 -1
  442. package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-074d6aafc2606561.js +0 -1
  443. package/_standalone/.next/static/chunks/app/agents/page-710d8c80fa86e93e.js +0 -5
  444. package/_standalone/.next/static/chunks/app/api/a2a/discover/route-b07a5983e85bc5e3.js +0 -1
  445. package/_standalone/.next/static/chunks/app/api/a2a/route-b07a5983e85bc5e3.js +0 -1
  446. package/_standalone/.next/static/chunks/app/api/acp/config/route-b07a5983e85bc5e3.js +0 -1
  447. package/_standalone/.next/static/chunks/app/api/acp/detect/route-b07a5983e85bc5e3.js +0 -1
  448. package/_standalone/.next/static/chunks/app/api/acp/install/route-b07a5983e85bc5e3.js +0 -1
  449. package/_standalone/.next/static/chunks/app/api/acp/registry/route-b07a5983e85bc5e3.js +0 -1
  450. package/_standalone/.next/static/chunks/app/api/acp/session/route-b07a5983e85bc5e3.js +0 -1
  451. package/_standalone/.next/static/chunks/app/api/agent-activity/route-b07a5983e85bc5e3.js +0 -1
  452. package/_standalone/.next/static/chunks/app/api/ask/route-b07a5983e85bc5e3.js +0 -1
  453. package/_standalone/.next/static/chunks/app/api/ask-sessions/route-b07a5983e85bc5e3.js +0 -1
  454. package/_standalone/.next/static/chunks/app/api/auth/route-b07a5983e85bc5e3.js +0 -1
  455. package/_standalone/.next/static/chunks/app/api/backlinks/route-b07a5983e85bc5e3.js +0 -1
  456. package/_standalone/.next/static/chunks/app/api/bootstrap/route-b07a5983e85bc5e3.js +0 -1
  457. package/_standalone/.next/static/chunks/app/api/changes/route-b07a5983e85bc5e3.js +0 -1
  458. package/_standalone/.next/static/chunks/app/api/export/route-b07a5983e85bc5e3.js +0 -1
  459. package/_standalone/.next/static/chunks/app/api/extract-pdf/route-b07a5983e85bc5e3.js +0 -1
  460. package/_standalone/.next/static/chunks/app/api/file/import/route-b07a5983e85bc5e3.js +0 -1
  461. package/_standalone/.next/static/chunks/app/api/file/route-b07a5983e85bc5e3.js +0 -1
  462. package/_standalone/.next/static/chunks/app/api/files/route-b07a5983e85bc5e3.js +0 -1
  463. package/_standalone/.next/static/chunks/app/api/git/route-b07a5983e85bc5e3.js +0 -1
  464. package/_standalone/.next/static/chunks/app/api/graph/route-b07a5983e85bc5e3.js +0 -1
  465. package/_standalone/.next/static/chunks/app/api/health/route-b07a5983e85bc5e3.js +0 -1
  466. package/_standalone/.next/static/chunks/app/api/inbox/route-b07a5983e85bc5e3.js +0 -1
  467. package/_standalone/.next/static/chunks/app/api/init/route-b07a5983e85bc5e3.js +0 -1
  468. package/_standalone/.next/static/chunks/app/api/mcp/agents/route-b07a5983e85bc5e3.js +0 -1
  469. package/_standalone/.next/static/chunks/app/api/mcp/install/route-b07a5983e85bc5e3.js +0 -1
  470. package/_standalone/.next/static/chunks/app/api/mcp/install-skill/route-b07a5983e85bc5e3.js +0 -1
  471. package/_standalone/.next/static/chunks/app/api/mcp/restart/route-b07a5983e85bc5e3.js +0 -1
  472. package/_standalone/.next/static/chunks/app/api/mcp/status/route-b07a5983e85bc5e3.js +0 -1
  473. package/_standalone/.next/static/chunks/app/api/mcp/uninstall/route-b07a5983e85bc5e3.js +0 -1
  474. package/_standalone/.next/static/chunks/app/api/monitoring/route-b07a5983e85bc5e3.js +0 -1
  475. package/_standalone/.next/static/chunks/app/api/recent-files/route-b07a5983e85bc5e3.js +0 -1
  476. package/_standalone/.next/static/chunks/app/api/restart/route-b07a5983e85bc5e3.js +0 -1
  477. package/_standalone/.next/static/chunks/app/api/search/route-b07a5983e85bc5e3.js +0 -1
  478. package/_standalone/.next/static/chunks/app/api/settings/list-models/route-b07a5983e85bc5e3.js +0 -1
  479. package/_standalone/.next/static/chunks/app/api/settings/reset-token/route-b07a5983e85bc5e3.js +0 -1
  480. package/_standalone/.next/static/chunks/app/api/settings/route-b07a5983e85bc5e3.js +0 -1
  481. package/_standalone/.next/static/chunks/app/api/settings/test-key/route-b07a5983e85bc5e3.js +0 -1
  482. package/_standalone/.next/static/chunks/app/api/setup/check-path/route-b07a5983e85bc5e3.js +0 -1
  483. package/_standalone/.next/static/chunks/app/api/setup/check-port/route-b07a5983e85bc5e3.js +0 -1
  484. package/_standalone/.next/static/chunks/app/api/setup/generate-token/route-b07a5983e85bc5e3.js +0 -1
  485. package/_standalone/.next/static/chunks/app/api/setup/ls/route-b07a5983e85bc5e3.js +0 -1
  486. package/_standalone/.next/static/chunks/app/api/setup/route-b07a5983e85bc5e3.js +0 -1
  487. package/_standalone/.next/static/chunks/app/api/skills/route-b07a5983e85bc5e3.js +0 -1
  488. package/_standalone/.next/static/chunks/app/api/sync/route-b07a5983e85bc5e3.js +0 -1
  489. package/_standalone/.next/static/chunks/app/api/tree-version/route-b07a5983e85bc5e3.js +0 -1
  490. package/_standalone/.next/static/chunks/app/api/uninstall/route-b07a5983e85bc5e3.js +0 -1
  491. package/_standalone/.next/static/chunks/app/api/update/route-b07a5983e85bc5e3.js +0 -1
  492. package/_standalone/.next/static/chunks/app/api/update-check/route-b07a5983e85bc5e3.js +0 -1
  493. package/_standalone/.next/static/chunks/app/api/update-status/route-b07a5983e85bc5e3.js +0 -1
  494. package/_standalone/.next/static/chunks/app/api/workflows/route-b07a5983e85bc5e3.js +0 -1
  495. package/_standalone/.next/static/chunks/app/changes/page-350992cf5091bc5b.js +0 -1
  496. package/_standalone/.next/static/chunks/app/echo/page-b07a5983e85bc5e3.js +0 -1
  497. package/_standalone/.next/static/chunks/app/global-error-e1ad0e18236ba26c.js +0 -1
  498. package/_standalone/.next/static/chunks/app/help/page-2325d25b6846ca07.js +0 -1
  499. package/_standalone/.next/static/chunks/app/layout-e5d2fb384207d821.js +0 -186
  500. package/_standalone/.next/static/chunks/app/loading-b07a5983e85bc5e3.js +0 -1
  501. package/_standalone/.next/static/chunks/app/page-54edd045d3448df5.js +0 -7
  502. package/_standalone/.next/static/chunks/app/trash/page-6372bb3f5463affa.js +0 -1
  503. package/_standalone/.next/static/chunks/app/view/[...path]/loading-b07a5983e85bc5e3.js +0 -1
  504. package/_standalone/.next/static/chunks/app/view/[...path]/not-found-61474670d6bb6116.js +0 -1
  505. package/_standalone/.next/static/chunks/app/view/[...path]/page-f3d1d87190dcfe28.js +0 -12
  506. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-b07a5983e85bc5e3.js +0 -1
  507. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-b07a5983e85bc5e3.js +0 -1
  508. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-b07a5983e85bc5e3.js +0 -1
  509. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b07a5983e85bc5e3.js +0 -1
  510. package/_standalone/.next/static/css/bbf51803eade6c50.css +0 -31
  511. package/_standalone/.next/static/css/ef1151f74f00d91a.css +0 -1
  512. /package/_standalone/.next/static/{W-wLgvhPtPJ5Psq9V4i3M → QXZErVsiRQxfqUnWMUsH6}/_ssgManifest.js +0 -0
@@ -438,7 +438,6 @@ function DirectoryNode({ node, depth, currentPath, onNavigate, maxOpenDepth, onI
438
438
  <button
439
439
  type="button"
440
440
  onClick={handleSingleClick}
441
- onDoubleClick={handleDoubleClick}
442
441
  draggable
443
442
  onDragStart={(e) => {
444
443
  e.dataTransfer.setData('text/mindos-path', node.path);
@@ -448,7 +447,7 @@ function DirectoryNode({ node, depth, currentPath, onNavigate, maxOpenDepth, onI
448
447
  className={`
449
448
  flex-1 flex items-center gap-1.5 px-1 py-1 rounded text-left min-w-0 pr-16
450
449
  text-sm transition-colors duration-100
451
- hover:bg-muted cursor-text
450
+ hover:bg-muted cursor-default
452
451
  ${isActive ? 'text-foreground' : 'text-muted-foreground hover:text-foreground'}
453
452
  `}
454
453
  >
@@ -461,9 +460,6 @@ function DirectoryNode({ node, depth, currentPath, onNavigate, maxOpenDepth, onI
461
460
  : <Folder size={14} className="text-yellow-400 shrink-0" />
462
461
  }
463
462
  <span className="truncate leading-5" suppressHydrationWarning>{node.name}</span>
464
- <span className="ml-auto text-xs text-muted-foreground/30 group-hover/dir:text-muted-foreground/60 transition-colors shrink-0 hidden group-hover/dir:inline-flex items-center gap-1">
465
- <Pencil size={10} />
466
- </span>
467
463
  {isSpace && !open && (
468
464
  <span className="ml-auto text-xs text-muted-foreground shrink-0 tabular-nums pr-1">{contentCount}</span>
469
465
  )}
@@ -657,14 +653,13 @@ function FileNodeItem({ node, depth, currentPath, onNavigate }: {
657
653
  <div className="relative group/file">
658
654
  <button
659
655
  onClick={handleClick}
660
- onDoubleClick={isProtected ? undefined : startRename}
661
656
  onContextMenu={handleContextMenu}
662
657
  draggable
663
658
  onDragStart={handleDragStart}
664
659
  data-filepath={node.path}
665
660
  className={`
666
661
  w-full flex items-center gap-1.5 px-2 py-1 rounded text-left
667
- text-sm transition-colors duration-100 cursor-text pr-16
662
+ text-sm transition-colors duration-100 cursor-default pr-16
668
663
  ${isActive
669
664
  ? 'bg-accent text-foreground'
670
665
  : 'hover:bg-muted text-muted-foreground hover:text-foreground'
@@ -674,9 +669,6 @@ function FileNodeItem({ node, depth, currentPath, onNavigate }: {
674
669
  >
675
670
  {getIcon(node)}
676
671
  <span className="truncate leading-5" suppressHydrationWarning>{node.name}</span>
677
- <span className="ml-auto text-xs text-muted-foreground/30 group-hover/file:text-muted-foreground/60 transition-colors shrink-0 hidden group-hover/file:inline-flex items-center gap-1">
678
- <Pencil size={10} />
679
- </span>
680
672
  {pinned && <Star size={10} className="shrink-0 fill-[var(--amber)] text-[var(--amber)] opacity-60" />}
681
673
  </button>
682
674
  <div className="absolute right-1 top-1/2 -translate-y-1/2 hidden group-hover/file:flex items-center gap-0.5">
@@ -759,7 +751,10 @@ export default function FileTree({ nodes, depth = 0, onNavigate, maxOpenDepth, p
759
751
  const showHidden = useShowHiddenFiles();
760
752
 
761
753
  const isRoot = depth === 0;
762
- const visibleNodes = showHidden ? nodes : filterHiddenNodes(nodes, isRoot);
754
+ const filtered = showHidden ? nodes : filterHiddenNodes(nodes, isRoot);
755
+ const visibleNodes = isRoot
756
+ ? filtered.filter(n => !(n.type === 'directory' && n.name === 'Inbox'))
757
+ : filtered;
763
758
 
764
759
  useEffect(() => {
765
760
  if (!currentPath || depth !== 0) return;
@@ -232,7 +232,7 @@ export default function GuideCard() {
232
232
  {/* Header */}
233
233
  <div className="flex items-center gap-3 px-5 pt-4 pb-2">
234
234
  <Sparkles size={16} className="text-[var(--amber)]" />
235
- <span className="text-sm font-semibold flex-1 font-display text-foreground">
235
+ <span className="text-sm font-semibold flex-1 text-foreground">
236
236
  {g.title}
237
237
  </span>
238
238
  <button onClick={handleDismiss} className="p-1 rounded hover:bg-muted transition-colors text-muted-foreground">
@@ -114,8 +114,7 @@ export default function ImportModal({ open, onClose, defaultSpace, initialFiles,
114
114
  const prompt = attachments.length === 1
115
115
  ? (t.fileImport.digestPromptSingle as (name: string, space?: string) => string)(attachments[0].name, space)
116
116
  : (t.fileImport.digestPromptMulti as (n: number, space?: string) => string)(attachments.length, space);
117
- // Start AI organize and immediately close modal — toast takes over
118
- aiOrganize.start(attachments, prompt);
117
+ aiOrganize.start(attachments, prompt, 'import-modal');
119
118
  onClose();
120
119
  im.reset();
121
120
  }
@@ -54,7 +54,7 @@ export default function KeyboardShortcuts() {
54
54
  >
55
55
  {/* Header */}
56
56
  <div className="flex items-center justify-between px-5 py-3.5 border-b border-border">
57
- <span className="text-sm font-medium font-display text-foreground">{s.title}</span>
57
+ <span className="text-sm font-medium text-foreground">{s.title}</span>
58
58
  <button
59
59
  onClick={() => setOpen(false)}
60
60
  className="p-1 rounded hover:bg-muted text-muted-foreground hover:text-foreground transition-colors"
@@ -35,7 +35,7 @@ export default function MarkdownEditor({ value, onChange, viewMode, onViewModeCh
35
35
  <button
36
36
  key={m.id}
37
37
  onClick={() => onViewModeChange(m.id)}
38
- className={`flex items-center gap-1.5 px-2.5 py-1.5 rounded text-xs font-medium transition-colors font-display ${
38
+ className={`flex items-center gap-1.5 px-2.5 py-1.5 rounded text-xs font-medium transition-colors ${
39
39
  viewMode === m.id
40
40
  ? 'bg-card text-foreground shadow-sm'
41
41
  : 'text-muted-foreground hover:text-foreground'
@@ -64,7 +64,7 @@ export default function OnboardingView() {
64
64
  <div className="text-center mb-10">
65
65
  <div className="inline-flex items-center gap-2 mb-4">
66
66
  <Sparkles size={18} className="text-[var(--amber)]" />
67
- <h1 className="text-2xl font-semibold tracking-tight font-display text-foreground">
67
+ <h1 className="text-2xl font-brand text-foreground">
68
68
  MindOS
69
69
  </h1>
70
70
  </div>
@@ -131,7 +131,7 @@ export default function OnboardingView() {
131
131
  </div>
132
132
 
133
133
  {/* Import hint */}
134
- <p className="text-center text-xs leading-relaxed max-w-sm mx-auto font-display text-muted-foreground opacity-60">
134
+ <p className="text-center text-xs leading-relaxed max-w-sm mx-auto text-muted-foreground/60">
135
135
  {ob.importHint}
136
136
  </p>
137
137
  <p className="text-center mt-2">
@@ -119,10 +119,12 @@ export default function OrganizeToast({
119
119
  undone: c.undone,
120
120
  })),
121
121
  status: 'completed',
122
+ source: aiOrganize.source,
123
+ durationMs: aiOrganize.durationMs,
122
124
  });
123
125
  onHistoryUpdate?.();
124
126
  }
125
- }, [isDone, aiOrganize.changes, aiOrganize.sourceFileNames, onHistoryUpdate]);
127
+ }, [isDone, aiOrganize.changes, aiOrganize.sourceFileNames, aiOrganize.source, aiOrganize.durationMs, onHistoryUpdate]);
126
128
 
127
129
  // Auto-dismiss timer (3 min after done, reset on user interaction)
128
130
  const resetTimer = useCallback(() => {
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useMemo, useState, useRef, useEffect, useCallback } from 'react';
4
4
  import { useRouter } from 'next/navigation';
5
- import { ChevronsDownUp, ChevronsUpDown, Plus, Import, FileText, Layers, MoreHorizontal, Eye, EyeOff, Trash2 } from 'lucide-react';
5
+ import { ChevronsDownUp, ChevronsUpDown, Plus, Import, FileText, Layers, MoreHorizontal, Eye, EyeOff, Trash2, Inbox } from 'lucide-react';
6
6
  import type { PanelId } from './ActivityBar';
7
7
  import type { FileNode } from '@/lib/types';
8
8
  import FileTree, { setShowHiddenFiles, useShowHiddenFiles } from './FileTree';
@@ -128,14 +128,25 @@ export default function Panel({
128
128
  };
129
129
  }, [morePopover]);
130
130
 
131
- // Fetch trash count on mount and when files change
131
+ const [inboxCount, setInboxCount] = useState(0);
132
+
132
133
  useEffect(() => {
133
- const fetchCount = () => {
134
+ const fetchTrash = () => {
134
135
  listTrashAction().then(items => setTrashCount(items.length)).catch(() => {});
135
136
  };
136
- fetchCount();
137
- window.addEventListener('mindos:files-changed', fetchCount);
138
- return () => window.removeEventListener('mindos:files-changed', fetchCount);
137
+ const fetchInbox = () => {
138
+ fetch('/api/inbox').then(r => r.json()).then(d => {
139
+ if (Array.isArray(d.files)) setInboxCount(d.files.length);
140
+ }).catch(() => {});
141
+ };
142
+ fetchTrash();
143
+ fetchInbox();
144
+ window.addEventListener('mindos:files-changed', fetchTrash);
145
+ window.addEventListener('mindos:inbox-updated', fetchInbox);
146
+ return () => {
147
+ window.removeEventListener('mindos:files-changed', fetchTrash);
148
+ window.removeEventListener('mindos:inbox-updated', fetchInbox);
149
+ };
139
150
  }, []);
140
151
 
141
152
  // Double-click hint: show only until user has used it once.
@@ -280,6 +291,16 @@ export default function Panel({
280
291
  {showHidden && <span className="text-[var(--amber)] text-xs">✓</span>}
281
292
  </button>
282
293
  <div className="my-1 border-t border-border/50" />
294
+ <button
295
+ className="w-full flex items-center gap-2 px-3 py-1.5 text-sm text-foreground hover:bg-muted transition-colors text-left"
296
+ onClick={() => { setMorePopover(false); router.push('/view/Inbox/'); }}
297
+ >
298
+ <Inbox size={14} className="shrink-0 text-[var(--amber)]" />
299
+ <span className="flex-1">{t.sidebar.capture}</span>
300
+ {inboxCount > 0 && (
301
+ <span className="text-xs font-medium text-[var(--amber)] tabular-nums">{inboxCount}</span>
302
+ )}
303
+ </button>
283
304
  <button
284
305
  className="w-full flex items-center gap-2 px-3 py-1.5 text-sm text-foreground hover:bg-muted transition-colors text-left"
285
306
  onClick={() => { setMorePopover(false); router.push('/trash'); }}
@@ -94,7 +94,7 @@ export default function Sidebar({ fileTree, collapsed = false, onCollapse, onExp
94
94
  <div className="flex items-center justify-between px-4 py-4 border-b border-border shrink-0">
95
95
  <Link href="/" className="flex items-center gap-2 hover:opacity-80 transition-opacity">
96
96
  <Logo id="desktop" />
97
- <span className="font-semibold text-foreground text-sm tracking-wide font-display">MindOS</span>
97
+ <span className="text-foreground text-sm font-brand">MindOS</span>
98
98
  </Link>
99
99
  {/* Mobile close */}
100
100
  <button onClick={() => setMobileOpen(false)} className="md:hidden p-1 rounded hover:bg-muted text-muted-foreground hover:text-foreground transition-colors">
@@ -184,12 +184,14 @@ export default function SidebarLayout({ fileTree, children }: SidebarLayoutProps
184
184
  }, [handleOpenImport]);
185
185
 
186
186
  // ── Inbox: batch AI organize from InboxSection ──
187
+ const organizedFileNamesRef = useRef<string[]>([]);
187
188
  useEffect(() => {
188
189
  const handler = (e: Event) => {
189
190
  const files = (e as CustomEvent).detail?.files as Array<{ name: string; path: string }> | undefined;
190
191
  if (!files || files.length === 0 || aiOrganize.phase === 'organizing') return;
191
192
 
192
193
  const prompt = t.inbox.organizePrompt(files.map(f => f.name));
194
+ organizedFileNamesRef.current = files.map(f => f.name);
193
195
 
194
196
  (async () => {
195
197
  const attachments: Array<{ name: string; content: string }> = [];
@@ -203,7 +205,7 @@ export default function SidebarLayout({ fileTree, children }: SidebarLayoutProps
203
205
  } catch { /* skip unreadable files */ }
204
206
  }
205
207
  if (attachments.length > 0) {
206
- aiOrganize.start(attachments, prompt);
208
+ aiOrganize.start(attachments, prompt, 'inbox-organize');
207
209
  } else {
208
210
  toast.error(t.inbox.organizeFailed, 4000);
209
211
  window.dispatchEvent(new Event('mindos:organize-done'));
@@ -214,12 +216,28 @@ export default function SidebarLayout({ fileTree, children }: SidebarLayoutProps
214
216
  return () => window.removeEventListener('mindos:inbox-organize', handler);
215
217
  }, [aiOrganize, t]);
216
218
 
217
- // Notify InboxSection when organize finishes
219
+ // Notify InboxSection when organize finishes + clean up source inbox files
218
220
  useEffect(() => {
219
- if (aiOrganize.phase === 'done' || aiOrganize.phase === 'error') {
221
+ if (aiOrganize.phase === 'done') {
222
+ const hasSuccessfulChanges = aiOrganize.changes.some(c => c.ok);
223
+ const names = organizedFileNamesRef.current;
224
+ if (hasSuccessfulChanges && names.length > 0) {
225
+ fetch('/api/inbox', {
226
+ method: 'DELETE',
227
+ headers: { 'Content-Type': 'application/json' },
228
+ body: JSON.stringify({ names }),
229
+ })
230
+ .then(() => {
231
+ window.dispatchEvent(new Event('mindos:inbox-updated'));
232
+ })
233
+ .catch(() => { /* best-effort cleanup */ });
234
+ organizedFileNamesRef.current = [];
235
+ }
236
+ window.dispatchEvent(new Event('mindos:organize-done'));
237
+ } else if (aiOrganize.phase === 'error') {
220
238
  window.dispatchEvent(new Event('mindos:organize-done'));
221
239
  }
222
- }, [aiOrganize.phase]);
240
+ }, [aiOrganize.phase, aiOrganize.changes]);
223
241
 
224
242
  // Listen for cross-component "open panel" events (e.g. GuideCard → Agents)
225
243
  useEffect(() => {
@@ -381,7 +399,7 @@ export default function SidebarLayout({ fileTree, children }: SidebarLayoutProps
381
399
  {/* Skip link */}
382
400
  <a
383
401
  href="#main-content"
384
- className="sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-[60] focus:px-4 focus:py-2 focus:rounded-lg focus:text-sm focus:font-medium focus:font-display bg-[var(--amber)] text-[var(--amber-foreground)]"
402
+ className="sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-[60] focus:px-4 focus:py-2 focus:rounded-lg focus:text-sm focus:font-medium bg-[var(--amber)] text-[var(--amber-foreground)]"
385
403
  >
386
404
  Skip to main content
387
405
  </a>
@@ -406,6 +424,11 @@ export default function SidebarLayout({ fileTree, children }: SidebarLayoutProps
406
424
  lp.setActivePanel(wasActive ? null : 'discover');
407
425
  if (!wasActive) router.push('/explore');
408
426
  }}
427
+ onSpacesClick={() => {
428
+ const wasActive = lp.activePanel === 'files';
429
+ lp.setActivePanel(wasActive ? null : 'files');
430
+ if (!wasActive) router.push('/wiki');
431
+ }}
409
432
  syncStatus={syncStatus}
410
433
  expanded={lp.railExpanded}
411
434
  onExpandedChange={handleExpandedChange}
@@ -509,7 +532,7 @@ export default function SidebarLayout({ fileTree, children }: SidebarLayoutProps
509
532
  </button>
510
533
  <Link href="/" className="flex items-center gap-2 hover:opacity-80 transition-opacity">
511
534
  <Logo id="mobile" />
512
- <span className="font-semibold text-foreground text-sm tracking-wide">MindOS</span>
535
+ <span className="text-foreground text-sm font-brand">MindOS</span>
513
536
  </Link>
514
537
  <div className="flex items-center gap-0.5">
515
538
  <button onClick={openSyncSettings} className="p-3 rounded-lg hover:bg-muted text-muted-foreground hover:text-foreground transition-colors active:bg-accent flex items-center justify-center" aria-label="Sync status">
@@ -529,7 +552,7 @@ export default function SidebarLayout({ fileTree, children }: SidebarLayoutProps
529
552
  <div className="flex items-center justify-between px-4 py-4 border-b border-border shrink-0">
530
553
  <Link href="/" className="flex items-center gap-2 hover:opacity-80 transition-opacity">
531
554
  <Logo id="drawer" />
532
- <span className="font-semibold text-foreground text-sm tracking-wide font-display">MindOS</span>
555
+ <span className="text-foreground text-sm font-brand">MindOS</span>
533
556
  </Link>
534
557
  <button onClick={() => setMobileOpen(false)} className="p-1 rounded hover:bg-muted text-muted-foreground hover:text-foreground transition-colors">
535
558
  <X size={16} />
@@ -78,14 +78,14 @@ export default function SystemPulse() {
78
78
  return (
79
79
  <section className="mb-10">
80
80
  {/* Use same title style as other sections */}
81
- <div className="flex items-center gap-2 mb-4">
82
- <span className="text-[var(--amber)]"><Bot size={13} /></span>
83
- <h2 className="text-sm font-semibold font-display text-foreground">{pulse.title}</h2>
81
+ <div className="flex items-center gap-2.5 mb-5">
82
+ <div className="flex items-center justify-center w-6 h-6 rounded-md bg-[var(--amber-subtle)] text-[var(--amber)]"><Bot size={13} /></div>
83
+ <h2 className="text-[13px] font-semibold text-foreground tracking-wide">{pulse.title}</h2>
84
84
  </div>
85
- <div className="rounded-xl border border-dashed border-border/60 p-4">
85
+ <div className="rounded-xl border border-border/40 bg-card/30 p-5">
86
86
  <div className="flex items-center gap-4">
87
- <div className="w-9 h-9 rounded-lg bg-[var(--amber)]/8 flex items-center justify-center shrink-0">
88
- <Bot size={16} className="text-[var(--amber)]" />
87
+ <div className="w-10 h-10 rounded-full bg-[var(--amber-subtle)] flex items-center justify-center shrink-0">
88
+ <Bot size={18} className="text-[var(--amber)]" />
89
89
  </div>
90
90
  <div className="flex-1 min-w-0">
91
91
  <p className="text-sm font-medium text-foreground">{pulse.connectTitle}</p>
@@ -114,10 +114,10 @@ export default function SystemPulse() {
114
114
  onClick={toggleCollapsed}
115
115
  className="w-full flex items-center gap-2 group cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded"
116
116
  >
117
- <span className="text-[var(--amber)]"><Bot size={13} /></span>
118
- <h2 className="text-sm font-semibold font-display text-foreground">{pulse.title}</h2>
117
+ <div className="flex items-center justify-center w-6 h-6 rounded-md bg-[var(--amber-subtle)] text-[var(--amber)]"><Bot size={13} /></div>
118
+ <h2 className="text-[13px] font-semibold text-foreground tracking-wide">{pulse.title}</h2>
119
119
  {totalConnected > 0 && (
120
- <span className="text-xs tabular-nums text-muted-foreground font-display">{totalConnected}</span>
120
+ <span className="inline-flex items-center justify-center min-w-[20px] h-5 px-1.5 text-[10px] font-semibold rounded-full bg-muted text-muted-foreground tabular-nums">{totalConnected}</span>
121
121
  )}
122
122
  {/* Inline status */}
123
123
  <div className="flex items-center gap-2 ml-1">
@@ -144,11 +144,11 @@ export default function SystemPulse() {
144
144
  return (
145
145
  <section className="mb-10">
146
146
  {/* Section title — same pattern as Spaces / Recently Edited */}
147
- <div className="flex items-center gap-2 mb-4">
148
- <span className="text-[var(--amber)]"><Bot size={13} /></span>
149
- <h2 className="text-sm font-semibold font-display text-foreground">{pulse.title}</h2>
150
- {totalConnected > 0 && (
151
- <span className="text-xs tabular-nums text-muted-foreground font-display">{totalConnected}</span>
147
+ <div className="flex items-center gap-2.5 mb-5">
148
+ <div className="flex items-center justify-center w-6 h-6 rounded-md bg-[var(--amber-subtle)] text-[var(--amber)]"><Bot size={13} /></div>
149
+ <h2 className="text-[13px] font-semibold text-foreground tracking-wide">{pulse.title}</h2>
150
+ {totalConnected > 0 && (
151
+ <span className="inline-flex items-center justify-center min-w-[20px] h-5 px-1.5 text-[10px] font-semibold rounded-full bg-muted text-muted-foreground tabular-nums">{totalConnected}</span>
152
152
  )}
153
153
  {mcpRunning && (
154
154
  <span className="inline-flex items-center gap-1 text-xs text-muted-foreground/50 ml-1">
@@ -159,7 +159,7 @@ export default function SystemPulse() {
159
159
  <div className="flex items-center gap-2 ml-auto">
160
160
  <Link
161
161
  href="/agents"
162
- className="text-xs font-medium text-[var(--amber)] hover:opacity-80 transition-opacity font-display"
162
+ className="text-xs font-medium text-[var(--amber)] hover:opacity-80 transition-opacity"
163
163
  >
164
164
  {pulse.manage}
165
165
  </Link>
@@ -181,7 +181,7 @@ export default function SystemPulse() {
181
181
  <Link
182
182
  key={agent.key}
183
183
  href={`/agents/${encodeURIComponent(agent.key)}`}
184
- className="flex items-center gap-3 px-3.5 py-3 rounded-xl border border-border hover:border-[var(--amber)]/30 hover:shadow-sm transition-all duration-150 hover:bg-muted/30 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
184
+ className="flex items-center gap-3 px-3.5 py-3 rounded-xl border border-border hover:border-[var(--amber)]/30 hover:shadow-md hover:-translate-y-0.5 transition-all duration-200 hover:bg-muted/30 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
185
185
  >
186
186
  {/* Avatar */}
187
187
  <div className="relative w-8 h-8 rounded-lg bg-[var(--amber)]/8 text-[var(--amber-text)] ring-1 ring-[var(--amber)]/15 flex items-center justify-center text-xs font-semibold font-display shrink-0">
@@ -4,7 +4,6 @@ import Link from 'next/link';
4
4
  import { useMemo, useState } from 'react';
5
5
  import {
6
6
  AlertTriangle,
7
- ArrowRight,
8
7
  Cable,
9
8
  ChevronDown,
10
9
  Globe,
@@ -62,6 +61,7 @@ export default function AgentsOverviewSection({
62
61
  mcpRunning,
63
62
  mcpPort,
64
63
  mcpToolCount,
64
+ mcpEnabled = true,
65
65
  enabledSkillCount,
66
66
  allAgents,
67
67
  pulseCopy,
@@ -73,12 +73,13 @@ export default function AgentsOverviewSection({
73
73
  mcpRunning: boolean;
74
74
  mcpPort: number | null;
75
75
  mcpToolCount: number;
76
+ mcpEnabled?: boolean;
76
77
  enabledSkillCount: number;
77
78
  allAgents: AgentInfo[];
78
79
  pulseCopy: PulseCopy;
79
80
  a2aCount?: number;
80
81
  }) {
81
- const allHealthy = riskQueue.length === 0 && mcpRunning;
82
+ const allHealthy = riskQueue.length === 0 && (!mcpEnabled || mcpRunning);
82
83
  const [riskOpen, setRiskOpen] = useState(false);
83
84
 
84
85
  const sortedAgents = useMemo(
@@ -113,26 +114,20 @@ export default function AgentsOverviewSection({
113
114
  value={buckets.detected.length}
114
115
  tone={buckets.detected.length > 0 ? 'warn' : 'muted'}
115
116
  />
116
- {buckets.notFound.length > 0 && (
117
- <StatCell
118
- icon={<AlertTriangle size={14} aria-hidden="true" />}
119
- label={pulseCopy.notFound}
120
- value={buckets.notFound.length}
121
- tone="muted"
122
- />
123
- )}
124
117
  <StatCell
125
118
  icon={<Zap size={14} aria-hidden="true" />}
126
119
  label={pulseCopy.enabledSkills}
127
120
  value={enabledSkillCount}
128
121
  tone="ok"
129
122
  />
130
- <StatCell
131
- icon={<Server size={14} aria-hidden="true" />}
132
- label={copy.pulseMcp as string}
133
- value={mcpRunning ? `:${mcpPort}` : '—'}
134
- tone={mcpRunning ? 'ok' : 'warn'}
135
- />
123
+ {mcpEnabled && (
124
+ <StatCell
125
+ icon={<Server size={14} aria-hidden="true" />}
126
+ label={copy.pulseMcp as string}
127
+ value={mcpRunning ? `:${mcpPort}` : ''}
128
+ tone={mcpRunning ? 'ok' : 'warn'}
129
+ />
130
+ )}
136
131
  {a2aCount != null && (
137
132
  <StatCell
138
133
  icon={<Globe size={14} aria-hidden="true" />}
@@ -144,26 +139,6 @@ export default function AgentsOverviewSection({
144
139
  </div>
145
140
  </section>
146
141
 
147
- {/* ═══════════ QUICK NAVIGATION ═══════════ */}
148
- <nav className="grid grid-cols-1 md:grid-cols-2 gap-3" aria-label="Quick navigation">
149
- <QuickNavCard
150
- href="/agents?tab=mcp"
151
- icon={<Server size={18} aria-hidden="true" />}
152
- title="MCP"
153
- stat={mcpRunning ? copy.toolsUnit(mcpToolCount) : copy.mcpOffline}
154
- statTone={mcpRunning ? 'ok' : 'warn'}
155
- description={copy.nextActionHint as string}
156
- />
157
- <QuickNavCard
158
- href="/agents?tab=skills"
159
- icon={<Zap size={18} aria-hidden="true" />}
160
- title="Skills"
161
- stat={copy.enabledUnit(enabledSkillCount)}
162
- statTone="ok"
163
- description={`${pulseCopy.enabledSkills}: ${enabledSkillCount}`}
164
- />
165
- </nav>
166
-
167
142
  {/* ═══════════ RISK CAPSULE ═══════════ */}
168
143
  {riskQueue.length > 0 && (
169
144
  <div>
@@ -241,13 +216,13 @@ export default function AgentsOverviewSection({
241
216
  </div>
242
217
  <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3">
243
218
  {sortedAgents.map((agent, i) => (
244
- <AgentCard key={agent.key} agent={agent} copy={copy} index={i} />
219
+ <AgentCard key={agent.key} agent={agent} copy={copy} index={i} mcpEnabled={mcpEnabled} />
245
220
  ))}
246
221
  </div>
247
222
  </section>
248
223
  ) : (
249
224
  <section
250
- className="rounded-xl border border-dashed border-border/60 bg-gradient-to-b from-card/80 to-card/40 p-12 text-center"
225
+ className="rounded-xl border border-border/40 bg-card/30 p-12 text-center"
251
226
  aria-label={copy.usagePulse}
252
227
  >
253
228
  <div className="w-14 h-14 rounded-2xl bg-muted/40 flex items-center justify-center mx-auto mb-4">
@@ -316,69 +291,18 @@ function StatCell({
316
291
  );
317
292
  }
318
293
 
319
- /* ────────── Quick Nav Card ────────── */
320
-
321
- function QuickNavCard({
322
- href,
323
- icon,
324
- title,
325
- stat,
326
- statTone,
327
- description,
328
- }: {
329
- href: string;
330
- icon: React.ReactNode;
331
- title: string;
332
- stat: string;
333
- statTone: 'ok' | 'warn';
334
- description: string;
335
- }) {
336
- return (
337
- <Link
338
- href={href}
339
- className="group rounded-xl border border-border bg-card p-4 flex items-start gap-3.5
340
- hover:border-[var(--amber)]/30 hover:shadow-[0_2px_12px_rgba(0,0,0,0.04)]
341
- active:scale-[0.99]
342
- transition-all duration-200
343
- focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
344
- >
345
- <div className="shrink-0 w-10 h-10 rounded-xl bg-muted/50 flex items-center justify-center text-muted-foreground/70 group-hover:text-[var(--amber)] group-hover:bg-[var(--amber)]/[0.08] transition-all duration-200">
346
- {icon}
347
- </div>
348
- <div className="flex-1 min-w-0">
349
- <div className="flex items-center gap-2 mb-1">
350
- <span className="text-sm font-semibold text-foreground">{title}</span>
351
- <span
352
- className={`text-2xs px-2 py-0.5 rounded-full font-medium select-none ${
353
- statTone === 'ok'
354
- ? 'bg-muted text-muted-foreground'
355
- : 'bg-[var(--amber-dim)] text-[var(--amber-text)]'
356
- }`}
357
- >
358
- {stat}
359
- </span>
360
- </div>
361
- <p className="text-xs text-muted-foreground/70 leading-relaxed line-clamp-2">{description}</p>
362
- </div>
363
- <ArrowRight
364
- size={14}
365
- className="shrink-0 mt-1.5 text-muted-foreground/20 group-hover:text-[var(--amber)] group-hover:translate-x-0.5 transition-all duration-200"
366
- aria-hidden="true"
367
- />
368
- </Link>
369
- );
370
- }
371
-
372
294
  /* ────────── Agent Card ────────── */
373
295
 
374
296
  function AgentCard({
375
297
  agent,
376
298
  copy,
377
299
  index,
300
+ mcpEnabled = true,
378
301
  }: {
379
302
  agent: AgentInfo;
380
303
  copy: OverviewCopy;
381
304
  index: number;
305
+ mcpEnabled?: boolean;
382
306
  }) {
383
307
  const status = resolveAgentStatus(agent);
384
308
  const mcpCount = agent.configuredMcpServerCount ?? agent.configuredMcpServers?.length ?? 0;
@@ -421,7 +345,9 @@ function AgentCard({
421
345
 
422
346
  {/* Metrics row */}
423
347
  <div className="flex items-center gap-1 pt-2.5 border-t border-border/40">
424
- <MetricChip icon={<Server size={11} aria-hidden="true" />} value={mcpCount} label={copy.colMcp as string} />
348
+ {mcpEnabled && (
349
+ <MetricChip icon={<Server size={11} aria-hidden="true" />} value={mcpCount} label={copy.colMcp as string} />
350
+ )}
425
351
  <MetricChip icon={<Zap size={11} aria-hidden="true" />} value={skillCount} label={copy.colSkills as string} />
426
352
  <span className="flex-1 min-w-[4px]" />
427
353
  {hasRuntime && (