@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
@@ -41,13 +41,15 @@ export default function EchoSpotlight() {
41
41
  if (dailyLine.trim()) {
42
42
  return (
43
43
  <section className="mb-10">
44
- <div className="flex items-center gap-2 mb-4">
45
- <span className="text-[var(--amber)]"><Feather size={13} /></span>
46
- <h2 className="text-sm font-semibold font-display text-foreground">{echo.title}</h2>
47
- <span className="text-xs text-muted-foreground/50 font-display">{echo.dailyLine}</span>
44
+ <div className="flex items-center gap-2.5 mb-5">
45
+ <div className="flex items-center justify-center w-6 h-6 rounded-md bg-[var(--amber-subtle)] text-[var(--amber)]">
46
+ <Feather size={13} />
47
+ </div>
48
+ <h2 className="text-[13px] font-semibold text-foreground tracking-wide">{echo.title}</h2>
49
+ <span className="text-xs text-muted-foreground/50">{echo.dailyLine}</span>
48
50
  <Link
49
51
  href="/echo/daily"
50
- className="ml-auto text-xs font-medium text-[var(--amber)] hover:opacity-80 transition-opacity font-display"
52
+ className="ml-auto text-xs font-medium text-[var(--amber)] hover:opacity-80 transition-opacity"
51
53
  >
52
54
  {echo.goToEcho}
53
55
  </Link>
@@ -61,7 +63,7 @@ export default function EchoSpotlight() {
61
63
  onChange={e => saveLine(e.target.value)}
62
64
  onBlur={() => setEditing(false)}
63
65
  onKeyDown={e => { if (e.key === 'Enter') setEditing(false); }}
64
- className="w-full px-3.5 py-3 rounded-xl border border-[var(--amber)]/40 bg-card text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring font-display italic"
66
+ className="w-full px-3.5 py-3 rounded-xl border border-[var(--amber)]/40 bg-card text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring italic"
65
67
  placeholder={echo.placeholder}
66
68
  />
67
69
  ) : (
@@ -83,9 +85,11 @@ export default function EchoSpotlight() {
83
85
  // ── No daily line → invite ──
84
86
  return (
85
87
  <section className="mb-10">
86
- <div className="flex items-center gap-2 mb-4">
87
- <span className="text-[var(--amber)]"><Feather size={13} /></span>
88
- <h2 className="text-sm font-semibold font-display text-foreground">{echo.title}</h2>
88
+ <div className="flex items-center gap-2.5 mb-5">
89
+ <div className="flex items-center justify-center w-6 h-6 rounded-md bg-[var(--amber-subtle)] text-[var(--amber)]">
90
+ <Feather size={13} />
91
+ </div>
92
+ <h2 className="text-[13px] font-semibold text-foreground tracking-wide">{echo.title}</h2>
89
93
  </div>
90
94
  <div className="flex items-center gap-4 px-3.5 py-3.5 rounded-xl border border-dashed border-border/60 hover:border-[var(--amber)]/30 transition-all duration-150 group">
91
95
  <div className="flex-1 min-w-0">
@@ -93,7 +97,7 @@ export default function EchoSpotlight() {
93
97
  type="text"
94
98
  value={dailyLine}
95
99
  onChange={e => saveLine(e.target.value)}
96
- className="w-full bg-transparent text-sm text-foreground placeholder:text-muted-foreground/40 focus-visible:outline-none font-display italic"
100
+ className="w-full bg-transparent text-sm text-foreground placeholder:text-muted-foreground/40 focus-visible:outline-none italic"
97
101
  placeholder={echo.placeholder}
98
102
  />
99
103
  <p className="text-xs text-muted-foreground/40 mt-1">{echo.inviteDesc}</p>
@@ -17,7 +17,7 @@ const darkTheme = EditorView.theme({
17
17
  backgroundColor: '#09090b',
18
18
  height: '100%',
19
19
  fontSize: '0.875rem',
20
- fontFamily: 'var(--font-geist-mono), ui-monospace, monospace',
20
+ fontFamily: 'var(--font-ibm-plex-mono), ui-monospace, monospace',
21
21
  },
22
22
  '.cm-scroller': {
23
23
  overflow: 'auto',
@@ -113,7 +113,7 @@ export default function ExportModal({ open, onClose, filePath, isDirectory, file
113
113
  <div className="flex items-center justify-between px-5 py-4 border-b border-border">
114
114
  <div className="flex items-center gap-2">
115
115
  <Download size={15} className="text-[var(--amber)]" />
116
- <h3 id="export-modal-title" className="text-sm font-semibold font-display">
116
+ <h3 id="export-modal-title" className="text-sm font-semibold">
117
117
  {isDirectory ? (t.export?.exportSpace ?? 'Export Space') : (t.export?.exportFile ?? 'Export File')}
118
118
  </h3>
119
119
  </div>
@@ -129,7 +129,7 @@ export default function ExportModal({ open, onClose, filePath, isDirectory, file
129
129
  <div className="w-10 h-10 rounded-full bg-success/10 flex items-center justify-center mx-auto mb-3">
130
130
  <Check size={20} className="text-success" />
131
131
  </div>
132
- <p className="text-sm font-medium font-display">{t.export?.done ?? 'Export Complete'}</p>
132
+ <p className="text-sm font-medium">{t.export?.done ?? 'Export Complete'}</p>
133
133
  <p className="text-xs text-muted-foreground mt-1">{fileName}</p>
134
134
  </div>
135
135
  ) : state === 'error' ? (
@@ -140,7 +140,7 @@ export default function ExportModal({ open, onClose, filePath, isDirectory, file
140
140
  ) : (
141
141
  <>
142
142
  <p className="text-xs text-muted-foreground mb-3 truncate" title={filePath}>{filePath}</p>
143
- <p className="text-xs font-medium font-display text-foreground mb-2">{t.export?.chooseFormat ?? 'Choose format'}</p>
143
+ <p className="text-xs font-medium text-foreground mb-2">{t.export?.chooseFormat ?? 'Choose format'}</p>
144
144
  <div className="space-y-1.5">
145
145
  {formats.map(f => (
146
146
  <label
@@ -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">
@@ -7,6 +7,7 @@ import { useLocale } from '@/lib/stores/locale-store';
7
7
  import { encodePath, relativeTime, extractEmoji, stripEmoji } from '@/lib/utils';
8
8
  import { usePinnedFiles } from '@/lib/hooks/usePinnedFiles';
9
9
  import OnboardingView from './OnboardingView';
10
+ import Logo from './Logo';
10
11
  import GuideCard from './GuideCard';
11
12
  import SystemPulse from './SystemPulse';
12
13
  import { InboxSection } from './home/InboxSection';
@@ -78,13 +79,15 @@ interface SectionTitleProps {
78
79
 
79
80
  function SectionTitle({ icon, children, count, action }: SectionTitleProps) {
80
81
  return (
81
- <div className="flex items-center gap-2 mb-4">
82
- <span className="text-[var(--amber)]">{icon}</span>
83
- <h2 className="text-sm font-semibold font-display text-foreground">
82
+ <div className="flex items-center gap-2.5 mb-5">
83
+ <div className="flex items-center justify-center w-6 h-6 rounded-md bg-[var(--amber-subtle)] text-[var(--amber)]">
84
+ {icon}
85
+ </div>
86
+ <h2 className="text-[13px] font-semibold text-foreground tracking-wide">
84
87
  {children}
85
88
  </h2>
86
89
  {count != null && count > 0 && (
87
- <span className="text-xs tabular-nums text-muted-foreground font-display">{count}</span>
90
+ <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">{count}</span>
88
91
  )}
89
92
  {action ? <div className="ml-auto">{action}</div> : null}
90
93
  </div>
@@ -103,7 +106,7 @@ function ToggleButton({ expanded, onToggle, showLabel, hideLabel, className = ''
103
106
  <button
104
107
  onClick={onToggle}
105
108
  aria-expanded={expanded}
106
- className={`flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer font-display ${className}`}
109
+ className={`flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer ${className}`}
107
110
  >
108
111
  <ChevronDown size={12} className={`transition-transform duration-200 ${expanded ? 'rotate-180' : ''}`} />
109
112
  <span>{expanded ? hideLabel : showLabel}</span>
@@ -133,7 +136,7 @@ function FileRow({ filePath, mtime, formatTime, subPath }: {
133
136
  <span className="text-sm truncate block text-foreground" suppressHydrationWarning>{name}</span>
134
137
  {subPath && <span className="text-xs truncate block text-muted-foreground opacity-50" suppressHydrationWarning>{subPath}</span>}
135
138
  </div>
136
- <span className="text-xs shrink-0 tabular-nums font-display text-muted-foreground opacity-40" suppressHydrationWarning>
139
+ <span className="text-xs shrink-0 tabular-nums text-muted-foreground/40" suppressHydrationWarning>
137
140
  {formatTime(mtime)}
138
141
  </span>
139
142
  </Link>
@@ -180,25 +183,25 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
180
183
  <ExampleCleanupBanner />
181
184
 
182
185
  {/* ══════════ Hero ══════════ */}
183
- <div className="mb-10">
186
+ <div className="mb-14">
184
187
  {/* Brand mark */}
185
- <div className="flex items-center gap-3 mb-2">
186
- <div className="w-1 h-7 rounded-full bg-gradient-to-b from-[var(--amber)] to-[var(--amber)]/20" />
187
- <h1 className="text-2xl font-semibold tracking-tight font-display text-foreground">
188
- MindOS
188
+ <div className="flex items-center gap-5 mb-1">
189
+ <Logo id="home-hero" className="w-14 h-7 opacity-90" />
190
+ <h1 className="text-[2rem] font-brand leading-none">
191
+ <span className="text-foreground">Mind</span><span className="text-[var(--amber)]">OS</span>
189
192
  </h1>
190
193
  </div>
191
- <p className="text-sm leading-relaxed text-muted-foreground pl-4 max-w-lg mb-6">
194
+ <p className="text-sm text-muted-foreground/50 mt-3 max-w-md leading-relaxed">
192
195
  {t.app.tagline}
193
196
  </p>
194
197
 
195
198
  {/* Command bar — the single most important action */}
196
- <div className="w-full max-w-xl flex flex-col sm:flex-row items-stretch sm:items-center gap-2 pl-4">
199
+ <div className="w-full max-w-xl flex flex-col sm:flex-row items-stretch sm:items-center gap-2 mt-8">
197
200
  <button
198
201
  onClick={triggerAsk}
199
202
  title="⌘/"
200
203
  data-walkthrough="ask-button"
201
- className="flex-1 flex items-center gap-3 px-4 py-3 rounded-xl border border-border/60 shadow-sm bg-card transition-all duration-150 hover:border-[var(--amber)]/50 hover:shadow-md group"
204
+ className="flex-1 flex items-center gap-3 px-4 py-3.5 rounded-xl border border-border/50 shadow-sm bg-card/80 backdrop-blur-sm transition-all duration-200 hover:border-[var(--amber)]/40 hover:shadow-md hover:-translate-y-0.5 group"
202
205
  >
203
206
  <Sparkles size={16} className="shrink-0 text-[var(--amber)] group-hover:scale-110 transition-transform duration-150" />
204
207
  <div className="flex-1 min-h-[1.5rem] flex items-center">
@@ -216,7 +219,7 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
216
219
  <button
217
220
  onClick={triggerSearch}
218
221
  title="⌘K"
219
- className="flex items-center gap-2 px-3.5 py-3 rounded-xl border border-border/60 text-sm text-muted-foreground transition-all duration-150 shrink-0 hover:bg-muted hover:shadow-sm"
222
+ className="flex items-center gap-2 px-3.5 py-3.5 rounded-xl border border-border/50 text-sm text-muted-foreground transition-all duration-200 shrink-0 hover:bg-muted/60 hover:shadow-sm hover:-translate-y-0.5"
220
223
  >
221
224
  <Search size={14} />
222
225
  <kbd className="hidden sm:inline-flex items-center px-1.5 py-0.5 rounded text-xs font-mono bg-muted">
@@ -226,10 +229,10 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
226
229
  </div>
227
230
 
228
231
  {/* Quick actions — only 2: New + Continue */}
229
- <div className="flex items-center gap-3 mt-4 pl-4">
232
+ <div className="flex items-center gap-3 mt-5">
230
233
  <Link
231
234
  href="/view/Untitled.md"
232
- className="inline-flex items-center gap-2 px-3.5 py-2 rounded-lg text-sm font-medium transition-all duration-150 hover:shadow-sm bg-[var(--amber)] text-[var(--amber-foreground)]"
235
+ className="inline-flex items-center gap-2 px-4 py-2.5 rounded-lg text-sm font-medium transition-all duration-200 hover:shadow-md hover:-translate-y-0.5 bg-[var(--amber)] text-[var(--amber-foreground)]"
233
236
  >
234
237
  <FilePlus size={14} />
235
238
  <span>{t.home.newNote}</span>
@@ -257,12 +260,15 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
257
260
  <RecentActivityFeed />
258
261
  </div>
259
262
 
263
+ {/* ── Visual divider ── */}
264
+ <div className="border-t border-border/30 mb-10" />
265
+
260
266
  {/* ══════════ Inbox ══════════ */}
261
267
  <InboxSection />
262
268
 
263
269
  {/* ══════════ Spaces ══════════ */}
264
270
  {(spaceList.length > 0 || true) && (
265
- <section className="mb-10">
271
+ <section className="mb-12">
266
272
  <SectionTitle
267
273
  icon={<Brain size={14} />}
268
274
  count={spaceList.length > 0 ? spaceList.length : undefined}
@@ -272,7 +278,7 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
272
278
  </SectionTitle>
273
279
  {spaceList.length > 0 ? (
274
280
  <>
275
- <div className="grid grid-cols-2 sm:grid-cols-3 gap-2">
281
+ <div className="grid grid-cols-2 sm:grid-cols-3 gap-2.5">
276
282
  {(showAllSpaces ? spaceList : spaceList.slice(0, SPACES_PER_ROW)).map(s => {
277
283
  const emoji = extractEmoji(s.name);
278
284
  const label = stripEmoji(s.name);
@@ -281,10 +287,10 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
281
287
  <Link
282
288
  key={s.name}
283
289
  href={`/view/${encodePath(s.path)}`}
284
- className={`flex items-start gap-3 px-3.5 py-3 rounded-xl border transition-all duration-150 ${
290
+ className={`flex items-start gap-3 px-4 py-3.5 rounded-xl border transition-all duration-200 ${
285
291
  isEmpty
286
292
  ? 'border-dashed border-border/50 opacity-50 hover:opacity-70'
287
- : 'border-border hover:border-[var(--amber)]/30 hover:shadow-sm'
293
+ : 'border-border/60 hover:border-[var(--amber)]/30 hover:shadow-md hover:-translate-y-0.5 bg-card/40'
288
294
  }`}
289
295
  >
290
296
  {emoji ? (
@@ -326,16 +332,19 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
326
332
  {/* ══════════ Pinned Files ══════════ */}
327
333
  <PinnedFilesSection formatTime={formatTime} />
328
334
 
335
+ {/* ── Visual divider ── */}
336
+ <div className="border-t border-border/30 mb-10" />
337
+
329
338
  {/* ══════════ Recently Edited ══════════ */}
330
339
  {recent.length > 0 && (
331
- <section className="mb-10">
340
+ <section className="mb-12">
332
341
  <SectionTitle
333
342
  icon={<Clock size={14} />}
334
343
  count={recent.length}
335
344
  action={
336
345
  <Link
337
346
  href="/changes"
338
- className="flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 font-display"
347
+ className="flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80"
339
348
  >
340
349
  <History size={12} />
341
350
  <span>{t.home.changeHistory}</span>
@@ -357,7 +366,7 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
357
366
  className="flex items-center gap-2 px-1 py-1.5 rounded-lg group transition-colors hover:bg-muted/50"
358
367
  >
359
368
  <Folder size={14} className="shrink-0 text-[var(--amber)]" />
360
- <span className="text-xs font-semibold font-display text-foreground group-hover:text-[var(--amber)] transition-colors" suppressHydrationWarning>
369
+ <span className="text-xs font-semibold text-foreground group-hover:text-[var(--amber)] transition-colors" suppressHydrationWarning>
361
370
  {group.space}
362
371
  </span>
363
372
  <span className="text-xs text-muted-foreground/50 tabular-nums" suppressHydrationWarning>
@@ -369,7 +378,7 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
369
378
  </span>
370
379
  )}
371
380
  </Link>
372
- <div className="flex flex-col gap-0.5 ml-2 border-l border-border/40 pl-3">
381
+ <div className="flex flex-col gap-0.5 ml-2 border-l-2 border-border/20 pl-3">
373
382
  {visibleFiles.map(({ path: filePath, mtime }) => (
374
383
  <FileRow
375
384
  key={filePath}
@@ -388,11 +397,11 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
388
397
  <div>
389
398
  <div className="flex items-center gap-2 px-1 py-1.5">
390
399
  <FileText size={14} className="shrink-0 text-muted-foreground/50" />
391
- <span className="text-xs font-semibold font-display text-muted-foreground/60">
400
+ <span className="text-xs font-semibold text-muted-foreground/60">
392
401
  {t.home.other}
393
402
  </span>
394
403
  </div>
395
- <div className="flex flex-col gap-0.5 ml-2 border-l border-border/40 pl-3">
404
+ <div className="flex flex-col gap-0.5 ml-2 border-l-2 border-border/20 pl-3">
396
405
  {rootFiles.map(({ path: filePath, mtime }) => (
397
406
  <FileRow key={filePath} filePath={filePath} mtime={mtime} formatTime={formatTime} />
398
407
  ))}
@@ -412,7 +421,7 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
412
421
  </div>
413
422
  ) : (
414
423
  <div className="relative pl-4">
415
- <div className="absolute left-0 top-1 bottom-1 w-px bg-border/40" />
424
+ <div className="absolute left-0 top-1 bottom-1 w-0.5 rounded-full bg-gradient-to-b from-[var(--amber)]/20 via-border/30 to-transparent" />
416
425
  <div className="flex flex-col gap-0.5">
417
426
  {(showAll ? recent : recent.slice(0, 5)).map(({ path: filePath, mtime }, idx) => {
418
427
  const isCSV = filePath.endsWith('.csv');
@@ -422,10 +431,10 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
422
431
  <div key={filePath} className="relative group">
423
432
  <div
424
433
  aria-hidden="true"
425
- className={`absolute -left-4 top-1/2 -translate-y-1/2 rounded-full transition-all duration-150 group-hover:scale-150 ${
434
+ className={`absolute -left-[5px] top-1/2 -translate-y-1/2 rounded-full transition-all duration-200 group-hover:scale-125 ${
426
435
  idx === 0
427
- ? 'w-2 h-2 bg-[var(--amber)] ring-2 ring-[var(--amber)]/20'
428
- : 'w-1.5 h-1.5 bg-muted-foreground/20'
436
+ ? 'w-2.5 h-2.5 bg-[var(--amber)] ring-[3px] ring-[var(--amber)]/15 shadow-sm shadow-[var(--amber)]/20'
437
+ : 'w-1.5 h-1.5 bg-muted-foreground/25 group-hover:bg-[var(--amber)]/50'
429
438
  }`}
430
439
  />
431
440
  <Link
@@ -440,7 +449,7 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
440
449
  <span className="text-sm truncate block text-foreground" suppressHydrationWarning>{name}</span>
441
450
  {dir && <span className="text-xs truncate block text-muted-foreground/40" suppressHydrationWarning>{dir}</span>}
442
451
  </div>
443
- <span className="text-xs shrink-0 tabular-nums font-display text-muted-foreground/40" suppressHydrationWarning>
452
+ <span className="text-xs shrink-0 tabular-nums text-muted-foreground/40" suppressHydrationWarning>
444
453
  {formatTime(mtime)}
445
454
  </span>
446
455
  </Link>
@@ -463,8 +472,8 @@ export default function HomeContent({ recent, existingFiles, spaces }: { recent:
463
472
  )}
464
473
 
465
474
  {/* Footer */}
466
- <div className="py-6 border-t border-border/20 flex items-center gap-1.5 text-xs font-display text-muted-foreground/30">
467
- <Sparkles size={10} className="text-[var(--amber)]/40" />
475
+ <div className="mt-6 py-8 border-t border-border/20 flex items-center justify-center gap-2 text-[11px] text-muted-foreground/25">
476
+ <Logo id="home-footer" className="w-5 h-2.5 opacity-30" />
468
477
  <span>{t.app.footer}</span>
469
478
  </div>
470
479
  </div>
@@ -482,12 +491,14 @@ function PinnedFilesSection({ formatTime }: { formatTime: (t: number) => string
482
491
  <SectionTitle icon={<Star size={14} />}>
483
492
  {t.pinnedFiles.title}
484
493
  </SectionTitle>
485
- <div className="py-6 px-4 rounded-lg border border-dashed border-border/50 text-center">
486
- <Star size={20} className="mx-auto mb-2 text-muted-foreground/40" />
487
- <p className="text-sm font-medium text-muted-foreground mb-1">
494
+ <div className="py-8 px-6 rounded-xl border border-border/40 bg-card/30 text-center">
495
+ <div className="inline-flex items-center justify-center w-10 h-10 rounded-full bg-[var(--amber-subtle)] mb-3">
496
+ <Star size={18} className="text-[var(--amber)]/60" />
497
+ </div>
498
+ <p className="text-sm font-medium text-muted-foreground/70 mb-1">
488
499
  {t.pinnedFiles.empty ?? 'No pinned files'}
489
500
  </p>
490
- <p className="text-xs text-muted-foreground/60">
501
+ <p className="text-xs text-muted-foreground/40 max-w-xs mx-auto leading-relaxed">
491
502
  {t.pinnedFiles.emptyHint ?? 'Click the star icon on any file to pin it here'}
492
503
  </p>
493
504
  </div>
@@ -541,7 +552,7 @@ function CreateSpaceButton({ t }: { t: ReturnType<typeof useLocale>['t'] }) {
541
552
  return (
542
553
  <button
543
554
  onClick={() => window.dispatchEvent(new Event('mindos:create-space'))}
544
- className="flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer font-display"
555
+ className="flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer"
545
556
  >
546
557
  <Plus size={12} />
547
558
  <span>{t.home.newSpace}</span>
@@ -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">