@geminilight/mindos 0.6.73 → 0.6.74

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 (1029) hide show
  1. package/app/next-env.d.ts +1 -1
  2. package/app/package.json +1 -1
  3. package/package.json +1 -1
  4. package/_standalone/.antigravity/mcp_config.json +0 -14
  5. package/_standalone/.mindos-build-version +0 -1
  6. package/_standalone/.next/BUILD_ID +0 -1
  7. package/_standalone/.next/app-path-routes-manifest.json +0 -92
  8. package/_standalone/.next/build-manifest.json +0 -20
  9. package/_standalone/.next/cache/.previewinfo +0 -1
  10. package/_standalone/.next/cache/.rscinfo +0 -1
  11. package/_standalone/.next/cache/config.json +0 -7
  12. package/_standalone/.next/diagnostics/build-diagnostics.json +0 -6
  13. package/_standalone/.next/diagnostics/framework.json +0 -1
  14. package/_standalone/.next/lock +0 -0
  15. package/_standalone/.next/package.json +0 -1
  16. package/_standalone/.next/prerender-manifest.json +0 -65
  17. package/_standalone/.next/react-loadable-manifest.json +0 -179
  18. package/_standalone/.next/required-server-files.json +0 -339
  19. package/_standalone/.next/routes-manifest.json +0 -591
  20. package/_standalone/.next/server/app/.well-known/agent-card.json/route.js +0 -1
  21. package/_standalone/.next/server/app/.well-known/agent-card.json/route.js.nft.json +0 -1
  22. package/_standalone/.next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +0 -1
  23. package/_standalone/.next/server/app/_global-error/page.js +0 -3
  24. package/_standalone/.next/server/app/_global-error/page.js.nft.json +0 -1
  25. package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +0 -1
  26. package/_standalone/.next/server/app/_global-error.html +0 -2
  27. package/_standalone/.next/server/app/_global-error.meta +0 -16
  28. package/_standalone/.next/server/app/_global-error.rsc +0 -18
  29. package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +0 -18
  30. package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +0 -5
  31. package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +0 -4
  32. package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +0 -5
  33. package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +0 -10
  34. package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +0 -1
  35. package/_standalone/.next/server/app/_not-found/page.js +0 -2
  36. package/_standalone/.next/server/app/_not-found/page.js.nft.json +0 -1
  37. package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +0 -1
  38. package/_standalone/.next/server/app/agents/[agentKey]/page.js +0 -2
  39. package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +0 -1
  40. package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +0 -1
  41. package/_standalone/.next/server/app/agents/page.js +0 -2
  42. package/_standalone/.next/server/app/agents/page.js.nft.json +0 -1
  43. package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +0 -1
  44. package/_standalone/.next/server/app/api/a2a/agents/route.js +0 -1
  45. package/_standalone/.next/server/app/api/a2a/agents/route.js.nft.json +0 -1
  46. package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +0 -1
  47. package/_standalone/.next/server/app/api/a2a/delegations/route.js +0 -1
  48. package/_standalone/.next/server/app/api/a2a/delegations/route.js.nft.json +0 -1
  49. package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +0 -1
  50. package/_standalone/.next/server/app/api/a2a/discover/route.js +0 -1
  51. package/_standalone/.next/server/app/api/a2a/discover/route.js.nft.json +0 -1
  52. package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +0 -1
  53. package/_standalone/.next/server/app/api/a2a/route.js +0 -1
  54. package/_standalone/.next/server/app/api/a2a/route.js.nft.json +0 -1
  55. package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +0 -1
  56. package/_standalone/.next/server/app/api/acp/config/route.js +0 -1
  57. package/_standalone/.next/server/app/api/acp/config/route.js.nft.json +0 -1
  58. package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +0 -1
  59. package/_standalone/.next/server/app/api/acp/detect/route.js +0 -1
  60. package/_standalone/.next/server/app/api/acp/detect/route.js.nft.json +0 -1
  61. package/_standalone/.next/server/app/api/acp/detect/route_client-reference-manifest.js +0 -1
  62. package/_standalone/.next/server/app/api/acp/install/route.js +0 -1
  63. package/_standalone/.next/server/app/api/acp/install/route.js.nft.json +0 -1
  64. package/_standalone/.next/server/app/api/acp/install/route_client-reference-manifest.js +0 -1
  65. package/_standalone/.next/server/app/api/acp/registry/route.js +0 -1
  66. package/_standalone/.next/server/app/api/acp/registry/route.js.nft.json +0 -1
  67. package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +0 -1
  68. package/_standalone/.next/server/app/api/acp/session/route.js +0 -1
  69. package/_standalone/.next/server/app/api/acp/session/route.js.nft.json +0 -1
  70. package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +0 -1
  71. package/_standalone/.next/server/app/api/agent-activity/route.js +0 -1
  72. package/_standalone/.next/server/app/api/agent-activity/route.js.nft.json +0 -1
  73. package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +0 -1
  74. package/_standalone/.next/server/app/api/agents/copy-skill/route.js +0 -1
  75. package/_standalone/.next/server/app/api/agents/copy-skill/route.js.nft.json +0 -1
  76. package/_standalone/.next/server/app/api/agents/copy-skill/route_client-reference-manifest.js +0 -1
  77. package/_standalone/.next/server/app/api/agents/custom/detect/route.js +0 -1
  78. package/_standalone/.next/server/app/api/agents/custom/detect/route.js.nft.json +0 -1
  79. package/_standalone/.next/server/app/api/agents/custom/detect/route_client-reference-manifest.js +0 -1
  80. package/_standalone/.next/server/app/api/agents/custom/route.js +0 -1
  81. package/_standalone/.next/server/app/api/agents/custom/route.js.nft.json +0 -1
  82. package/_standalone/.next/server/app/api/agents/custom/route_client-reference-manifest.js +0 -1
  83. package/_standalone/.next/server/app/api/ask/route.js +0 -130
  84. package/_standalone/.next/server/app/api/ask/route.js.nft.json +0 -1
  85. package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +0 -1
  86. package/_standalone/.next/server/app/api/ask-sessions/route.js +0 -1
  87. package/_standalone/.next/server/app/api/ask-sessions/route.js.nft.json +0 -1
  88. package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +0 -1
  89. package/_standalone/.next/server/app/api/auth/route.js +0 -1
  90. package/_standalone/.next/server/app/api/auth/route.js.nft.json +0 -1
  91. package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +0 -1
  92. package/_standalone/.next/server/app/api/backlinks/route.js +0 -1
  93. package/_standalone/.next/server/app/api/backlinks/route.js.nft.json +0 -1
  94. package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +0 -1
  95. package/_standalone/.next/server/app/api/bootstrap/route.js +0 -1
  96. package/_standalone/.next/server/app/api/bootstrap/route.js.nft.json +0 -1
  97. package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +0 -1
  98. package/_standalone/.next/server/app/api/changes/route.js +0 -1
  99. package/_standalone/.next/server/app/api/changes/route.js.nft.json +0 -1
  100. package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +0 -1
  101. package/_standalone/.next/server/app/api/channels/verify/route.js +0 -1
  102. package/_standalone/.next/server/app/api/channels/verify/route.js.nft.json +0 -1
  103. package/_standalone/.next/server/app/api/channels/verify/route_client-reference-manifest.js +0 -1
  104. package/_standalone/.next/server/app/api/connect/route.js +0 -1
  105. package/_standalone/.next/server/app/api/connect/route.js.nft.json +0 -1
  106. package/_standalone/.next/server/app/api/connect/route_client-reference-manifest.js +0 -1
  107. package/_standalone/.next/server/app/api/embedding/route.js +0 -1
  108. package/_standalone/.next/server/app/api/embedding/route.js.nft.json +0 -1
  109. package/_standalone/.next/server/app/api/embedding/route_client-reference-manifest.js +0 -1
  110. package/_standalone/.next/server/app/api/export/route.js +0 -57
  111. package/_standalone/.next/server/app/api/export/route.js.nft.json +0 -1
  112. package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +0 -1
  113. package/_standalone/.next/server/app/api/extract-pdf/route.js +0 -3
  114. package/_standalone/.next/server/app/api/extract-pdf/route.js.nft.json +0 -1
  115. package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +0 -1
  116. package/_standalone/.next/server/app/api/file/import/route.js +0 -4
  117. package/_standalone/.next/server/app/api/file/import/route.js.nft.json +0 -1
  118. package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +0 -1
  119. package/_standalone/.next/server/app/api/file/raw/route.js +0 -1
  120. package/_standalone/.next/server/app/api/file/raw/route.js.nft.json +0 -1
  121. package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +0 -1
  122. package/_standalone/.next/server/app/api/file/route.js +0 -1
  123. package/_standalone/.next/server/app/api/file/route.js.nft.json +0 -1
  124. package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +0 -1
  125. package/_standalone/.next/server/app/api/files/route.js +0 -1
  126. package/_standalone/.next/server/app/api/files/route.js.nft.json +0 -1
  127. package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +0 -1
  128. package/_standalone/.next/server/app/api/git/route.js +0 -1
  129. package/_standalone/.next/server/app/api/git/route.js.nft.json +0 -1
  130. package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +0 -1
  131. package/_standalone/.next/server/app/api/graph/route.js +0 -1
  132. package/_standalone/.next/server/app/api/graph/route.js.nft.json +0 -1
  133. package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +0 -1
  134. package/_standalone/.next/server/app/api/health/route.js +0 -1
  135. package/_standalone/.next/server/app/api/health/route.js.nft.json +0 -1
  136. package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +0 -1
  137. package/_standalone/.next/server/app/api/im/activity/route.js +0 -1
  138. package/_standalone/.next/server/app/api/im/activity/route.js.nft.json +0 -1
  139. package/_standalone/.next/server/app/api/im/activity/route_client-reference-manifest.js +0 -1
  140. package/_standalone/.next/server/app/api/im/config/route.js +0 -1
  141. package/_standalone/.next/server/app/api/im/config/route.js.nft.json +0 -1
  142. package/_standalone/.next/server/app/api/im/config/route_client-reference-manifest.js +0 -1
  143. package/_standalone/.next/server/app/api/im/status/route.js +0 -7
  144. package/_standalone/.next/server/app/api/im/status/route.js.nft.json +0 -1
  145. package/_standalone/.next/server/app/api/im/status/route_client-reference-manifest.js +0 -1
  146. package/_standalone/.next/server/app/api/im/test/route.js +0 -1
  147. package/_standalone/.next/server/app/api/im/test/route.js.nft.json +0 -1
  148. package/_standalone/.next/server/app/api/im/test/route_client-reference-manifest.js +0 -1
  149. package/_standalone/.next/server/app/api/im/webhook/feishu/route.js +0 -7
  150. package/_standalone/.next/server/app/api/im/webhook/feishu/route.js.nft.json +0 -1
  151. package/_standalone/.next/server/app/api/im/webhook/feishu/route_client-reference-manifest.js +0 -1
  152. package/_standalone/.next/server/app/api/im/webhook-status/route.js +0 -7
  153. package/_standalone/.next/server/app/api/im/webhook-status/route.js.nft.json +0 -1
  154. package/_standalone/.next/server/app/api/im/webhook-status/route_client-reference-manifest.js +0 -1
  155. package/_standalone/.next/server/app/api/inbox/clip/route.js +0 -8
  156. package/_standalone/.next/server/app/api/inbox/clip/route.js.nft.json +0 -1
  157. package/_standalone/.next/server/app/api/inbox/clip/route_client-reference-manifest.js +0 -1
  158. package/_standalone/.next/server/app/api/inbox/route.js +0 -1
  159. package/_standalone/.next/server/app/api/inbox/route.js.nft.json +0 -1
  160. package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +0 -1
  161. package/_standalone/.next/server/app/api/init/route.js +0 -1
  162. package/_standalone/.next/server/app/api/init/route.js.nft.json +0 -1
  163. package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +0 -1
  164. package/_standalone/.next/server/app/api/lint/route.js +0 -1
  165. package/_standalone/.next/server/app/api/lint/route.js.nft.json +0 -1
  166. package/_standalone/.next/server/app/api/lint/route_client-reference-manifest.js +0 -1
  167. package/_standalone/.next/server/app/api/mcp/agents/route.js +0 -1
  168. package/_standalone/.next/server/app/api/mcp/agents/route.js.nft.json +0 -1
  169. package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +0 -1
  170. package/_standalone/.next/server/app/api/mcp/direct-tools/route.js +0 -1
  171. package/_standalone/.next/server/app/api/mcp/direct-tools/route.js.nft.json +0 -1
  172. package/_standalone/.next/server/app/api/mcp/direct-tools/route_client-reference-manifest.js +0 -1
  173. package/_standalone/.next/server/app/api/mcp/install/route.js +0 -1
  174. package/_standalone/.next/server/app/api/mcp/install/route.js.nft.json +0 -1
  175. package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +0 -1
  176. package/_standalone/.next/server/app/api/mcp/install-skill/route.js +0 -1
  177. package/_standalone/.next/server/app/api/mcp/install-skill/route.js.nft.json +0 -1
  178. package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +0 -1
  179. package/_standalone/.next/server/app/api/mcp/restart/route.js +0 -1
  180. package/_standalone/.next/server/app/api/mcp/restart/route.js.nft.json +0 -1
  181. package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +0 -1
  182. package/_standalone/.next/server/app/api/mcp/status/route.js +0 -1
  183. package/_standalone/.next/server/app/api/mcp/status/route.js.nft.json +0 -1
  184. package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +0 -1
  185. package/_standalone/.next/server/app/api/mcp/tools/route.js +0 -1
  186. package/_standalone/.next/server/app/api/mcp/tools/route.js.nft.json +0 -1
  187. package/_standalone/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +0 -1
  188. package/_standalone/.next/server/app/api/mcp/uninstall/route.js +0 -1
  189. package/_standalone/.next/server/app/api/mcp/uninstall/route.js.nft.json +0 -1
  190. package/_standalone/.next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +0 -1
  191. package/_standalone/.next/server/app/api/monitoring/route.js +0 -1
  192. package/_standalone/.next/server/app/api/monitoring/route.js.nft.json +0 -1
  193. package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +0 -1
  194. package/_standalone/.next/server/app/api/recent-files/route.js +0 -1
  195. package/_standalone/.next/server/app/api/recent-files/route.js.nft.json +0 -1
  196. package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +0 -1
  197. package/_standalone/.next/server/app/api/restart/route.js +0 -1
  198. package/_standalone/.next/server/app/api/restart/route.js.nft.json +0 -1
  199. package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +0 -1
  200. package/_standalone/.next/server/app/api/search/route.js +0 -1
  201. package/_standalone/.next/server/app/api/search/route.js.nft.json +0 -1
  202. package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +0 -1
  203. package/_standalone/.next/server/app/api/settings/list-models/route.js +0 -1
  204. package/_standalone/.next/server/app/api/settings/list-models/route.js.nft.json +0 -1
  205. package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +0 -1
  206. package/_standalone/.next/server/app/api/settings/reset-token/route.js +0 -1
  207. package/_standalone/.next/server/app/api/settings/reset-token/route.js.nft.json +0 -1
  208. package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +0 -1
  209. package/_standalone/.next/server/app/api/settings/route.js +0 -1
  210. package/_standalone/.next/server/app/api/settings/route.js.nft.json +0 -1
  211. package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +0 -1
  212. package/_standalone/.next/server/app/api/settings/test-key/route.js +0 -1
  213. package/_standalone/.next/server/app/api/settings/test-key/route.js.nft.json +0 -1
  214. package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +0 -1
  215. package/_standalone/.next/server/app/api/setup/check-path/route.js +0 -1
  216. package/_standalone/.next/server/app/api/setup/check-path/route.js.nft.json +0 -1
  217. package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +0 -1
  218. package/_standalone/.next/server/app/api/setup/check-port/route.js +0 -1
  219. package/_standalone/.next/server/app/api/setup/check-port/route.js.nft.json +0 -1
  220. package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +0 -1
  221. package/_standalone/.next/server/app/api/setup/generate-token/route.js +0 -1
  222. package/_standalone/.next/server/app/api/setup/generate-token/route.js.nft.json +0 -1
  223. package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +0 -1
  224. package/_standalone/.next/server/app/api/setup/ls/route.js +0 -1
  225. package/_standalone/.next/server/app/api/setup/ls/route.js.nft.json +0 -1
  226. package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +0 -1
  227. package/_standalone/.next/server/app/api/setup/route.js +0 -1
  228. package/_standalone/.next/server/app/api/setup/route.js.nft.json +0 -1
  229. package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +0 -1
  230. package/_standalone/.next/server/app/api/skills/route.js +0 -6
  231. package/_standalone/.next/server/app/api/skills/route.js.nft.json +0 -1
  232. package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +0 -1
  233. package/_standalone/.next/server/app/api/space-overview/route.js +0 -60
  234. package/_standalone/.next/server/app/api/space-overview/route.js.nft.json +0 -1
  235. package/_standalone/.next/server/app/api/space-overview/route_client-reference-manifest.js +0 -1
  236. package/_standalone/.next/server/app/api/sync/route.js +0 -1
  237. package/_standalone/.next/server/app/api/sync/route.js.nft.json +0 -1
  238. package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +0 -1
  239. package/_standalone/.next/server/app/api/tree-version/route.js +0 -1
  240. package/_standalone/.next/server/app/api/tree-version/route.js.nft.json +0 -1
  241. package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +0 -1
  242. package/_standalone/.next/server/app/api/uninstall/route.js +0 -4
  243. package/_standalone/.next/server/app/api/uninstall/route.js.nft.json +0 -1
  244. package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +0 -1
  245. package/_standalone/.next/server/app/api/update/route.js +0 -1
  246. package/_standalone/.next/server/app/api/update/route.js.nft.json +0 -1
  247. package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +0 -1
  248. package/_standalone/.next/server/app/api/update-check/route.js +0 -1
  249. package/_standalone/.next/server/app/api/update-check/route.js.nft.json +0 -1
  250. package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +0 -1
  251. package/_standalone/.next/server/app/api/update-status/route.js +0 -1
  252. package/_standalone/.next/server/app/api/update-status/route.js.nft.json +0 -1
  253. package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +0 -1
  254. package/_standalone/.next/server/app/api/workflows/route.js +0 -9
  255. package/_standalone/.next/server/app/api/workflows/route.js.nft.json +0 -1
  256. package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +0 -1
  257. package/_standalone/.next/server/app/changelog/page.js +0 -2
  258. package/_standalone/.next/server/app/changelog/page.js.nft.json +0 -1
  259. package/_standalone/.next/server/app/changelog/page_client-reference-manifest.js +0 -1
  260. package/_standalone/.next/server/app/changes/page.js +0 -2
  261. package/_standalone/.next/server/app/changes/page.js.nft.json +0 -1
  262. package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +0 -1
  263. package/_standalone/.next/server/app/echo/[segment]/page.js +0 -158
  264. package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +0 -1
  265. package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +0 -1
  266. package/_standalone/.next/server/app/echo/page.js +0 -2
  267. package/_standalone/.next/server/app/echo/page.js.nft.json +0 -1
  268. package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +0 -1
  269. package/_standalone/.next/server/app/explore/page.js +0 -5
  270. package/_standalone/.next/server/app/explore/page.js.nft.json +0 -1
  271. package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +0 -1
  272. package/_standalone/.next/server/app/help/page.js +0 -2
  273. package/_standalone/.next/server/app/help/page.js.nft.json +0 -1
  274. package/_standalone/.next/server/app/help/page_client-reference-manifest.js +0 -1
  275. package/_standalone/.next/server/app/icon.svg/route.js +0 -1
  276. package/_standalone/.next/server/app/icon.svg/route.js.nft.json +0 -1
  277. package/_standalone/.next/server/app/icon.svg.body +0 -37
  278. package/_standalone/.next/server/app/icon.svg.meta +0 -1
  279. package/_standalone/.next/server/app/inbox/history/page.js +0 -2
  280. package/_standalone/.next/server/app/inbox/history/page.js.nft.json +0 -1
  281. package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +0 -1
  282. package/_standalone/.next/server/app/login/page.js +0 -2
  283. package/_standalone/.next/server/app/login/page.js.nft.json +0 -1
  284. package/_standalone/.next/server/app/login/page_client-reference-manifest.js +0 -1
  285. package/_standalone/.next/server/app/page.js +0 -2
  286. package/_standalone/.next/server/app/page.js.nft.json +0 -1
  287. package/_standalone/.next/server/app/page_client-reference-manifest.js +0 -1
  288. package/_standalone/.next/server/app/setup/page.js +0 -2
  289. package/_standalone/.next/server/app/setup/page.js.nft.json +0 -1
  290. package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +0 -1
  291. package/_standalone/.next/server/app/trash/page.js +0 -3
  292. package/_standalone/.next/server/app/trash/page.js.nft.json +0 -1
  293. package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +0 -1
  294. package/_standalone/.next/server/app/view/[...path]/page.js +0 -13
  295. package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +0 -1
  296. package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +0 -1
  297. package/_standalone/.next/server/app-paths-manifest.json +0 -92
  298. package/_standalone/.next/server/chunks/1076.js +0 -1
  299. package/_standalone/.next/server/chunks/1104.js +0 -1
  300. package/_standalone/.next/server/chunks/1299.js +0 -133
  301. package/_standalone/.next/server/chunks/1546.js +0 -1
  302. package/_standalone/.next/server/chunks/1549.js +0 -1
  303. package/_standalone/.next/server/chunks/1550.js +0 -1
  304. package/_standalone/.next/server/chunks/206.js +0 -2
  305. package/_standalone/.next/server/chunks/2250.js +0 -38
  306. package/_standalone/.next/server/chunks/2449.js +0 -54
  307. package/_standalone/.next/server/chunks/3036.js +0 -1
  308. package/_standalone/.next/server/chunks/3123.js +0 -3
  309. package/_standalone/.next/server/chunks/3437.js +0 -60
  310. package/_standalone/.next/server/chunks/3445.js +0 -22
  311. package/_standalone/.next/server/chunks/3528.js +0 -1
  312. package/_standalone/.next/server/chunks/3800.js +0 -1
  313. package/_standalone/.next/server/chunks/3965.js +0 -11
  314. package/_standalone/.next/server/chunks/4241.js +0 -1
  315. package/_standalone/.next/server/chunks/5165.js +0 -1
  316. package/_standalone/.next/server/chunks/5299.js +0 -1
  317. package/_standalone/.next/server/chunks/5464.js +0 -9
  318. package/_standalone/.next/server/chunks/5576.js +0 -36
  319. package/_standalone/.next/server/chunks/5592.js +0 -1
  320. package/_standalone/.next/server/chunks/5945.js +0 -1
  321. package/_standalone/.next/server/chunks/6022.js +0 -193
  322. package/_standalone/.next/server/chunks/6117.js +0 -13
  323. package/_standalone/.next/server/chunks/6140.js +0 -1
  324. package/_standalone/.next/server/chunks/6539.js +0 -1
  325. package/_standalone/.next/server/chunks/6949.js +0 -1
  326. package/_standalone/.next/server/chunks/7032.js +0 -1
  327. package/_standalone/.next/server/chunks/7198.js +0 -23
  328. package/_standalone/.next/server/chunks/7712.js +0 -1
  329. package/_standalone/.next/server/chunks/791.js +0 -1
  330. package/_standalone/.next/server/chunks/7948.js +0 -2
  331. package/_standalone/.next/server/chunks/8326.js +0 -1
  332. package/_standalone/.next/server/chunks/8388.js +0 -17
  333. package/_standalone/.next/server/chunks/9503.js +0 -1
  334. package/_standalone/.next/server/chunks/953.js +0 -57
  335. package/_standalone/.next/server/chunks/9938.js +0 -24
  336. package/_standalone/.next/server/functions-config-manifest.json +0 -22
  337. package/_standalone/.next/server/instrumentation.js +0 -1
  338. package/_standalone/.next/server/middleware-build-manifest.js +0 -1
  339. package/_standalone/.next/server/middleware-manifest.json +0 -6
  340. package/_standalone/.next/server/middleware-react-loadable-manifest.js +0 -1
  341. package/_standalone/.next/server/middleware.js +0 -15
  342. package/_standalone/.next/server/next-font-manifest.js +0 -1
  343. package/_standalone/.next/server/next-font-manifest.json +0 -1
  344. package/_standalone/.next/server/pages/500.html +0 -2
  345. package/_standalone/.next/server/pages-manifest.json +0 -3
  346. package/_standalone/.next/server/server-reference-manifest.js +0 -1
  347. package/_standalone/.next/server/server-reference-manifest.json +0 -1
  348. package/_standalone/.next/server/webpack-runtime.js +0 -1
  349. package/_standalone/.next/static/Dn8EHqUedSzanCfrM8WWS/_buildManifest.js +0 -1
  350. package/_standalone/.next/static/Dn8EHqUedSzanCfrM8WWS/_ssgManifest.js +0 -1
  351. package/_standalone/.next/static/chunks/1239.10a0710c2772ab34.js +0 -1
  352. package/_standalone/.next/static/chunks/1477.33df3cce509578c2.js +0 -1
  353. package/_standalone/.next/static/chunks/1814.8a1fef15856dce84.js +0 -1
  354. package/_standalone/.next/static/chunks/1a258343-9803591e4aaee1f6.js +0 -2
  355. package/_standalone/.next/static/chunks/2631.dc56e83472bde281.js +0 -1
  356. package/_standalone/.next/static/chunks/2647.e0b67d0c432ad7e7.js +0 -18
  357. package/_standalone/.next/static/chunks/2872.045858d00bd8307f.js +0 -8
  358. package/_standalone/.next/static/chunks/2935.a7fdb3a7fb681d61.js +0 -1
  359. package/_standalone/.next/static/chunks/2968.f10ccee9e7e2324d.js +0 -2
  360. package/_standalone/.next/static/chunks/3013-3d4aa69636f4a7bd.js +0 -1
  361. package/_standalone/.next/static/chunks/3523-4e4bb442a2d2f4f5.js +0 -1
  362. package/_standalone/.next/static/chunks/3562-fadd7213646defa8.js +0 -1
  363. package/_standalone/.next/static/chunks/362.2bfa40005767b578.js +0 -2
  364. package/_standalone/.next/static/chunks/363642f4.1ab94f095d889c3a.js +0 -1
  365. package/_standalone/.next/static/chunks/3637.2b2697198968d83f.js +0 -1
  366. package/_standalone/.next/static/chunks/3794-c66343cd6a42366f.js +0 -2
  367. package/_standalone/.next/static/chunks/4033.6666700547b20141.js +0 -1
  368. package/_standalone/.next/static/chunks/4094.09364c01df411380.js +0 -1
  369. package/_standalone/.next/static/chunks/4237-ffc6e7c15d4007b6.js +0 -1
  370. package/_standalone/.next/static/chunks/4568-6791c1bc47a63f80.js +0 -1
  371. package/_standalone/.next/static/chunks/4925-6e9a5eb97c10d532.js +0 -1
  372. package/_standalone/.next/static/chunks/4bd1b696-10cb4c9d2844a506.js +0 -1
  373. package/_standalone/.next/static/chunks/516.24ee058b1d4b1fed.js +0 -8
  374. package/_standalone/.next/static/chunks/5331.c89084fd7f67887d.js +0 -48
  375. package/_standalone/.next/static/chunks/5358-15618fc9b20018ee.js +0 -28
  376. package/_standalone/.next/static/chunks/54a60aa6.7a74f547ec1bdd5a.js +0 -79
  377. package/_standalone/.next/static/chunks/5576.c468f41f1126e837.js +0 -9
  378. package/_standalone/.next/static/chunks/5581-c3be891101a3e511.js +0 -29
  379. package/_standalone/.next/static/chunks/5592-85f69f6161d7a028.js +0 -1
  380. package/_standalone/.next/static/chunks/5627.c4337d7289acb31f.js +0 -1
  381. package/_standalone/.next/static/chunks/5956.b445072b35915129.js +0 -1
  382. package/_standalone/.next/static/chunks/6087.e4ec392aa2239719.js +0 -1
  383. package/_standalone/.next/static/chunks/6636-1b6d7047cffa7dbc.js +0 -6
  384. package/_standalone/.next/static/chunks/6826.7b7d94dd0fd83812.js +0 -1
  385. package/_standalone/.next/static/chunks/6902-edc5c487c696bd0b.js +0 -3
  386. package/_standalone/.next/static/chunks/7025-9a4369e5f94b3915.js +0 -1
  387. package/_standalone/.next/static/chunks/70e0d97a.6903b8594c742784.js +0 -1
  388. package/_standalone/.next/static/chunks/7249-b0a9c77b9a84b11c.js +0 -11
  389. package/_standalone/.next/static/chunks/7540-811b466ff82538ac.js +0 -13
  390. package/_standalone/.next/static/chunks/7753.63831cfc54a55fbb.js +0 -1
  391. package/_standalone/.next/static/chunks/8252-888b87f30fde5786.js +0 -1
  392. package/_standalone/.next/static/chunks/8409-de5726a4a278d28f.js +0 -1
  393. package/_standalone/.next/static/chunks/862.9f526e964489e2e5.js +0 -1
  394. package/_standalone/.next/static/chunks/8719-becd06dd739825ea.js +0 -1
  395. package/_standalone/.next/static/chunks/9207-3b19c55a3c974a09.js +0 -1
  396. package/_standalone/.next/static/chunks/9300.118b8c840634383f.js +0 -28
  397. package/_standalone/.next/static/chunks/95247769.3b5caae1c1a76ce1.js +0 -4
  398. package/_standalone/.next/static/chunks/9688-85f7c423a1dce82c.js +0 -1
  399. package/_standalone/.next/static/chunks/9748-3e19c82c77c98c0a.js +0 -1
  400. package/_standalone/.next/static/chunks/app/.well-known/agent-card.json/route-2471b275cd82ff8d.js +0 -1
  401. package/_standalone/.next/static/chunks/app/_global-error/page-2471b275cd82ff8d.js +0 -1
  402. package/_standalone/.next/static/chunks/app/_not-found/page-a4fd983951533d8f.js +0 -1
  403. package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-d4d8277433073461.js +0 -1
  404. package/_standalone/.next/static/chunks/app/agents/page-6f021b5bec8169d5.js +0 -1
  405. package/_standalone/.next/static/chunks/app/api/a2a/agents/route-2471b275cd82ff8d.js +0 -1
  406. package/_standalone/.next/static/chunks/app/api/a2a/delegations/route-2471b275cd82ff8d.js +0 -1
  407. package/_standalone/.next/static/chunks/app/api/a2a/discover/route-2471b275cd82ff8d.js +0 -1
  408. package/_standalone/.next/static/chunks/app/api/a2a/route-2471b275cd82ff8d.js +0 -1
  409. package/_standalone/.next/static/chunks/app/api/acp/config/route-2471b275cd82ff8d.js +0 -1
  410. package/_standalone/.next/static/chunks/app/api/acp/detect/route-2471b275cd82ff8d.js +0 -1
  411. package/_standalone/.next/static/chunks/app/api/acp/install/route-2471b275cd82ff8d.js +0 -1
  412. package/_standalone/.next/static/chunks/app/api/acp/registry/route-2471b275cd82ff8d.js +0 -1
  413. package/_standalone/.next/static/chunks/app/api/acp/session/route-2471b275cd82ff8d.js +0 -1
  414. package/_standalone/.next/static/chunks/app/api/agent-activity/route-2471b275cd82ff8d.js +0 -1
  415. package/_standalone/.next/static/chunks/app/api/agents/copy-skill/route-2471b275cd82ff8d.js +0 -1
  416. package/_standalone/.next/static/chunks/app/api/agents/custom/detect/route-2471b275cd82ff8d.js +0 -1
  417. package/_standalone/.next/static/chunks/app/api/agents/custom/route-2471b275cd82ff8d.js +0 -1
  418. package/_standalone/.next/static/chunks/app/api/ask/route-2471b275cd82ff8d.js +0 -1
  419. package/_standalone/.next/static/chunks/app/api/ask-sessions/route-2471b275cd82ff8d.js +0 -1
  420. package/_standalone/.next/static/chunks/app/api/auth/route-2471b275cd82ff8d.js +0 -1
  421. package/_standalone/.next/static/chunks/app/api/backlinks/route-2471b275cd82ff8d.js +0 -1
  422. package/_standalone/.next/static/chunks/app/api/bootstrap/route-2471b275cd82ff8d.js +0 -1
  423. package/_standalone/.next/static/chunks/app/api/changes/route-2471b275cd82ff8d.js +0 -1
  424. package/_standalone/.next/static/chunks/app/api/channels/verify/route-2471b275cd82ff8d.js +0 -1
  425. package/_standalone/.next/static/chunks/app/api/connect/route-2471b275cd82ff8d.js +0 -1
  426. package/_standalone/.next/static/chunks/app/api/embedding/route-2471b275cd82ff8d.js +0 -1
  427. package/_standalone/.next/static/chunks/app/api/export/route-2471b275cd82ff8d.js +0 -1
  428. package/_standalone/.next/static/chunks/app/api/extract-pdf/route-2471b275cd82ff8d.js +0 -1
  429. package/_standalone/.next/static/chunks/app/api/file/import/route-2471b275cd82ff8d.js +0 -1
  430. package/_standalone/.next/static/chunks/app/api/file/raw/route-2471b275cd82ff8d.js +0 -1
  431. package/_standalone/.next/static/chunks/app/api/file/route-2471b275cd82ff8d.js +0 -1
  432. package/_standalone/.next/static/chunks/app/api/files/route-2471b275cd82ff8d.js +0 -1
  433. package/_standalone/.next/static/chunks/app/api/git/route-2471b275cd82ff8d.js +0 -1
  434. package/_standalone/.next/static/chunks/app/api/graph/route-2471b275cd82ff8d.js +0 -1
  435. package/_standalone/.next/static/chunks/app/api/health/route-2471b275cd82ff8d.js +0 -1
  436. package/_standalone/.next/static/chunks/app/api/im/activity/route-2471b275cd82ff8d.js +0 -1
  437. package/_standalone/.next/static/chunks/app/api/im/config/route-2471b275cd82ff8d.js +0 -1
  438. package/_standalone/.next/static/chunks/app/api/im/status/route-2471b275cd82ff8d.js +0 -1
  439. package/_standalone/.next/static/chunks/app/api/im/test/route-2471b275cd82ff8d.js +0 -1
  440. package/_standalone/.next/static/chunks/app/api/im/webhook/feishu/route-2471b275cd82ff8d.js +0 -1
  441. package/_standalone/.next/static/chunks/app/api/im/webhook-status/route-2471b275cd82ff8d.js +0 -1
  442. package/_standalone/.next/static/chunks/app/api/inbox/clip/route-2471b275cd82ff8d.js +0 -1
  443. package/_standalone/.next/static/chunks/app/api/inbox/route-2471b275cd82ff8d.js +0 -1
  444. package/_standalone/.next/static/chunks/app/api/init/route-2471b275cd82ff8d.js +0 -1
  445. package/_standalone/.next/static/chunks/app/api/lint/route-2471b275cd82ff8d.js +0 -1
  446. package/_standalone/.next/static/chunks/app/api/mcp/agents/route-2471b275cd82ff8d.js +0 -1
  447. package/_standalone/.next/static/chunks/app/api/mcp/direct-tools/route-2471b275cd82ff8d.js +0 -1
  448. package/_standalone/.next/static/chunks/app/api/mcp/install/route-2471b275cd82ff8d.js +0 -1
  449. package/_standalone/.next/static/chunks/app/api/mcp/install-skill/route-2471b275cd82ff8d.js +0 -1
  450. package/_standalone/.next/static/chunks/app/api/mcp/restart/route-2471b275cd82ff8d.js +0 -1
  451. package/_standalone/.next/static/chunks/app/api/mcp/status/route-2471b275cd82ff8d.js +0 -1
  452. package/_standalone/.next/static/chunks/app/api/mcp/tools/route-2471b275cd82ff8d.js +0 -1
  453. package/_standalone/.next/static/chunks/app/api/mcp/uninstall/route-2471b275cd82ff8d.js +0 -1
  454. package/_standalone/.next/static/chunks/app/api/monitoring/route-2471b275cd82ff8d.js +0 -1
  455. package/_standalone/.next/static/chunks/app/api/recent-files/route-2471b275cd82ff8d.js +0 -1
  456. package/_standalone/.next/static/chunks/app/api/restart/route-2471b275cd82ff8d.js +0 -1
  457. package/_standalone/.next/static/chunks/app/api/search/route-2471b275cd82ff8d.js +0 -1
  458. package/_standalone/.next/static/chunks/app/api/settings/list-models/route-2471b275cd82ff8d.js +0 -1
  459. package/_standalone/.next/static/chunks/app/api/settings/reset-token/route-2471b275cd82ff8d.js +0 -1
  460. package/_standalone/.next/static/chunks/app/api/settings/route-2471b275cd82ff8d.js +0 -1
  461. package/_standalone/.next/static/chunks/app/api/settings/test-key/route-2471b275cd82ff8d.js +0 -1
  462. package/_standalone/.next/static/chunks/app/api/setup/check-path/route-2471b275cd82ff8d.js +0 -1
  463. package/_standalone/.next/static/chunks/app/api/setup/check-port/route-2471b275cd82ff8d.js +0 -1
  464. package/_standalone/.next/static/chunks/app/api/setup/generate-token/route-2471b275cd82ff8d.js +0 -1
  465. package/_standalone/.next/static/chunks/app/api/setup/ls/route-2471b275cd82ff8d.js +0 -1
  466. package/_standalone/.next/static/chunks/app/api/setup/route-2471b275cd82ff8d.js +0 -1
  467. package/_standalone/.next/static/chunks/app/api/skills/route-2471b275cd82ff8d.js +0 -1
  468. package/_standalone/.next/static/chunks/app/api/space-overview/route-2471b275cd82ff8d.js +0 -1
  469. package/_standalone/.next/static/chunks/app/api/sync/route-2471b275cd82ff8d.js +0 -1
  470. package/_standalone/.next/static/chunks/app/api/tree-version/route-2471b275cd82ff8d.js +0 -1
  471. package/_standalone/.next/static/chunks/app/api/uninstall/route-2471b275cd82ff8d.js +0 -1
  472. package/_standalone/.next/static/chunks/app/api/update/route-2471b275cd82ff8d.js +0 -1
  473. package/_standalone/.next/static/chunks/app/api/update-check/route-2471b275cd82ff8d.js +0 -1
  474. package/_standalone/.next/static/chunks/app/api/update-status/route-2471b275cd82ff8d.js +0 -1
  475. package/_standalone/.next/static/chunks/app/api/workflows/route-2471b275cd82ff8d.js +0 -1
  476. package/_standalone/.next/static/chunks/app/changelog/page-297e0af14471e935.js +0 -1
  477. package/_standalone/.next/static/chunks/app/changes/page-2471b275cd82ff8d.js +0 -1
  478. package/_standalone/.next/static/chunks/app/echo/[segment]/page-75a6330292613587.js +0 -157
  479. package/_standalone/.next/static/chunks/app/echo/page-2471b275cd82ff8d.js +0 -1
  480. package/_standalone/.next/static/chunks/app/error-fc1491d554a28327.js +0 -1
  481. package/_standalone/.next/static/chunks/app/explore/page-d9f58000bc445360.js +0 -4
  482. package/_standalone/.next/static/chunks/app/global-error-c37d50db6128ec01.js +0 -1
  483. package/_standalone/.next/static/chunks/app/help/page-f8cb806371b3175f.js +0 -1
  484. package/_standalone/.next/static/chunks/app/inbox/history/page-26e71fb6f716a4c4.js +0 -1
  485. package/_standalone/.next/static/chunks/app/layout-fcbde5bee626d21a.js +0 -133
  486. package/_standalone/.next/static/chunks/app/loading-2471b275cd82ff8d.js +0 -1
  487. package/_standalone/.next/static/chunks/app/login/page-686d7c84262f2e7c.js +0 -1
  488. package/_standalone/.next/static/chunks/app/page-174dadc481ca9c86.js +0 -1
  489. package/_standalone/.next/static/chunks/app/setup/page-e40f3c5704c3c857.js +0 -1
  490. package/_standalone/.next/static/chunks/app/trash/page-e623ff0ab35de002.js +0 -1
  491. package/_standalone/.next/static/chunks/app/view/[...path]/error-ec03f5d0a5b93073.js +0 -1
  492. package/_standalone/.next/static/chunks/app/view/[...path]/loading-2471b275cd82ff8d.js +0 -1
  493. package/_standalone/.next/static/chunks/app/view/[...path]/not-found-6e0c75ad26ce8572.js +0 -1
  494. package/_standalone/.next/static/chunks/app/view/[...path]/page-49c4eff6ffdb5168.js +0 -12
  495. package/_standalone/.next/static/chunks/e71f6c19-4df85185bf989b49.js +0 -1
  496. package/_standalone/.next/static/chunks/framework-a17258b880e6120c.js +0 -1
  497. package/_standalone/.next/static/chunks/main-app-85439cf6d0f88401.js +0 -1
  498. package/_standalone/.next/static/chunks/main-dbbd70b57dd91565.js +0 -5
  499. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-2471b275cd82ff8d.js +0 -1
  500. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-2471b275cd82ff8d.js +0 -1
  501. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-2471b275cd82ff8d.js +0 -1
  502. package/_standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-2471b275cd82ff8d.js +0 -1
  503. package/_standalone/.next/static/chunks/polyfills-42372ed130431b0a.js +0 -1
  504. package/_standalone/.next/static/chunks/webpack-dc486b68118d1328.js +0 -1
  505. package/_standalone/.next/static/css/86153be34ee0f215.css +0 -1
  506. package/_standalone/.next/static/css/a4a2b71142b311af.css +0 -31
  507. package/_standalone/.next/static/media/0086f8992871c45b-s.woff2 +0 -0
  508. package/_standalone/.next/static/media/011e180705008d6f-s.woff2 +0 -0
  509. package/_standalone/.next/static/media/03b436aa846269de-s.woff2 +0 -0
  510. package/_standalone/.next/static/media/05a58683eb2ffca7-s.woff2 +0 -0
  511. package/_standalone/.next/static/media/08aedeceaf1dcd57-s.woff2 +0 -0
  512. package/_standalone/.next/static/media/110cbef534704ef8-s.p.woff2 +0 -0
  513. package/_standalone/.next/static/media/19cfc7226ec3afaa-s.woff2 +0 -0
  514. package/_standalone/.next/static/media/20535187d867b7b9-s.woff2 +0 -0
  515. package/_standalone/.next/static/media/21350d82a1f187e9-s.woff2 +0 -0
  516. package/_standalone/.next/static/media/26d4368bf94c0ec4-s.p.woff2 +0 -0
  517. package/_standalone/.next/static/media/2801417b65625cf5-s.woff2 +0 -0
  518. package/_standalone/.next/static/media/28793f5c5e3d822d-s.woff2 +0 -0
  519. package/_standalone/.next/static/media/36008747766f78c6-s.woff2 +0 -0
  520. package/_standalone/.next/static/media/4f19a67e08e18f3c-s.woff2 +0 -0
  521. package/_standalone/.next/static/media/5356a6a4f2c8c8d8-s.woff2 +0 -0
  522. package/_standalone/.next/static/media/58f386aa6b1a2a92-s.woff2 +0 -0
  523. package/_standalone/.next/static/media/5c0c2bcbaa4149ca-s.p.woff2 +0 -0
  524. package/_standalone/.next/static/media/6d38f9d4e0f4772b-s.woff2 +0 -0
  525. package/_standalone/.next/static/media/714ad00c3d008517-s.woff2 +0 -0
  526. package/_standalone/.next/static/media/73cb51aac9c97f90-s.woff2 +0 -0
  527. package/_standalone/.next/static/media/7b19b489dc6743ba-s.woff2 +0 -0
  528. package/_standalone/.next/static/media/7ba5fb2a8c88521c-s.woff2 +0 -0
  529. package/_standalone/.next/static/media/8e9860b6e62d6359-s.woff2 +0 -0
  530. package/_standalone/.next/static/media/92eeb95d069020cc-s.woff2 +0 -0
  531. package/_standalone/.next/static/media/99bbede094da1c3f-s.woff2 +0 -0
  532. package/_standalone/.next/static/media/ab00a911ac2adf48-s.woff2 +0 -0
  533. package/_standalone/.next/static/media/b3bf17a9041d9433-s.woff2 +0 -0
  534. package/_standalone/.next/static/media/ba9851c3c22cd980-s.woff2 +0 -0
  535. package/_standalone/.next/static/media/c5fe6dc8356a8c31-s.woff2 +0 -0
  536. package/_standalone/.next/static/media/c80eef6a0c97798e-s.woff2 +0 -0
  537. package/_standalone/.next/static/media/c9c3823090ec8b55-s.woff2 +0 -0
  538. package/_standalone/.next/static/media/d26bbd13d6b70f89-s.woff2 +0 -0
  539. package/_standalone/.next/static/media/d2f466e69dd54845-s.woff2 +0 -0
  540. package/_standalone/.next/static/media/d3ebbfd689654d3a-s.p.woff2 +0 -0
  541. package/_standalone/.next/static/media/db96af6b531dc71f-s.p.woff2 +0 -0
  542. package/_standalone/.next/static/media/df0a9ae256c0569c-s.woff2 +0 -0
  543. package/_standalone/.next/static/media/e4af272ccee01ff0-s.p.woff2 +0 -0
  544. package/_standalone/.next/trace +0 -72
  545. package/_standalone/.next/types/routes.d.ts +0 -158
  546. package/_standalone/.next/types/validator.ts +0 -844
  547. package/_standalone/__tests__/a2a/agent-card.test.ts +0 -60
  548. package/_standalone/__tests__/a2a/client.test.ts +0 -264
  549. package/_standalone/__tests__/a2a/delegation-history.test.ts +0 -133
  550. package/_standalone/__tests__/a2a/orchestrator.test.ts +0 -280
  551. package/_standalone/__tests__/a2a/task-handler.test.ts +0 -86
  552. package/_standalone/__tests__/acp/acp-types.test.ts +0 -273
  553. package/_standalone/__tests__/acp/agent-descriptors.test.ts +0 -284
  554. package/_standalone/__tests__/acp/bridge.test.ts +0 -188
  555. package/_standalone/__tests__/acp/registry.test.ts +0 -193
  556. package/_standalone/__tests__/acp/session.test.ts +0 -466
  557. package/_standalone/__tests__/agent/backend-retry.test.ts +0 -143
  558. package/_standalone/__tests__/agent/chat-mode.test.ts +0 -103
  559. package/_standalone/__tests__/agent/loop-detection.test.ts +0 -85
  560. package/_standalone/__tests__/agent/paragraph-extract.test.ts +0 -76
  561. package/_standalone/__tests__/agent/prompt.test.ts +0 -21
  562. package/_standalone/__tests__/agent/provider-endpoints.test.ts +0 -70
  563. package/_standalone/__tests__/agent/retry-reconnect.test.ts +0 -120
  564. package/_standalone/__tests__/agent/stream-consumer-status.test.ts +0 -103
  565. package/_standalone/__tests__/agent/token-estimation.test.ts +0 -54
  566. package/_standalone/__tests__/agents/agents-content-dashboard.test.tsx +0 -181
  567. package/_standalone/__tests__/agents/agents-content-model.test.ts +0 -209
  568. package/_standalone/__tests__/api/ask-attachments.test.ts +0 -194
  569. package/_standalone/__tests__/api/backlinks.test.ts +0 -55
  570. package/_standalone/__tests__/api/bootstrap.test.ts +0 -70
  571. package/_standalone/__tests__/api/changes.test.ts +0 -96
  572. package/_standalone/__tests__/api/channels-verify.test.ts +0 -75
  573. package/_standalone/__tests__/api/check-port.test.ts +0 -100
  574. package/_standalone/__tests__/api/extract-pdf.test.ts +0 -265
  575. package/_standalone/__tests__/api/file.test.ts +0 -423
  576. package/_standalone/__tests__/api/files.test.ts +0 -43
  577. package/_standalone/__tests__/api/git.test.ts +0 -80
  578. package/_standalone/__tests__/api/im-activity.test.ts +0 -36
  579. package/_standalone/__tests__/api/im-config-feishu-conversation.test.ts +0 -103
  580. package/_standalone/__tests__/api/im-webhook-feishu.test.ts +0 -88
  581. package/_standalone/__tests__/api/install-skill.test.ts +0 -283
  582. package/_standalone/__tests__/api/mcp-install.test.ts +0 -400
  583. package/_standalone/__tests__/api/recent-files.test.ts +0 -43
  584. package/_standalone/__tests__/api/retry.test.ts +0 -49
  585. package/_standalone/__tests__/api/search.test.ts +0 -48
  586. package/_standalone/__tests__/api/settings.test.ts +0 -56
  587. package/_standalone/__tests__/api/setup-paths.test.ts +0 -81
  588. package/_standalone/__tests__/api/setup.test.ts +0 -428
  589. package/_standalone/__tests__/api/skills.test.ts +0 -362
  590. package/_standalone/__tests__/api/space-overview.test.ts +0 -79
  591. package/_standalone/__tests__/api/test-key.test.ts +0 -187
  592. package/_standalone/__tests__/ask/ask-content-agent-selection.test.tsx +0 -266
  593. package/_standalone/__tests__/ask/ask-content-attach-menu.test.tsx +0 -205
  594. package/_standalone/__tests__/ask/ask-content-input-during-run.test.tsx +0 -248
  595. package/_standalone/__tests__/ask/auto-reconnect.test.ts +0 -142
  596. package/_standalone/__tests__/ask/message-list-agent-attribution.test.tsx +0 -71
  597. package/_standalone/__tests__/ask/mode-capsule.test.ts +0 -95
  598. package/_standalone/__tests__/ask/non-streaming-api.test.ts +0 -281
  599. package/_standalone/__tests__/ask/save-insight.test.ts +0 -84
  600. package/_standalone/__tests__/ask/save-session.test.ts +0 -73
  601. package/_standalone/__tests__/channel-cli-layers.test.ts +0 -108
  602. package/_standalone/__tests__/channel-cli-subprocess.test.ts +0 -73
  603. package/_standalone/__tests__/channel-command-env.test.ts +0 -82
  604. package/_standalone/__tests__/channel-mgmt.test.js +0 -75
  605. package/_standalone/__tests__/channel-prompts.test.ts +0 -48
  606. package/_standalone/__tests__/cli/agent-routing.test.ts +0 -232
  607. package/_standalone/__tests__/cli/file-subcommands.test.ts +0 -379
  608. package/_standalone/__tests__/compile/compile-incremental.test.ts +0 -103
  609. package/_standalone/__tests__/compile/compile-meta.test.ts +0 -74
  610. package/_standalone/__tests__/compile/compile.test.ts +0 -98
  611. package/_standalone/__tests__/components/UpdateToast.test.ts +0 -344
  612. package/_standalone/__tests__/components/breadcrumb-header-ux.test.ts +0 -14
  613. package/_standalone/__tests__/components/channel-detail-redesign.test.tsx +0 -222
  614. package/_standalone/__tests__/components/header-toc-vertical-alignment.test.ts +0 -23
  615. package/_standalone/__tests__/components/line-diff.test.ts +0 -37
  616. package/_standalone/__tests__/components/search-modal-drag-drop.test.tsx +0 -466
  617. package/_standalone/__tests__/components/table-of-contents-header-layout.test.ts +0 -15
  618. package/_standalone/__tests__/components/view-page-header-layout.test.ts +0 -13
  619. package/_standalone/__tests__/components/view-page-header-scroll-stability.test.ts +0 -34
  620. package/_standalone/__tests__/core/agent-audit-log.test.ts +0 -71
  621. package/_standalone/__tests__/core/api.test.ts +0 -135
  622. package/_standalone/__tests__/core/atomic-append.test.ts +0 -47
  623. package/_standalone/__tests__/core/backlinks.test.ts +0 -72
  624. package/_standalone/__tests__/core/bm25-search.test.ts +0 -78
  625. package/_standalone/__tests__/core/chinese-segmentation.test.ts +0 -69
  626. package/_standalone/__tests__/core/config.test.ts +0 -101
  627. package/_standalone/__tests__/core/content-changes.test.ts +0 -131
  628. package/_standalone/__tests__/core/context.test.ts +0 -50
  629. package/_standalone/__tests__/core/create-space.test.ts +0 -39
  630. package/_standalone/__tests__/core/csv.test.ts +0 -49
  631. package/_standalone/__tests__/core/detect-agents.test.ts +0 -139
  632. package/_standalone/__tests__/core/errors.test.ts +0 -119
  633. package/_standalone/__tests__/core/file-convert.test.ts +0 -148
  634. package/_standalone/__tests__/core/fs-ops.test.ts +0 -162
  635. package/_standalone/__tests__/core/helpers.ts +0 -35
  636. package/_standalone/__tests__/core/hybrid-search.test.ts +0 -109
  637. package/_standalone/__tests__/core/inbox-url-utils.test.ts +0 -37
  638. package/_standalone/__tests__/core/inbox.test.ts +0 -418
  639. package/_standalone/__tests__/core/jwt.test.ts +0 -62
  640. package/_standalone/__tests__/core/lines.test.ts +0 -148
  641. package/_standalone/__tests__/core/link-index.test.ts +0 -107
  642. package/_standalone/__tests__/core/list-spaces.test.ts +0 -45
  643. package/_standalone/__tests__/core/metrics.test.ts +0 -103
  644. package/_standalone/__tests__/core/organize.test.ts +0 -90
  645. package/_standalone/__tests__/core/request-scoped-tools.test.ts +0 -19
  646. package/_standalone/__tests__/core/resolve-script.test.ts +0 -115
  647. package/_standalone/__tests__/core/search-index.test.ts +0 -239
  648. package/_standalone/__tests__/core/search.test.ts +0 -68
  649. package/_standalone/__tests__/core/security.test.ts +0 -85
  650. package/_standalone/__tests__/core/skill-install-logic.test.ts +0 -230
  651. package/_standalone/__tests__/core/space-aware-tree.test.ts +0 -162
  652. package/_standalone/__tests__/core/space-scaffold.test.ts +0 -120
  653. package/_standalone/__tests__/core/sync-status.test.ts +0 -121
  654. package/_standalone/__tests__/core/sync.test.ts +0 -354
  655. package/_standalone/__tests__/core/tools.test.ts +0 -339
  656. package/_standalone/__tests__/core/tree-async.test.ts +0 -43
  657. package/_standalone/__tests__/core/tree.test.ts +0 -160
  658. package/_standalone/__tests__/core/web-clip.test.ts +0 -229
  659. package/_standalone/__tests__/hooks/useAiOrganize.test.ts +0 -633
  660. package/_standalone/__tests__/hooks/useMention.test.ts +0 -92
  661. package/_standalone/__tests__/hooks/useSlashCommand.test.ts +0 -152
  662. package/_standalone/__tests__/im/activity.test.ts +0 -74
  663. package/_standalone/__tests__/im/config.test.ts +0 -114
  664. package/_standalone/__tests__/im/dingtalk.test.ts +0 -23
  665. package/_standalone/__tests__/im/feishu-conversation-processing.test.ts +0 -96
  666. package/_standalone/__tests__/im/feishu-webhook.test.ts +0 -159
  667. package/_standalone/__tests__/im/format.test.ts +0 -134
  668. package/_standalone/__tests__/im/qq.test.ts +0 -23
  669. package/_standalone/__tests__/im/types.test.ts +0 -97
  670. package/_standalone/__tests__/im/wechat.test.ts +0 -23
  671. package/_standalone/__tests__/integration/drag-drop-format-verification.test.ts +0 -289
  672. package/_standalone/__tests__/integration/search-askcontent-drag-drop.test.tsx +0 -565
  673. package/_standalone/__tests__/lib/ask-agent.test.ts +0 -84
  674. package/_standalone/__tests__/lib/daily-echo-aggregation.test.ts +0 -225
  675. package/_standalone/__tests__/lib/daily-echo-config.test.ts +0 -254
  676. package/_standalone/__tests__/lib/daily-echo-prompts.test.ts +0 -236
  677. package/_standalone/__tests__/lib/daily-echo-snapshot.test.ts +0 -86
  678. package/_standalone/__tests__/lib/daily-echo-storage.test.ts +0 -392
  679. package/_standalone/__tests__/lib/echo-insight-prompt.test.ts +0 -57
  680. package/_standalone/__tests__/lib/echo-pages-visual-i18n.test.ts +0 -31
  681. package/_standalone/__tests__/lib/echo-segments.test.ts +0 -48
  682. package/_standalone/__tests__/lib/explore-use-cases.test.ts +0 -70
  683. package/_standalone/__tests__/lib/i18n-new-keys.test.ts +0 -153
  684. package/_standalone/__tests__/lib/mcp-snippets.test.ts +0 -163
  685. package/_standalone/__tests__/lib/mindos-copy-alignment.test.ts +0 -36
  686. package/_standalone/__tests__/lib/pi-extensions.test.ts +0 -42
  687. package/_standalone/__tests__/lib/pi-skills.test.ts +0 -117
  688. package/_standalone/__tests__/lib/session-store.test.ts +0 -58
  689. package/_standalone/__tests__/lib/settings-ai-client.test.ts +0 -93
  690. package/_standalone/__tests__/lib/walkthrough-steps.test.ts +0 -25
  691. package/_standalone/__tests__/lib/web-search.test.ts +0 -141
  692. package/_standalone/__tests__/lint/lint.test.ts +0 -257
  693. package/_standalone/__tests__/middleware.test.ts +0 -112
  694. package/_standalone/__tests__/obsidian-compat/command-registry.test.ts +0 -56
  695. package/_standalone/__tests__/obsidian-compat/component-plugin.test.ts +0 -130
  696. package/_standalone/__tests__/obsidian-compat/integration.test.ts +0 -160
  697. package/_standalone/__tests__/obsidian-compat/loader.test.ts +0 -130
  698. package/_standalone/__tests__/obsidian-compat/manifest.test.ts +0 -58
  699. package/_standalone/__tests__/obsidian-compat/plugin-manager.test.ts +0 -112
  700. package/_standalone/__tests__/obsidian-compat/ui.test.ts +0 -71
  701. package/_standalone/__tests__/obsidian-compat/vault.test.ts +0 -93
  702. package/_standalone/__tests__/panels/agents-panel-hub.test.tsx +0 -66
  703. package/_standalone/__tests__/panels/search-panel-drag-drop.test.tsx +0 -259
  704. package/_standalone/__tests__/renderers/csv-core-builtin.test.ts +0 -11
  705. package/_standalone/__tests__/renderers/plugin-renderers-filtering.test.ts +0 -49
  706. package/_standalone/__tests__/renderers/renderer-surface-classification.test.ts +0 -45
  707. package/_standalone/__tests__/renderers/workflow-yaml-execution.test.ts +0 -232
  708. package/_standalone/__tests__/renderers/workflow-yaml-parser.test.ts +0 -181
  709. package/_standalone/__tests__/renderers/workflow-yaml-serializer.test.ts +0 -64
  710. package/_standalone/__tests__/settings/activity-bar-rail-navigation.test.tsx +0 -178
  711. package/_standalone/__tests__/settings/activity-bar-update-badge.test.tsx +0 -91
  712. package/_standalone/__tests__/settings/settings-update-badge.test.tsx +0 -134
  713. package/_standalone/__tests__/settings/update-tab-availability-sync.test.tsx +0 -115
  714. package/_standalone/__tests__/settings/update-tab-browser.test.tsx +0 -159
  715. package/_standalone/__tests__/settings/update-tab-desktop.test.tsx +0 -169
  716. package/_standalone/__tests__/setup.ts +0 -100
  717. package/_standalone/__tests__/skills/mindos-skill-copy-alignment.test.ts +0 -27
  718. package/_standalone/app/globals.css +0 -534
  719. package/_standalone/app/icon.svg +0 -37
  720. package/_standalone/components/ActivityBar.tsx +0 -293
  721. package/_standalone/components/AskFab.tsx +0 -57
  722. package/_standalone/components/AskModal.tsx +0 -48
  723. package/_standalone/components/Backlinks.tsx +0 -75
  724. package/_standalone/components/Breadcrumb.tsx +0 -72
  725. package/_standalone/components/CreateSpaceModal.tsx +0 -235
  726. package/_standalone/components/CsvView.tsx +0 -346
  727. package/_standalone/components/CustomSelect.tsx +0 -256
  728. package/_standalone/components/DirPicker.tsx +0 -217
  729. package/_standalone/components/EchoSpotlight.tsx +0 -115
  730. package/_standalone/components/Editor.tsx +0 -242
  731. package/_standalone/components/EditorWrapper.tsx +0 -17
  732. package/_standalone/components/ExportModal.tsx +0 -223
  733. package/_standalone/components/FileTree.tsx +0 -619
  734. package/_standalone/components/FindInPage.tsx +0 -211
  735. package/_standalone/components/GuideCard.tsx +0 -358
  736. package/_standalone/components/ImportModal.tsx +0 -521
  737. package/_standalone/components/JsonView.tsx +0 -23
  738. package/_standalone/components/KeyboardShortcuts.tsx +0 -102
  739. package/_standalone/components/Logo.tsx +0 -39
  740. package/_standalone/components/MarkdownEditor.tsx +0 -94
  741. package/_standalone/components/MarkdownView.tsx +0 -192
  742. package/_standalone/components/OnboardingView.tsx +0 -164
  743. package/_standalone/components/OrganizeToast.tsx +0 -543
  744. package/_standalone/components/Panel.tsx +0 -385
  745. package/_standalone/components/QuickSuggestion.tsx +0 -69
  746. package/_standalone/components/RightAgentDetailPanel.tsx +0 -125
  747. package/_standalone/components/RightAskPanel.tsx +0 -174
  748. package/_standalone/components/SearchModal.tsx +0 -446
  749. package/_standalone/components/SettingsModal.tsx +0 -30
  750. package/_standalone/components/Sidebar.tsx +0 -190
  751. package/_standalone/components/SidebarLayout.tsx +0 -713
  752. package/_standalone/components/SpaceInitToast.tsx +0 -173
  753. package/_standalone/components/SyncStatusBar.tsx +0 -294
  754. package/_standalone/components/SystemPulse.tsx +0 -216
  755. package/_standalone/components/TableOfContents.tsx +0 -207
  756. package/_standalone/components/ThemeToggle.tsx +0 -36
  757. package/_standalone/components/WysiwygEditor.tsx +0 -165
  758. package/_standalone/components/agents/AcpRegistrySection.tsx +0 -457
  759. package/_standalone/components/agents/ActivitySection.tsx +0 -35
  760. package/_standalone/components/agents/AgentActivitySection.tsx +0 -225
  761. package/_standalone/components/agents/AgentsContentChannelDetail.tsx +0 -815
  762. package/_standalone/components/agents/AgentsContentChannels.tsx +0 -150
  763. package/_standalone/components/agents/AgentsMcpSection.tsx +0 -568
  764. package/_standalone/components/agents/AgentsOverviewSection.tsx +0 -488
  765. package/_standalone/components/agents/AgentsPanelA2aTab.tsx +0 -298
  766. package/_standalone/components/agents/AgentsPanelSessionsTab.tsx +0 -171
  767. package/_standalone/components/agents/AgentsPrimitives.tsx +0 -360
  768. package/_standalone/components/agents/AgentsSkillsByAgent.tsx +0 -231
  769. package/_standalone/components/agents/AgentsSkillsSection.tsx +0 -655
  770. package/_standalone/components/agents/CustomAgentModal.tsx +0 -691
  771. package/_standalone/components/agents/DiscoverAgentModal.tsx +0 -149
  772. package/_standalone/components/agents/EnvPermSection.tsx +0 -82
  773. package/_standalone/components/agents/KnowledgeInteractionSection.tsx +0 -241
  774. package/_standalone/components/agents/RecentActivityFeed.tsx +0 -137
  775. package/_standalone/components/agents/RuntimeDiagSection.tsx +0 -93
  776. package/_standalone/components/agents/SkillDetailPopover.tsx +0 -584
  777. package/_standalone/components/agents/agent-activity-shared.tsx +0 -110
  778. package/_standalone/components/agents/agent-detail-primitives.tsx +0 -43
  779. package/_standalone/components/ask/AgentSelectorCapsule.tsx +0 -218
  780. package/_standalone/components/ask/AskContent.tsx +0 -849
  781. package/_standalone/components/ask/AskHeader.tsx +0 -279
  782. package/_standalone/components/ask/FileChip.tsx +0 -181
  783. package/_standalone/components/ask/HighlightMatch.tsx +0 -14
  784. package/_standalone/components/ask/MentionPopover.tsx +0 -92
  785. package/_standalone/components/ask/MessageList.tsx +0 -371
  786. package/_standalone/components/ask/ModeCapsule.tsx +0 -180
  787. package/_standalone/components/ask/ProviderModelCapsule.tsx +0 -589
  788. package/_standalone/components/ask/SaveInsightInline.tsx +0 -286
  789. package/_standalone/components/ask/SaveSessionInline.tsx +0 -491
  790. package/_standalone/components/ask/SessionHistory.tsx +0 -164
  791. package/_standalone/components/ask/SessionHistoryPanel.tsx +0 -398
  792. package/_standalone/components/ask/SessionTabBar.tsx +0 -78
  793. package/_standalone/components/ask/SlashCommandPopover.tsx +0 -82
  794. package/_standalone/components/ask/ThinkingBlock.tsx +0 -56
  795. package/_standalone/components/ask/ToolCallBlock.tsx +0 -187
  796. package/_standalone/components/ask/save-insight-utils.ts +0 -101
  797. package/_standalone/components/changes/ChangesBanner.tsx +0 -145
  798. package/_standalone/components/changes/ChangesContentPage.tsx +0 -540
  799. package/_standalone/components/echo/DailyEcho/DailyEchoReportButton.tsx +0 -88
  800. package/_standalone/components/echo/DailyEcho/DailyEchoReportDrawer.tsx +0 -129
  801. package/_standalone/components/echo/DailyEcho/sections/DailyEchoAlignmentSection.tsx +0 -76
  802. package/_standalone/components/echo/DailyEcho/sections/DailyEchoReflectionSection.tsx +0 -37
  803. package/_standalone/components/echo/DailyEcho/sections/DailyEchoSnapshotSection.tsx +0 -39
  804. package/_standalone/components/echo/DailyEcho/sections/DailyEchoThemesSection.tsx +0 -44
  805. package/_standalone/components/echo/EchoHero.tsx +0 -35
  806. package/_standalone/components/echo/EchoInsightCollapsible.tsx +0 -197
  807. package/_standalone/components/echo/EchoPageSections.tsx +0 -51
  808. package/_standalone/components/echo/EchoSegmentNav.tsx +0 -57
  809. package/_standalone/components/explore/UseCaseCard.tsx +0 -56
  810. package/_standalone/components/explore/use-cases.generated.ts +0 -76
  811. package/_standalone/components/explore/use-cases.yaml +0 -185
  812. package/_standalone/components/file-tree/FileTreeContextMenus.tsx +0 -160
  813. package/_standalone/components/home/InboxSection.tsx +0 -707
  814. package/_standalone/components/panels/AgentsPanel.tsx +0 -203
  815. package/_standalone/components/panels/AgentsPanelAgentDetail.tsx +0 -191
  816. package/_standalone/components/panels/AgentsPanelAgentGroups.tsx +0 -113
  817. package/_standalone/components/panels/AgentsPanelAgentListRow.tsx +0 -133
  818. package/_standalone/components/panels/AgentsPanelHubNav.tsx +0 -76
  819. package/_standalone/components/panels/DiscoverPanel.tsx +0 -212
  820. package/_standalone/components/panels/EchoPanel.tsx +0 -49
  821. package/_standalone/components/panels/EchoSidebarStats.tsx +0 -136
  822. package/_standalone/components/panels/IMChannelsView.tsx +0 -114
  823. package/_standalone/components/panels/ImportHistoryPanel.tsx +0 -195
  824. package/_standalone/components/panels/PanelHeader.tsx +0 -35
  825. package/_standalone/components/panels/PanelNavRow.tsx +0 -77
  826. package/_standalone/components/panels/PluginsPanel.tsx +0 -168
  827. package/_standalone/components/panels/SearchPanel.tsx +0 -283
  828. package/_standalone/components/panels/SyncPopover.tsx +0 -105
  829. package/_standalone/components/panels/WorkflowsPanel.tsx +0 -206
  830. package/_standalone/components/panels/agents-panel-resolve-status.ts +0 -13
  831. package/_standalone/components/renderers/agent-inspector/AgentInspectorRenderer.tsx +0 -322
  832. package/_standalone/components/renderers/audio/AudioRenderer.tsx +0 -79
  833. package/_standalone/components/renderers/backlinks/BacklinksRenderer.tsx +0 -147
  834. package/_standalone/components/renderers/change-log/ChangeLogRenderer.tsx +0 -472
  835. package/_standalone/components/renderers/config/ConfigRenderer.tsx +0 -236
  836. package/_standalone/components/renderers/csv/BoardView.tsx +0 -146
  837. package/_standalone/components/renderers/csv/ConfigPanel.tsx +0 -119
  838. package/_standalone/components/renderers/csv/CsvRenderer.tsx +0 -70
  839. package/_standalone/components/renderers/csv/EditableCell.tsx +0 -43
  840. package/_standalone/components/renderers/csv/GalleryView.tsx +0 -40
  841. package/_standalone/components/renderers/csv/TableView.tsx +0 -163
  842. package/_standalone/components/renderers/csv/types.ts +0 -87
  843. package/_standalone/components/renderers/graph/GraphRenderer.tsx +0 -427
  844. package/_standalone/components/renderers/image/ImageRenderer.tsx +0 -203
  845. package/_standalone/components/renderers/pdf/PdfRenderer.tsx +0 -57
  846. package/_standalone/components/renderers/summary/SummaryRenderer.tsx +0 -226
  847. package/_standalone/components/renderers/timeline/TimelineRenderer.tsx +0 -213
  848. package/_standalone/components/renderers/todo/FilterBar.tsx +0 -106
  849. package/_standalone/components/renderers/todo/SectionCard.tsx +0 -354
  850. package/_standalone/components/renderers/todo/TodoRenderer.tsx +0 -137
  851. package/_standalone/components/renderers/video/VideoRenderer.tsx +0 -91
  852. package/_standalone/components/renderers/workflow-yaml/StepEditor.tsx +0 -164
  853. package/_standalone/components/renderers/workflow-yaml/WorkflowEditor.tsx +0 -201
  854. package/_standalone/components/renderers/workflow-yaml/WorkflowRunner.tsx +0 -282
  855. package/_standalone/components/renderers/workflow-yaml/WorkflowYamlRenderer.tsx +0 -126
  856. package/_standalone/components/renderers/workflow-yaml/execution.ts +0 -229
  857. package/_standalone/components/renderers/workflow-yaml/index.ts +0 -6
  858. package/_standalone/components/renderers/workflow-yaml/parser.ts +0 -172
  859. package/_standalone/components/renderers/workflow-yaml/selectors.tsx +0 -574
  860. package/_standalone/components/renderers/workflow-yaml/serializer.ts +0 -56
  861. package/_standalone/components/renderers/workflow-yaml/types.ts +0 -46
  862. package/_standalone/components/settings/AiTab.tsx +0 -610
  863. package/_standalone/components/settings/AppearanceTab.tsx +0 -268
  864. package/_standalone/components/settings/CustomProviderFields.tsx +0 -121
  865. package/_standalone/components/settings/CustomProvidersCard.tsx +0 -154
  866. package/_standalone/components/settings/DesktopUpdateCards.tsx +0 -517
  867. package/_standalone/components/settings/KnowledgeTab.tsx +0 -719
  868. package/_standalone/components/settings/McpAgentInstall.tsx +0 -280
  869. package/_standalone/components/settings/McpConnectGuides.tsx +0 -439
  870. package/_standalone/components/settings/McpExternalTools.tsx +0 -252
  871. package/_standalone/components/settings/McpPortSection.tsx +0 -207
  872. package/_standalone/components/settings/McpSkillCreateForm.tsx +0 -177
  873. package/_standalone/components/settings/McpSkillRow.tsx +0 -144
  874. package/_standalone/components/settings/McpSkillsSection.tsx +0 -460
  875. package/_standalone/components/settings/McpTab.tsx +0 -310
  876. package/_standalone/components/settings/MonitoringTab.tsx +0 -202
  877. package/_standalone/components/settings/PluginsTab.tsx +0 -75
  878. package/_standalone/components/settings/Primitives.tsx +0 -325
  879. package/_standalone/components/settings/ProviderModal.tsx +0 -87
  880. package/_standalone/components/settings/SettingsContent.tsx +0 -437
  881. package/_standalone/components/settings/ShortcutsTab.tsx +0 -20
  882. package/_standalone/components/settings/SyncEmptyState.tsx +0 -233
  883. package/_standalone/components/settings/SyncTab.tsx +0 -556
  884. package/_standalone/components/settings/TestButton.tsx +0 -65
  885. package/_standalone/components/settings/UninstallTab.tsx +0 -169
  886. package/_standalone/components/settings/UpdateTab.tsx +0 -362
  887. package/_standalone/components/settings/WebPortSection.tsx +0 -263
  888. package/_standalone/components/settings/types.ts +0 -210
  889. package/_standalone/components/settings/useCustomProviderForm.ts +0 -132
  890. package/_standalone/components/setup/StepAI.tsx +0 -217
  891. package/_standalone/components/setup/StepAgents.tsx +0 -324
  892. package/_standalone/components/setup/StepDots.tsx +0 -51
  893. package/_standalone/components/setup/StepKB.tsx +0 -263
  894. package/_standalone/components/setup/StepPorts.tsx +0 -121
  895. package/_standalone/components/setup/StepReview.tsx +0 -414
  896. package/_standalone/components/setup/StepSecurity.tsx +0 -77
  897. package/_standalone/components/setup/constants.tsx +0 -14
  898. package/_standalone/components/setup/types.ts +0 -61
  899. package/_standalone/components/shared/ModelInput.tsx +0 -220
  900. package/_standalone/components/shared/ProviderSelect.tsx +0 -224
  901. package/_standalone/components/ui/button.tsx +0 -60
  902. package/_standalone/components/ui/dialog.tsx +0 -157
  903. package/_standalone/components/ui/input.tsx +0 -20
  904. package/_standalone/components/ui/scroll-area.tsx +0 -55
  905. package/_standalone/components/ui/toggle.tsx +0 -44
  906. package/_standalone/components/walkthrough/WalkthroughOverlay.tsx +0 -266
  907. package/_standalone/components/walkthrough/WalkthroughTooltip.tsx +0 -131
  908. package/_standalone/components/walkthrough/index.ts +0 -3
  909. package/_standalone/components/walkthrough/steps.ts +0 -23
  910. package/_standalone/components.json +0 -25
  911. package/_standalone/eslint.config.mjs +0 -18
  912. package/_standalone/hooks/useA2aRegistry.ts +0 -58
  913. package/_standalone/hooks/useAcpConfig.ts +0 -96
  914. package/_standalone/hooks/useAcpDetection.ts +0 -126
  915. package/_standalone/hooks/useAcpRegistry.ts +0 -86
  916. package/_standalone/hooks/useAiOrganize.ts +0 -464
  917. package/_standalone/hooks/useAskChat.ts +0 -339
  918. package/_standalone/hooks/useAskModal.ts +0 -51
  919. package/_standalone/hooks/useAskPanel.ts +0 -164
  920. package/_standalone/hooks/useAskSession.ts +0 -310
  921. package/_standalone/hooks/useComposerVerticalResize.ts +0 -74
  922. package/_standalone/hooks/useDelegationHistory.ts +0 -49
  923. package/_standalone/hooks/useEditorImageUpload.ts +0 -113
  924. package/_standalone/hooks/useFileImport.ts +0 -233
  925. package/_standalone/hooks/useFileUpload.ts +0 -206
  926. package/_standalone/hooks/useImageUpload.ts +0 -153
  927. package/_standalone/hooks/useLeftPanel.ts +0 -81
  928. package/_standalone/hooks/useMention.ts +0 -108
  929. package/_standalone/hooks/useResizeDrag.ts +0 -84
  930. package/_standalone/hooks/useSettingsAiAvailable.ts +0 -35
  931. package/_standalone/hooks/useSlashCommand.ts +0 -128
  932. package/_standalone/instrumentation.ts +0 -60
  933. package/_standalone/lib/a2a/index.ts +0 -31
  934. package/_standalone/lib/acp/bridge.ts +0 -144
  935. package/_standalone/lib/acp/index.ts +0 -38
  936. package/_standalone/lib/acp/types.ts +0 -247
  937. package/_standalone/lib/agent/diff-worker.ts +0 -51
  938. package/_standalone/lib/agent/file-context.ts +0 -116
  939. package/_standalone/lib/agent/index.ts +0 -8
  940. package/_standalone/lib/agent/stream-consumer.ts +0 -231
  941. package/_standalone/lib/api/request-utils.ts +0 -57
  942. package/_standalone/lib/api.ts +0 -83
  943. package/_standalone/lib/ask-agent.ts +0 -46
  944. package/_standalone/lib/clipboard.ts +0 -29
  945. package/_standalone/lib/config/animation.ts +0 -76
  946. package/_standalone/lib/config/icon-scale.ts +0 -35
  947. package/_standalone/lib/config/panel-sizes.ts +0 -58
  948. package/_standalone/lib/core/types.ts +0 -53
  949. package/_standalone/lib/daily-echo/aggregator.ts +0 -149
  950. package/_standalone/lib/daily-echo/ask-llm.ts +0 -77
  951. package/_standalone/lib/daily-echo/config.ts +0 -72
  952. package/_standalone/lib/daily-echo/generator.ts +0 -192
  953. package/_standalone/lib/daily-echo/prompts.ts +0 -200
  954. package/_standalone/lib/daily-echo/snapshot.ts +0 -19
  955. package/_standalone/lib/daily-echo/types.ts +0 -340
  956. package/_standalone/lib/db/daily-echo-db.ts +0 -194
  957. package/_standalone/lib/echo-insight-prompt.ts +0 -38
  958. package/_standalone/lib/hooks/useDirectoryDragDrop.ts +0 -94
  959. package/_standalone/lib/hooks/useFocusTrap.ts +0 -65
  960. package/_standalone/lib/hooks/usePinnedFiles.ts +0 -95
  961. package/_standalone/lib/i18n/_core.ts +0 -22
  962. package/_standalone/lib/im/adapters/dingtalk.ts +0 -210
  963. package/_standalone/lib/im/adapters/discord.ts +0 -128
  964. package/_standalone/lib/im/adapters/feishu.ts +0 -248
  965. package/_standalone/lib/im/adapters/qq.ts +0 -176
  966. package/_standalone/lib/im/adapters/slack.ts +0 -150
  967. package/_standalone/lib/im/adapters/telegram.ts +0 -156
  968. package/_standalone/lib/im/adapters/wechat.ts +0 -127
  969. package/_standalone/lib/im/adapters/wecom.ts +0 -160
  970. package/_standalone/lib/im/index.ts +0 -122
  971. package/_standalone/lib/im/platforms.ts +0 -152
  972. package/_standalone/lib/image.ts +0 -47
  973. package/_standalone/lib/inbox-upload.ts +0 -260
  974. package/_standalone/lib/mcp-snippets.ts +0 -107
  975. package/_standalone/lib/obsidian-compat/command-registry.ts +0 -85
  976. package/_standalone/lib/obsidian-compat/component.ts +0 -84
  977. package/_standalone/lib/obsidian-compat/errors.ts +0 -27
  978. package/_standalone/lib/obsidian-compat/events.ts +0 -50
  979. package/_standalone/lib/obsidian-compat/index.ts +0 -18
  980. package/_standalone/lib/obsidian-compat/loader.ts +0 -225
  981. package/_standalone/lib/obsidian-compat/manifest.ts +0 -90
  982. package/_standalone/lib/obsidian-compat/plugin-manager.ts +0 -149
  983. package/_standalone/lib/obsidian-compat/shims/app.ts +0 -74
  984. package/_standalone/lib/obsidian-compat/shims/metadata-cache.ts +0 -125
  985. package/_standalone/lib/obsidian-compat/shims/obsidian.ts +0 -25
  986. package/_standalone/lib/obsidian-compat/shims/plugin.ts +0 -111
  987. package/_standalone/lib/obsidian-compat/shims/settings.ts +0 -173
  988. package/_standalone/lib/obsidian-compat/shims/ui.ts +0 -73
  989. package/_standalone/lib/obsidian-compat/shims/vault.ts +0 -247
  990. package/_standalone/lib/obsidian-compat/types.ts +0 -197
  991. package/_standalone/lib/organize-history.ts +0 -80
  992. package/_standalone/lib/parsing/parse-todos.ts +0 -325
  993. package/_standalone/lib/pdf-extract.ts +0 -37
  994. package/_standalone/lib/pi-integration/session-store.ts +0 -62
  995. package/_standalone/lib/renderers/useRendererState.ts +0 -114
  996. package/_standalone/lib/settings-ai-client.ts +0 -36
  997. package/_standalone/lib/space-ai-init.ts +0 -66
  998. package/_standalone/lib/stores/McpStoreInit.tsx +0 -18
  999. package/_standalone/lib/stores/WalkthroughInit.tsx +0 -20
  1000. package/_standalone/lib/stores/hidden-files.ts +0 -43
  1001. package/_standalone/lib/stores/locale-store.ts +0 -69
  1002. package/_standalone/lib/stores/mcp-store.ts +0 -166
  1003. package/_standalone/lib/stores/walkthrough-store.ts +0 -150
  1004. package/_standalone/lib/toast.ts +0 -85
  1005. package/_standalone/lib/utils.ts +0 -45
  1006. package/_standalone/next-env.d.ts +0 -6
  1007. package/_standalone/next.config.ts +0 -44
  1008. package/_standalone/package-lock.json +0 -18646
  1009. package/_standalone/package.json +0 -104
  1010. package/_standalone/postcss.config.mjs +0 -7
  1011. package/_standalone/proxy.ts +0 -88
  1012. package/_standalone/public/file.svg +0 -1
  1013. package/_standalone/public/globe.svg +0 -1
  1014. package/_standalone/public/icons/icon-192.png +0 -0
  1015. package/_standalone/public/icons/icon-512.png +0 -0
  1016. package/_standalone/public/logo-square.svg +0 -37
  1017. package/_standalone/public/logo.svg +0 -37
  1018. package/_standalone/public/manifest.json +0 -26
  1019. package/_standalone/public/next.svg +0 -1
  1020. package/_standalone/public/sw.js +0 -66
  1021. package/_standalone/public/vercel.svg +0 -1
  1022. package/_standalone/public/window.svg +0 -1
  1023. package/_standalone/scripts/extract-pdf.cjs +0 -163
  1024. package/_standalone/scripts/generate-explore.ts +0 -145
  1025. package/_standalone/server.js +0 -38
  1026. package/_standalone/tsconfig.json +0 -34
  1027. package/_standalone/tsconfig.tsbuildinfo +0 -1
  1028. package/_standalone/types/semver.d.ts +0 -8
  1029. package/_standalone/vitest.config.ts +0 -14
