@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,48 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5331],{439:(e,t,s)=>{s.d(t,{A:()=>r});let r=(0,s(90425).A)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]])},5331:(e,t,s)=>{s.r(t),s.d(t,{default:()=>tu});var r=s(95155),a=s(12115),n=s(86901),l=s(68806),o=s(89363),i=s(90425);let d=(0,i.A)("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]);var c=s(91958),u=s(6962),m=s(68459),x=s(13545),p=s(6296),h=s(9199),g=s(12651),b=s(33210),f=s(94961),v=s(73321),j=s(35581),y=s(22356),N=s(22164),k=s(49619),w=s(92972),S=s(20171),C=s(47376),A=s(51842),z=s(79704),T=s(60112);function M({form:e,t,locale:s,layout:a="full"}){let n=C.T_[e.protocol],l="zh"===s?"名称":"Name",o="zh"===s?"协议":"Protocol",i="zh"===s?"输入名称":"Enter name",d=e.isDuplicateName?"zh"===s?"名称已存在":"Name already exists":void 0;return(0,r.jsxs)("div",{className:"space-y-3",children:["compact"===a?(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsx)(S.D0,{label:l,hint:d,hintError:e.isDuplicateName,children:(0,r.jsx)(S.pd,{value:e.name,onChange:t=>e.setName(t.target.value),placeholder:i,autoFocus:!0})}),(0,r.jsx)(S.D0,{label:o,children:(0,r.jsx)(S.l6,{value:e.protocol,onChange:t=>e.setProtocol(t.target.value),children:C.jt.map(e=>(0,r.jsx)("option",{value:e,children:"zh"===s?C.T_[e].nameZh:C.T_[e].name},e))})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(S.D0,{label:l,hint:d,hintError:e.isDuplicateName,children:(0,r.jsx)(S.pd,{value:e.name,onChange:t=>e.setName(t.target.value),placeholder:i})}),(0,r.jsx)(S.D0,{label:o,children:(0,r.jsx)(S.l6,{value:e.protocol,onChange:t=>e.setProtocol(t.target.value),children:C.jt.map(e=>(0,r.jsx)("option",{value:e,children:"zh"===s?C.T_[e].nameZh:C.T_[e].name},e))})})]}),(0,r.jsx)(S.D0,{label:"Base URL",children:(0,r.jsx)(S.pd,{value:e.baseUrl,onChange:t=>e.setBaseUrl(t.target.value),placeholder:n.fixedBaseUrl||"https://api.example.com/v1"})}),(0,r.jsx)(S.D0,{label:(0,r.jsxs)(r.Fragment,{children:["API Key ",(0,r.jsx)("span",{className:"text-muted-foreground/50 font-normal",children:"zh"===s?"(可选)":"(optional)"})]}),children:(0,r.jsx)(S.yA,{value:e.apiKey,onChange:e.setApiKey,placeholder:"sk-..."})}),(0,r.jsx)(S.D0,{label:"zh"===s?"模型":"Model",children:(0,r.jsx)(z.A,{value:e.model,onChange:e.setModel,placeholder:n.defaultModel,provider:e.protocol,apiKey:e.apiKey,baseUrl:e.baseUrl,supportsListModels:!!e.baseUrl.trim(),allowNoKey:!0,browseLabel:t.settings.ai.listModels,noModelsLabel:t.settings.ai.noModelsFound})})]})}var E=s(94514),R=s(53961);function I({result:e,disabled:t,onTest:s,t:a}){let n="testing"===e.state,l="ok"===e.state,o="error"===e.state;return(0,r.jsxs)("button",{type:"button",disabled:t||n,onClick:s,className:`inline-flex items-center gap-1.5 px-3.5 py-1.5 text-sm font-medium rounded-lg transition-all duration-200 disabled:cursor-not-allowed ${l?"bg-success/10 text-success border border-success/20":o?"bg-destructive/8 text-destructive border border-destructive/20 hover:bg-destructive/12":"border border-border text-muted-foreground hover:text-foreground hover:border-foreground/20 disabled:opacity-40"}`,children:[n?(0,r.jsx)(p.A,{size:13,className:"animate-spin"}):l?(0,r.jsx)(E.A,{size:13}):o?(0,r.jsx)(x.A,{size:13}):(0,r.jsx)(R.A,{size:13}),n?a.settings.ai.testKeyTesting:l&&null!=e.latency?a.settings.ai.testKeyOk(e.latency):o?function(e,t){switch(t){case"auth_error":return e.settings.ai.testKeyAuthError;case"model_not_found":return e.settings.ai.testKeyModelNotFound;case"endpoint_error":return e.settings.ai.testKeyEndpointError;case"rate_limited":return e.settings.ai.testKeyRateLimited;case"network_error":return e.settings.ai.testKeyNetworkError;default:return e.settings.ai.testKeyUnknown}}(a,e.code):a.settings.ai.testKey]})}var P=s(41585),U=s(4235);let D={checking:!1,available:null,isSelf:!1,suggestion:null};function $({label:e,hint:t,value:s,onChange:n,status:l,onCheckPort:o,m:i}){let d=(0,a.useRef)(void 0);return(0,a.useEffect)(()=>()=>clearTimeout(d.current),[]),(0,r.jsxs)("div",{className:"space-y-1",children:[e&&(0,r.jsx)("label",{className:"text-xs font-medium text-foreground",children:e}),t&&(0,r.jsx)("p",{className:"text-2xs text-muted-foreground",children:t}),(0,r.jsx)("input",{type:"number",min:1024,max:65535,value:s,onChange:e=>{let t=parseInt(e.target.value,10)||s;n(t),clearTimeout(d.current),t>=1024&&t<=65535&&(d.current=setTimeout(()=>o(t),500))},onBlur:()=>{clearTimeout(d.current),s>=1024&&s<=65535&&o(s)},className:"w-full px-2.5 py-1.5 text-sm rounded-lg border border-border bg-muted/30 text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring tabular-nums"}),l.checking&&(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-muted-foreground",children:[(0,r.jsx)(p.A,{size:11,className:"animate-spin"})," ",i.portChecking]}),!l.checking&&!1===l.available&&!l.invalid&&(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-[var(--amber)]",children:[(0,r.jsx)(P.A,{size:11})," ",i.portInUse(s)]}),null!==l.suggestion&&(0,r.jsx)("button",{type:"button",onClick:()=>{n(l.suggestion),setTimeout(()=>o(l.suggestion),0)},className:"text-xs px-2 py-0.5 rounded border border-[var(--amber)] text-[var(--amber)] transition-colors hover:bg-[var(--amber-subtle)]",children:i.portSuggest(l.suggestion)})]}),!l.checking&&l.invalid&&(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-destructive",children:[(0,r.jsx)(P.A,{size:11})," 1024 – 65535"]}),!l.checking&&!0===l.available&&(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-success",children:[(0,r.jsx)(g.A,{size:11})," ",l.isSelf?i.portSelf:i.portAvailable]})]})}function F({message:e,sub:t}){return(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"text-center space-y-4 max-w-sm px-6",children:[(0,r.jsx)(p.A,{size:32,className:"animate-spin mx-auto text-[var(--amber)]"}),(0,r.jsx)("p",{className:"text-sm font-medium text-foreground",children:e}),t&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:t})]})})}function L({m:e}){let[t,s]=(0,a.useState)(0),[n,l]=(0,a.useState)(0),[o,i]=(0,a.useState)(D),[d,c]=(0,a.useState)(!1),[u,m]=(0,a.useState)(null),[x,p]=(0,a.useState)(void 0),h=(0,a.useRef)(void 0);(0,a.useEffect)(()=>{(0,y.n)("/api/settings").then(e=>{let t=e.port||3456;s(t),l(t)}).catch(()=>{})},[]),(0,a.useEffect)(()=>()=>clearInterval(h.current),[]);let g=n!==t,b=n<1024||n>65535,f=o.checking||!1===o.available&&!o.isSelf,v=(0,a.useCallback)(async e=>{if(e<1024||e>65535)return void i({...D,available:!1,invalid:!0});i({...D,checking:!0});try{let t=await (0,y.n)("/api/setup/check-port",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:e})});i({checking:!1,available:t.available,isSelf:t.isSelf??!1,suggestion:t.suggestion??null})}catch{i(D)}},[]),j=async()=>{if(g&&!b&&!f&&!d){c(!0);try{let t=await (0,y.n)("/api/setup/check-port",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:n})});if(!t.available&&!t.isSelf){i({checking:!1,available:!1,isSelf:!1,suggestion:t.suggestion??null}),c(!1),U.oR.error(e.portInUse(n));return}await (0,y.n)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:n})}),m(e.portWebRestarting),p(e.portRedirecting);try{await (0,y.n)("/api/restart",{method:"POST"})}catch{}let s=`${window.location.protocol}//${window.location.hostname}:${n}`,r=Date.now()+3e4;h.current=setInterval(async()=>{if(Date.now()>r){clearInterval(h.current),m(null),c(!1),U.oR.error(e.portRestartTimeout);return}try{(await fetch(`${s}/api/health`,{signal:AbortSignal.timeout(2e3)})).ok&&(clearInterval(h.current),window.location.href=s)}catch{}},1500)}catch{c(!1),U.oR.error(e.portUpdateFailed)}}};return 0===t?null:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-card overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2.5 px-4 pt-4 pb-3",children:[(0,r.jsx)("div",{className:"w-7 h-7 rounded-lg bg-muted flex items-center justify-center shrink-0",children:(0,r.jsx)(w.A,{size:14,className:"text-muted-foreground"})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:e.webPortLabel}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground",children:e.webPortHint})]})]}),(0,r.jsxs)("div",{className:"px-4 pb-4 space-y-3",children:[(0,r.jsx)($,{label:"",hint:"",value:n,onChange:e=>{l(e),i(D)},status:o,onCheckPort:v,m:e}),(0,r.jsx)("button",{type:"button",onClick:j,disabled:!g||b||f||d,className:"w-full py-2 rounded-lg text-xs font-medium transition-colors bg-[var(--amber)] text-[var(--amber-foreground)] hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:d?e.portUpdating:e.portUpdateBtn})]})]}),u&&(0,r.jsx)(F,{message:u,sub:x})]})}function O({data:e,updateAi:t,updateAgent:s,t:l}){let{locale:o}=(0,j.Y)(),i=e.envOverrides??{},d=e.ai.providers.find(t=>t.id===e.ai.activeProvider),c=d?C.T_[d.protocol]:null,[u,m]=(0,a.useState)({}),[p,h]=(0,a.useState)(!1),g=(0,a.useRef)(void 0),b=(0,a.useRef)(e.ai.activeProvider);(0,a.useEffect)(()=>{b.current!==e.ai.activeProvider&&(b.current=e.ai.activeProvider,m({}),g.current&&(clearTimeout(g.current),g.current=void 0))},[e.ai.activeProvider]),(0,a.useEffect)(()=>()=>{g.current&&clearTimeout(g.current)},[]),(0,a.useEffect)(()=>{let t=e.agent?.reconnectRetries??3;try{localStorage.setItem("mindos-reconnect-retries",String(t))}catch(e){console.warn("[AiTab] localStorage setItem reconnectRetries failed:",e)}},[e.agent?.reconnectRetries]);let f=(0,a.useCallback)(async()=>{if(!d)return;let e=d.id;m(t=>({...t,[e]:{state:"testing"}}));try{let t={provider:d.protocol};d.apiKey&&(t.apiKey=d.apiKey),d.model&&(t.model=d.model),d.baseUrl&&(t.baseUrl=d.baseUrl);let s=await fetch("/api/settings/test-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=await s.json();r.ok?(m(t=>({...t,[e]:{state:"ok",latency:r.latency}})),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{m(t=>({...t,[e]:{state:"idle"}}))},8e3)):m(t=>({...t,[e]:{state:"error",error:r.error,code:r.code}}))}catch{m(t=>({...t,[e]:{state:"error",code:"network_error",error:"Network error"}}))}},[d]),v=(0,a.useCallback)(s=>{d&&("apiKey"in s&&m(e=>({...e,[d.id]:{state:"idle"}})),t({providers:e.ai.providers.map(e=>e.id===d.id?{...e,...s}:e)}))},[d,e.ai.providers,t]),y=d?(0,C.Ux)(d.protocol):void 0,w=!!y&&i[y],M=!!c?.apiKeyFallback,E=(0,a.useCallback)(()=>{if(!d)return;let s=C.T_[d.protocol];m(e=>({...e,[d.id]:{state:"idle"}})),t({providers:e.ai.providers.map(e=>e.id===d.id?{...e,apiKey:"",model:"",baseUrl:s?.fixedBaseUrl??""}:e)})},[d,e.ai.providers,t]),R=(0,a.useCallback)(()=>{if(!d)return;let s=e.ai.providers.filter(e=>e.id!==d.id);t({activeProvider:s.length>0?s[0].id:"",providers:s}),m(e=>{let t={...e};return delete t[d.id],t})},[d,e.ai.providers,t]),I=(0,a.useCallback)(s=>{let r={id:s.id||(0,T.mV)(),name:s.name,protocol:s.protocol,apiKey:s.apiKey,model:s.model,baseUrl:s.baseUrl};t({activeProvider:r.id,providers:[...e.ai.providers,r]}),h(!1)},[e.ai.providers,t]),P=d?.name??("zh"===o?"未选择":"No provider");return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)(S.L7,{icon:(0,r.jsx)(n.A,{size:15}),title:l.settings.ai.provider,description:P,children:[(0,r.jsx)(A.A,{value:e.ai.activeProvider,onChange:e=>{"skip"!==e&&t({activeProvider:e}),h(!1)},compact:!0,customProviders:e.ai.providers,onAdd:()=>{let t=C.T_.openai,s="zh"===o?t.nameZh:t.name,r=new Set(e.ai.providers.map(e=>e.name.toLowerCase())),a=s;if(r.has(a.toLowerCase())){let e=2;for(;r.has(`${s} (${e})`.toLowerCase());)e++;a=`${s} (${e})`}h(!0)}}),p&&(0,r.jsx)(_,{onSave:I,onCancel:()=>h(!1),t:l,existingNames:e.ai.providers.map(e=>e.name)},"new"),!p&&d&&(0,r.jsxs)("div",{className:"space-y-3 pt-3 border-t border-border",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsx)(S.D0,{label:"zh"===o?"名称":"Name",children:(0,r.jsx)(S.pd,{value:d.name,onChange:e=>v({name:e.target.value}),placeholder:"zh"===o?"输入名称":"Enter name"})}),(0,r.jsx)(S.D0,{label:"zh"===o?"协议":"Protocol",children:(0,r.jsx)(S.l6,{value:d.protocol,onChange:e=>v({protocol:e.target.value}),children:C.jt.map(e=>(0,r.jsx)("option",{value:e,children:"zh"===o?C.T_[e].nameZh:C.T_[e].name},e))})})]}),(0,r.jsxs)(S.D0,{label:(0,r.jsxs)(r.Fragment,{children:[l.settings.ai.apiKey," ",y&&(0,r.jsx)(S.Bt,{overridden:i[y]})]}),hint:c&&w?l.settings.ai.envFieldNote(y):c&&M?l.settings.ai.keyOptionalHint:void 0,children:[(0,r.jsx)(S.yA,{value:d.apiKey,onChange:e=>v({apiKey:e}),placeholder:"sk-..."}),c?.signupUrl&&!d.apiKey&&!w&&(0,r.jsxs)("a",{href:c.signupUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-xs mt-1.5 hover:underline",style:{color:"var(--amber)"},children:[(0,r.jsx)(N.A,{size:10}),M?"zh"===o?`下载 ${c.nameZh}`:`Download ${c.name}`:"zh"===o?`获取 ${c.nameZh} API Key`:`Get ${c.name} API Key`]})]}),(c?.supportsBaseUrl||d.baseUrl)&&(0,r.jsx)(S.D0,{label:"Base URL",children:(0,r.jsx)(S.pd,{value:d.baseUrl,onChange:e=>v({baseUrl:e.target.value}),placeholder:c?.fixedBaseUrl||(0,C.Ot)(d.protocol)||"https://api.openai.com/v1"})}),(0,r.jsx)(S.D0,{label:"zh"===o?"模型":"Model",children:(0,r.jsx)(z.A,{value:d.model,onChange:e=>v({model:e}),placeholder:c?.defaultModel??"",provider:d.protocol,apiKey:d.apiKey,envKey:!!w,baseUrl:d.baseUrl,supportsListModels:!!d.baseUrl?.trim()||!!c?.supportsListModels,allowNoKey:!!d.baseUrl?.trim(),browseLabel:l.settings.ai.listModels,noModelsLabel:l.settings.ai.noModelsFound})}),(0,r.jsx)(B,{provider:d.protocol,result:u[d.id]??{state:"idle"},hasKey:!!d.apiKey,hasEnv:!!w,hasConfig:!!(d.apiKey||d.model||d.baseUrl),onTest:f,onReset:E,onDelete:R,t:l})]}),!p&&Object.values(i).some(Boolean)&&(0,r.jsxs)("div",{className:"flex items-start gap-2 text-xs text-[var(--amber)] bg-[var(--amber-subtle)] border border-[var(--amber)]/20 rounded-lg px-3 py-2.5",children:[(0,r.jsx)(x.A,{size:13,className:"shrink-0 mt-0.5"}),(0,r.jsx)("span",{children:l.settings.ai.envHint})]})]}),(0,r.jsxs)(S.L7,{icon:(0,r.jsx)(k.A,{size:15}),title:l.settings.agent.title,description:l.settings.agent.subtitle??"Configure how the AI agent operates",children:[(0,r.jsx)(S.pM,{label:l.settings.agent.maxSteps,hint:l.settings.agent.maxStepsHint,children:(0,r.jsxs)(S.l6,{value:String(e.agent?.maxSteps??20),onChange:e=>s({maxSteps:Number(e.target.value)}),className:"w-20",children:[(0,r.jsx)("option",{value:"5",children:"5"}),(0,r.jsx)("option",{value:"10",children:"10"}),(0,r.jsx)("option",{value:"15",children:"15"}),(0,r.jsx)("option",{value:"20",children:"20"}),(0,r.jsx)("option",{value:"25",children:"25"}),(0,r.jsx)("option",{value:"30",children:"30"})]})}),(0,r.jsx)(S.pM,{label:l.settings.agent.contextStrategy,hint:l.settings.agent.contextStrategyHint,children:(0,r.jsxs)(S.l6,{value:e.agent?.contextStrategy??"auto",onChange:e=>s({contextStrategy:e.target.value}),className:"w-24",children:[(0,r.jsx)("option",{value:"auto",children:l.settings.agent.contextStrategyAuto}),(0,r.jsx)("option",{value:"off",children:l.settings.agent.contextStrategyOff})]})}),(0,r.jsx)(S.pM,{label:l.settings.agent.reconnectRetries,hint:l.settings.agent.reconnectRetriesHint,children:(0,r.jsxs)(S.l6,{value:String(e.agent?.reconnectRetries??3),onChange:e=>{let t=Number(e.target.value);s({reconnectRetries:t});try{localStorage.setItem("mindos-reconnect-retries",String(t))}catch(e){console.warn("[AiTab] localStorage setItem reconnectRetries failed:",e)}},className:"w-20",children:[(0,r.jsx)("option",{value:"0",children:"Off"}),(0,r.jsx)("option",{value:"1",children:"1"}),(0,r.jsx)("option",{value:"2",children:"2"}),(0,r.jsx)("option",{value:"3",children:"3"}),(0,r.jsx)("option",{value:"5",children:"5"}),(0,r.jsx)("option",{value:"10",children:"10"})]})}),c?.supportsThinking&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(S.pM,{label:l.settings.agent.thinking,hint:l.settings.agent.thinkingHint,children:(0,r.jsx)(S.lM,{checked:e.agent?.enableThinking??!1,onChange:()=>s({enableThinking:!e.agent?.enableThinking})})}),e.agent?.enableThinking&&(0,r.jsx)(S.D0,{label:l.settings.agent.thinkingBudget,hint:l.settings.agent.thinkingBudgetHint,children:(0,r.jsx)(S.pd,{type:"number",value:String(e.agent?.thinkingBudget??5e3),onChange:e=>{let t=parseInt(e.target.value,10);isNaN(t)||s({thinkingBudget:Math.max(1e3,Math.min(5e4,t))})},min:1e3,max:5e4,step:1e3})})]})]}),(0,r.jsx)(L,{m:l.settings?.mcp??{}}),(0,r.jsx)(K,{})]})}function B({provider:e,result:t,hasKey:s,hasEnv:n,hasConfig:l,onTest:o,onReset:i,onDelete:d,t:c}){let[u,x]=(0,a.useState)(null),p=(0,a.useRef)(void 0),g=!!C.T_[e]?.apiKeyFallback;(0,a.useEffect)(()=>()=>{p.current&&clearTimeout(p.current)},[]);let b=e=>{u===e?("reset"===e?i?.():d?.(),x(null),p.current&&clearTimeout(p.current)):(x(e),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>x(null),3e3))},{locale:f}=(0,j.Y)();return(0,r.jsx)("div",{className:"space-y-2 pt-2",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)(I,{result:t,disabled:!(s||n||g),onTest:o,t:c}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[i&&l&&(0,r.jsxs)("button",{type:"button",onClick:()=>b("reset"),onBlur:()=>{"reset"===u&&(x(null),p.current&&clearTimeout(p.current))},className:`inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-lg transition-all duration-200 ${"reset"===u?"bg-destructive/10 text-destructive border border-destructive/25 font-medium":"text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/50"}`,children:[(0,r.jsx)(h.A,{size:12}),"reset"===u?"zh"===f?"确认重置?":"Confirm?":"zh"===f?"重置":"Reset"]}),d&&(0,r.jsxs)("button",{type:"button",onClick:()=>b("delete"),onBlur:()=>{"delete"===u&&(x(null),p.current&&clearTimeout(p.current))},className:`inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-lg transition-all duration-200 ${"delete"===u?"bg-destructive/10 text-destructive border border-destructive/25 font-medium":"text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/50"}`,children:[(0,r.jsx)(m.A,{size:12}),"delete"===u?"zh"===f?"确认删除?":"Confirm?":"zh"===f?"删除":"Delete"]})]})]})})}function _({initial:e,onSave:t,onCancel:s,onDelete:n,t:l,existingNames:o}){let{locale:i}=(0,j.Y)(),d=function({initial:e,onSave:t,locale:s,existingNames:r}){let[n,l]=(0,a.useState)(e?.name??""),[o,i]=(0,a.useState)(e?.protocol??"openai"),[d,c]=(0,a.useState)(e?.apiKey??""),[u,m]=(0,a.useState)(e?.model??""),[x,p]=(0,a.useState)(e?.baseUrl??""),[h,g]=(0,a.useState)({state:"idle"}),b=n.trim(),f=!!(b&&r?.some(e=>e.toLowerCase()===b.toLowerCase())),v=!!(b&&x.trim()&&u.trim()&&!f),j=(0,a.useCallback)(async()=>{if(!v)return void g({state:"error",error:"zh"===s?"名称、接口地址和模型为必填":"Name, base URL, and model are required"});g({state:"testing"});try{let t=await fetch("/api/settings/test-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e?.id?{provider:e.id,apiKey:d,model:u,baseUrl:x}:{provider:o,apiKey:d,model:u,baseUrl:x,baseProviderId:o})}),s=await t.json();s.ok?g({state:"ok",latency:s.latency}):g({state:"error",error:s.error||"Test failed",code:s.code})}catch{g({state:"error",code:"network_error",error:"Network error"})}},[v,d,u,x,o,s,e?.id]),y=(0,a.useCallback)(()=>{f?g({state:"error",error:"zh"===s?"名称已存在,请使用其他名称":"Name already exists, please use a different name"}):v?t({id:e?.id||(0,T.mV)(),name:n.trim(),protocol:o,apiKey:d,model:u.trim(),baseUrl:x.trim()}):g({state:"error",error:"zh"===s?"名称、接口地址和模型为必填":"Name, base URL, and model are required"})},[v,f,n,o,d,u,x,e?.id,t,s]);return{name:n,setName:l,protocol:o,setProtocol:i,apiKey:d,setApiKey:c,model:u,setModel:m,baseUrl:x,setBaseUrl:p,testResult:h,canSave:v,isDuplicateName:f,handleTest:j,handleSave:y}}({initial:e,onSave:t,locale:i,existingNames:o}),[c,u]=(0,a.useState)(!1),x=(0,a.useRef)(void 0);(0,a.useEffect)(()=>()=>{x.current&&clearTimeout(x.current)},[]);let p=e?.id?"zh"===i?"编辑 Provider":"Edit Provider":"zh"===i?"添加 Provider":"Add Provider",h=[];return d.name.trim()||h.push("zh"===i?"名称":"Name"),d.baseUrl.trim()||h.push("zh"===i?"接口地址":"Base URL"),d.model.trim()||h.push("zh"===i?"模型":"Model"),(0,r.jsxs)("div",{className:"mt-3 rounded-lg border border-border overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 border-b border-border",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:p}),(0,r.jsx)("button",{type:"button",onClick:s,className:"p-1 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors","aria-label":"zh"===i?"关闭":"Close",children:(0,r.jsx)(b.A,{size:14})})]}),(0,r.jsxs)("div",{className:"p-4",children:[(0,r.jsx)(M,{form:d,t:l,locale:i,layout:"compact"}),(0,r.jsxs)("div",{className:"flex items-center gap-2 pt-4",children:[(0,r.jsx)(I,{result:d.testResult,disabled:!d.canSave,onTest:d.handleTest,t:l}),n&&e?.id&&(0,r.jsxs)("button",{type:"button",onClick:()=>{c?(n(),x.current&&clearTimeout(x.current)):(u(!0),x.current=setTimeout(()=>u(!1),3e3))},onBlur:()=>{u(!1),x.current&&clearTimeout(x.current)},className:`inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-lg transition-all duration-200 ${c?"bg-destructive/10 text-destructive border border-destructive/25 font-medium":"text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/50"}`,children:[(0,r.jsx)(m.A,{size:12}),c?"zh"===i?"确认删除?":"Confirm?":"zh"===i?"删除":"Delete"]}),(0,r.jsxs)("div",{className:"flex-1",children:[d.isDuplicateName&&(0,r.jsx)("span",{className:"text-2xs text-destructive pl-2",children:"zh"===i?"名称已存在":"Name already exists"}),!d.isDuplicateName&&!d.canSave&&h.length>0&&(0,r.jsx)("span",{className:"text-2xs text-muted-foreground/60 pl-2",children:"zh"===i?`需要: ${h.join("、")}`:`Required: ${h.join(", ")}`})]}),(0,r.jsx)("button",{type:"button",onClick:s,className:"px-3 py-1.5 text-sm rounded-lg text-muted-foreground hover:text-foreground transition-colors",children:l.settings?.customProviders?.modal?.buttonCancel??"Cancel"}),(0,r.jsx)("button",{type:"button",onClick:d.handleSave,disabled:!d.canSave,className:"px-4 py-1.5 text-sm font-medium rounded-lg bg-[var(--amber)] text-[var(--amber-foreground)] hover:bg-[var(--amber)]/90 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",children:"zh"===i?"保存":"Save"})]})]})]})}function K(){let{t:e}=(0,j.Y)(),[t,s]=(0,a.useState)("panel");return(0,a.useEffect)(()=>{try{let e=localStorage.getItem("ask-mode");"popup"===e&&s("popup")}catch(e){console.warn("[AiTab] localStorage getItem ask-mode failed:",e)}},[]),(0,r.jsx)(S.L7,{icon:(0,r.jsx)(w.A,{size:15}),title:e.settings.askDisplayMode?.label??"Display Mode",description:e.settings.askDisplayMode?.hint??"Side panel stays docked on the right. Popup opens a floating dialog.",children:(0,r.jsxs)(S.l6,{value:t,onChange:e=>(e=>{s(e);try{localStorage.setItem("ask-mode",e)}catch(e){console.warn("[AiTab] localStorage setItem ask-mode failed:",e)}window.dispatchEvent(new StorageEvent("storage",{key:"ask-mode",newValue:e}))})(e.target.value),children:[(0,r.jsx)("option",{value:"panel",children:e.settings.askDisplayMode?.panel??"Side Panel"}),(0,r.jsx)("option",{value:"popup",children:e.settings.askDisplayMode?.popup??"Popup"})]})})}var H=s(51900),G=s(36999),V=s(92451),J=s(97810);let q=(0,i.A)("type",[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]]),W=(0,i.A)("a-large-small",[["path",{d:"m15 16 2.536-7.328a1.02 1.02 1 0 1 1.928 0L22 16",key:"xik6mr"}],["path",{d:"M15.697 14h5.606",key:"1stdlc"}],["path",{d:"m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16",key:"d5nyq2"}],["path",{d:"M3.304 13h6.392",key:"1q3zxz"}]]),Y=(0,i.A)("columns-3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);var Z=s(66088),X=s(21362);let Q=[{value:"680px",label:"Narrow",width:42},{value:"780px",label:"Default",width:56},{value:"960px",label:"Wide",width:75},{value:"100%",label:"Full",width:100}],ee=[{value:"lora",label:"Lora",category:"Serif",style:{fontFamily:"Lora, Georgia, serif"}},{value:"ibm-plex-sans",label:"IBM Plex Sans",category:"Sans",style:{fontFamily:"'IBM Plex Sans', sans-serif"}},{value:"inter",label:"Inter",category:"Sans",style:{fontFamily:"var(--font-inter), sans-serif"}},{value:"ibm-plex-mono",label:"IBM Plex Mono",category:"Mono",style:{fontFamily:"'IBM Plex Mono', monospace"}}];function et({icon:e,label:t,children:s}){return(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e}),(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:t})]}),s]})}function es({options:e,value:t,onChange:s}){return(0,r.jsx)("div",{className:"flex gap-2",children:e.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>s(e.value),className:`flex items-center gap-1.5 px-3.5 py-2 text-sm font-medium rounded-xl transition-all ${t===e.value?"bg-[var(--amber)] text-[var(--amber-foreground)] shadow-sm":"bg-muted/50 text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:[e.icon,e.label]},e.value))})}function er({font:e,setFont:t,fontSize:s,setFontSize:n,contentWidth:l,setContentWidth:o,dark:i,setDark:c,locale:u,setLocale:m,t:x}){let[p,h]=(0,a.useState)(!1),[g,b]=(0,a.useState)(()=>localStorage.getItem("theme")??"system"),[f,v]=(0,a.useState)(()=>localStorage.getItem("locale")??"system"),j=x.settings.appearance;return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)(S.L7,{icon:(0,r.jsx)(d,{size:15}),title:j.preferencesTitle??"Preferences",children:[(0,r.jsx)(et,{icon:(0,r.jsx)(H.A,{size:14}),label:j.colorTheme,children:(0,r.jsx)(es,{options:[{value:"system",label:j.system,icon:(0,r.jsx)(w.A,{size:14})},{value:"dark",label:j.dark,icon:(0,r.jsx)(G.A,{size:14})},{value:"light",label:j.light,icon:(0,r.jsx)(H.A,{size:14})}],value:g,onChange:e=>{b(e),localStorage.setItem("theme",e);let t="system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches:"dark"===e;c(t),document.documentElement.classList.toggle("dark",t)}})}),(0,r.jsx)(et,{icon:(0,r.jsx)(V.A,{size:14}),label:j.language,children:(0,r.jsx)(es,{options:[{value:"system",label:j.system,icon:(0,r.jsx)(w.A,{size:14})},{value:"en",label:"EN"},{value:"zh",label:"中文"}],value:f,onChange:e=>{v(e),localStorage.setItem("locale",e);let t="system"===e?navigator.language.startsWith("zh")?"zh":"en":e;m(t),document.cookie=`locale=${t};path=/;max-age=31536000;SameSite=Lax`}})})]}),(0,r.jsxs)(S.L7,{icon:(0,r.jsx)(J.A,{size:15}),title:j.readingTitle??"Reading",description:j.readingDesc??"Customize how your notes look",children:[(0,r.jsx)(et,{icon:(0,r.jsx)(q,{size:14}),label:j.readingFont,children:(0,r.jsx)("div",{className:"space-y-0.5",children:ee.map(s=>{let a=e===s.value;return(0,r.jsxs)("button",{type:"button",onClick:()=>t(s.value),className:`flex items-center gap-4 w-full px-3 py-2.5 rounded-lg transition-all text-left relative ${a?"bg-[var(--amber-subtle)]":"hover:bg-muted/50"}`,children:[a&&(0,r.jsx)("div",{className:"absolute left-0 top-2 bottom-2 w-[3px] rounded-r-full bg-[var(--amber)]"}),(0,r.jsx)("span",{className:`text-xl font-medium w-10 text-center shrink-0 ${a?"text-foreground":"text-muted-foreground/60"}`,style:{fontFamily:s.style.fontFamily},children:"Aa"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,r.jsx)("span",{className:`text-sm font-medium ${a?"text-foreground":"text-muted-foreground"}`,style:{fontFamily:s.style.fontFamily},children:s.label}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground/50",children:s.category})]}),(0,r.jsx)("p",{className:`text-sm truncate mt-0.5 ${a?"text-muted-foreground":"text-muted-foreground/40"}`,style:{fontFamily:s.style.fontFamily},children:j.fontPreview})]})]},s.value)})})}),(0,r.jsx)(et,{icon:(0,r.jsx)(W,{size:14}),label:j.fontSize,children:(0,r.jsxs)("div",{className:"px-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("span",{className:"text-xs text-muted-foreground/60 shrink-0",style:{fontSize:"11px"},children:"A"}),(0,r.jsx)("input",{type:"range",min:14,max:17,step:1,value:parseInt(s),onChange:e=>n(`${e.target.value}px`),className:"flex-1 h-1.5 rounded-full appearance-none bg-muted cursor-pointer accent-[var(--amber)] [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-[var(--amber)] [&::-webkit-slider-thumb]:shadow-sm [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:transition-transform [&::-webkit-slider-thumb]:hover:scale-110 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:bg-[var(--amber)] [&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:shadow-sm [&::-moz-range-thumb]:cursor-pointer"}),(0,r.jsx)("span",{className:"text-base text-muted-foreground/60 shrink-0",children:"A"})]}),(0,r.jsx)("div",{className:"text-center mt-1.5",children:(0,r.jsxs)("span",{className:"text-xs tabular-nums text-muted-foreground",children:[parseInt(s),"px"]})}),(0,r.jsx)("p",{className:"text-muted-foreground leading-relaxed mt-2 px-1",style:{fontSize:s,fontFamily:ee.find(t=>t.value===e)?.style.fontFamily},children:j.fontSizePreview})]})}),(0,r.jsx)(et,{icon:(0,r.jsx)(Y,{size:14}),label:j.contentWidth,children:(0,r.jsx)("div",{className:"space-y-1",children:Q.map(e=>{let t=l===e.value;return(0,r.jsxs)("button",{type:"button",onClick:()=>o(e.value),className:`flex items-center gap-3 w-full px-3 py-2 rounded-lg transition-all ${t?"bg-[var(--amber-subtle)]":"hover:bg-muted/50"}`,children:[(0,r.jsx)("div",{className:"flex-1 h-2 rounded-full bg-muted/40 overflow-hidden",children:(0,r.jsx)("div",{className:`h-full rounded-full transition-all ${t?"bg-[var(--amber)]":"bg-muted-foreground/20"}`,style:{width:`${e.width}%`}})}),(0,r.jsx)("span",{className:`text-sm shrink-0 w-14 text-right ${t?"text-foreground font-medium":"text-muted-foreground"}`,children:e.label})]},e.value)})})})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground/40 px-0.5",children:j.browserNote}),(0,r.jsxs)("div",{className:"border-t border-border pt-4",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>h(!p),className:"flex items-center gap-1.5 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors",children:[p?(0,r.jsx)(Z.A,{size:14}):(0,r.jsx)(X.A,{size:14}),x.settings.tabs.shortcuts]}),p&&(0,r.jsx)("div",{className:"mt-3 space-y-0.5",children:x.shortcuts.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center justify-between py-1.5 px-1",children:[(0,r.jsx)("span",{className:"text-sm text-foreground",children:e.description}),(0,r.jsx)("div",{className:"flex items-center gap-1",children:e.keys.map((e,t)=>(0,r.jsx)("kbd",{className:"px-1.5 py-0.5 text-2xs font-mono bg-muted border border-border rounded text-muted-foreground",children:e},t))})]},t))})]})]})}let ea=(0,i.A)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]),en=(0,i.A)("hard-drive",[["path",{d:"M10 16h.01",key:"1bzywj"}],["path",{d:"M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"18tbho"}],["path",{d:"M21.946 12.013H2.054",key:"zqlbp7"}],["path",{d:"M6 16h.01",key:"1pmjb7"}]]);var el=s(67635),eo=s(61878);let ei=(0,i.A)("flask-conical",[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]);var ed=s(65576),ec=s(39498),eu=s(7834);function em(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:e<0x40000000?`${(e/1048576).toFixed(1)} MB`:`${(e/0x40000000).toFixed(2)} GB`}var ex=s(28774),ep=s(9339);let eh=(0,ep.createServerReference)("00f20fa32e51987475aff2943f980c699273a21515",ep.callServer,void 0,ep.findSourceMapURL,"scanExampleFilesAction"),eg=(0,ep.createServerReference)("00a32b751868ea5031b06dc80cd3869f66c886452e",ep.callServer,void 0,ep.findSourceMapURL,"cleanupExamplesAction");function eb({data:e,setData:t,t:s}){let l=e.envOverrides??{},o=s.settings.knowledge,i=s.settings.appearance,[d,x]=(0,a.useState)(()=>"1"===localStorage.getItem("mindos:labs-echo")),[g,b]=(0,a.useState)(()=>"1"===localStorage.getItem("mindos:labs-workflows")),[f,v]=(0,a.useState)(()=>"true"===localStorage.getItem("show-hidden-files")),[j,N]=(0,a.useState)(null),[k,w]=(0,a.useState)(!1),[C,A]=(0,a.useState)(null);(0,a.useEffect)(()=>{eh().then(e=>N(e.files.length)).catch(e=>{console.warn("[KnowledgeTab] scanExampleFilesAction failed:",e)})},[]);let[z,T]=(0,a.useState)(null),[M,R]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(0,y.n)("/api/setup").then(e=>{let t=e.guideState;t&&(T(t.active),R(!!t.dismissed))}).catch(e=>{console.error("Failed to fetch guide state:",e)})},[]);let I=(0,a.useCallback)(()=>{let e=!M;R(e);let t={dismissed:e};e||(t.active=!0),(0,y.n)("/api/setup",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({guideState:t})}).then(()=>window.dispatchEvent(new Event("guide-state-updated"))).catch(t=>{console.error("Failed to update guide state:",t),R(!e)})},[M]),P=(0,a.useCallback)(()=>{(0,y.n)("/api/setup",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({guideState:{active:!0,dismissed:!1,walkthroughStep:0,walkthroughDismissed:!1}})}).then(()=>{T(!0),R(!1),window.dispatchEvent(new Event("guide-state-updated"))}).catch(e=>console.error("Failed to restart walkthrough:",e))},[]),D=e.embedding??{enabled:!1,provider:"local",baseUrl:"",apiKey:"",model:""},$=e.embeddingStatus??{enabled:!1,ready:!1,building:!1,docCount:0},F=D.provider||"local",[L,O]=(0,a.useState)(null),[B,_]=(0,a.useState)(!1);(0,a.useEffect)(()=>{D.enabled&&"local"===F&&(0,y.n)("/api/embedding").then(e=>O(e.downloaded)).catch(()=>O(!1))},[D.enabled,F]),(0,a.useEffect)(()=>{if(!B)return;let e=setInterval(()=>{(0,y.n)("/api/embedding",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"status"})}).then(e=>{e.downloaded&&(O(!0),_(!1),U.oR.success?.("Model downloaded successfully")??(0,U.oR)("Model downloaded")),e.error&&(_(!1),U.oR.error?.(e.error)??(0,U.oR)(e.error))}).catch(()=>{})},3e3);return()=>clearInterval(e)},[B]);let K=(0,a.useCallback)(()=>{_(!0),(0,y.n)("/api/embedding",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"download",model:D.model||void 0})}).catch(()=>_(!1))},[D.model]),H=(0,a.useSyncExternalStore)(()=>()=>{},()=>`${window.location.protocol}//${window.location.hostname}`,()=>"http://localhost"),[G,V]=(0,a.useState)(!1),[J,q]=(0,a.useState)(null),[W,Y]=(0,a.useState)(!1),[Z,X]=(0,a.useState)(!1),Q=!!e.authToken,ee=J??e.authToken??"";async function et(){V(!0);try{let e=await (0,y.n)("/api/settings/reset-token",{method:"POST"});q(e.token),t(t=>t?{...t,authToken:e.token}:t)}finally{V(!1)}}async function es(){t(e=>e?{...e,authToken:""}:e),q(null)}return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)(S.L7,{icon:(0,r.jsx)(ea,{size:15}),title:o.cardTitle??"Knowledge Base",description:o.mindRootHint,children:[(0,r.jsx)(S.D0,{label:(0,r.jsxs)(r.Fragment,{children:[o.mindRoot," ",(0,r.jsx)(S.Bt,{overridden:l.MIND_ROOT})]}),hint:l.MIND_ROOT?o.envNote:o.mindRootHint,children:(0,r.jsx)(S.pd,{value:e.mindRoot,onChange:e=>t(t=>t?{...t,mindRoot:e.target.value}:t),placeholder:"/path/to/your/notes"})}),(0,r.jsx)(S.pM,{label:o.showHiddenFiles,hint:o.showHiddenFilesHint,children:(0,r.jsx)(S.lM,{checked:f,onChange:()=>{let e=!f;v(e),(0,ex.Fo)(e)}})}),null!==j&&j>0&&null===C&&(0,r.jsx)(S.pM,{label:o.cleanupExamples,hint:o.cleanupExamplesHint,children:(0,r.jsxs)("button",{onClick:()=>X(!0),disabled:k,title:k?s.hints.cleanupInProgress:void 0,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors shrink-0 disabled:opacity-50",children:[k?(0,r.jsx)(p.A,{size:12,className:"animate-spin"}):(0,r.jsx)(m.A,{size:12}),o.cleanupExamplesButton,(0,r.jsx)("span",{className:"ml-1 tabular-nums text-2xs opacity-70",children:j})]})}),null!==C&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(E.A,{size:14}),o.cleanupExamplesDone(C)]})]}),(0,r.jsxs)(S.L7,{icon:(0,r.jsx)(en,{size:15}),title:o.securityTitle??"Security",children:[(0,r.jsx)(S.D0,{label:o.webPassword,hint:o.webPasswordHint,children:(0,r.jsx)(S.yA,{value:e.webPassword??"",onChange:e=>t(t=>t?{...t,webPassword:e}:t),placeholder:o.passwordPlaceholder??"Leave empty to disable"})}),(0,r.jsx)(S.D0,{label:o.authToken,hint:Q?o.authTokenHint:o.authTokenNone,children:(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 bg-background border border-border rounded-lg min-h-[38px]",children:[(0,r.jsx)("code",{className:"flex-1 text-xs font-mono text-foreground break-all select-all",children:ee||(0,r.jsx)("span",{className:"text-muted-foreground italic",children:o.tokenNotSet??"— not set —"})}),ee&&(0,r.jsx)("button",{type:"button",onClick:function(){let t=J??e.authToken??"";t&&(0,eu.l)(t).then(e=>{e&&U.oR.copy()})},className:"shrink-0 p-1 rounded text-muted-foreground hover:text-foreground transition-colors",title:o.authTokenCopy,children:(0,r.jsx)(el.A,{size:13})})]}),e.mcpPort&&(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:[o.authTokenMcpPort,": ",(0,r.jsx)("code",{className:"font-mono",children:e.mcpPort}),ee&&(0,r.jsxs)(r.Fragment,{children:[" \xa0\xb7\xa0 ",o.mcpUrl??"MCP URL",": ",(0,r.jsx)("code",{className:"font-mono select-all",children:`${H}:${e.mcpPort}/mcp`})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:function(){Y(!0)},disabled:G,title:G?s.hints.tokenResetInProgress:void 0,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[(0,r.jsx)(c.A,{size:14,className:G?"animate-spin":""}),o.authTokenReset]}),Q&&(0,r.jsxs)("button",{type:"button",onClick:es,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-destructive hover:border-destructive/50 transition-colors",children:[(0,r.jsx)(m.A,{size:14}),o.authTokenClear]})]}),J&&(0,r.jsx)("p",{className:"text-xs text-[var(--amber-text)]",children:o.tokenGenerated})]})})]}),null!==z&&(0,r.jsxs)(S.L7,{icon:(0,r.jsx)(n.A,{size:15}),title:s.guide?.title??"Getting Started",children:[(0,r.jsx)(S.pM,{label:s.guide?.showGuide??"Show getting started guide",children:(0,r.jsx)(S.lM,{checked:!M,onChange:()=>I()})}),(0,r.jsxs)("button",{onClick:P,className:"flex items-center gap-1.5 mt-2 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:[(0,r.jsx)(h.A,{size:14}),o.restartWalkthrough??"Restart walkthrough"]})]}),(0,r.jsxs)(S.L7,{icon:(0,r.jsx)(eo.A,{size:15}),title:"Embedding Search",description:"Enable semantic search with vector embeddings. Finds notes by meaning, not just exact words.",children:[(0,r.jsx)(S.pM,{label:"Enable embedding search",hint:"Combines keyword matching (BM25) with semantic similarity.",children:(0,r.jsx)(S.lM,{checked:D.enabled,onChange:()=>{t(e=>e?{...e,embedding:{...D,enabled:!D.enabled}}:e)}})}),D.enabled&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>t(e=>e?{...e,embedding:{...D,provider:"local",model:D.model||"Xenova/bge-small-zh-v1.5"}}:e),className:`flex-1 px-3 py-2 text-sm rounded-lg border transition-colors text-center ${"local"===F?"border-[var(--amber)] text-[var(--amber)] bg-[var(--amber)]/10":"border-border text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:[(0,r.jsx)("span",{className:"font-medium",children:"Local (Free)"}),(0,r.jsx)("span",{className:"block text-xs opacity-70 mt-0.5",children:"Runs on your machine, no API key needed"})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>t(e=>e?{...e,embedding:{...D,provider:"api",model:D.model||"text-embedding-3-small"}}:e),className:`flex-1 px-3 py-2 text-sm rounded-lg border transition-colors text-center ${"api"===F?"border-[var(--amber)] text-[var(--amber)] bg-[var(--amber)]/10":"border-border text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:[(0,r.jsx)("span",{className:"font-medium",children:"API"}),(0,r.jsx)("span",{className:"block text-xs opacity-70 mt-0.5",children:"OpenAI, DeepSeek, Ollama, etc."})]})]}),"local"===F&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(S.D0,{label:"Model",hint:"Choose a model. Smaller models are faster.",children:(0,r.jsx)("div",{className:"space-y-1.5",children:[{id:"Xenova/bge-small-zh-v1.5",label:"BGE Small ZH (33MB)",desc:"Chinese + English"},{id:"Xenova/all-MiniLM-L6-v2",label:"MiniLM L6 (23MB)",desc:"English only"},{id:"Xenova/bge-small-en-v1.5",label:"BGE Small EN (33MB)",desc:"English only"}].map(e=>(0,r.jsxs)("label",{className:`flex items-center gap-3 px-3 py-2 rounded-lg border cursor-pointer transition-colors ${D.model===e.id?"border-[var(--amber)] bg-[var(--amber)]/5":"border-border hover:bg-muted"}`,children:[(0,r.jsx)("input",{type:"radio",name:"local-model",checked:D.model===e.id,onChange:()=>t(t=>t?{...t,embedding:{...D,model:e.id}}:t),className:"accent-[var(--amber)]"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:e.label}),(0,r.jsx)("span",{className:"ml-2 text-xs text-muted-foreground",children:e.desc})]})]},e.id))})}),!1===L&&!B&&(0,r.jsxs)("button",{type:"button",onClick:K,className:"flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-lg bg-[var(--amber)] text-[var(--amber-foreground)] hover:opacity-90 transition-opacity",children:[(0,r.jsx)(u.A,{size:14}),"Download Model"]}),B&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,r.jsx)(p.A,{size:14,className:"animate-spin"}),(0,r.jsx)("span",{children:"Downloading model... This may take a minute."})]}),!0===L&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(E.A,{size:12}),(0,r.jsx)("span",{children:"Model ready"})]})]}),"api"===F&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"flex gap-2 flex-wrap",children:[{label:"OpenAI",baseUrl:"https://api.openai.com/v1",model:"text-embedding-3-small"},{label:"DeepSeek",baseUrl:"https://api.deepseek.com/v1",model:"deepseek-embed"},{label:"Ollama",baseUrl:"http://localhost:11434/v1",model:"nomic-embed-text"}].map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>{t(t=>t?{...t,embedding:{...D,baseUrl:e.baseUrl,model:e.model}}:t)},className:`px-2.5 py-1 text-xs rounded-md border transition-colors ${D.baseUrl===e.baseUrl?"border-[var(--amber)] text-[var(--amber)] bg-[var(--amber)]/10":"border-border text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:e.label},e.label))}),(0,r.jsx)(S.D0,{label:"Base URL",hint:"OpenAI-compatible embedding endpoint",children:(0,r.jsx)(S.pd,{value:D.baseUrl,onChange:e=>t(t=>t?{...t,embedding:{...D,baseUrl:e.target.value}}:t),placeholder:"https://api.openai.com/v1"})}),(0,r.jsx)(S.D0,{label:"API Key",hint:"Leave empty for local providers (e.g., Ollama)",children:(0,r.jsx)(S.yA,{value:D.apiKey,onChange:e=>t(t=>t?{...t,embedding:{...D,apiKey:e}}:t),placeholder:"sk-..."})}),(0,r.jsx)(S.D0,{label:"Model",hint:"Embedding model name",children:(0,r.jsx)(S.pd,{value:D.model,onChange:e=>t(t=>t?{...t,embedding:{...D,model:e.target.value}}:t),placeholder:"text-embedding-3-small"})})]}),(0,r.jsx)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground pt-1",children:$.building?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(p.A,{size:12,className:"animate-spin"}),(0,r.jsx)("span",{children:"Building embedding index..."})]}):$.ready?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(E.A,{size:12,className:"text-success"}),(0,r.jsxs)("span",{children:[$.docCount," documents indexed"]})]}):(0,r.jsx)("span",{children:"Index will be built on first search"})})]})]}),(0,r.jsx)(S.L7,{icon:(0,r.jsx)(ei,{size:15}),title:i.labsTitle??"Labs",description:i.labsDesc??"Experimental features that are still in development.",children:(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(ef,{label:i.labsEcho??"Echo",description:i.labsEchoDesc??"Reflective journaling powered by your notes.",checked:d,onChange:e=>{x(e),localStorage.setItem("mindos:labs-echo",e?"1":"0"),window.dispatchEvent(new Event("mindos:labs-changed"))}}),(0,r.jsx)(ef,{label:i.labsWorkflows??"Flows",description:i.labsWorkflowsDesc??"Visual workflow automation for agents.",checked:g,onChange:e=>{b(e),localStorage.setItem("mindos:labs-workflows",e?"1":"0"),window.dispatchEvent(new Event("mindos:labs-changed"))}})]})}),(0,r.jsx)(ev,{k:o}),(0,r.jsx)(ec.TM,{open:W,title:o.authTokenReset??"Regenerate Token",message:o.authTokenResetConfirm,confirmLabel:o.authTokenReset??"Regenerate",cancelLabel:o.cancel??"Cancel",onConfirm:()=>{Y(!1),et()},onCancel:()=>Y(!1)}),(0,r.jsx)(ec.TM,{open:Z,title:o.cleanupExamples??"Cleanup Examples",message:null!==j?o.cleanupExamplesConfirm(j):"",confirmLabel:o.cleanupExamplesButton??"Clean up",cancelLabel:o.cancel??"Cancel",variant:"destructive",onConfirm:async()=>{X(!1),w(!0);let e=await eg();w(!1),e.success&&(A(e.deleted),N(0))},onCancel:()=>X(!1)})]})}function ef({label:e,description:t,checked:s,onChange:a}){return(0,r.jsxs)("label",{className:"flex items-center gap-3 cursor-pointer group",children:[(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground block",children:e}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:t})]}),(0,r.jsx)("button",{type:"button",role:"switch","aria-checked":s,onClick:()=>a(!s),className:`relative w-9 h-5 rounded-full transition-colors shrink-0 ${s?"bg-[var(--amber)]":"bg-muted-foreground/20"}`,children:(0,r.jsx)("span",{className:`absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white shadow-sm transition-transform ${s?"translate-x-4":"translate-x-0"}`})})]})}function ev({k:e}){let[t,s]=(0,a.useState)(!1),[n,l]=(0,a.useState)(null),[o,i]=(0,a.useState)(!1),d=(0,a.useCallback)(async()=>{i(!0);try{let e=await (0,y.n)("/api/monitoring",{timeout:5e3});l(e)}catch{}i(!1)},[]),c=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{if(!t){c.current=!1;return}c.current||(d(),c.current=!0);let e=setInterval(d,1e4);return()=>clearInterval(e)},[t,d]),(0,r.jsxs)("div",{className:"border-t border-border pt-5",children:[(0,r.jsxs)("button",{onClick:()=>s(e=>!e),className:"flex items-center gap-1.5 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors w-full",children:[t?(0,r.jsx)(Z.A,{size:14}):(0,r.jsx)(X.A,{size:14}),(0,r.jsx)(ed.A,{size:12}),e.monitoringTitle??"System Monitoring",o&&(0,r.jsx)(p.A,{size:10,className:"animate-spin ml-1"})]}),t&&n&&(0,r.jsxs)("div",{className:"mt-3 grid grid-cols-2 gap-x-6 gap-y-2 text-xs",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorHeap??"Heap"}),(0,r.jsxs)("span",{className:"ml-2 tabular-nums",children:[em(n.system.memory.heapUsed)," / ",em(n.system.memory.heapTotal)]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorRss??"RSS"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:em(n.system.memory.rss)})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorUptime??"Uptime"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:function(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let s=Math.floor(t/60);if(s<60)return`${s}m ${t%60}s`;let r=Math.floor(s/60);if(r<24)return`${r}h ${s%60}m`;let a=Math.floor(r/24);return`${a}d ${r%24}h`}(n.system.uptimeMs)})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorNode??"Node"}),(0,r.jsx)("span",{className:"ml-2",children:n.system.nodeVersion})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorRequests??"Requests"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:n.application.agentRequests})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorToolCalls??"Tool Calls"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:n.application.toolExecutions})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorTokens??"Tokens"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:(n.application.totalTokens.input+n.application.totalTokens.output).toLocaleString()})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorFiles??"Files"}),(0,r.jsxs)("span",{className:"ml-2 tabular-nums",children:[n.knowledgeBase.fileCount," (",em(n.knowledgeBase.totalSizeBytes),")"]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:"MCP"}),(0,r.jsx)("span",{className:"ml-2",children:n.mcp.running?e.monitorMcpRunning?.(n.mcp.port)??`Running :${n.mcp.port}`:e.monitorMcpStopped??"Stopped"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorErrors??"Errors"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:n.application.errors})]})]}),t&&!n&&!o&&(0,r.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:e.monitoringFailed??"Failed to load monitoring data"})]})}var ej=s(402),ey=s(10762),eN=s(439),ek=s(15411),ew=s(7915),eS=s(70617),eC=s(51914),eA=s(49387);let ez=(0,s(37206).default)(()=>Promise.all([s.e(3013),s.e(3637)]).then(s.bind(s,63637)),{loadableGenerated:{webpack:()=>[63637]},ssr:!1});function eT({skill:e,expanded:t,onExpand:s,onToggle:a,onDelete:n,onEditStart:l,onEditSave:o,onEditCancel:i,editing:d,editContent:c,setEditContent:u,editError:h,saving:g,fullContent:b,loadingContent:f,loadErrors:v,m:j}){return(0,r.jsxs)("div",{className:"border border-border rounded-lg overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 cursor-pointer hover:bg-muted/50 transition-colors",onClick:()=>s(e.name),children:[t?(0,r.jsx)(Z.A,{size:12}):(0,r.jsx)(X.A,{size:12}),(0,r.jsx)("span",{className:"text-xs font-medium flex-1",children:e.name}),(0,r.jsx)("span",{className:`text-2xs px-1.5 py-0.5 rounded ${"builtin"===e.source?"bg-muted text-muted-foreground":"bg-[var(--amber-subtle)] text-[var(--amber-text)]"}`,children:"builtin"===e.source?j?.skillBuiltin??"Built-in":j?.skillUser??"Custom"}),(0,r.jsx)(S.lM,{size:"sm",checked:e.enabled,onClick:t=>{t.stopPropagation(),a(e.name,!e.enabled)}})]}),t&&(0,r.jsxs)("div",{className:"px-3 py-2 border-t border-border text-xs space-y-2 bg-muted/20",children:[(0,r.jsx)("p",{className:"text-muted-foreground",children:e.description||"No description"}),(0,r.jsx)("p",{className:"text-muted-foreground font-mono text-2xs",children:e.path}),f===e.name?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,r.jsx)(p.A,{size:10,className:"animate-spin"}),(0,r.jsx)("span",{className:"text-2xs",children:"Loading..."})]}):b[e.name]?(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-2xs text-muted-foreground font-medium",children:j?.skillContent??"Content"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[e.editable&&d!==e.name&&(0,r.jsxs)("button",{onClick:()=>l(e.name),className:"flex items-center gap-1 text-2xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,r.jsx)(eA.A,{size:10}),j?.editSkill??"Edit"]}),e.editable&&(0,r.jsxs)("button",{onClick:()=>n(e.name),className:"flex items-center gap-1 text-2xs text-destructive hover:underline",children:[(0,r.jsx)(m.A,{size:10}),j?.deleteSkill??"Delete"]})]})]}),d===e.name?(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)("textarea",{value:c,onChange:e=>u(e.target.value),rows:Math.min(20,(c.match(/\n/g)||[]).length+3),className:"w-full px-2.5 py-1.5 text-xs rounded-md border border-border bg-background text-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring resize-y font-mono"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("button",{onClick:()=>o(e.name),disabled:g,className:"flex items-center gap-1 px-2.5 py-1 text-xs rounded-md disabled:opacity-40 disabled:cursor-not-allowed transition-colors bg-[var(--amber)] text-[var(--amber-foreground)]",children:[g&&(0,r.jsx)(p.A,{size:10,className:"animate-spin"}),j?.saveSkill??"Save"]}),(0,r.jsx)("button",{onClick:i,className:"px-2.5 py-1 text-xs rounded-md border border-border text-muted-foreground hover:text-foreground transition-colors",children:j?.cancelSkill??"Cancel"})]}),h&&(0,r.jsxs)("p",{className:"text-2xs text-destructive flex items-center gap-1",children:[(0,r.jsx)(x.A,{size:10}),h]})]}):(0,r.jsx)("div",{className:"w-full rounded-md border border-border bg-background/50 max-h-[300px] overflow-y-auto px-2.5 py-1.5 text-xs [&_.prose]:max-w-none [&_.prose]:text-xs [&_h1]:text-sm [&_h2]:text-xs [&_h3]:text-xs [&_pre]:text-2xs [&_code]:text-2xs",children:(0,r.jsx)(ez,{content:function(e){if(!e.startsWith("---"))return e;let t=e.indexOf("\n---",3);return -1===t?e:e.slice(t+4).replace(/^\n+/,"")}(b[e.name])})})]}):v[e.name]?(0,r.jsxs)("p",{className:"text-2xs text-destructive flex items-center gap-1",children:[(0,r.jsx)(x.A,{size:10}),v[e.name]]}):null]})]})}let eM=e=>`---
2
- name: ${e}
3
- description: >
4
- Describe WHEN the agent should use this
5
- skill. Be specific about trigger conditions.
6
- ---`,eE={general:e=>`${eM(e)}
7
-
8
- # Instructions
9
-
10
- ## Context
11
- <!-- Background knowledge for the agent -->
12
-
13
- ## Steps
14
- 1.
15
- 2.
16
-
17
- ## Rules
18
- <!-- Constraints, edge cases, formats -->
19
- - `,"tool-use":e=>`${eM(e)}
20
-
21
- # Instructions
22
-
23
- ## Available Tools
24
- <!-- List tools the agent can use -->
25
- -
26
-
27
- ## When to Use
28
- <!-- Conditions that trigger this skill -->
29
-
30
- ## Output Format
31
- <!-- Expected response structure -->
32
- `,workflow:e=>`${eM(e)}
33
-
34
- # Instructions
35
-
36
- ## Trigger
37
- <!-- What triggers this workflow -->
38
-
39
- ## Steps
40
- 1.
41
- 2.
42
-
43
- ## Validation
44
- <!-- How to verify success -->
45
-
46
- ## Rollback
47
- <!-- What to do on failure -->
48
- `};function eR({onSave:e,onCancel:t,saving:s,error:n,m:l}){let[o,i]=(0,a.useState)(""),[d,c]=(0,a.useState)(""),[u,m]=(0,a.useState)("general"),h=(e,t)=>(eE[t||u]||eE.general)(e||"my-skill");return(0,r.jsxs)("div",{className:"border border-border rounded-lg p-3 space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-xs font-medium",children:l?.addSkill??"+ Add Skill"}),(0,r.jsx)("button",{onClick:t,className:"p-0.5 rounded hover:bg-muted text-muted-foreground",children:(0,r.jsx)(b.A,{size:12})})]}),(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("label",{className:"text-2xs text-muted-foreground",children:l?.skillName??"Name"}),(0,r.jsx)("input",{type:"text",value:o,onChange:e=>{let t,s;return t=e.target.value.toLowerCase().replace(/[^a-z0-9-]/g,""),s=h(o||"my-skill"),void((!d||d===s)&&c(h(t||"my-skill")),i(t))},placeholder:"my-skill",className:"w-full px-2.5 py-1.5 text-xs rounded-md border border-border bg-background font-mono text-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring"})]}),(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("label",{className:"text-2xs text-muted-foreground",children:l?.skillTemplate??"Template"}),(0,r.jsx)("div",{className:"flex rounded-md border border-border overflow-hidden w-fit",children:["general","tool-use","workflow"].map((e,t)=>(0,r.jsx)("button",{onClick:()=>{let t;return t=h(o||"my-skill",u),void(m(e),(!d||d===t)&&c(h(o||"my-skill",e)))},className:`px-2.5 py-1 text-xs transition-colors ${t>0?"border-l border-border":""} ${u===e?"bg-[var(--amber-subtle)] text-[var(--amber-text)] font-medium":"text-muted-foreground hover:bg-muted"}`,children:"general"===e?l?.skillTemplateGeneral??"General":"tool-use"===e?l?.skillTemplateToolUse??"Tool-use":l?.skillTemplateWorkflow??"Workflow"},e))})]}),(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("label",{className:"text-2xs text-muted-foreground",children:l?.skillContent??"Content"}),(0,r.jsx)("textarea",{value:d||h(o||"my-skill"),onChange:e=>c(e.target.value),rows:16,placeholder:"Skill instructions (markdown)...",className:"w-full px-2.5 py-1.5 text-xs rounded-md border border-border bg-background text-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring resize-y font-mono"})]}),n&&(0,r.jsxs)("p",{className:"text-2xs text-destructive flex items-center gap-1",children:[(0,r.jsx)(x.A,{size:10}),n]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("button",{onClick:()=>e(o.trim(),d||h(o.trim()||"my-skill")),disabled:!o.trim()||s,className:"flex items-center gap-1 px-2.5 py-1 text-xs rounded-md disabled:opacity-40 disabled:cursor-not-allowed transition-colors bg-[var(--amber)] text-[var(--amber-foreground)]",children:[s&&(0,r.jsx)(p.A,{size:10,className:"animate-spin"}),l?.saveSkill??"Save"]}),(0,r.jsx)("button",{onClick:t,className:"px-2.5 py-1 text-xs rounded-md border border-border text-muted-foreground hover:text-foreground transition-colors",children:l?.cancelSkill??"Cancel"})]})]})}var eI=s(27996);function eP({t:e}){let t,s,n=e.settings?.mcp,l=(0,eS.cd)(),[o,i]=(0,a.useState)([]),[d,c]=(0,a.useState)(!0),[u,m]=(0,a.useState)(null),[x,h]=(0,a.useState)(!1),[g,f]=(0,a.useState)(!1),[v,j]=(0,a.useState)(""),[N,k]=(0,a.useState)(""),[w,S]=(0,a.useState)(!0),[C,A]=(0,a.useState)(null),[z,T]=(0,a.useState)(""),[M,E]=(0,a.useState)(""),[R,I]=(0,a.useState)({}),[P,U]=(0,a.useState)(null),[D,$]=(0,a.useState)({}),[F,L]=(0,a.useState)(!1),[O,B]=(0,a.useState)(null),_=(0,a.useCallback)(async()=>{try{let e=await (0,y.n)("/api/skills");i(e.skills),$({})}catch(t){let e=t instanceof Error?t.message:"Failed to load skills";console.error("fetchSkills error:",e),$(t=>({...t,_root:e}))}c(!1)},[]);(0,a.useEffect)(()=>{_()},[_]);let K=(0,a.useMemo)(()=>{if(!N)return o;let e=N.toLowerCase();return o.filter(t=>t.name.toLowerCase().includes(e)||t.description.toLowerCase().includes(e))},[o,N]),H=(0,a.useMemo)(()=>K.filter(e=>"user"===e.source),[K]),G=(0,a.useMemo)(()=>K.filter(e=>"builtin"===e.source),[K]),V=async(e,t)=>{if(l){await l.toggleSkill(e,t),i(s=>s.map(s=>s.name===e?{...s,enabled:t}:s));return}try{await (0,y.n)("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"toggle",name:e,enabled:t})}),i(s=>s.map(s=>s.name===e?{...s,enabled:t}:s)),$(t=>{let s={...t};return delete s[e],s})}catch(s){let t=s instanceof Error?s.message:"Failed to toggle skill";console.error("handleToggle error:",t),$(s=>({...s,[e]:t}))}},J=e=>{B(e)},q=async e=>{try{await (0,y.n)("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",name:e})}),I(t=>{let s={...t};return delete s[e],s}),C===e&&A(null),u===e&&m(null),$(t=>{let s={...t};return delete s[e],s}),_(),window.dispatchEvent(new Event("mindos:skills-changed"))}catch(s){let t=s instanceof Error?s.message:"Failed to delete skill";console.error("handleDelete error:",t),$(s=>({...s,[e]:t}))}},W=async e=>{if(!R[e]){U(e);try{let t=await (0,y.n)("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"read",name:e})});I(s=>({...s,[e]:t.content})),$(t=>{let s={...t};return delete s[e],s})}catch(t){$(s=>({...s,[e]:t instanceof Error?t.message:"Failed to load skill content"}))}finally{U(null)}}},Y=e=>{let t=u===e?null:e;m(t),t&&W(e),C&&C!==e&&A(null)},Q=e=>{A(e),T(R[e]||""),E("")},ee=async e=>{f(!0),E("");try{await (0,y.n)("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"update",name:e,content:z})}),I(t=>({...t,[e]:z})),A(null),_(),window.dispatchEvent(new Event("mindos:skills-changed"))}catch(e){E(e instanceof Error?e.message:"Failed to save skill")}finally{f(!1)}},et=()=>{A(null),T(""),E("")},es=async(e,t)=>{if(e){f(!0),j("");try{await (0,y.n)("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"create",name:e,content:t})}),h(!1),_(),window.dispatchEvent(new Event("mindos:skills-changed"))}catch(e){j(e instanceof Error?e.message:"Failed to create skill")}finally{f(!1)}}};return d?(0,r.jsx)("div",{className:"flex justify-center py-4",children:(0,r.jsx)(p.A,{size:16,className:"animate-spin text-muted-foreground"})}):(0,r.jsxs)("div",{className:"space-y-3 pt-2",children:[(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(eo.A,{size:12,className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),(0,r.jsx)("input",{type:"text",value:N,onChange:e=>k(e.target.value),placeholder:n?.searchSkills??"Search skills...",className:"w-full pl-7 pr-2.5 py-1.5 text-xs rounded-md border border-border bg-background text-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring"}),N&&(0,r.jsx)("button",{onClick:()=>k(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:(0,r.jsx)(b.A,{size:10})})]}),(t=o.find(e=>"mindos"===e.name)?.enabled??!0?"en":"zh",s=async e=>{if(e!==t&&!F){L(!0);try{"en"===e?(await V("mindos",!0),await V("mindos-zh",!1)):(await V("mindos-zh",!0),await V("mindos",!1))}catch(e){console.error("Lang switch failed:",e)}finally{L(!1)}}},(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:n?.skillLanguage??"Skill Language"}),(0,r.jsxs)("div",{className:"flex rounded-md border border-border overflow-hidden",children:[(0,r.jsx)("button",{onClick:()=>s("en"),disabled:F,className:`px-2.5 py-1 text-xs transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${"en"===t?"bg-[var(--amber-subtle)] text-[var(--amber-text)] font-medium":"text-muted-foreground hover:bg-muted"}`,children:n?.skillLangEn??"English"}),(0,r.jsx)("button",{onClick:()=>s("zh"),disabled:F,className:`px-2.5 py-1 text-xs transition-colors disabled:opacity-50 disabled:cursor-not-allowed border-l border-border ${"zh"===t?"bg-[var(--amber-subtle)] text-[var(--amber-text)] font-medium":"text-muted-foreground hover:bg-muted"}`,children:n?.skillLangZh??"中文"})]})]})),0===K.length&&N&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground text-center py-3",children:n?.noSkillsMatch?n.noSkillsMatch(N):`No skills match "${N}"`}),H.length>0&&(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)("div",{className:"flex items-center gap-2 text-xs font-medium text-muted-foreground",children:(0,r.jsxs)("span",{children:[n?.customGroup??"Custom"," (",H.length,")"]})}),(0,r.jsx)("div",{className:"space-y-1.5",children:H.map(e=>(0,r.jsx)(eT,{skill:e,expanded:u===e.name,onExpand:Y,onToggle:V,onDelete:J,onEditStart:Q,onEditSave:ee,onEditCancel:et,editing:C,editContent:z,setEditContent:T,editError:M,saving:g,fullContent:R,loadingContent:P,loadErrors:D,m:n},e.name))})]}),G.length>0&&(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-medium text-muted-foreground cursor-pointer hover:text-foreground transition-colors",onClick:()=>S(!w),children:[w?(0,r.jsx)(X.A,{size:12}):(0,r.jsx)(Z.A,{size:12}),(0,r.jsxs)("span",{children:[n?.builtinGroup??"Built-in"," (",G.length,")"]})]}),!w&&(0,r.jsx)("div",{className:"space-y-1.5",children:G.map(e=>(0,r.jsx)(eT,{skill:e,expanded:u===e.name,onExpand:Y,onToggle:V,onDelete:J,onEditStart:Q,onEditSave:ee,onEditCancel:et,editing:C,editContent:z,setEditContent:T,editError:M,saving:g,fullContent:R,loadingContent:P,loadErrors:D,m:n},e.name))})]}),x?(0,r.jsx)(eR,{onSave:es,onCancel:()=>{h(!1),j("")},saving:g,error:v,m:n}):(0,r.jsxs)("button",{onClick:()=>h(!0),className:"flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,r.jsx)(eC.A,{size:12}),n?.addSkill??"+ Add Skill"]}),(0,r.jsx)(eU,{agents:l?.agents??[],skillName:o.find(e=>"mindos"===e.name)?.enabled??!0?"mindos":"mindos-zh",m:n}),(0,r.jsx)(ec.TM,{open:!!O,title:"Delete skill?",message:O?n?.skillDeleteConfirm?.(O)??`Delete skill "${O}"?`:"",confirmLabel:"Delete",cancelLabel:"Cancel",variant:"destructive",onConfirm:async()=>{B(null),await q(O)},onCancel:()=>B(null)})]})}function eU({agents:e,skillName:t,m:s}){let[n,l]=(0,a.useState)("claude-code"),o=`npx skills add GeminiLight/MindOS --skill ${t} -a ${n} -g -y`,i=`~/.agents/skills/${t}/SKILL.md`,d=async()=>{await (0,eu.l)(o)&&U.oR.copy()},c=e.filter(e=>e.present&&e.installed),u=e.filter(e=>e.present&&!e.installed),m=e.filter(e=>!e.present);return(0,r.jsxs)("div",{className:"border-t border-border pt-3 mt-3 space-y-2.5",children:[(0,r.jsx)("p",{className:"text-2xs font-medium text-muted-foreground",children:s?.cliInstallHint??"Install via CLI:"}),(0,r.jsx)(eI.A,{value:n,onChange:l,size:"sm",options:[...c.length>0?[{label:s?.connectedGroup??"Connected",options:c.map(e=>({value:e.key,label:e.name}))}]:[],...u.length>0?[{label:s?.detectedGroup??"Detected",options:u.map(e=>({value:e.key,label:e.name}))}]:[],...m.length>0?[{label:s?.notFoundGroup??"Not Installed",options:m.map(e=>({value:e.key,label:e.name}))}]:[]]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("code",{className:"flex-1 text-[10px] font-mono bg-muted/50 border border-border rounded-lg px-2.5 py-2 text-muted-foreground select-all overflow-x-auto whitespace-nowrap",children:o}),(0,r.jsx)("button",{onClick:d,className:"p-1.5 rounded-md border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors shrink-0",children:(0,r.jsx)(el.A,{size:11})})]}),(0,r.jsxs)("p",{className:"text-2xs text-muted-foreground",children:[s?.skillPathHint??"Skill files installed at:"," ",(0,r.jsx)("code",{className:"font-mono text-[10px] bg-muted px-1 py-0.5 rounded",children:i})]})]})}var eD=s(32967);function e$(e){return Array.isArray(e)?new Set(e):new Set}function eF(){let[e,t]=(0,a.useState)([]),[s,n]=(0,a.useState)(!0),[l,o]=(0,a.useState)(null),[i,d]=(0,a.useState)(null),c=(0,a.useCallback)(async()=>{try{let e=await (0,y.n)("/api/mcp/tools");t(e.servers)}catch{t([])}n(!1)},[]);(0,a.useEffect)(()=>{c()},[c]);let u=async(e,s,r)=>{d(e);try{let a="all"===s||"select"===s&&(r??[]);await (0,y.n)("/api/mcp/direct-tools",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({server:e,directTools:a})}),t(t=>t.map(t=>t.name===e?{...t,directTools:a}:t)),U.oR.success("Saved")}catch{U.oR.error("Failed to save")}d(null)},m=async(t,s,r)=>{let a=e.find(e=>e.name===t);if(!a)return;let n=e$(a.directTools);r?n.add(s):n.delete(s);let l=[...n];await u(t,l.length>0?"select":"proxy",l)};return s?(0,r.jsx)("div",{className:"flex justify-center py-4",children:(0,r.jsx)(p.A,{size:16,className:"animate-spin text-muted-foreground"})}):0===e.length?(0,r.jsx)("div",{className:"px-1 py-3",children:(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:["No external MCP servers configured. Add servers to ",(0,r.jsx)("code",{className:"text-2xs bg-muted px-1 py-0.5 rounded",children:"~/.mindos/mcp.json"})," to get started."]})}):(0,r.jsxs)("div",{className:"space-y-1.5",children:[e.map(e=>{var t;let s=!0===(t=e.directTools)?"all":Array.isArray(t)&&t.length>0?"select":"proxy",a=e$(e.directTools),n=l===e.name,d=i===e.name;return(0,r.jsxs)("div",{className:"border border-border rounded-lg overflow-hidden",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>o(n?null:e.name),className:"w-full flex items-center gap-2 px-3 py-2 text-left hover:bg-muted/30 transition-colors",children:[n?(0,r.jsx)(Z.A,{size:12,className:"text-muted-foreground shrink-0"}):(0,r.jsx)(X.A,{size:12,className:"text-muted-foreground shrink-0"}),(0,r.jsx)("span",{className:"text-xs font-semibold text-foreground truncate",children:e.name}),(0,r.jsxs)("span",{className:"text-2xs text-muted-foreground",children:[e.toolCount," ",1===e.toolCount?"tool":"tools"]}),(0,r.jsx)("div",{className:"flex-1"}),(0,r.jsx)(eL,{mode:s,count:a.size}),d&&(0,r.jsx)(p.A,{size:12,className:"animate-spin text-muted-foreground"})]}),n&&(0,r.jsxs)("div",{className:"border-t border-border bg-muted/10 px-3 py-2.5 space-y-2.5",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(eO,{active:"proxy"===s,onClick:()=>u(e.name,"proxy"),icon:(0,r.jsx)(eN.A,{size:11}),label:"Proxy only"}),(0,r.jsx)(eO,{active:"all"===s,onClick:()=>u(e.name,"all"),icon:(0,r.jsx)(R.A,{size:11}),label:"All direct"}),(0,r.jsx)(eO,{active:"select"===s,onClick:()=>{"select"!==s&&u(e.name,"select",[])},icon:(0,r.jsx)(eD.A,{size:11}),label:"Select"})]}),e.tools.length>0&&("select"===s||"all"===s)&&(0,r.jsx)("div",{className:"space-y-0.5 max-h-48 overflow-y-auto",children:e.tools.map(t=>{let n="all"===s||a.has(t.name);return(0,r.jsxs)("label",{className:"flex items-start gap-2 px-2 py-1 rounded hover:bg-muted/30 cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:n,disabled:"all"===s,onChange:s=>m(e.name,t.name,s.target.checked),className:"mt-0.5 w-3 h-3 rounded accent-[var(--amber)] cursor-pointer"}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("span",{className:"text-xs font-mono text-foreground",children:t.name}),t.description&&(0,r.jsx)("p",{className:"text-2xs text-muted-foreground line-clamp-1",children:t.description})]})]},t.name)})}),!e.cached&&(0,r.jsx)("p",{className:"text-2xs text-muted-foreground italic",children:"Tool list not yet cached. Tools will appear after the first connection."})]})]},e.name)}),(0,r.jsxs)("p",{className:"text-2xs text-muted-foreground px-1 pt-1 leading-relaxed",children:[(0,r.jsx)("strong",{children:"Direct"})," tools (~150 tokens each) can be called directly by the agent."," ",(0,r.jsx)("strong",{children:"Proxy"})," tools (~200 tokens total) require ",(0,r.jsx)("code",{className:"text-2xs bg-muted px-0.5 rounded",children:"mcp({search/call})"})," but save context."," ","Changes take effect on the next agent session."]})]})}function eL({mode:e,count:t}){return"all"===e?(0,r.jsx)("span",{className:"text-2xs px-1.5 py-0.5 rounded-full bg-[var(--amber-subtle)] text-[var(--amber-text)] font-medium leading-none",children:"All direct"}):"select"===e&&t>0?(0,r.jsxs)("span",{className:"text-2xs px-1.5 py-0.5 rounded-full bg-[var(--amber-subtle)] text-[var(--amber-text)] font-medium leading-none",children:[t," direct"]}):(0,r.jsx)("span",{className:"text-2xs px-1.5 py-0.5 rounded-full bg-muted text-muted-foreground font-medium leading-none",children:"Proxy only"})}function eO({active:e,onClick:t,icon:s,label:a}){return(0,r.jsxs)("button",{type:"button",onClick:t,className:`flex items-center gap-1 px-2 py-1 rounded-md text-2xs font-medium transition-colors ${e?"bg-[var(--amber-subtle)] text-[var(--amber-text)] border border-[var(--amber)]/30":"bg-muted/50 text-muted-foreground border border-border/50 hover:bg-muted hover:text-foreground"}`,children:[s,a]})}var eB=s(97233);let e_=(0,i.A)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);var eK=s(13845);function eH({agents:e,t,onRefresh:s,mode:n="mcp",activeSkillName:l="mindos"}){let o=t.settings?.mcp,[i,d]=(0,a.useState)(new Set),[c,u]=(0,a.useState)("auto"),[m,h]=(0,a.useState)("http://localhost:8781/mcp"),[b,f]=(0,a.useState)(""),[v,j]=(0,a.useState)({}),[N,k]=(0,a.useState)(!1),[w,C]=(0,a.useState)(null),A=async()=>{if(0!==i.size){k(!0),C(null);try{let t={agents:[...i].map(t=>{let s=e.find(e=>e.key===t),r="auto"===c?s?.preferredTransport||"stdio":c;return{key:t,scope:v[t]||(s?.hasProjectScope?"project":"global"),transport:r}}),transport:c,..."http"===c?{url:m,token:b}:{},..."auto"===c?{url:m,token:b}:{}},r=await (0,y.n)("/api/mcp/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),a=r.results.filter(e=>"ok"===e.status).length,n=r.results.filter(e=>"error"===e.status);n.length>0?C({type:"error",text:n.map(e=>`${e.agent}: ${e.message}`).join("; ")}):C({type:"success",text:o?.installSuccess?o.installSuccess(a):`${a} agent(s) configured`}),d(new Set),s()}catch{C({type:"error",text:o?.installFailed??"Install failed"})}finally{k(!1),setTimeout(()=>C(null),4e3)}}},z="http"===c||"auto"===c&&[...i].some(t=>{let s=e.find(e=>e.key===t);return s?.preferredTransport==="http"});return"cli"===n?(0,r.jsx)(eG,{agents:e,m:o,activeSkillName:l}):(0,r.jsxs)("div",{className:"space-y-3 pt-2",children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:o?.mcpInstallDesc??"Install MCP config + Skill to detected agents on this machine."}),(0,r.jsx)("div",{className:"space-y-1",children:e.map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-3 py-1.5 text-sm",children:[(0,r.jsx)("input",{type:"checkbox",checked:i.has(e.key),onChange:()=>{var t;return t=e.key,void d(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},className:"form-check"}),(0,r.jsx)("span",{className:"w-28 shrink-0 text-xs",children:e.name}),(0,r.jsx)("span",{className:"text-2xs px-1.5 py-0.5 rounded font-mono bg-muted",children:"auto"===c?e.preferredTransport:c}),e.installed?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-2xs px-1.5 py-0.5 rounded bg-success/15 text-success font-mono",children:e.transport}),(0,r.jsx)("span",{className:"text-2xs text-muted-foreground",children:e.scope})]}):(0,r.jsx)("span",{className:"text-2xs text-muted-foreground",children:e.present?o?.detected??"Detected":o?.notFound??"Not found"}),i.has(e.key)&&e.hasProjectScope&&e.hasGlobalScope&&(0,r.jsx)(eI.A,{value:v[e.key]||"project",onChange:t=>j({...v,[e.key]:t}),size:"sm",className:"ml-auto",options:[{value:"project",label:o?.project??"Project"},{value:"global",label:o?.global??"Global"}]})]},e.key))}),(0,r.jsxs)("div",{className:"flex gap-2 text-xs pt-1",children:[(0,r.jsx)("button",{type:"button",onClick:()=>d(new Set(e.filter(e=>!e.installed&&e.present).map(e=>e.key))),className:"px-2.5 py-1 rounded-md border border-[var(--amber)] text-[var(--amber)] transition-colors hover:bg-muted/50",children:o?.selectDetected??"Select Detected"}),(0,r.jsx)("button",{type:"button",onClick:()=>d(new Set),className:"px-2.5 py-1 rounded-md border border-border text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground",children:o?.clearSelection??"Clear"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-4 text-xs pt-1",children:[(0,r.jsxs)("label",{className:"flex items-center gap-1.5 cursor-pointer",children:[(0,r.jsx)("input",{type:"radio",name:"transport",checked:"auto"===c,onChange:()=>u("auto"),className:"form-radio"}),o?.transportAuto??"auto (recommended)"]}),(0,r.jsxs)("label",{className:"flex items-center gap-1.5 cursor-pointer",children:[(0,r.jsx)("input",{type:"radio",name:"transport",checked:"stdio"===c,onChange:()=>u("stdio"),className:"form-radio"}),o?.transportStdio??"stdio"]}),(0,r.jsxs)("label",{className:"flex items-center gap-1.5 cursor-pointer",children:[(0,r.jsx)("input",{type:"radio",name:"transport",checked:"http"===c,onChange:()=>u("http"),className:"form-radio"}),o?.transportHttp??"http"]})]}),z&&(0,r.jsxs)("div",{className:"space-y-2 pl-5 text-xs",children:[(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("label",{className:"text-muted-foreground",children:o?.httpUrl??"MCP URL"}),(0,r.jsx)("input",{type:"text",value:m,onChange:e=>h(e.target.value),className:"w-full px-2.5 py-1.5 text-xs rounded-md border border-border bg-background font-mono text-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring"})]}),(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("label",{className:"text-muted-foreground",children:o?.httpToken??"Auth Token"}),(0,r.jsx)(S.yA,{value:b,onChange:f,placeholder:"Bearer token",size:"sm"})]})]}),(0,r.jsxs)("button",{onClick:A,disabled:0===i.size||N,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-lg transition-colors disabled:opacity-40 disabled:cursor-not-allowed bg-[var(--amber)] text-[var(--amber-foreground)]",children:[N&&(0,r.jsx)(p.A,{size:12,className:"animate-spin"}),N?o?.installing??"Installing...":o?.installSelected??"Install Selected"]}),w&&(0,r.jsx)("div",{className:"flex items-center gap-1.5 text-xs",role:"status",children:"success"===w.type?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(g.A,{size:12,className:"text-success"}),(0,r.jsx)("span",{className:"text-success",children:w.text})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x.A,{size:12,className:"text-destructive"}),(0,r.jsx)("span",{className:"text-destructive",children:w.text})]})})]})}function eG({agents:e,m:t,activeSkillName:s}){let[n,l]=(0,a.useState)(e[0]?.key??"claude-code"),o=e.find(e=>e.key===n),i=`npx skills add GeminiLight/MindOS --skill ${s} -a ${n} -g -y`,d=async()=>{await (0,eu.l)(i)&&U.oR.copy()},c=e.filter(e=>e.present&&e.installed),u=e.filter(e=>e.present&&!e.installed),m=e.filter(e=>!e.present);return(0,r.jsxs)("div",{className:"space-y-3 pt-2",children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:t?.cliInstallDesc??"Install the MindOS Skill to your agent so it can operate your knowledge base."}),(0,r.jsx)(eI.A,{value:n,onChange:l,size:"sm",options:[...c.length>0?[{label:t?.connectedGroup??"Connected",options:c.map(e=>({value:e.key,label:e.name}))}]:[],...u.length>0?[{label:t?.detectedGroup??"Detected",options:u.map(e=>({value:e.key,label:e.name}))}]:[],...m.length>0?[{label:t?.notFoundGroup??"Not Installed",options:m.map(e=>({value:e.key,label:e.name}))}]:[]]}),o&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-2xs",children:[o.present&&o.installed?(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full font-medium bg-success/10 text-success",children:[(0,r.jsx)(g.A,{size:10})," ",t?.tagConnected??"Connected"]}):o.present?(0,r.jsx)("span",{className:"text-muted-foreground",children:t?.detected??"Detected"}):(0,r.jsx)("span",{className:"text-muted-foreground",children:t?.notFound??"Not found"}),null!=o.installedSkillCount&&o.installedSkillCount>0&&(0,r.jsxs)("span",{className:"text-muted-foreground",children:[o.installedSkillCount," ",t?.skillsInstalled??"skills installed"]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("code",{className:"flex-1 text-[10px] font-mono bg-muted/50 border border-border rounded-lg px-2.5 py-2 text-muted-foreground select-all overflow-x-auto whitespace-nowrap",children:i}),(0,r.jsx)("button",{onClick:d,className:"p-1.5 rounded-md border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors shrink-0",children:(0,r.jsx)(el.A,{size:11})})]})]})}let eV={checking:!1,available:null,isSelf:!1,suggestion:null};function eJ({m:e}){let[t,s]=(0,a.useState)(0),[n,l]=(0,a.useState)(0),[i,d]=(0,a.useState)(eV),[c,u]=(0,a.useState)(!1),m=(0,a.useRef)(void 0),x=(0,a.useRef)(void 0);(0,a.useEffect)(()=>{(0,y.n)("/api/settings").then(e=>{let t=e.mcpPort||8781;s(t),l(t)}).catch(()=>{})},[]),(0,a.useEffect)(()=>()=>{clearTimeout(m.current),clearInterval(x.current)},[]);let h=n!==t,b=n<1024||n>65535,f=i.checking||!1===i.available&&!i.isSelf,v=(0,a.useCallback)(async e=>{if(e<1024||e>65535)return void d({...eV,available:!1,invalid:!0});d({...eV,checking:!0});try{let t=await (0,y.n)("/api/setup/check-port",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:e})});d({checking:!1,available:t.available,isSelf:t.isSelf??!1,suggestion:t.suggestion??null})}catch{d(eV)}},[]),j=async()=>{if(h&&!b&&!f&&!c){u(!0);try{let t=await (0,y.n)("/api/setup/check-port",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:n})});if(!t.available&&!t.isSelf){d({checking:!1,available:!1,isSelf:!1,suggestion:t.suggestion??null}),u(!1),U.oR.error(e.portInUse(n));return}await (0,y.n)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpPort:n})});try{await (0,y.n)("/api/mcp/restart",{method:"POST"})}catch{u(!1),U.oR.error(e.portUpdateFailed);return}let r=Date.now()+6e4;x.current=setInterval(async()=>{if(Date.now()>r){clearInterval(x.current),u(!1),U.oR.error(e.portRestartTimeout);return}try{(await (0,y.n)("/api/mcp/status",{timeout:3e3})).running&&(clearInterval(x.current),u(!1),s(n),U.oR.success(e.portUpdateSuccess))}catch{}},3e3)}catch{u(!1),U.oR.error(e.portUpdateFailed)}}};return 0===t?null:(0,r.jsxs)("div",{className:"rounded-lg border border-border overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 bg-muted/30",children:[(0,r.jsx)(o.A,{size:11,className:"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:e.mcpPortLabel})]}),(0,r.jsxs)("div",{className:"px-3 py-2.5 space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("input",{type:"number",min:1024,max:65535,value:n,onChange:e=>{let t=parseInt(e.target.value,10)||n;l(t),d(eV),clearTimeout(m.current),t>=1024&&t<=65535&&(m.current=setTimeout(()=>v(t),500))},onBlur:()=>{clearTimeout(m.current),n>=1024&&n<=65535&&v(n)},className:"flex-1 px-2.5 py-1.5 text-sm rounded-lg border border-border bg-muted/30 text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring tabular-nums"}),(0,r.jsx)("button",{type:"button",onClick:j,disabled:!h||b||f||c,className:"px-3 py-1.5 rounded-lg text-xs font-medium transition-colors shrink-0 bg-[var(--amber)] text-[var(--amber-foreground)] hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:c?(0,r.jsx)(p.A,{size:12,className:"animate-spin"}):e.portUpdateBtn})]}),i.checking&&(0,r.jsxs)("p",{className:"text-2xs flex items-center gap-1 text-muted-foreground",children:[(0,r.jsx)(p.A,{size:10,className:"animate-spin"})," ",e.portChecking]}),!i.checking&&!1===i.available&&!i.invalid&&(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("p",{className:"text-2xs flex items-center gap-1 text-[var(--amber)]",children:[(0,r.jsx)(P.A,{size:10})," ",e.portInUse(n)]}),null!==i.suggestion&&(0,r.jsx)("button",{type:"button",onClick:()=>{l(i.suggestion),d(eV),setTimeout(()=>v(i.suggestion),0)},className:"text-2xs px-1.5 py-0.5 rounded border border-[var(--amber)] text-[var(--amber)] transition-colors hover:bg-[var(--amber-subtle)]",children:e.portSuggest(i.suggestion)})]}),!i.checking&&i.invalid&&(0,r.jsxs)("p",{className:"text-2xs flex items-center gap-1 text-destructive",children:[(0,r.jsx)(P.A,{size:10})," 1024 – 65535"]}),!i.checking&&!0===i.available&&(0,r.jsxs)("p",{className:"text-2xs flex items-center gap-1 text-success",children:[(0,r.jsx)(g.A,{size:10})," ",i.isSelf?e.portSelf:e.portAvailable]})]})]})}function eq(){let[e,t]=(0,a.useState)(null);return(0,a.useEffect)(()=>{if(!e)return;let s=setTimeout(()=>t(null),2e3);return()=>clearTimeout(s)},[e]),{copiedField:e,handleCopy:(0,a.useCallback)(async(e,s)=>{!e||await (0,eu.l)(e)&&(t(s),U.oR.copy())},[])}}function eW({mode:e,onModeChange:t,status:s,agents:a,connectedAgents:n,detectedAgents:o,notFoundAgents:i,currentAgent:d,selectedAgent:c,onSelectAgent:u,restarting:m,onRestart:x,onRefresh:p,activeSkillName:h,mcpEnabled:g,m:b,t:f}){if(!s)return null;let v=g?e:"cli";return(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-card overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2.5 px-4 pt-4 pb-3",children:[(0,r.jsx)("div",{className:"w-7 h-7 rounded-lg bg-[var(--amber-subtle)] flex items-center justify-center shrink-0",children:(0,r.jsx)(eB.A,{size:14,className:"text-[var(--amber)]"})}),(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:b?.connectionTitle??"Connect Agents"})]}),g?(0,r.jsxs)("div",{className:"grid grid-cols-2 mx-4 mb-3 rounded-lg border border-border overflow-hidden",children:[(0,r.jsxs)("button",{onClick:()=>t("cli"),className:`flex flex-col items-start px-3 py-2.5 text-left transition-colors ${"cli"===v?"bg-muted":"hover:bg-muted/50"}`,children:[(0,r.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(ey.A,{size:12,className:"cli"===v?"text-[var(--amber)]":"text-muted-foreground"}),(0,r.jsx)("span",{className:`text-xs font-semibold ${"cli"===v?"text-foreground":"text-muted-foreground"}`,children:"CLI"}),(0,r.jsx)("span",{className:"text-2xs px-1 py-0.5 rounded bg-[var(--amber-subtle)] text-[var(--amber-text)] font-medium leading-none",children:b?.recommended??"Recommended"})]}),(0,r.jsx)("span",{className:"text-2xs text-muted-foreground mt-0.5",children:b?.cliAgents??"Claude Code \xb7 Gemini CLI \xb7 Codex"})]}),(0,r.jsxs)("button",{onClick:()=>t("mcp"),className:`flex flex-col items-start px-3 py-2.5 text-left transition-colors border-l border-border ${"mcp"===v?"bg-muted":"hover:bg-muted/50"}`,children:[(0,r.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(l.A,{size:12,className:"mcp"===v?"text-foreground":"text-muted-foreground"}),(0,r.jsx)("span",{className:`text-xs font-semibold ${"mcp"===v?"text-foreground":"text-muted-foreground"}`,children:"MCP"})]}),(0,r.jsx)("span",{className:"text-2xs text-muted-foreground mt-0.5",children:b?.mcpAgents??"Claude Desktop \xb7 Cursor"})]})]}):(0,r.jsx)("div",{className:"mx-4 mb-3 px-3 py-2 rounded-lg border border-border bg-muted/30",children:(0,r.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(ey.A,{size:12,className:"text-[var(--amber)]"}),(0,r.jsx)("span",{className:"text-xs font-semibold text-foreground",children:"CLI"}),(0,r.jsx)("span",{className:"text-2xs px-1 py-0.5 rounded bg-[var(--amber-subtle)] text-[var(--amber-text)] font-medium leading-none",children:b?.recommended??"Recommended"})]})}),(0,r.jsx)("div",{className:"px-4 pb-4 space-y-4",children:"cli"===v?(0,r.jsx)(eY,{status:s,activeSkillName:h,agents:a,connectedAgents:n,detectedAgents:o,notFoundAgents:i,onRefresh:p,m:b,t:f}):(0,r.jsx)(eZ,{status:s,agents:a,activeSkillName:h,connectedAgents:n,detectedAgents:o,notFoundAgents:i,currentAgent:d,selectedAgent:c,onSelectAgent:u,restarting:m,onRestart:x,onRefresh:p,m:b,t:f})})]})}function eY({status:e,activeSkillName:t,agents:s,connectedAgents:a,detectedAgents:n,notFoundAgents:l,onRefresh:o,m:i,t:d}){let{copiedField:c,handleCopy:u}=eq(),m=e.authConfigured&&!!e.authToken,x=e.localIP||"localhost",p=window.location.port||"3456",h=`http://${x}:${p}`,b=e.maskedToken??"";return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"space-y-2.5",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(w.A,{size:12,className:"text-success"}),(0,r.jsx)("span",{className:"text-xs font-semibold text-foreground",children:i?.localTitle??"Local"}),(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-2xs font-medium bg-success/10 text-success",children:[(0,r.jsx)(g.A,{size:10}),i?.localReady??"Ready to use"]})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:i?.cliLocalDesc??"MindOS Skill is built-in. Install the CLI and you're good to go."}),(0,r.jsx)(e1,{code:"mindos file list",label:i?.cliSkillVerify??"Verify",onCopy:u,copiedField:c,fieldId:"cli-verify"}),s.length>0&&(0,r.jsx)(eX,{icon:(0,r.jsx)(e_,{size:12,className:"text-muted-foreground"}),title:i?.detectedAgentsTitle??"Detected Agents",badge:`${a.length+n.length}/${s.length}`,children:(0,r.jsx)(eH,{agents:s,t:d,onRefresh:o,mode:"cli",activeSkillName:t})})]}),(0,r.jsxs)("div",{className:"border-t border-border pt-3 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(V.A,{size:12,className:"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-xs font-semibold text-foreground",children:i?.remoteTitle??"Remote Access"})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:i?.cliRemoteDesc??"Install the CLI on another machine and connect to this MindOS server."}),(0,r.jsx)(eQ,{step:"1",label:i?.cliSkillInstall??"Install",children:(0,r.jsx)(e1,{code:"npm install -g @geminilight/mindos",onCopy:u,copiedField:c,fieldId:"cli-install",compact:!0})}),(0,r.jsx)(eQ,{step:"2",label:i?.cliRemoteConfigure??"Configure",children:(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)(e1,{code:`mindos config set url ${h}`,onCopy:u,copiedField:c,fieldId:"cli-url",compact:!0}),(0,r.jsx)(e1,{code:`mindos config set authToken ${m?b:"<token>"}`,onCopy:(t,s)=>{u(`mindos config set authToken ${e.authToken??"<token>"}`,s)},copiedField:c,fieldId:"cli-token",compact:!0,hint:m?i?.tokenCopyFullHint??"Copies full token":void 0})]})}),(0,r.jsx)(eQ,{step:"3",label:i?.cliInstallSkill??"Install Skill",children:(0,r.jsx)(e1,{code:`npx skills add GeminiLight/MindOS --skill ${t} -g -y`,onCopy:u,copiedField:c,fieldId:"cli-skill",compact:!0})}),(0,r.jsx)(eQ,{step:"4",label:i?.cliSkillVerify??"Verify",children:(0,r.jsx)(e1,{code:"mindos file list",onCopy:u,copiedField:c,fieldId:"cli-remote-verify",compact:!0})})]})]})}function eZ({status:e,agents:t,activeSkillName:s,connectedAgents:n,detectedAgents:l,notFoundAgents:o,currentAgent:i,selectedAgent:d,onSelectAgent:c,restarting:u,onRestart:m,onRefresh:p,m:h,t:b}){let{copiedField:f,handleCopy:v}=eq(),j=e.authConfigured&&!!e.authToken,y=e.localIP||"localhost",N=`http://${y}:${e.port}/mcp`,k=(0,a.useMemo)(()=>i?(0,eK.$k)(i,e,"stdio"):null,[i,e]),S=(0,a.useMemo)(()=>i?(0,eK.$k)(i,e,"http"):null,[i,e]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e0,{status:e,restarting:u,onRestart:m,onRefresh:p,m:h}),h&&(0,r.jsx)(eJ,{m:h}),(0,r.jsxs)("div",{className:"space-y-2.5",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(w.A,{size:12,className:e.running?"text-success":"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-xs font-semibold text-foreground",children:h?.localTitle??"Local"})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:h?.mcpLocalDesc??"Copy the config snippet and paste into your agent's MCP settings."}),t.length>0&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(eI.A,{value:d,onChange:c,options:[...n.length>0?[{label:h?.connectedGroup??"Connected",options:n.map(e=>({value:e.key,label:e.name}))}]:[],...l.length>0?[{label:h?.detectedGroup??"Detected",options:l.map(e=>({value:e.key,label:e.name}))}]:[],...o.length>0?[{label:h?.notFoundGroup??"Not Installed",options:o.map(e=>({value:e.key,label:e.name}))}]:[]]}),i&&k&&(0,r.jsxs)(r.Fragment,{children:[i.present&&i.installed&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-2xs font-medium bg-success/10 text-success",children:[(0,r.jsx)(g.A,{size:10})," ",h?.tagConnected??"Connected"]}),(0,r.jsx)("pre",{className:"text-[11px] font-mono bg-muted/50 border border-border rounded-lg p-3 overflow-x-auto whitespace-pre select-all max-h-[200px] overflow-y-auto",children:k.displaySnippet}),(0,r.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,r.jsxs)("button",{onClick:async()=>{await (0,eu.l)(k.snippet)&&U.oR.copy()},className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors shrink-0",children:[(0,r.jsx)(el.A,{size:14})," ",h?.copyConfig??"Copy"]}),(0,r.jsx)("span",{className:"text-muted-foreground",children:"→"}),(0,r.jsx)("span",{className:"font-mono text-muted-foreground truncate text-2xs",children:k.path})]})]})]})]}),t.length>0&&(0,r.jsx)(eX,{icon:(0,r.jsx)(e_,{size:12,className:"text-muted-foreground"}),title:h?.detectedAgentsTitle??"Detected Agents",badge:`${n.length+l.length}/${t.length}`,children:(0,r.jsx)(eH,{agents:t,t:b,onRefresh:p,mode:"mcp",activeSkillName:s})}),(0,r.jsxs)("div",{className:"border-t border-border pt-3 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(V.A,{size:12,className:"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-xs font-semibold text-foreground",children:h?.remoteTitle??"Remote Access"})]}),!j&&(0,r.jsxs)("p",{className:"flex items-center gap-1.5 text-xs text-[var(--amber-text)]",children:[(0,r.jsx)(x.A,{size:12})," ",h?.noAuthWarning??"Set an Auth Token in Settings → General before enabling remote access."]}),(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("span",{className:"text-2xs font-medium text-muted-foreground uppercase tracking-wider",children:h?.serverUrl??"MCP Server URL"}),(0,r.jsxs)("div",{className:"flex items-center gap-2 px-2.5 py-1.5 bg-muted/50 border border-border rounded-lg",children:[(0,r.jsx)("code",{className:"flex-1 text-xs font-mono text-foreground select-all truncate",children:N}),(0,r.jsx)(e2,{onCopy:()=>v(N,"mcp-url"),copied:"mcp-url"===f,size:"sm"})]})]}),t.length>0&&i&&S&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("pre",{className:"text-[11px] font-mono bg-muted/50 border border-border rounded-lg p-3 overflow-x-auto whitespace-pre select-all max-h-[200px] overflow-y-auto",children:S.displaySnippet}),(0,r.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,r.jsxs)("button",{onClick:async()=>{await (0,eu.l)(S.snippet)&&U.oR.copy()},className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors shrink-0",children:[(0,r.jsx)(el.A,{size:14})," ",h?.copyConfig??"Copy"]}),(0,r.jsx)("span",{className:"text-muted-foreground",children:"→"}),(0,r.jsx)("span",{className:"font-mono text-muted-foreground truncate text-2xs",children:S.path})]})]})]})]})}function eX({icon:e,title:t,badge:s,defaultOpen:n=!1,children:l}){let[o,i]=(0,a.useState)(n);return(0,r.jsxs)("div",{className:"rounded-lg border border-border overflow-hidden",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>i(e=>!e),className:"flex items-center gap-2 w-full px-3 py-2 text-left bg-muted/30 hover:bg-muted/60 transition-colors",children:[o?(0,r.jsx)(Z.A,{size:11,className:"text-muted-foreground"}):(0,r.jsx)(X.A,{size:11,className:"text-muted-foreground"}),e,(0,r.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:t}),s&&(0,r.jsx)("span",{className:"text-2xs text-muted-foreground/70 ml-auto",children:s})]}),o&&(0,r.jsx)("div",{className:"px-3 py-2.5 border-t border-border",children:l})]})}function eQ({step:e,label:t,children:s}){return(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"w-4 h-4 rounded-full bg-muted flex items-center justify-center text-2xs font-semibold text-muted-foreground shrink-0",children:e}),(0,r.jsx)("span",{className:"text-2xs font-medium text-muted-foreground uppercase tracking-wider",children:t})]}),(0,r.jsx)("div",{className:"pl-6",children:s})]})}function e0({status:e,restarting:t,onRestart:s,onRefresh:a,m:n}){return(0,r.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 rounded-lg border border-border bg-muted/30",children:[(0,r.jsx)("div",{className:"flex items-center gap-2 text-xs",children:t?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(p.A,{size:11,className:"animate-spin text-[var(--amber)]"}),(0,r.jsx)("span",{className:"text-[var(--amber)]",children:n?.restarting??"Restarting..."})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:`inline-block w-1.5 h-1.5 rounded-full shrink-0 ${e.running?"bg-success":"bg-muted-foreground"}`}),(0,r.jsxs)("span",{className:"font-medium text-foreground",children:["MCP ",e.running?n?.running??"Running":n?.stopped??"Stopped"]}),e.running&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:"\xb7"}),(0,r.jsxs)("span",{className:"text-muted-foreground",children:[":",e.port]}),(0,r.jsx)("span",{className:"text-muted-foreground",children:"\xb7"}),(0,r.jsxs)("span",{className:"text-muted-foreground",children:[e.toolCount," ",n?.tools??"tools"]})]})]})}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[!e.running&&!t&&(0,r.jsxs)("button",{onClick:s,className:"flex items-center gap-1 px-2 py-1 text-2xs rounded-md font-medium text-[var(--amber-foreground)] bg-[var(--amber)] transition-colors",children:[(0,r.jsx)(h.A,{size:11})," ",n?.restart??"Restart"]}),(0,r.jsx)("button",{onClick:a,className:"p-1 rounded-md border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:(0,r.jsx)(c.A,{size:11})})]})]})}function e1({label:e,code:t,onCopy:s,copiedField:a,fieldId:n,compact:l,hint:o}){return(0,r.jsxs)("div",{className:l?"":"space-y-1",children:[e&&(0,r.jsx)("span",{className:"text-2xs font-medium text-muted-foreground uppercase tracking-wider",children:e}),(0,r.jsxs)("div",{className:`flex items-center gap-2 ${l?"px-2.5 py-1.5":"px-3 py-2"} bg-muted/50 border border-border rounded-lg`,children:[(0,r.jsx)("code",{className:"flex-1 text-xs font-mono text-foreground select-all truncate",children:t}),o&&(0,r.jsx)("span",{className:"text-2xs text-muted-foreground/60 shrink-0 hidden sm:inline",children:o}),(0,r.jsx)(e2,{onCopy:()=>s(t,n),copied:a===n,size:"sm"})]})]})}function e2({onCopy:e,copied:t,title:s,size:a}){let n="sm"===a?11:14;return(0,r.jsx)("button",{type:"button",onClick:e,title:s??"Copy",className:`shrink-0 ${"sm"===a?"p-1":"p-2"} rounded-lg border transition-colors focus-visible:ring-2 focus-visible:ring-ring ${t?"border-success/50 bg-success/10 text-success":"border-border text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:t?(0,r.jsx)(E.A,{size:n}):(0,r.jsx)(el.A,{size:n})})}function e5({t:e}){let t=(0,eS.cd)(),s=e.settings?.mcp,[o,i]=(0,a.useState)("cli"),[d,c]=(0,a.useState)(!1),[u,m]=(0,a.useState)(""),[x,h]=(0,a.useState)(!1),g=(0,a.useRef)(void 0),b=t?.status?.connectionMode,f=b?.mcp??!1;if((0,a.useEffect)(()=>()=>clearInterval(g.current),[]),!t||t.loading)return(0,r.jsx)("div",{className:"flex justify-center py-8",children:(0,r.jsx)(p.A,{size:18,className:"animate-spin text-muted-foreground"})});let v=t.agents.filter(e=>e.present&&e.installed),j=t.agents.filter(e=>e.present&&!e.installed),N=t.agents.filter(e=>!e.present),k=u||(t.agents[0]?.key??""),w=t.agents.find(e=>e.key===k),S=t.skills?.find(e=>"mindos"===e.name)?.enabled??!0,C=async e=>{h(!0);try{await (0,y.n)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({connectionMode:{cli:!0,mcp:e}})}),await t.refresh(),e&&i("mcp")}catch{U.oR.error("Failed to toggle connection mode")}finally{h(!1)}},A=async()=>{c(!0);try{await (0,y.n)("/api/mcp/restart",{method:"POST"})}catch(e){console.error("[McpTab] Restart request failed:",e),c(!1);return}let e=Date.now()+6e4;clearInterval(g.current),g.current=setInterval(async()=>{if(Date.now()>e){clearInterval(g.current),c(!1);return}try{(await (0,y.n)("/api/mcp/status",{timeout:3e3})).running&&(clearInterval(g.current),c(!1),t.refresh())}catch{}},3e3)};return(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)(e3,{mcpEnabled:f,onToggle:C,saving:x,mcpRunning:t.status?.running??!1,m:s}),(0,r.jsx)(e4,{status:t.status,m:s}),(0,r.jsx)(eW,{mode:o,onModeChange:i,status:t.status,agents:t.agents,connectedAgents:v,detectedAgents:j,notFoundAgents:N,currentAgent:w??null,selectedAgent:k,onSelectAgent:m,restarting:d,onRestart:A,onRefresh:t.refresh,activeSkillName:S?"mindos":"mindos-zh",mcpEnabled:f,m:s,t:e}),(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-card overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2.5 px-4 pt-4 pb-3",children:[(0,r.jsx)("div",{className:"w-7 h-7 rounded-lg bg-muted flex items-center justify-center shrink-0",children:(0,r.jsx)(l.A,{size:14,className:"text-muted-foreground"})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:s?.externalToolsTitle??"External MCP Tools"}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground",children:s?.externalToolsDesc??"Configure tool access mode for external MCP servers."})]})]}),(0,r.jsx)("div",{className:"px-4 pb-4",children:(0,r.jsx)(eF,{})})]}),(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-card overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2.5 px-4 pt-4 pb-3",children:[(0,r.jsx)("div",{className:"w-7 h-7 rounded-lg bg-muted flex items-center justify-center shrink-0",children:(0,r.jsx)(n.A,{size:14,className:"text-muted-foreground"})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:s?.skillsTitle??"Skills"}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground",children:s?.skillsDesc??"Teach agents how to operate your knowledge base."})]})]}),(0,r.jsx)("div",{className:"px-4 pb-4",children:(0,r.jsx)(eP,{t:e})})]})]})}function e3({mcpEnabled:e,onToggle:t,saving:s,mcpRunning:a,m:n}){return(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-card overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2.5 px-4 pt-4 pb-3",children:[(0,r.jsx)("div",{className:"w-7 h-7 rounded-lg bg-[var(--amber-subtle)] flex items-center justify-center shrink-0",children:(0,r.jsx)(l.A,{size:14,className:"text-[var(--amber)]"})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:n?.modeCardTitle??"Connection Mode"}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground",children:n?.modeCardDesc??"Choose how agents connect to MindOS."})]})]}),(0,r.jsxs)("div",{className:"px-4 pb-4 space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2.5 rounded-lg bg-muted/30 border border-border/50",children:[(0,r.jsx)("input",{type:"checkbox",checked:!0,disabled:!0,className:"w-3.5 h-3.5 rounded accent-[var(--amber)]"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(ey.A,{size:12,className:"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-xs font-semibold text-foreground",children:"CLI"}),(0,r.jsx)("span",{className:"text-2xs px-1.5 py-0.5 rounded-full bg-success/10 text-success font-medium leading-none",children:n?.alwaysOn??"Always On"})]}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground mt-0.5",children:n?.cliModeDesc??"Claude Code, Gemini CLI, Codex, etc."})]})]}),(0,r.jsxs)("label",{className:`flex items-center gap-3 px-3 py-2.5 rounded-lg border cursor-pointer transition-colors ${e?"border-[var(--amber)]/40 bg-[var(--amber)]/[0.03]":"border-border/50 bg-muted/30 hover:bg-muted/50"}`,children:[(0,r.jsx)("input",{type:"checkbox",checked:e,disabled:s,onChange:e=>t(e.target.checked),className:"w-3.5 h-3.5 rounded accent-[var(--amber)] cursor-pointer"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(l.A,{size:12,className:e?"text-[var(--amber)]":"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-xs font-semibold text-foreground",children:"MCP"}),e&&(0,r.jsx)("span",{className:`text-2xs px-1.5 py-0.5 rounded-full font-medium leading-none ${a?"bg-success/10 text-success":"bg-[var(--amber-subtle)] text-[var(--amber-text)]"}`,children:a?n?.mcpRunning??"Running":n?.mcpStopped??"Stopped"})]}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground mt-0.5",children:n?.mcpModeDesc??"Claude Desktop, Cursor, Windsurf, etc."})]}),s&&(0,r.jsx)(p.A,{size:14,className:"animate-spin text-[var(--amber)] shrink-0"})]}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground px-1 leading-relaxed",children:e?n?.mcpEnabledHint??"MCP mode enabled. Disable to simplify the interface if you only use CLI agents.":n?.mcpDisabledHint??"Enable MCP to connect Desktop clients like Claude Desktop or Cursor."})]})]})}function e4({status:e,m:t}){let[s,n]=(0,a.useState)(null),[l,o]=(0,a.useState)(!1);(0,a.useEffect)(()=>()=>o(!1),[]),(0,a.useEffect)(()=>{if(!s)return;let e=setTimeout(()=>n(null),2e3);return()=>clearTimeout(e)},[s]);let i=(0,a.useCallback)(async(e,t)=>{!e||await (0,eu.l)(e)&&(n(t),U.oR.copy())},[]);if(!e)return null;let d=e.authConfigured&&!!e.authToken,c=l?e.authToken??"":e.maskedToken??"";return(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-card overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2.5 px-4 pt-4 pb-3",children:[(0,r.jsx)("div",{className:"w-7 h-7 rounded-lg bg-muted flex items-center justify-center shrink-0",children:(0,r.jsx)(eN.A,{size:14,className:"text-muted-foreground"})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:t?.tokenCardTitle??"Auth Token"}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground",children:t?.tokenCardDesc??"Used by CLI remote mode and MCP connections."})]})]}),(0,r.jsx)("div",{className:"px-4 pb-4",children:d?(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"flex-1 flex items-center gap-2 px-2.5 py-1.5 bg-muted/50 border border-border rounded-lg min-h-[34px]",children:(0,r.jsx)("code",{className:"flex-1 text-xs font-mono text-foreground break-all select-all leading-relaxed",children:c})}),(0,r.jsx)("button",{type:"button",onClick:()=>o(e=>!e),className:"shrink-0 p-1.5 rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors focus-visible:ring-2 focus-visible:ring-ring",title:l?t?.tokenHide??"Hide":t?.tokenShow??"Show",children:l?(0,r.jsx)(ek.A,{size:13}):(0,r.jsx)(ew.A,{size:13})}),(0,r.jsx)(e2,{onCopy:()=>i(e.authToken??"","token-card"),copied:"token-card"===s,title:t?.tokenCopy??"Copy",size:"sm"})]}):(0,r.jsxs)("div",{className:"px-2.5 py-2 bg-[var(--amber-subtle)] border border-[var(--amber)]/20 rounded-lg",children:[(0,r.jsx)("p",{className:"text-xs text-[var(--amber-text)]",children:t?.tokenNone??"No token set."}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground mt-0.5",children:t?.tokenNoneAction??"Generate one in Settings → General → Security."})]})})]})}var e6=s(16950);function e7(){let e=window;return e.mindos?.checkUpdate?e.mindos:null}let e9="https://github.com/GeminiLight/MindOS/releases",e8="mindos_update_in_progress",te={downloading:{en:"Downloading update",zh:"下载更新"},skills:{en:"Updating skills",zh:"更新 Skills"},rebuilding:{en:"Rebuilding app",zh:"重新构建应用"},restarting:{en:"Restarting server",zh:"重启服务"}};function tt({status:e}){switch(e){case"done":return(0,r.jsx)(g.A,{size:14,className:"text-success shrink-0"});case"running":return(0,r.jsx)(p.A,{size:14,className:"animate-spin shrink-0 text-[var(--amber)]"});case"failed":return(0,r.jsx)(x.A,{size:14,className:"text-destructive shrink-0"});default:return(0,r.jsx)(e6.A,{size:14,className:"text-muted-foreground/40 shrink-0"})}}function ts(e){return e<1048576?`${Math.round(e/1024)} KB`:`${(e/1048576).toFixed(1)} MB`}function tr(){let{t:e}=(0,j.Y)(),t=e.settings.update,s=e7(),[n,l]=(0,a.useState)("idle"),[o,i]=(0,a.useState)(""),[d,m]=(0,a.useState)(""),[h,b]=(0,a.useState)(null),[f,v]=(0,a.useState)(0),[y,N]=(0,a.useState)(""),[k,w]=(0,a.useState)("");(0,a.useEffect)(()=>{(async()=>{try{let e=await s.checkCoreUpdate?.();if(e&&(i(e.currentVersion),!e.available))return void l("idle")}catch{}try{let e=await s.getCoreUpdatePending?.();if(e?.version){m(e.version),l("ready");return}}catch{}S()})();let e=[];return s.onCoreUpdateProgress&&e.push(s.onCoreUpdateProgress(e=>v(Math.round(e.percent)))),s.onCoreUpdateAvailable&&e.push(s.onCoreUpdateAvailable(e=>{i(e.current),m(e.latest),l(e.ready?"ready":"available")})),()=>e.forEach(e=>e())},[]);let S=async()=>{if(s.checkCoreUpdate){l("checking"),N("");try{let e=await s.checkCoreUpdate();i(e.currentVersion),e.desktopTooOld?(m(e.latestVersion),w(e.minDesktopVersion),l("desktopTooOld")):e.available?(m(e.latestVersion),b({urls:e.urls,size:e.size,sha256:e.sha256}),l("available")):l("idle")}catch{l("idle")}}},C=async()=>{if(s.downloadCoreUpdate&&h){l("downloading"),v(0);try{await s.downloadCoreUpdate(h.urls,d,h.size,h.sha256),l("ready")}catch(t){let e=t instanceof Error?t.message:String(t);e.includes("aborted")?l("available"):(l("error"),N(e||"Download failed"))}}},A=async()=>{if(s.applyCoreUpdate){l("applying");try{let e=await s.applyCoreUpdate();e?.version&&i(e.version),l("idle")}catch(e){l("error"),N(e instanceof Error?e.message:"Apply failed")}}};return s.checkCoreUpdate?(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-card p-4 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:t?.coreTitle??"MindOS Core"}),o&&(0,r.jsxs)("span",{className:"text-xs font-mono text-muted-foreground",children:["v",o]})]}),"checking"===n&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,r.jsx)(p.A,{size:13,className:"animate-spin"}),t?.checking??"Checking for updates..."]}),"idle"===n&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(g.A,{size:13}),t?.coreUpToDate??"Core is up to date"]}),"available"===n&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-[var(--amber-text)]",children:[(0,r.jsx)(u.A,{size:13}),"v",d," ",t?.coreAvailable?t.coreAvailable(ts(h?.size??0)):`available (${ts(h?.size??0)})`]}),("downloading"===n||"cancelling"===n)&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-foreground",children:[(0,r.jsx)(p.A,{size:13,className:"animate-spin text-[var(--amber)]"}),"cancelling"===n?t?.coreCancel??"Cancelling...":(0,r.jsxs)(r.Fragment,{children:[t?.coreDownloading??"Downloading..."," v",d]})]}),"downloading"===n&&(0,r.jsx)("button",{onClick:()=>{s.cancelCoreDownload?.(),l("cancelling")},className:"text-muted-foreground hover:text-foreground transition-colors",children:t?.coreCancel??"Cancel"})]}),(0,r.jsx)("div",{className:"h-1 rounded-full bg-muted overflow-hidden",children:(0,r.jsx)("div",{className:"h-full rounded-full bg-[var(--amber)] transition-all duration-300",style:{width:`${Math.max(f,3)}%`}})})]}),"ready"===n&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(g.A,{size:13}),"v",d," ",t?.coreReady??"ready — restart services to apply"]}),"applying"===n&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,r.jsx)(p.A,{size:13,className:"animate-spin text-[var(--amber)]"}),t?.coreApplying??"Applying update..."]}),"desktopTooOld"===n&&(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-[var(--amber-text)]",children:[(0,r.jsx)(x.A,{size:13}),t?.coreDesktopTooOld?t.coreDesktopTooOld(d):`v${d} requires a newer Desktop.`]}),(0,r.jsxs)("p",{className:"text-2xs text-muted-foreground",children:[t?.coreDesktopTooOldHint??"Please update MindOS Desktop first."," (Desktop ≥ v",k,")"]})]}),"error"===n&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-destructive",children:[(0,r.jsx)(x.A,{size:13}),y||(t?.coreError??"Core update failed.")]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[("idle"===n||"error"===n)&&(0,r.jsxs)("button",{onClick:S,disabled:"idle"!==n&&"error"!==n,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[(0,r.jsx)(c.A,{size:14}),t?.checkButton??"Check for Updates"]}),"available"===n&&(0,r.jsxs)("button",{onClick:C,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg font-medium text-[var(--amber-foreground)] bg-[var(--amber)] transition-colors",children:[(0,r.jsx)(u.A,{size:14}),t?.updateButton?t.updateButton(d):`Update to v${d}`]}),"ready"===n&&(0,r.jsxs)("button",{onClick:A,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg font-medium text-[var(--amber-foreground)] bg-[var(--amber)] transition-colors",children:[(0,r.jsx)(c.A,{size:14}),t?.coreRestartServices??"Restart Services"]}),"error"===n&&(0,r.jsxs)("button",{onClick:h?C:S,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:[(0,r.jsx)(c.A,{size:14}),t?.coreRetry??"Retry"]})]}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground/60",children:t?.coreHint??"Core updates only restart services — no app restart needed."})]}):null}function ta(){let{t:e}=(0,j.Y)(),t=e.settings.update,s=e7(),[n,l]=(0,a.useState)("idle"),[o,i]=(0,a.useState)(!1),[d,m]=(0,a.useState)(null),[h,b]=(0,a.useState)(""),[f,v]=(0,a.useState)(0),[y,k]=(0,a.useState)("");(0,a.useEffect)(()=>{l("idle"),s.getAppInfo?.().then(e=>{e?.version&&b(e.version)}).catch(e=>{console.warn("[UpdateTab] getAppInfo failed:",e)}),S();let e=[];return s.onUpdateAvailable&&e.push(s.onUpdateAvailable(e=>{i(!0),e?.version&&m(e.version),l(e=>"checking"===e?"idle":e)})),s.onUpdateProgress&&e.push(s.onUpdateProgress(e=>v(Math.round(e.percent)))),s.onUpdateReady&&e.push(s.onUpdateReady(()=>l("ready"))),s.onUpdateError&&e.push(s.onUpdateError(e=>{l("error"),k(e?.message||"Update failed. Please try again.")})),()=>e.forEach(e=>e())},[]);let S=async()=>{l("checking"),k("");try{let e=await s.checkUpdate();i(e.available),e.version&&m(e.version),l("idle")}catch{l("error"),k(t?.error??"Failed to check for updates.")}},C=async()=>{l("downloading"),v(0);try{await s.installUpdate()}catch{l("error"),k("Update failed. Please try again.")}};return(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-card p-4 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(w.A,{size:14,className:"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:t?.shellTitle??"MindOS Desktop"})]}),h&&(0,r.jsxs)("span",{className:"text-xs font-mono text-muted-foreground",children:["v",h]})]}),"checking"===n&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,r.jsx)(p.A,{size:13,className:"animate-spin"}),t?.checking??"Checking for updates..."]}),"idle"===n&&!o&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(g.A,{size:13}),t?.upToDate??"You're up to date"]}),"idle"===n&&o&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-[var(--amber-text)]",children:[(0,r.jsx)(u.A,{size:13}),d?`Update available: v${d}`:"Update available"]}),"downloading"===n&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-foreground",children:[(0,r.jsx)(p.A,{size:13,className:"animate-spin text-[var(--amber)]"}),t?.desktopDownloading??"Downloading update..."]}),(0,r.jsx)("div",{className:"h-1 rounded-full bg-muted overflow-hidden",children:(0,r.jsx)("div",{className:"h-full rounded-full bg-[var(--amber)] transition-all duration-300",style:{width:`${Math.max(f,3)}%`}})})]}),"ready"===n&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(g.A,{size:13}),t?.desktopReady??"Update downloaded. Restart to apply."]}),"error"===n&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-destructive",children:[(0,r.jsx)(x.A,{size:13}),y]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[(0,r.jsxs)("button",{onClick:S,disabled:"checking"===n||"downloading"===n,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[(0,r.jsx)(c.A,{size:14,className:"checking"===n?"animate-spin":""}),t?.checkButton??"Check for Updates"]}),"idle"===n&&o&&(0,r.jsxs)("button",{onClick:C,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg font-medium text-[var(--amber-foreground)] bg-[var(--amber)] transition-colors",children:[(0,r.jsx)(u.A,{size:14}),d?`Update to v${d}`:"Update"]}),"ready"===n&&(0,r.jsxs)("button",{onClick:async()=>{try{await s.installUpdate()}catch{l("error"),k(t?.error??"Failed to install update.")}},className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg font-medium text-[var(--amber-foreground)] bg-[var(--amber)] transition-colors",children:[(0,r.jsx)(c.A,{size:14}),t?.desktopRestart??"Restart Now"]})]}),(0,r.jsxs)("div",{className:"border-t border-border/50 pt-3 space-y-2",children:[(0,r.jsxs)("a",{href:e9,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[(0,r.jsx)(N.A,{size:12}),t?.releaseNotes??"View release notes"]}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground/60",children:t?.desktopHint??"Updates are delivered through the Desktop app auto-updater."})]})]})}function tn(){let[e,t]=(0,a.useState)(!1),[s,n]=(0,a.useState)(!0);return((0,a.useEffect)(()=>{let e=e7();t(!!e),e?.getAppInfo&&e.getAppInfo().then(e=>{e&&"mode"in e&&n("remote"!==e.mode)}).catch(()=>{})},[]),e)?(0,r.jsxs)("div",{className:"space-y-6",children:[s&&(0,r.jsx)(tr,{}),(0,r.jsx)(ta,{})]}):(0,r.jsx)(tl,{})}function tl(){let{t:e,locale:t}=(0,j.Y)(),s=e.settings.update,[n,l]=(0,a.useState)(null),[o,i]=(0,a.useState)("idle"),[d,m]=(0,a.useState)(""),[h,b]=(0,a.useState)([]),[f,v]=(0,a.useState)(null),[k,w]=(0,a.useState)(!1),S=(0,a.useRef)(void 0),C=(0,a.useRef)(void 0),A=(0,a.useRef)(""),z=(0,a.useCallback)(async()=>{i("checking"),m("");try{let e=await (0,y.n)("/api/update-check");if(l(e),A.current||(A.current=e.current),e.hasUpdate){let t=localStorage.getItem("mindos_update_dismissed");localStorage.setItem("mindos_update_latest",e.latest),window.dispatchEvent(new Event(e.latest===t?"mindos:update-dismissed":"mindos:update-available"))}else localStorage.removeItem("mindos_update_latest"),localStorage.removeItem("mindos_update_dismissed"),window.dispatchEvent(new Event("mindos:update-dismissed"));i("idle")}catch{i("error"),m(s?.error??"Failed to check for updates.")}},[s]),T=(0,a.useCallback)(()=>{clearInterval(S.current),clearTimeout(C.current)},[]),M=(0,a.useCallback)(e=>{T(),l(e),i("updated"),localStorage.removeItem("mindos_update_latest"),localStorage.removeItem("mindos_update_dismissed"),localStorage.removeItem(e8),window.dispatchEvent(new Event("mindos:update-dismissed")),setTimeout(()=>window.location.reload(),2e3)},[T]),E=(0,a.useCallback)(()=>{S.current=setInterval(async()=>{try{let e=await (0,y.n)("/api/update-status",{timeout:5e3});if(w(!1),e.stages?.length>0&&b(e.stages),"failed"===e.stage){T(),localStorage.removeItem(e8),v(e.error||"Update failed"),i("error");return}if("done"===e.stage)try{let e=await (0,y.n)("/api/update-check");if(e.current!==A.current)return void M(e)}catch{}}catch{w(!0);try{let e=await (0,y.n)("/api/update-check",{timeout:5e3});e.current&&e.current!==A.current&&(b(e=>e.map(e=>({...e,status:"done"}))),M(e))}catch{}}},3e3),C.current=setTimeout(()=>{T(),localStorage.removeItem(e8),i("timeout")},9e5)},[T,M]);(0,a.useEffect)(()=>{let e=localStorage.getItem(e8);if(e)try{let{originalVer:t}=JSON.parse(e);A.current=t,i("updating"),w(!0),b([{id:"downloading",status:"done"},{id:"skills",status:"done"},{id:"rebuilding",status:"done"},{id:"restarting",status:"running"}]),E()}catch{localStorage.removeItem(e8),z()}else z()},[]),(0,a.useEffect)(()=>T,[T]);let R=(0,a.useCallback)(async()=>{i("updating"),m(""),v(null),w(!1),b([{id:"downloading",status:"pending"},{id:"skills",status:"pending"},{id:"rebuilding",status:"pending"},{id:"restarting",status:"pending"}]),localStorage.setItem(e8,JSON.stringify({originalVer:A.current||n?.current,startedAt:Date.now()})),window.dispatchEvent(new Event("mindos:update-started"));try{await (0,y.n)("/api/update",{method:"POST"})}catch(e){if(e instanceof y.h){localStorage.removeItem(e8),v(e.message||"Update failed"),i("error");return}}E()},[E,n]),I=(0,a.useCallback)(()=>{v(null),R()},[R]),P="zh"===t?"zh":"en",U=h.filter(e=>"done"===e.status).length,D=h.length>0?Math.round(U/h.length*100):0;return(0,r.jsx)("div",{className:"space-y-6",children:(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-card p-4 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:"MindOS"}),n&&(0,r.jsxs)("span",{className:"text-xs font-mono text-muted-foreground",children:["v",n.current]})]}),"checking"===o&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,r.jsx)(p.A,{size:13,className:"animate-spin"}),s?.checking??"Checking for updates..."]}),"idle"===o&&n&&!n.hasUpdate&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(g.A,{size:13}),s?.upToDate??"You're up to date"]}),"idle"===o&&n?.hasUpdate&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-[var(--amber-text)]",children:[(0,r.jsx)(u.A,{size:13}),s?.available?s.available(n.current,n.latest):`Update available: v${n.current} → v${n.latest}`]}),"updating"===o&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)("div",{className:"space-y-1.5",children:h.map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,r.jsx)(tt,{status:e.status}),(0,r.jsx)("span",{className:"pending"===e.status?"text-muted-foreground/50":"running"===e.status?"text-foreground":"text-muted-foreground",children:te[e.id]?.[P]??e.id})]},e.id))}),(0,r.jsx)("div",{className:"h-1 rounded-full bg-muted overflow-hidden",children:(0,r.jsx)("div",{className:"h-full rounded-full bg-[var(--amber)] transition-all duration-500 ease-out",style:{width:`${Math.max(D,5)}%`}})}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground",children:k?s?.serverRestarting??"Server is restarting, please wait...":s?.updatingHint??"This may take 1–3 minutes. Do not close this page."})]}),"updated"===o&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(g.A,{size:13}),s?.updated??"Updated successfully! Reloading..."]}),"timeout"===o&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-[var(--amber-text)]",children:[(0,r.jsx)(x.A,{size:13}),s?.timeout??"Update may still be in progress."]}),(0,r.jsx)("p",{className:"text-2xs text-muted-foreground",children:s?.timeoutHint??"The server may need more time to rebuild. Try refreshing."}),(0,r.jsxs)("button",{onClick:()=>window.location.reload(),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:[(0,r.jsx)(c.A,{size:12}),s?.refreshButton??"Refresh Page"]})]}),"error"===o&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-destructive",children:[(0,r.jsx)(x.A,{size:13}),f||d]}),f&&(0,r.jsxs)("button",{onClick:I,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:[(0,r.jsx)(c.A,{size:12}),s?.retryButton??"Retry Update"]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[(0,r.jsxs)("button",{onClick:z,disabled:"checking"===o||"updating"===o,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[(0,r.jsx)(c.A,{size:14,className:"checking"===o?"animate-spin":""}),s?.checkButton??"Check for Updates"]}),n?.hasUpdate&&"updating"!==o&&"updated"!==o&&(0,r.jsxs)("button",{onClick:R,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg font-medium text-[var(--amber-foreground)] bg-[var(--amber)] transition-colors",children:[(0,r.jsx)(u.A,{size:14}),s?.updateButton?s.updateButton(n.latest):`Update to v${n.latest}`]})]}),(0,r.jsxs)("div",{className:"border-t border-border/50 pt-3 space-y-2",children:[(0,r.jsxs)("a",{href:e9,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[(0,r.jsx)(N.A,{size:12}),s?.releaseNotes??"View release notes"]}),(0,r.jsxs)("p",{className:"text-2xs text-muted-foreground/60",children:[s?.hint??"Updates are installed via npm. Equivalent to running"," ",(0,r.jsx)("code",{className:"font-mono bg-muted px-1 py-0.5 rounded",children:"mindos update"})," ",s?.inTerminal??"in your terminal."]})]})]})})}var to=s(44478);function ti(){let e=window;return e.mindos?.uninstallApp?e.mindos:null}function td(){let{t:e}=(0,j.Y)(),t=e.settings.uninstall,s=!!ti(),[n,l]=(0,a.useState)("idle"),[o,i]=(0,a.useState)(""),[d,c]=(0,a.useState)(!0),[u,x]=(0,a.useState)(!0),h=async()=>{l("running"),i("");try{if(await (0,y.n)("/api/uninstall",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({removeConfig:d})}),s&&u){let e=ti();if(e?.uninstallApp){let t=await e.uninstallApp();if(!t.ok)throw Error(t.error||"Failed to remove app");l("success");return}}l("success")}catch(e){i(e instanceof Error?e.message:String(e)),l("error")}},b=({checked:e,onChange:t,label:s,desc:a,disabled:n})=>(0,r.jsxs)("label",{className:`flex items-start gap-2.5 p-2.5 rounded bg-muted/30 cursor-pointer select-none ${n?"opacity-50 cursor-not-allowed":"hover:bg-muted/50"}`,children:[(0,r.jsx)("input",{type:"checkbox",checked:e,onChange:e=>!n&&t(e.target.checked),disabled:n,className:"mt-0.5 form-check"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium text-foreground",children:s}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:a})]})]});return(0,r.jsxs)(S.L7,{icon:(0,r.jsx)(m.A,{size:15}),title:t.title,description:s?t.descDesktop:t.descCli,children:[(0,r.jsxs)("div",{className:"flex gap-2.5 p-3 rounded-md bg-muted/50 border border-border",children:[(0,r.jsx)(to.A,{size:14,className:"text-success shrink-0 mt-0.5"}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:t.kbSafe})]}),"idle"===n||"confirming"===n?(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(b,{checked:!0,disabled:!0,label:t.stopServices,desc:t.stopServicesDesc,onChange:()=>{}}),(0,r.jsx)(b,{checked:d,onChange:c,label:t.removeConfig,desc:t.removeConfigDesc}),!s&&(0,r.jsx)(b,{checked:!0,disabled:!0,label:t.removeNpm,desc:t.removeNpmDesc,onChange:()=>{}}),s&&(0,r.jsx)(b,{checked:u,onChange:x,label:t.removeApp,desc:t.removeAppDesc})]}):null,"idle"===n&&(0,r.jsxs)("button",{onClick:()=>l("confirming"),className:"px-3.5 py-2 text-sm font-medium rounded-lg bg-error/10 text-error border border-error/20 hover:bg-error/20 transition-colors focus-visible:ring-1 focus-visible:ring-ring disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,r.jsx)(m.A,{size:12,className:"inline mr-1.5 -mt-px"}),t.confirmButton]}),"confirming"===n&&(0,r.jsxs)("div",{className:"p-3 rounded-md border border-error/30 bg-error/5 space-y-2.5",children:[(0,r.jsx)("p",{className:"text-xs font-medium text-error",children:t.confirmTitle}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{onClick:h,className:"px-3.5 py-2 text-sm font-medium rounded-lg bg-error text-destructive-foreground hover:bg-error/90 transition-colors focus-visible:ring-1 focus-visible:ring-ring",children:t.confirmButton}),(0,r.jsx)("button",{onClick:()=>l("idle"),className:"px-3.5 py-2 text-sm font-medium rounded-lg bg-muted text-foreground hover:bg-muted/80 transition-colors focus-visible:ring-1 focus-visible:ring-ring",children:t.cancelButton})]})]}),"running"===n&&(0,r.jsxs)("div",{className:"flex items-center gap-2 py-2",children:[(0,r.jsx)(p.A,{size:14,className:"animate-spin text-muted-foreground"}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:t.running})]}),"success"===n&&(0,r.jsxs)("div",{className:"flex items-center gap-2 py-2",children:[(0,r.jsx)(g.A,{size:14,className:"text-success"}),(0,r.jsx)("span",{className:"text-xs text-success font-medium",children:s&&u?t.successDesktop:t.success})]}),"error"===n&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(P.A,{size:14,className:"text-error"}),(0,r.jsx)("span",{className:"text-xs text-error font-medium",children:t.error})]}),o&&(0,r.jsx)("p",{className:"text-[11px] text-muted-foreground font-mono",children:o}),(0,r.jsx)("button",{onClick:()=>l("idle"),className:"px-3 py-1.5 text-xs font-medium rounded-md bg-muted text-foreground hover:bg-muted/80 transition-colors focus-visible:ring-1 focus-visible:ring-ring",children:t.cancelButton})]})]})}function tc({visible:e,initialTab:t,variant:s,onClose:i}){let[N,k]=(0,a.useState)("ai"),[w,S]=(0,a.useState)(null),[C,A]=(0,a.useState)(!1),[z,T]=(0,a.useState)("idle"),{t:M,locale:E,setLocale:R}=(0,j.Y)(),I=(0,v.useRouter)(),P=(0,a.useRef)(void 0),U=(0,a.useRef)(!1),D=(0,a.useRef)(null),[$,F]=(0,a.useState)("lora"),[L,B]=(0,a.useState)("15px"),[_,K]=(0,a.useState)("780px"),[H,G]=(0,a.useState)(!0),[V,J]=(0,a.useState)(()=>{let e=localStorage.getItem("mindos_update_dismissed"),t=localStorage.getItem("mindos_update_latest");return!!t&&t!==e});(0,a.useEffect)(()=>{let e=()=>J(!0),t=()=>J(!1);return window.addEventListener("mindos:update-available",e),window.addEventListener("mindos:update-dismissed",t),()=>{window.removeEventListener("mindos:update-available",e),window.removeEventListener("mindos:update-dismissed",t)}},[]);let q="panel"===s,W=(0,a.useRef)(!1);(0,a.useEffect)(()=>{if(q?e&&!W.current:e){(0,y.n)("/api/settings").then(e=>{S(e),U.current=!0}).catch(()=>T("load-error")),F("geist"===localStorage.getItem("prose-font")?"inter":localStorage.getItem("prose-font")??"ibm-plex-sans"),B(localStorage.getItem("prose-font-size")??"15px"),K(localStorage.getItem("content-width")??"780px");let e=localStorage.getItem("theme");G(e?"dark"===e:window.matchMedia("(prefers-color-scheme: dark)").matches),T("idle")}e||(U.current=!1),W.current=e},[e,q]),(0,a.useEffect)(()=>{e&&t&&Y(t)},[e,t]);let Y=(0,a.useCallback)(e=>{k(e),D.current?.scrollTo?.(0,0)},[]);(0,a.useEffect)(()=>{document.documentElement.style.setProperty("--prose-font-override",{lora:"'Lora', Georgia, serif","ibm-plex-sans":"'IBM Plex Sans', sans-serif",inter:"var(--font-inter), sans-serif","ibm-plex-mono":"'IBM Plex Mono', monospace"}[$]??""),localStorage.setItem("prose-font",$)},[$]),(0,a.useEffect)(()=>{document.documentElement.style.setProperty("--prose-font-size-override",L),localStorage.setItem("prose-font-size",L)},[L]),(0,a.useEffect)(()=>{document.documentElement.style.setProperty("--content-width-override",_),localStorage.setItem("content-width",_)},[_]),(0,a.useEffect)(()=>{if("modal"!==s||!e||!i)return;let t=e=>{"Escape"===e.key&&i()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[s,e,i]);let Z=(0,a.useCallback)(async e=>{A(!0);try{await (0,y.n)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ai:e.ai,agent:e.agent,mindRoot:e.mindRoot,webPassword:e.webPassword,authToken:e.authToken})}),T("saved"),window.dispatchEvent(new Event("mindos:settings-changed")),setTimeout(()=>T("idle"),2500)}catch{T("error"),setTimeout(()=>T("idle"),2500)}finally{A(!1)}},[]),X=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(w&&U.current)return X.current=w,clearTimeout(P.current),P.current=setTimeout(()=>{X.current=null,Z(w)},800),()=>clearTimeout(P.current)},[w,Z]),(0,a.useEffect)(()=>{if(!e&&X.current){let e=X.current;X.current=null,clearTimeout(P.current),Z(e)}},[e,Z]),(0,a.useEffect)(()=>()=>{if(X.current){clearTimeout(P.current);let e=X.current;X.current=null,(0,y.n)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ai:e.ai,agent:e.agent,mindRoot:e.mindRoot,webPassword:e.webPassword,authToken:e.authToken})}).catch(()=>{})}},[]);let Q=(0,a.useCallback)(e=>{S(t=>t?{...t,ai:{...t.ai,...e}}:t)},[]),ee=(0,a.useCallback)(e=>{S(t=>t?{...t,agent:{...t.agent??{},...e}}:t)},[]),et=(0,a.useCallback)(async()=>{if(!w)return;let e={activeProvider:"",providers:[]};S(t=>t?{...t,ai:e}:t),setTimeout(()=>{(0,y.n)("/api/settings").then(e=>{S(e)}).catch(()=>T("error"))},1300)},[w]),es=w?.envOverrides??{},ea=q?12:13,en=[{id:"ai",label:M.settings.tabs.ai,icon:(0,r.jsx)(n.A,{size:ea})},{id:"mcp",label:M.settings.tabs.mcp??"Connections",icon:(0,r.jsx)(l.A,{size:ea})},{id:"knowledge",label:M.settings.tabs.knowledge,icon:(0,r.jsx)(o.A,{size:ea})},{id:"appearance",label:M.settings.tabs.appearance,icon:(0,r.jsx)(d,{size:ea})},{id:"sync",label:M.settings.tabs.sync??"Sync",icon:(0,r.jsx)(c.A,{size:ea})},{id:"update",label:M.settings.tabs.update??"Update",icon:(0,r.jsx)(u.A,{size:ea}),badge:V},{id:"uninstall",label:M.settings.tabs.uninstall??"Uninstall",icon:(0,r.jsx)(m.A,{size:ea})}],el=en.find(e=>e.id===N)?.label??"",eo=()=>(0,r.jsx)("div",{ref:D,className:`flex-1 overflow-y-auto min-h-0 ${q?"px-4 py-4 space-y-4":"px-5 py-5 space-y-5"}`,children:"load-error"===z&&("ai"===N||"knowledge"===N)?(0,r.jsxs)("div",{className:"flex flex-col items-center gap-2 py-8 text-center",children:[(0,r.jsx)(x.A,{size:q?18:20,className:"text-destructive"}),(0,r.jsx)("p",{className:`${q?"text-xs":"text-sm"} text-destructive font-medium`,children:"Failed to load settings"}),!q&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"Check that the server is running and AUTH_TOKEN is configured correctly."})]}):w||"appearance"===N||"mcp"===N||"sync"===N||"update"===N||"uninstall"===N?(0,r.jsxs)(r.Fragment,{children:["ai"===N&&w?.ai&&(0,r.jsx)(O,{data:w,updateAi:Q,updateAgent:ee,t:M}),"appearance"===N&&(0,r.jsx)(er,{font:$,setFont:F,fontSize:L,setFontSize:B,contentWidth:_,setContentWidth:K,dark:H,setDark:G,locale:E,setLocale:R,t:M}),"knowledge"===N&&w&&(0,r.jsx)(eb,{data:w,setData:S,t:M}),"sync"===N&&(0,r.jsx)(ej.vP,{t:M,visible:e}),"mcp"===N&&(0,r.jsx)(e5,{t:M}),"update"===N&&(0,r.jsx)(tn,{}),"uninstall"===N&&(0,r.jsx)(td,{})]}):(0,r.jsx)("div",{className:"flex justify-center py-8",children:(0,r.jsx)(p.A,{size:q?16:18,className:"animate-spin text-muted-foreground"})})}),ei=()=>"ai"===N||"knowledge"===N?(0,r.jsxs)("div",{className:`${q?"px-4 py-2":"px-5 py-2.5"} border-t border-border shrink-0 flex items-center justify-between`,children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:["ai"===N&&Object.values(es).some(Boolean)&&(0,r.jsxs)("button",{onClick:et,disabled:C||!w,className:`flex items-center gap-1.5 ${q?"px-2.5 py-1 text-xs rounded-md":"px-3 py-1.5 text-sm rounded-lg"} border border-border text-muted-foreground hover:text-foreground hover:bg-muted disabled:opacity-40 disabled:cursor-not-allowed transition-colors`,children:[(0,r.jsx)(h.A,{size:q?12:13}),M.settings.ai.restoreFromEnv]}),"knowledge"===N&&(0,r.jsxs)("a",{href:"/setup?force=1",className:`flex items-center gap-1.5 ${q?"px-2.5 py-1 text-xs rounded-md":"px-3 py-1.5 text-sm rounded-lg"} border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors`,children:[(0,r.jsx)(h.A,{size:q?12:13}),M.settings.reconfigure]})]}),!q&&(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-xs",role:"status","aria-live":"polite",children:[C&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(p.A,{size:12,className:"animate-spin text-muted-foreground"}),(0,r.jsxs)("span",{className:"text-muted-foreground",children:[M.settings.save,"..."]})]}),"saved"===z&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(g.A,{size:12,className:"text-success"}),(0,r.jsx)("span",{className:"text-success",children:M.settings.saved})]}),"error"===z&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x.A,{size:12,className:"text-destructive"}),(0,r.jsx)("span",{className:"text-destructive",children:M.settings.saveFailed})]})]})]}):null;return q?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border shrink-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium text-foreground",children:[(0,r.jsx)(o.A,{size:14,className:"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:"Settings"})]}),(0,r.jsx)("div",{className:"flex items-center gap-1.5",children:(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px]",role:"status","aria-live":"polite",children:[C&&(0,r.jsx)(p.A,{size:10,className:"animate-spin text-muted-foreground"}),"saved"===z&&(0,r.jsx)(g.A,{size:10,className:"text-success"}),"error"===z&&(0,r.jsx)(x.A,{size:10,className:"text-destructive"})]})})]}),(0,r.jsx)("div",{className:"flex border-b border-border px-3 shrink-0 overflow-x-auto scrollbar-none gap-0",children:en.map(e=>(0,r.jsxs)("button",{onClick:()=>Y(e.id),className:`flex items-center gap-1 px-2 py-2 text-xs font-medium transition-colors border-b-2 -mb-px whitespace-nowrap ${N===e.id?"border-[var(--amber)] text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[e.icon,e.label,e.badge&&(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-error shrink-0"})]},e.id))}),eo(),ei()]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex flex-col h-full md:hidden",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border shrink-0",children:[(0,r.jsx)("div",{className:"flex justify-center pt-2 pb-0 absolute top-0 left-1/2 -translate-x-1/2",children:(0,r.jsx)("div",{className:"w-8 h-1 rounded-full bg-muted-foreground/20"})}),(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium text-foreground",children:[(0,r.jsx)(o.A,{size:15,className:"text-muted-foreground"}),(0,r.jsx)("span",{children:M.settings.title})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px]",role:"status","aria-live":"polite",children:[C&&(0,r.jsx)(p.A,{size:12,className:"animate-spin text-muted-foreground"}),"saved"===z&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(g.A,{size:12,className:"text-success"}),(0,r.jsx)("span",{className:"text-success",children:M.settings.saved})]}),"error"===z&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x.A,{size:12,className:"text-destructive"}),(0,r.jsx)("span",{className:"text-destructive",children:M.settings.saveFailed})]})]}),i&&(0,r.jsx)("button",{onClick:i,className:"p-1 rounded hover:bg-muted text-muted-foreground hover:text-foreground transition-colors",children:(0,r.jsx)(b.A,{size:15})})]})]}),(0,r.jsxs)("div",{className:"flex border-b border-border px-4 shrink-0 overflow-x-auto scrollbar-none gap-0",children:[en.map(e=>(0,r.jsxs)("button",{onClick:()=>Y(e.id),className:`flex items-center gap-1.5 px-3 py-2.5 text-sm font-medium transition-colors border-b-2 -mb-px whitespace-nowrap ${N===e.id?"border-[var(--amber)] text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[e.icon,e.label,e.badge&&(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-error shrink-0"})]},e.id)),(0,r.jsxs)("button",{onClick:()=>{i?.(),I.push("/help")},className:"flex items-center gap-1.5 px-3 py-2.5 text-sm font-medium transition-colors border-b-2 -mb-px whitespace-nowrap border-transparent text-muted-foreground hover:text-foreground",children:[(0,r.jsx)(f.A,{size:ea}),M.sidebar.help]})]}),eo(),ei()]}),(0,r.jsxs)("div",{className:"hidden md:flex flex-row h-full min-h-0",children:[(0,r.jsxs)("div",{className:"w-[180px] shrink-0 border-r border-border flex flex-col",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 border-b border-border",children:[(0,r.jsx)(o.A,{size:15,className:"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:M.settings.title})]}),(0,r.jsx)("nav",{className:"flex-1 overflow-y-auto py-1.5",children:en.map(e=>(0,r.jsxs)("button",{onClick:()=>Y(e.id),className:`flex items-center gap-2 w-full px-4 py-2 text-sm font-medium transition-colors relative ${N===e.id?"text-foreground bg-muted":"text-muted-foreground hover:text-foreground hover:bg-muted/50"}`,children:[N===e.id&&(0,r.jsx)("div",{className:"absolute left-0 top-1 bottom-1 w-[3px] rounded-r-full bg-[var(--amber)]"}),e.icon,e.label,e.badge&&(0,r.jsx)("span",{className:"ml-auto w-1.5 h-1.5 rounded-full bg-error shrink-0"})]},e.id))}),(0,r.jsx)("div",{className:"shrink-0 border-t border-border px-4 py-2",children:(0,r.jsxs)("button",{onClick:()=>{i?.(),I.push("/help")},className:"flex items-center gap-2 w-full px-0 py-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,r.jsx)(f.A,{size:13}),M.sidebar.help]})})]}),(0,r.jsxs)("div",{className:"flex-1 flex flex-col min-w-0 min-h-0",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-5 py-3 border-b border-border shrink-0",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:el}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px]",role:"status","aria-live":"polite",children:[C&&(0,r.jsx)(p.A,{size:12,className:"animate-spin text-muted-foreground"}),"saved"===z&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(g.A,{size:12,className:"text-success"}),(0,r.jsx)("span",{className:"text-success",children:M.settings.saved})]}),"error"===z&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x.A,{size:12,className:"text-destructive"}),(0,r.jsx)("span",{className:"text-destructive",children:M.settings.saveFailed})]})]}),i&&(0,r.jsx)("button",{onClick:i,className:"p-1 rounded hover:bg-muted text-muted-foreground hover:text-foreground transition-colors",children:(0,r.jsx)(b.A,{size:15})})]})]}),eo(),ei()]})]})]})}function tu({open:e,onClose:t,initialTab:s}){return(0,r.jsx)("div",{style:{display:e?void 0:"none"},children:(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[10vh] modal-backdrop",onClick:e=>e.target===e.currentTarget&&t(),children:(0,r.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":"Settings",className:"w-full md:max-w-3xl md:mx-4 bg-card border-t md:border border-border rounded-t-2xl md:rounded-xl shadow-2xl flex flex-col h-[88vh] md:h-[80vh] md:max-h-[85vh]",children:(0,r.jsx)(tc,{visible:e,variant:"modal",onClose:t,initialTab:s})})})})}},36999:(e,t,s)=>{s.d(t,{A:()=>r});let r=(0,s(90425).A)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]])},51900:(e,t,s)=>{s.d(t,{A:()=>r});let r=(0,s(90425).A)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]])},68806:(e,t,s)=>{s.d(t,{A:()=>r});let r=(0,s(90425).A)("plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]])},94961:(e,t,s)=>{s.d(t,{A:()=>r});let r=(0,s(90425).A)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]])}}]);