@@ -1,849 +0,0 @@
1
- 'use client';
2
-
3
- import { useEffect, useLayoutEffect, useRef, useState, useCallback, useMemo } from 'react';
4
- import { createPortal } from 'react-dom';
5
- import { Send, StopCircle, X, Plus, FileText, ImageIcon } from 'lucide-react';
6
- import { useLocale } from '@/lib/stores/locale-store';
7
- import type { AskMode, Message } from '@/lib/types';
8
- import ModeCapsule, { getPersistedMode } from '@/components/ask/ModeCapsule';
9
- import { useAskSession } from '@/hooks/useAskSession';
10
- import { useFileUpload } from '@/hooks/useFileUpload';
11
- import { useImageUpload } from '@/hooks/useImageUpload';
12
- import { useMention } from '@/hooks/useMention';
13
- import { useSlashCommand } from '@/hooks/useSlashCommand';
14
- import type { SlashItem } from '@/hooks/useSlashCommand';
15
- import MessageList from '@/components/ask/MessageList';
16
- import MentionPopover from '@/components/ask/MentionPopover';
17
- import SlashCommandPopover from '@/components/ask/SlashCommandPopover';
18
- import SessionHistory from '@/components/ask/SessionHistory';
19
- import SessionHistoryPanel from '@/components/ask/SessionHistoryPanel';
20
- import AskHeader from '@/components/ask/AskHeader';
21
- import FileChip from '@/components/ask/FileChip';
22
- import AgentSelectorCapsule from '@/components/ask/AgentSelectorCapsule';
23
- import ProviderModelCapsule, { getPersistedProviderModel } from '@/components/ask/ProviderModelCapsule';
24
- import type { ProviderId } from '@/lib/agent/providers';
25
- import { useAskChat } from '@/hooks/useAskChat';
26
- import { getSelectedAcpAgentFromMessage, resolveComposerAgent } from '@/lib/ask-agent';
27
- import { cn } from '@/lib/utils';
28
- import { useAcpDetection } from '@/hooks/useAcpDetection';
29
- import type { AcpAgentSelection } from '@/hooks/useAskModal';
30
-
31
- /** Textarea auto-grows with content up to this many visible lines, then scrolls */
32
- const TEXTAREA_MAX_VISIBLE_LINES = 8;
33
-
34
- /** Per-element cached metrics to avoid getComputedStyle on every keystroke */
35
- const _metricsCache = new WeakMap<HTMLTextAreaElement, { maxH: number }>();
36
-
37
- /** Auto-size textarea height to fit content, capped at maxVisibleLines */
38
- function syncTextareaToContent(el: HTMLTextAreaElement, maxVisibleLines: number): void {
39
- let cached = _metricsCache.get(el);
40
- if (!cached) {
41
- const style = getComputedStyle(el);
42
- const parsedLh = parseFloat(style.lineHeight);
43
- const parsedFs = parseFloat(style.fontSize);
44
- const fontSize = Number.isFinite(parsedFs) ? parsedFs : 14;
45
- const lineHeight = Number.isFinite(parsedLh) ? parsedLh : fontSize * 1.375;
46
- const pad =
47
- (Number.isFinite(parseFloat(style.paddingTop)) ? parseFloat(style.paddingTop) : 0) +
48
- (Number.isFinite(parseFloat(style.paddingBottom)) ? parseFloat(style.paddingBottom) : 0);
49
- const maxH = lineHeight * maxVisibleLines + pad;
50
- if (!Number.isFinite(maxH) || maxH <= 0) return;
51
- cached = { maxH };
52
- _metricsCache.set(el, cached);
53
- }
54
- const { maxH } = cached;
55
- el.style.height = 'auto';
56
- const contentH = el.scrollHeight;
57
- const next = Math.min(contentH, maxH);
58
- el.style.height = `${next}px`;
59
- el.style.overflowY = contentH > maxH ? 'auto' : 'hidden';
60
- }
61
-
62
- interface AskContentProps {
63
- /** Controls visibility — 'open' for modal, 'active' for panel */
64
- visible: boolean;
65
- currentFile?: string;
66
- initialMessage?: string;
67
- /** ACP agent pre-selected via "Use" button from A2A tab */
68
- initialAcpAgent?: AcpAgentSelection | null;
69
- onFirstMessage?: () => void;
70
- /** 'modal' renders close button + ESC handler; 'panel' renders compact header; 'home' renders embedded on homepage */
71
- variant: 'modal' | 'panel' | 'home';
72
- /** Required for modal variant — called on close button / ESC / backdrop click */
73
- onClose?: () => void;
74
- maximized?: boolean;
75
- onMaximize?: () => void;
76
- /** Current Ask display mode */
77
- askMode?: 'panel' | 'popup';
78
- /** Switch between panel ↔ popup */
79
- onModeSwitch?: () => void;
80
- /** Navigate from fullscreen to right-side panel mode */
81
- onDockToPanel?: () => void;
82
- }
83
-
84
- export default function AskContent({ visible, currentFile, initialMessage, initialAcpAgent, onFirstMessage, variant, onClose, maximized, onMaximize, askMode, onModeSwitch, onDockToPanel }: AskContentProps) {
85
- const isPanel = variant === 'panel';
86
- const isHome = variant === 'home';
87
-
88
- const inputRef = useRef<HTMLTextAreaElement>(null);
89
- const imageInputRef = useRef<HTMLInputElement>(null);
90
- const { t } = useLocale();
91
- const [mounted, setMounted] = useState(false);
92
- useEffect(() => setMounted(true), []);
93
-
94
- const [input, setInput] = useState('');
95
- const inputValueRef = useRef('');
96
- inputValueRef.current = input;
97
- const [attachedFiles, setAttachedFiles] = useState<string[]>([]);
98
- const attachedFilesRef = useRef(attachedFiles);
99
- attachedFilesRef.current = attachedFiles;
100
- const [showHistory, setShowHistory] = useState(false);
101
- const [isDragOver, setIsDragOver] = useState(false);
102
- const [showAttachMenu, setShowAttachMenu] = useState(false);
103
- const attachButtonRef = useRef<HTMLButtonElement>(null);
104
- const attachMenuRef = useRef<HTMLDivElement>(null);
105
- const [attachMenuPos, setAttachMenuPos] = useState<{ top: number; left: number } | null>(null);
106
-
107
- const [selectedSkill, setSelectedSkill] = useState<SlashItem | null>(null);
108
- const selectedSkillRef = useRef(selectedSkill);
109
- selectedSkillRef.current = selectedSkill;
110
- const [selectedAcpAgent, setSelectedAcpAgent] = useState<AcpAgentSelection | null>(null);
111
- const selectedAcpAgentRef = useRef(selectedAcpAgent);
112
- const pendingOpenAgentRef = useRef<AcpAgentSelection | null>(null);
113
- selectedAcpAgentRef.current = selectedAcpAgent;
114
- const [chatMode, setChatMode] = useState<AskMode>('agent');
115
- const [providerOverride, setProviderOverride] = useState<ProviderId | `p_${string}` | null>(null);
116
- const [modelOverride, setModelOverride] = useState<string | null>(null);
117
-
118
- useEffect(() => {
119
- setChatMode(getPersistedMode());
120
- const persisted = getPersistedProviderModel();
121
- setProviderOverride(persisted.provider);
122
- setModelOverride(persisted.model);
123
- }, []);
124
-
125
- const session = useAskSession(currentFile);
126
- const sessionRef = useRef(session);
127
- sessionRef.current = session;
128
- const uploadLabels = useMemo(() => ({ unsupportedType: t.fileImport?.unsupported }), [t]);
129
- const upload = useFileUpload(uploadLabels);
130
- const uploadRef = useRef(upload);
131
- uploadRef.current = upload;
132
- const imageUpload = useImageUpload();
133
- const mention = useMention();
134
- const slash = useSlashCommand();
135
- const acpDetection = useAcpDetection();
136
-
137
- const imageUploadRef = useRef(imageUpload);
138
- imageUploadRef.current = imageUpload;
139
- const mentionRef = useRef(mention);
140
- mentionRef.current = mention;
141
- const slashRef = useRef(slash);
142
- slashRef.current = slash;
143
-
144
- const resetInputState = useCallback(() => {
145
- setInput('');
146
- setSelectedSkill(null);
147
- setAttachedFiles(currentFile ? [currentFile] : []);
148
- uploadRef.current.clearAttachments();
149
- }, [currentFile]);
150
-
151
-
152
- const handleRestoreInput = useCallback((userMessage: Message) => {
153
- setInput(userMessage.content);
154
- if (userMessage.images && userMessage.images.length > 0) {
155
- imageUploadRef.current.clearImages();
156
- }
157
- if (userMessage.attachedFiles) setAttachedFiles(userMessage.attachedFiles);
158
- if (userMessage.skillName) {
159
- slashRef.current.resetSlash();
160
- }
161
- setSelectedAcpAgent(getSelectedAcpAgentFromMessage(userMessage));
162
- setTimeout(() => inputRef.current?.focus(), 50);
163
- }, []);
164
-
165
- const chatRefs = useRef({ inputValueRef, mentionRef, slashRef, imageUploadRef, sessionRef, uploadRef, selectedSkillRef, selectedAcpAgentRef, attachedFilesRef });
166
- const chat = useAskChat({
167
- currentFile,
168
- chatMode,
169
- providerOverride,
170
- modelOverride,
171
- onFirstMessage,
172
- refs: chatRefs.current,
173
- errorLabels: { noResponse: t.ask.errorNoResponse, stopped: t.ask.stopped },
174
- resetInputState,
175
- onRestoreInput: handleRestoreInput,
176
- });
177
- const { isLoading, loadingPhase, reconnectAttempt, reconnectMaxRef } = chat;
178
- const handleSubmit = chat.submit;
179
- const handleStop = chat.stop;
180
-
181
- const handleSelectAcpAgent = useCallback((agent: AcpAgentSelection | null) => {
182
- setSelectedAcpAgent(agent);
183
- session.setSessionDefaultAcpAgent(agent);
184
- }, [session]);
185
- const hasLoadingAttachments = upload.localAttachments.some((f) => f.status === 'loading');
186
- const composerStatusMessage = upload.uploadError || imageUpload.imageError || (hasLoadingAttachments ? (t.ask.uploadsProcessing ?? 'Wait for uploaded files to finish processing before sending.') : '');
187
-
188
- useEffect(() => {
189
- const handler = (e: Event) => {
190
- const files = (e as CustomEvent).detail?.files;
191
- if (Array.isArray(files) && files.length > 0) {
192
- uploadRef.current.injectFiles(files);
193
- }
194
- };
195
- window.addEventListener('mindos:inject-ask-files', handler);
196
- return () => window.removeEventListener('mindos:inject-ask-files', handler);
197
- }, []);
198
-
199
- // Position the attach menu popover above the button (using Portal to avoid clipping)
200
- useEffect(() => {
201
- if (!showAttachMenu || !attachButtonRef.current) {
202
- setAttachMenuPos(null);
203
- return;
204
- }
205
- const rect = attachButtonRef.current.getBoundingClientRect();
206
- setAttachMenuPos({
207
- top: rect.top - 8, // 8px above button
208
- left: rect.left,
209
- });
210
- }, [showAttachMenu]);
211
-
212
- // Close attach menu when clicking outside the button + menu portal.
213
- useEffect(() => {
214
- if (!showAttachMenu) return;
215
- const handlePointerDownOutside = (e: MouseEvent) => {
216
- const target = e.target as Node | null;
217
- if (!target) return;
218
- if (attachButtonRef.current?.contains(target)) return;
219
- if (attachMenuRef.current?.contains(target)) return;
220
- setShowAttachMenu(false);
221
- };
222
- document.addEventListener('mousedown', handlePointerDownOutside);
223
- return () => document.removeEventListener('mousedown', handlePointerDownOutside);
224
- }, [showAttachMenu]);
225
-
226
- // Home suggestion chip click — inject text into input
227
- useEffect(() => {
228
- if (!isHome) return;
229
- const handler = (e: Event) => {
230
- const text = (e as CustomEvent).detail?.text;
231
- if (typeof text === 'string') {
232
- setInput(text);
233
- setTimeout(() => inputRef.current?.focus(), 50);
234
- }
235
- };
236
- window.addEventListener('mindos:home-suggestion', handler);
237
- return () => window.removeEventListener('mindos:home-suggestion', handler);
238
- }, [isHome]);
239
-
240
- // Focus and init session when becoming visible (edge-triggered for panel, level-triggered for modal)
241
- const prevVisibleRef = useRef(false);
242
- const prevFileRef = useRef(currentFile);
243
- useEffect(() => {
244
- const justOpened = variant === 'panel' || variant === 'home'
245
- ? (visible && !prevVisibleRef.current) // panel/home: edge detection
246
- : visible; // modal: level detection (reset every open)
247
-
248
- // Detect file change while panel is already open
249
- const fileChanged = visible && prevVisibleRef.current && currentFile !== prevFileRef.current;
250
-
251
- if (justOpened) {
252
- pendingOpenAgentRef.current = initialAcpAgent ?? null;
253
- setTimeout(() => inputRef.current?.focus(), 50);
254
- void session.initSessions();
255
- setInput(initialMessage || '');
256
- chat.firstMessageFired.current = false;
257
- setAttachedFiles(currentFile ? [currentFile] : []);
258
- upload.clearAttachments();
259
- imageUpload.clearImages();
260
- mention.resetMention();
261
- slash.resetSlash();
262
- setSelectedSkill(null);
263
- setSelectedAcpAgent(initialAcpAgent ?? null);
264
- setShowHistory(false);
265
- } else if (fileChanged) {
266
- // Update attached file context to match new file (don't reset session/messages)
267
- setAttachedFiles(currentFile ? [currentFile] : []);
268
- } else if (!visible && variant === 'modal') {
269
- // Modal: abort streaming on close
270
- chat.abortRef.current?.abort();
271
- }
272
- // Home variant: auto-focus on mount
273
- if (variant === 'home' && visible && !prevVisibleRef.current) {
274
- setTimeout(() => inputRef.current?.focus(), 150);
275
- }
276
- prevVisibleRef.current = visible;
277
- prevFileRef.current = currentFile;
278
- // eslint-disable-next-line react-hooks/exhaustive-deps
279
- }, [visible, currentFile]);
280
-
281
- useEffect(() => {
282
- if (!visible || !session.activeSessionId) return;
283
-
284
- const openerAgent = pendingOpenAgentRef.current;
285
- const restoredAgent = resolveComposerAgent({
286
- sessionAgent: session.activeSession?.defaultAcpAgent ?? null,
287
- initialAgent: openerAgent,
288
- });
289
-
290
- setSelectedAcpAgent(restoredAgent);
291
-
292
- if (openerAgent && !session.activeSession?.defaultAcpAgent && session.activeSession?.messages.length === 0) {
293
- session.setSessionDefaultAcpAgent(openerAgent);
294
- }
295
-
296
- pendingOpenAgentRef.current = null;
297
- }, [
298
- visible,
299
- session.activeSessionId,
300
- session.activeSession?.defaultAcpAgent,
301
- session.activeSession?.messages.length,
302
- session.setSessionDefaultAcpAgent,
303
- ]);
304
-
305
- // Persist session on message changes (skip if last msg is empty assistant placeholder during loading)
306
- const clearPersistTimerRef = useRef(session.clearPersistTimer);
307
- clearPersistTimerRef.current = session.clearPersistTimer;
308
- useEffect(() => {
309
- if (!visible || !session.activeSessionId) return;
310
- const msgs = session.messages;
311
- if (chat.isLoading && msgs.length > 0) {
312
- const last = msgs[msgs.length - 1];
313
- if (last.role === 'assistant' && !last.content.trim() && (!last.parts || last.parts.length === 0)) return;
314
- }
315
- session.persistSession(msgs, session.activeSessionId);
316
- return () => clearPersistTimerRef.current();
317
- // eslint-disable-next-line react-hooks/exhaustive-deps
318
- }, [visible, session.messages, session.activeSessionId, chat.isLoading]);
319
-
320
- // Esc to close modal or exit focus mode (skip for home variant)
321
- useEffect(() => {
322
- if (!visible || variant === 'home') return;
323
- const isModal = variant === 'modal';
324
- const isFocused = variant === 'panel' && maximized;
325
- if (!isModal && !isFocused) return;
326
- const handler = (e: KeyboardEvent) => {
327
- if (e.key === 'Escape') {
328
- if (mentionRef.current.mentionQuery !== null) { mentionRef.current.resetMention(); return; }
329
- if (slashRef.current.slashQuery !== null) { slashRef.current.resetSlash(); return; }
330
- if (isFocused && onMaximize) { onMaximize(); return; }
331
- if (isModal && onClose) { onClose(); }
332
- }
333
- };
334
- window.addEventListener('keydown', handler);
335
- return () => window.removeEventListener('keydown', handler);
336
- }, [variant, visible, onClose, maximized, onMaximize]);
337
-
338
- const formRef = useRef<HTMLFormElement>(null);
339
-
340
- useLayoutEffect(() => {
341
- if (!visible) return;
342
- const el = inputRef.current;
343
- if (!el || !(el instanceof HTMLTextAreaElement)) return;
344
- syncTextareaToContent(el, TEXTAREA_MAX_VISIBLE_LINES);
345
- }, [input, isLoading, visible]);
346
-
347
- useEffect(() => {
348
- const el = inputRef.current;
349
- if (!el) return;
350
- const handler = () => _metricsCache.delete(el);
351
- window.addEventListener('resize', handler);
352
- return () => window.removeEventListener('resize', handler);
353
- }, []);
354
-
355
- const mentionTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
356
- const slashTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
357
- const handleInputChange = useCallback((val: string, cursorPos?: number) => {
358
- setInput(val);
359
- const pos = cursorPos ?? val.length;
360
- if (mentionTimerRef.current) clearTimeout(mentionTimerRef.current);
361
- if (slashTimerRef.current) clearTimeout(slashTimerRef.current);
362
- mentionTimerRef.current = setTimeout(() => mentionRef.current.updateMentionFromInput(val, pos), 80);
363
- slashTimerRef.current = setTimeout(() => slashRef.current.updateSlashFromInput(val, pos), 80);
364
- }, []);
365
-
366
- useEffect(() => {
367
- return () => {
368
- if (mentionTimerRef.current) clearTimeout(mentionTimerRef.current);
369
- if (slashTimerRef.current) clearTimeout(slashTimerRef.current);
370
- };
371
- }, []);
372
-
373
- const selectMention = useCallback((filePath: string) => {
374
- const el = inputRef.current;
375
- const val = inputValueRef.current;
376
- const cursorPos = el?.selectionStart ?? val.length;
377
- const before = val.slice(0, cursorPos);
378
- const atIdx = before.lastIndexOf('@');
379
- const newVal = val.slice(0, atIdx) + val.slice(cursorPos);
380
- setInput(newVal);
381
- mentionRef.current.resetMention();
382
- if (!attachedFilesRef.current.includes(filePath)) {
383
- setAttachedFiles(prev => [...prev, filePath]);
384
- }
385
- setTimeout(() => {
386
- inputRef.current?.focus();
387
- inputRef.current?.setSelectionRange(atIdx, atIdx);
388
- }, 0);
389
- }, []);
390
-
391
- const selectSlashCommand = useCallback((item: SlashItem) => {
392
- const el = inputRef.current;
393
- const val = inputValueRef.current;
394
- const cursorPos = el?.selectionStart ?? val.length;
395
- const before = val.slice(0, cursorPos);
396
- const slashIdx = before.lastIndexOf('/');
397
- const newVal = val.slice(0, slashIdx) + val.slice(cursorPos);
398
- setInput(newVal);
399
- setSelectedSkill(item);
400
- slashRef.current.resetSlash();
401
- setTimeout(() => {
402
- inputRef.current?.focus();
403
- inputRef.current?.setSelectionRange(slashIdx, slashIdx);
404
- }, 0);
405
- }, []);
406
-
407
- const selectMentionRef = useRef(selectMention);
408
- selectMentionRef.current = selectMention;
409
- const selectSlashRef = useRef(selectSlashCommand);
410
- selectSlashRef.current = selectSlashCommand;
411
-
412
- const handleInputKeyDown = useCallback(
413
- (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
414
- const m = mentionRef.current;
415
- const s = slashRef.current;
416
- if (m.mentionQuery !== null) {
417
- if (e.key === 'Escape') {
418
- e.preventDefault();
419
- m.resetMention();
420
- return;
421
- }
422
- if (e.key === 'ArrowDown') {
423
- e.preventDefault();
424
- m.navigateMention('down');
425
- } else if (e.key === 'ArrowUp') {
426
- e.preventDefault();
427
- m.navigateMention('up');
428
- } else if (e.key === 'Enter' || e.key === 'Tab') {
429
- if (e.key === 'Enter' && (e.shiftKey || e.nativeEvent.isComposing)) return;
430
- if (m.mentionResults.length > 0) {
431
- e.preventDefault();
432
- selectMentionRef.current(m.mentionResults[m.mentionIndex]);
433
- }
434
- }
435
- return;
436
- }
437
- if (s.slashQuery !== null) {
438
- if (e.key === 'Escape') {
439
- e.preventDefault();
440
- s.resetSlash();
441
- return;
442
- }
443
- if (e.key === 'ArrowDown') {
444
- e.preventDefault();
445
- s.navigateSlash('down');
446
- } else if (e.key === 'ArrowUp') {
447
- e.preventDefault();
448
- s.navigateSlash('up');
449
- } else if (e.key === 'Enter' || e.key === 'Tab') {
450
- if (e.key === 'Enter' && (e.shiftKey || e.nativeEvent.isComposing)) return;
451
- if (s.slashResults.length > 0) {
452
- e.preventDefault();
453
- selectSlashRef.current(s.slashResults[s.slashIndex]);
454
- }
455
- }
456
- return;
457
- }
458
- if (e.key === 'Enter' && !e.shiftKey && !e.nativeEvent.isComposing && !chat.isLoadingRef.current && (inputValueRef.current.trim() || imageUploadRef.current.images.length > 0)) {
459
- e.preventDefault();
460
- (e.currentTarget as HTMLTextAreaElement).form?.requestSubmit();
461
- }
462
- },
463
- [],
464
- );
465
-
466
- const handleResetSession = useCallback(() => {
467
- if (chat.isLoadingRef.current) return;
468
- sessionRef.current.resetSession();
469
- setInput('');
470
- setAttachedFiles(currentFile ? [currentFile] : []);
471
- uploadRef.current.clearAttachments();
472
- imageUploadRef.current.clearImages();
473
- mentionRef.current.resetMention();
474
- slashRef.current.resetSlash();
475
- setSelectedSkill(null);
476
- setSelectedAcpAgent(null);
477
- pendingOpenAgentRef.current = null;
478
- setShowHistory(false);
479
- chat.firstMessageFired.current = false;
480
- setTimeout(() => inputRef.current?.focus(), 0);
481
- }, [currentFile]);
482
-
483
- const handleDragOver = useCallback((e: React.DragEvent) => {
484
- // Accept mindos file paths and image drops
485
- if (e.dataTransfer.types.includes('text/mindos-path') || e.dataTransfer.types.includes('Files')) {
486
- e.preventDefault();
487
- e.stopPropagation();
488
- e.dataTransfer.dropEffect = 'copy';
489
- setIsDragOver(true);
490
- }
491
- }, []);
492
-
493
- const handleDragLeave = useCallback(() => setIsDragOver(false), []);
494
-
495
- const handleDrop = useCallback((e: React.DragEvent) => {
496
- e.preventDefault();
497
- e.stopPropagation();
498
- setIsDragOver(false);
499
- const filePath = e.dataTransfer.getData('text/mindos-path');
500
- if (filePath) {
501
- const pathType = e.dataTransfer.getData('text/mindos-type');
502
- const key = pathType === 'directory' ? filePath.replace(/\/?$/, '/') : filePath;
503
- if (!attachedFilesRef.current.includes(key)) {
504
- setAttachedFiles(prev => [...prev, key]);
505
- }
506
- return;
507
- }
508
- const files = e.dataTransfer.files;
509
- if (files.length > 0) {
510
- const hasImages = Array.from(files).some(f => f.type.startsWith('image/'));
511
- const nonImageFiles = Array.from(files).filter(f => !f.type.startsWith('image/'));
512
- // Fire-and-forget with error handling to prevent unhandled rejections
513
- void (async () => {
514
- try {
515
- if (hasImages) await imageUploadRef.current.handleDrop(e);
516
- if (nonImageFiles.length > 0) {
517
- const dt = new DataTransfer();
518
- nonImageFiles.forEach(f => dt.items.add(f));
519
- await uploadRef.current.pickFiles(dt.files);
520
- }
521
- } catch (err) {
522
- console.warn('[AskContent] Drop file processing failed:', err);
523
- }
524
- })();
525
- }
526
- }, []);
527
-
528
- const handlePaste = useCallback((e: React.ClipboardEvent) => {
529
- const items = e.clipboardData?.items;
530
- if (!items) return;
531
- const hasImageItem = Array.from(items).some(
532
- item => item.kind === 'file' && item.type.startsWith('image/')
533
- );
534
- if (hasImageItem) {
535
- e.preventDefault();
536
- void imageUploadRef.current.handlePaste(e);
537
- }
538
- }, []);
539
-
540
- const handleLoadSession = useCallback((id: string) => {
541
- if (chat.isLoadingRef.current) return; // Don't switch sessions during streaming
542
- const targetSession = session.sessions.find((item) => item.id === id) ?? null;
543
- sessionRef.current.loadSession(id);
544
- setShowHistory(false);
545
- setInput('');
546
- setAttachedFiles(currentFile ? [currentFile] : []);
547
- uploadRef.current.clearAttachments();
548
- imageUploadRef.current.clearImages();
549
- mentionRef.current.resetMention();
550
- slashRef.current.resetSlash();
551
- setSelectedSkill(null);
552
- setSelectedAcpAgent(targetSession?.defaultAcpAgent ?? null);
553
- setTimeout(() => inputRef.current?.focus(), 0);
554
- }, [currentFile, session.sessions]);
555
-
556
- const toggleHistory = useCallback(() => setShowHistory(v => !v), []);
557
- const inputIconSize = 15;
558
- const messageLabels = useMemo(() => ({
559
- connecting: t.ask.connecting,
560
- thinking: t.ask.thinking,
561
- generating: t.ask.generating,
562
- reconnecting: reconnectAttempt > 0 ? t.ask.reconnecting(reconnectAttempt, reconnectMaxRef.current) : undefined,
563
- copyMessage: t.ask.copyMessage,
564
- }), [t, reconnectAttempt]);
565
-
566
- const handleProviderChange = useCallback((p: ProviderId | `p_${string}` | null) => {
567
- setProviderOverride(p);
568
- setModelOverride(null);
569
- }, []);
570
-
571
- return (
572
- <div className="flex min-h-0 w-full flex-col h-full">
573
- {/* Header — home variant shows session switcher + new/history/fullscreen buttons */}
574
- <AskHeader
575
- isPanel={isPanel || isHome}
576
- showHistory={showHistory}
577
- onToggleHistory={toggleHistory}
578
- onReset={handleResetSession}
579
- isLoading={isLoading}
580
- maximized={maximized}
581
- onMaximize={isHome ? onMaximize : onMaximize}
582
- askMode={isHome ? undefined : askMode}
583
- onModeSwitch={isHome ? undefined : onModeSwitch}
584
- onClose={isHome ? undefined : onClose}
585
- onDockToPanel={maximized ? onDockToPanel : undefined}
586
- sessions={session.sessions}
587
- activeSessionId={session.activeSessionId}
588
- onLoadSession={handleLoadSession}
589
- onDeleteSession={session.deleteSession}
590
- onRenameSession={session.renameSession}
591
- onTogglePinSession={session.togglePinSession}
592
- messages={session.messages}
593
- />
594
-
595
- {showHistory && (
596
- <SessionHistoryPanel
597
- sessions={session.sessions}
598
- activeSessionId={session.activeSessionId}
599
- onLoad={handleLoadSession}
600
- onDelete={session.deleteSession}
601
- onRename={session.renameSession}
602
- onTogglePin={session.togglePinSession}
603
- onClearAll={session.clearAllSessions}
604
- onClose={() => setShowHistory(false)}
605
- onNewChat={handleResetSession}
606
- />
607
- )}
608
-
609
- {!showHistory && (
610
- <>
611
- {/* Messages — home variant hides empty state unless maximized (suggestions rendered externally in normal mode) */}
612
- <div className="flex-1 min-h-0 flex flex-col">
613
- {!isHome && (
614
- <MessageList
615
- messages={session.messages}
616
- isLoading={isLoading}
617
- loadingPhase={loadingPhase}
618
- emptyPrompt={t.ask.emptyPrompt}
619
- emptyHint={t.ask.emptyHint}
620
- suggestions={t.ask.suggestions}
621
- onSuggestionClick={setInput}
622
- labels={messageLabels}
623
- />
624
- )}
625
- {isHome && (session.messages.length > 0 || maximized) && (
626
- <MessageList
627
- messages={session.messages}
628
- isLoading={isLoading}
629
- loadingPhase={loadingPhase}
630
- emptyPrompt={t.ask.emptyPrompt}
631
- emptyHint={t.ask.emptyHint}
632
- suggestions={maximized && session.messages.length === 0 ? t.ask.suggestions : []}
633
- onSuggestionClick={setInput}
634
- labels={messageLabels}
635
- />
636
- )}
637
- </div>
638
-
639
- {/* Popovers — flex children so they stay within overflow boundary (absolute positioning would be clipped by RightAskPanel's overflow-hidden) */}
640
- {mention.mentionQuery !== null && mention.mentionResults.length > 0 && (
641
- <div className="shrink-0 px-3 pb-1">
642
- <MentionPopover
643
- results={mention.mentionResults}
644
- selectedIndex={mention.mentionIndex}
645
- query={mention.mentionQuery ?? undefined}
646
- onSelect={selectMention}
647
- />
648
- </div>
649
- )}
650
-
651
- {slash.slashQuery !== null && slash.slashResults.length > 0 && (
652
- <div className="shrink-0 px-3 pb-1">
653
- <SlashCommandPopover
654
- results={slash.slashResults}
655
- selectedIndex={slash.slashIndex}
656
- query={slash.slashQuery ?? undefined}
657
- onSelect={selectSlashCommand}
658
- />
659
- </div>
660
- )}
661
-
662
- {/* Composer card — unified input area */}
663
- <div className={cn('shrink-0', isHome ? 'px-2 pb-2 pt-0.5' : 'px-3 pb-2.5 pt-1')}>
664
- <div
665
- className={cn(
666
- 'rounded-xl bg-muted/40 transition-all focus-within:bg-muted/60',
667
- isDragOver && 'ring-2 ring-[var(--amber)] bg-[var(--amber-dim)]',
668
- )}
669
- onDragOver={handleDragOver}
670
- onDragLeave={handleDragLeave}
671
- onDrop={handleDrop}
672
- >
673
- {/* Unified context chip flow */}
674
- {(attachedFiles.length > 0 || upload.localAttachments.length > 0 || imageUpload.images.length > 0 || selectedSkill || selectedAcpAgent || upload.uploadError || imageUpload.imageError) && (
675
- <div className={cn('px-3 pt-2.5 pb-1', isPanel ? 'max-h-24 overflow-y-auto' : 'max-h-28 overflow-y-auto')}>
676
- <div className="flex flex-wrap gap-1.5">
677
- {attachedFiles.map(f => (
678
- <FileChip key={f} path={f} variant="kb" onRemove={() => setAttachedFiles(prev => prev.filter(x => x !== f))} />
679
- ))}
680
- {upload.localAttachments.map((f, idx) => (
681
- <FileChip key={`up-${f.name}-${idx}`} path={f.name} variant="upload" status={f.status} error={f.error} truncatedInfo={f.truncatedInfo} onRemove={() => upload.removeAttachment(idx)} />
682
- ))}
683
- {imageUpload.images.map((img, idx) => (
684
- <FileChip
685
- key={`img-${idx}`}
686
- path={img.fileName || `Image ${idx + 1}`}
687
- variant="image"
688
- imageData={img.data}
689
- imageMime={img.mimeType}
690
- onRemove={() => imageUpload.removeImage(idx)}
691
- />
692
- ))}
693
- {selectedSkill && (
694
- <FileChip
695
- path={selectedSkill.name}
696
- variant="skill"
697
- onRemove={() => { setSelectedSkill(null); inputRef.current?.focus(); }}
698
- />
699
- )}
700
- {selectedAcpAgent && (
701
- <FileChip
702
- path={typeof selectedAcpAgent === 'object' && 'name' in selectedAcpAgent ? (selectedAcpAgent as { name: string }).name : 'Remote Agent'}
703
- variant="agent"
704
- onRemove={() => { handleSelectAcpAgent(null); inputRef.current?.focus(); }}
705
- />
706
- )}
707
- </div>
708
- {composerStatusMessage && (
709
- <div className="mt-1 text-xs text-error">{composerStatusMessage}</div>
710
- )}
711
- </div>
712
- )}
713
-
714
- {/* Input form */}
715
- <form
716
- ref={formRef}
717
- onSubmit={handleSubmit}
718
- className={cn('flex items-end gap-1.5', isHome ? 'px-2 py-1.5' : 'px-3 py-2')}
719
- >
720
- {/* + attach button with mini menu */}
721
- <div className="relative shrink-0">
722
- <button
723
- ref={attachButtonRef}
724
- type="button"
725
- onClick={() => setShowAttachMenu(v => !v)}
726
- className="p-2 rounded-lg text-muted-foreground hover:text-foreground hover:bg-muted/60 transition-colors"
727
- title={t.hints.attachFile}
728
- >
729
- <Plus size={inputIconSize} />
730
- </button>
731
- </div>
732
-
733
- {/* Attach menu rendered as Portal to avoid clipping by overflow-hidden parent */}
734
- {mounted && showAttachMenu && attachMenuPos && createPortal(
735
- <div
736
- ref={attachMenuRef}
737
- className="fixed py-1 rounded-xl border border-border/60 bg-card shadow-lg z-50 min-w-[150px] animate-in fade-in-0 slide-in-from-bottom-2 duration-150"
738
- style={{
739
- top: `${attachMenuPos.top}px`,
740
- left: `${attachMenuPos.left}px`,
741
- transform: 'translateY(-100%)', // Position above the button
742
- }}
743
- onClick={(e) => e.stopPropagation()}
744
- >
745
- <button
746
- type="button"
747
- className="flex w-full items-center gap-2.5 px-3 py-2 text-xs hover:bg-muted transition-colors text-left rounded-lg"
748
- onClick={() => { upload.uploadInputRef.current?.click(); setShowAttachMenu(false); }}
749
- >
750
- <FileText size={12} className="shrink-0 text-muted-foreground" />
751
- {t.ask.attachFileLabel}
752
- </button>
753
- <button
754
- type="button"
755
- className="flex w-full items-center gap-2.5 px-3 py-2 text-xs hover:bg-muted transition-colors text-left rounded-lg"
756
- onClick={() => { imageInputRef.current?.click(); setShowAttachMenu(false); }}
757
- >
758
- <ImageIcon size={12} className="shrink-0 text-muted-foreground" />
759
- {t.ask.attachImageLabel}
760
- </button>
761
- </div>,
762
- document.body
763
- )}
764
-
765
- <input
766
- ref={upload.uploadInputRef}
767
- type="file"
768
- className="hidden"
769
- multiple
770
- accept=".txt,.md,.markdown,.csv,.json,.yaml,.yml,.xml,.html,.htm,.pdf,text/plain,text/markdown,text/csv,application/json,application/pdf"
771
- onChange={async (e) => {
772
- const inputEl = e.currentTarget;
773
- await upload.pickFiles(inputEl.files);
774
- inputEl.value = '';
775
- }}
776
- />
777
- <input
778
- ref={imageInputRef}
779
- type="file"
780
- className="hidden"
781
- multiple
782
- accept="image/png,image/jpeg,image/gif,image/webp"
783
- onChange={async (e) => {
784
- const inputEl = e.currentTarget;
785
- await imageUpload.handleFileSelect(inputEl.files);
786
- inputEl.value = '';
787
- }}
788
- />
789
-
790
- <textarea
791
- ref={(el) => {
792
- inputRef.current = el;
793
- }}
794
- value={input}
795
- onChange={e => handleInputChange(e.target.value, e.target.selectionStart ?? undefined)}
796
- onKeyDown={handleInputKeyDown}
797
- onPaste={handlePaste}
798
- placeholder={t.ask.placeholder}
799
- rows={1}
800
- className={cn('min-w-0 flex-1 resize-none overflow-y-hidden bg-transparent py-2 leading-relaxed text-foreground placeholder:text-muted-foreground/50 outline-none focus-visible:ring-0', isHome ? 'text-xs' : 'text-sm')}
801
- />
802
-
803
- {isLoading ? (
804
- <button type="button" onClick={handleStop} className="p-2 rounded-xl transition-colors shrink-0 text-foreground bg-muted hover:bg-muted/80" title={loadingPhase === 'reconnecting' ? t.ask.cancelReconnect : t.ask.stopTitle}>
805
- {loadingPhase === 'reconnecting' ? <X size={inputIconSize} /> : <StopCircle size={inputIconSize} />}
806
- </button>
807
- ) : (
808
- <button type="submit" title={hasLoadingAttachments ? (t.ask.uploadsProcessing ?? 'Wait for uploaded files to finish processing before sending.') : t.ask.send} disabled={hasLoadingAttachments || (!input.trim() && imageUpload.images.length === 0)} className="p-2 rounded-xl disabled:opacity-20 disabled:scale-95 disabled:cursor-not-allowed transition-all duration-150 shrink-0 bg-[var(--amber)] text-[var(--amber-foreground)] shadow-sm shadow-[var(--amber)]/15 hover:shadow-md hover:shadow-[var(--amber)]/20 active:scale-95">
809
- <Send size={14} />
810
- </button>
811
- )}
812
- </form>
813
-
814
- {/* Mode + Agent + Provider selector row + keyboard hint */}
815
- <div className={cn('flex items-center justify-between border-t border-border/10', isPanel ? 'px-2 pb-1.5 pt-1 gap-1' : 'px-3 pb-2 pt-1.5')}>
816
- <div className={cn('flex items-center flex-wrap', isPanel ? 'gap-1' : 'gap-2')}>
817
- <ModeCapsule mode={chatMode} onChange={setChatMode} disabled={isLoading} />
818
- {mounted && acpDetection.installedAgents.length > 0 && (
819
- <AgentSelectorCapsule
820
- selectedAgent={selectedAcpAgent}
821
- onSelect={handleSelectAcpAgent}
822
- installedAgents={acpDetection.installedAgents}
823
- loading={acpDetection.loading}
824
- />
825
- )}
826
- {mounted && (
827
- <ProviderModelCapsule
828
- providerValue={providerOverride}
829
- onProviderChange={handleProviderChange}
830
- modelValue={modelOverride}
831
- onModelChange={setModelOverride}
832
- disabled={isLoading}
833
- />
834
- )}
835
- </div>
836
- {/* Keyboard hint — hidden in panel (too narrow) and home (compact) */}
837
- {!isPanel && !isHome && (
838
- <span className="hidden md:inline text-2xs text-muted-foreground/40 select-none shrink-0">
839
- <kbd className="font-mono">Enter</kbd> {t.ask.send} · <kbd className="font-mono">Shift+Enter</kbd> {t.ask.newlineHint}
840
- </span>
841
- )}
842
- </div>
843
- </div>
844
- </div>
845
- </>
846
- )}
847
- </div>
848
- );
849
- }