@geminilight/mindos-windows-arm64 1.0.7 → 1.0.8

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 (496) hide show
  1. package/_standalone/.mindos-build-version +1 -1
  2. package/_standalone/__next/BUILD_ID +1 -1
  3. package/_standalone/__next/app-path-routes-manifest.json +32 -32
  4. package/_standalone/__next/build-manifest.json +4 -4
  5. package/_standalone/__next/prerender-manifest.json +3 -3
  6. package/_standalone/__next/react-loadable-manifest.json +48 -7
  7. package/_standalone/__next/required-server-files.json +4 -4
  8. package/_standalone/__next/server/app/.well-known/agent-card.json/route.js +1 -1
  9. package/_standalone/__next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -1
  10. package/_standalone/__next/server/app/_global-error/page.js +3 -3
  11. package/_standalone/__next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/_standalone/__next/server/app/_global-error.html +2 -2
  13. package/_standalone/__next/server/app/_global-error.rsc +3 -3
  14. package/_standalone/__next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  15. package/_standalone/__next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/_standalone/__next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  17. package/_standalone/__next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/_standalone/__next/server/app/_global-error.segments/_index.segment.rsc +2 -2
  19. package/_standalone/__next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/_standalone/__next/server/app/_not-found/page.js +2 -2
  21. package/_standalone/__next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/_standalone/__next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/_standalone/__next/server/app/agents/[agentKey]/page.js +2 -2
  24. package/_standalone/__next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
  25. package/_standalone/__next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
  26. package/_standalone/__next/server/app/agents/page.js +2 -2
  27. package/_standalone/__next/server/app/agents/page.js.nft.json +1 -1
  28. package/_standalone/__next/server/app/agents/page_client-reference-manifest.js +1 -1
  29. package/_standalone/__next/server/app/api/a2a/agents/route.js +1 -1
  30. package/_standalone/__next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
  31. package/_standalone/__next/server/app/api/a2a/delegations/route.js +1 -1
  32. package/_standalone/__next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
  33. package/_standalone/__next/server/app/api/a2a/discover/route.js +1 -1
  34. package/_standalone/__next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
  35. package/_standalone/__next/server/app/api/a2a/route.js +1 -1
  36. package/_standalone/__next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
  37. package/_standalone/__next/server/app/api/acp/config/route.js +1 -1
  38. package/_standalone/__next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
  39. package/_standalone/__next/server/app/api/acp/detect/route.js +1 -1
  40. package/_standalone/__next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -1
  41. package/_standalone/__next/server/app/api/acp/install/route.js +1 -1
  42. package/_standalone/__next/server/app/api/acp/install/route_client-reference-manifest.js +1 -1
  43. package/_standalone/__next/server/app/api/acp/registry/route.js +1 -1
  44. package/_standalone/__next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
  45. package/_standalone/__next/server/app/api/acp/session/route.js +1 -1
  46. package/_standalone/__next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
  47. package/_standalone/__next/server/app/api/agent-activity/route.js +1 -1
  48. package/_standalone/__next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
  49. package/_standalone/__next/server/app/api/agents/copy-skill/route.js +1 -1
  50. package/_standalone/__next/server/app/api/agents/copy-skill/route_client-reference-manifest.js +1 -1
  51. package/_standalone/__next/server/app/api/agents/custom/detect/route.js +1 -1
  52. package/_standalone/__next/server/app/api/agents/custom/detect/route_client-reference-manifest.js +1 -1
  53. package/_standalone/__next/server/app/api/agents/custom/route.js +1 -1
  54. package/_standalone/__next/server/app/api/agents/custom/route_client-reference-manifest.js +1 -1
  55. package/_standalone/__next/server/app/api/ask/route.js +3 -3
  56. package/_standalone/__next/server/app/api/ask/route_client-reference-manifest.js +1 -1
  57. package/_standalone/__next/server/app/api/ask-sessions/route.js +1 -1
  58. package/_standalone/__next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
  59. package/_standalone/__next/server/app/api/auth/route.js +1 -1
  60. package/_standalone/__next/server/app/api/auth/route_client-reference-manifest.js +1 -1
  61. package/_standalone/__next/server/app/api/backlinks/route.js +1 -1
  62. package/_standalone/__next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
  63. package/_standalone/__next/server/app/api/bootstrap/route.js +1 -1
  64. package/_standalone/__next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
  65. package/_standalone/__next/server/app/api/changes/route.js +1 -1
  66. package/_standalone/__next/server/app/api/changes/route_client-reference-manifest.js +1 -1
  67. package/_standalone/__next/server/app/api/channels/verify/route.js +1 -1
  68. package/_standalone/__next/server/app/api/channels/verify/route_client-reference-manifest.js +1 -1
  69. package/_standalone/__next/server/app/api/connect/route.js +1 -1
  70. package/_standalone/__next/server/app/api/connect/route_client-reference-manifest.js +1 -1
  71. package/_standalone/__next/server/app/api/embedding/route.js +1 -1
  72. package/_standalone/__next/server/app/api/embedding/route_client-reference-manifest.js +1 -1
  73. package/_standalone/__next/server/app/api/export/route.js +1 -1
  74. package/_standalone/__next/server/app/api/export/route_client-reference-manifest.js +1 -1
  75. package/_standalone/__next/server/app/api/extract-docx/route.js +1 -1
  76. package/_standalone/__next/server/app/api/extract-docx/route_client-reference-manifest.js +1 -1
  77. package/_standalone/__next/server/app/api/extract-pdf/route.js +2 -2
  78. package/_standalone/__next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
  79. package/_standalone/__next/server/app/api/file/import/route.js +1 -1
  80. package/_standalone/__next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
  81. package/_standalone/__next/server/app/api/file/raw/route.js +1 -1
  82. package/_standalone/__next/server/app/api/file/raw/route_client-reference-manifest.js +1 -1
  83. package/_standalone/__next/server/app/api/file/route.js +1 -1
  84. package/_standalone/__next/server/app/api/file/route_client-reference-manifest.js +1 -1
  85. package/_standalone/__next/server/app/api/files/route.js +1 -1
  86. package/_standalone/__next/server/app/api/files/route_client-reference-manifest.js +1 -1
  87. package/_standalone/__next/server/app/api/git/route.js +1 -1
  88. package/_standalone/__next/server/app/api/git/route_client-reference-manifest.js +1 -1
  89. package/_standalone/__next/server/app/api/graph/route.js +1 -1
  90. package/_standalone/__next/server/app/api/graph/route_client-reference-manifest.js +1 -1
  91. package/_standalone/__next/server/app/api/health/route.js +1 -1
  92. package/_standalone/__next/server/app/api/health/route_client-reference-manifest.js +1 -1
  93. package/_standalone/__next/server/app/api/im/activity/route.js +1 -1
  94. package/_standalone/__next/server/app/api/im/activity/route_client-reference-manifest.js +1 -1
  95. package/_standalone/__next/server/app/api/im/config/route.js +1 -1
  96. package/_standalone/__next/server/app/api/im/config/route_client-reference-manifest.js +1 -1
  97. package/_standalone/__next/server/app/api/im/feishu/long-connection/event/route.js +1 -1
  98. package/_standalone/__next/server/app/api/im/feishu/long-connection/event/route_client-reference-manifest.js +1 -1
  99. package/_standalone/__next/server/app/api/im/feishu/long-connection/route.js +1 -1
  100. package/_standalone/__next/server/app/api/im/feishu/long-connection/route_client-reference-manifest.js +1 -1
  101. package/_standalone/__next/server/app/api/im/status/route.js +1 -1
  102. package/_standalone/__next/server/app/api/im/status/route_client-reference-manifest.js +1 -1
  103. package/_standalone/__next/server/app/api/im/test/route.js +1 -1
  104. package/_standalone/__next/server/app/api/im/test/route_client-reference-manifest.js +1 -1
  105. package/_standalone/__next/server/app/api/im/webhook/feishu/route.js +1 -1
  106. package/_standalone/__next/server/app/api/im/webhook/feishu/route_client-reference-manifest.js +1 -1
  107. package/_standalone/__next/server/app/api/im/webhook-status/route.js +1 -1
  108. package/_standalone/__next/server/app/api/im/webhook-status/route_client-reference-manifest.js +1 -1
  109. package/_standalone/__next/server/app/api/inbox/clip/route.js +2 -2
  110. package/_standalone/__next/server/app/api/inbox/clip/route_client-reference-manifest.js +1 -1
  111. package/_standalone/__next/server/app/api/inbox/route.js +1 -1
  112. package/_standalone/__next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
  113. package/_standalone/__next/server/app/api/init/route.js +1 -1
  114. package/_standalone/__next/server/app/api/init/route_client-reference-manifest.js +1 -1
  115. package/_standalone/__next/server/app/api/lint/route.js +1 -1
  116. package/_standalone/__next/server/app/api/lint/route_client-reference-manifest.js +1 -1
  117. package/_standalone/__next/server/app/api/mcp/agents/route.js +1 -1
  118. package/_standalone/__next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
  119. package/_standalone/__next/server/app/api/mcp/direct-tools/route.js +1 -1
  120. package/_standalone/__next/server/app/api/mcp/direct-tools/route_client-reference-manifest.js +1 -1
  121. package/_standalone/__next/server/app/api/mcp/install/route.js +1 -1
  122. package/_standalone/__next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
  123. package/_standalone/__next/server/app/api/mcp/install-skill/route.js +1 -1
  124. package/_standalone/__next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
  125. package/_standalone/__next/server/app/api/mcp/restart/route.js +1 -1
  126. package/_standalone/__next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
  127. package/_standalone/__next/server/app/api/mcp/status/route.js +1 -1
  128. package/_standalone/__next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  129. package/_standalone/__next/server/app/api/mcp/tools/route.js +1 -1
  130. package/_standalone/__next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
  131. package/_standalone/__next/server/app/api/mcp/uninstall/route.js +1 -1
  132. package/_standalone/__next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -1
  133. package/_standalone/__next/server/app/api/monitoring/route.js +1 -1
  134. package/_standalone/__next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
  135. package/_standalone/__next/server/app/api/obsidian/compat-report/route.js +1 -1
  136. package/_standalone/__next/server/app/api/obsidian/compat-report/route_client-reference-manifest.js +1 -1
  137. package/_standalone/__next/server/app/api/obsidian/import/route.js +1 -1
  138. package/_standalone/__next/server/app/api/obsidian/import/route_client-reference-manifest.js +1 -1
  139. package/_standalone/__next/server/app/api/obsidian-plugins/settings/route.js +2 -2
  140. package/_standalone/__next/server/app/api/obsidian-plugins/settings/route_client-reference-manifest.js +1 -1
  141. package/_standalone/__next/server/app/api/recent-files/route.js +1 -1
  142. package/_standalone/__next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
  143. package/_standalone/__next/server/app/api/restart/route.js +1 -1
  144. package/_standalone/__next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  145. package/_standalone/__next/server/app/api/search/prewarm/route.js +1 -1
  146. package/_standalone/__next/server/app/api/search/prewarm/route_client-reference-manifest.js +1 -1
  147. package/_standalone/__next/server/app/api/search/route.js +1 -1
  148. package/_standalone/__next/server/app/api/search/route_client-reference-manifest.js +1 -1
  149. package/_standalone/__next/server/app/api/settings/list-models/route.js +1 -1
  150. package/_standalone/__next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
  151. package/_standalone/__next/server/app/api/settings/reset-token/route.js +1 -1
  152. package/_standalone/__next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
  153. package/_standalone/__next/server/app/api/settings/route.js +1 -1
  154. package/_standalone/__next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  155. package/_standalone/__next/server/app/api/settings/test-key/route.js +1 -1
  156. package/_standalone/__next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
  157. package/_standalone/__next/server/app/api/setup/check-path/route.js +1 -1
  158. package/_standalone/__next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
  159. package/_standalone/__next/server/app/api/setup/check-port/route.js +1 -1
  160. package/_standalone/__next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
  161. package/_standalone/__next/server/app/api/setup/generate-token/route.js +1 -1
  162. package/_standalone/__next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
  163. package/_standalone/__next/server/app/api/setup/ls/route.js +1 -1
  164. package/_standalone/__next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
  165. package/_standalone/__next/server/app/api/setup/route.js +1 -1
  166. package/_standalone/__next/server/app/api/setup/route_client-reference-manifest.js +1 -1
  167. package/_standalone/__next/server/app/api/skills/route.js +1 -1
  168. package/_standalone/__next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  169. package/_standalone/__next/server/app/api/space-overview/route.js +1 -1
  170. package/_standalone/__next/server/app/api/space-overview/route_client-reference-manifest.js +1 -1
  171. package/_standalone/__next/server/app/api/sync/route.js +1 -1
  172. package/_standalone/__next/server/app/api/sync/route_client-reference-manifest.js +1 -1
  173. package/_standalone/__next/server/app/api/tree-version/route.js +1 -1
  174. package/_standalone/__next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
  175. package/_standalone/__next/server/app/api/uninstall/route.js +1 -1
  176. package/_standalone/__next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
  177. package/_standalone/__next/server/app/api/update/route.js +1 -1
  178. package/_standalone/__next/server/app/api/update/route_client-reference-manifest.js +1 -1
  179. package/_standalone/__next/server/app/api/update-check/route.js +1 -1
  180. package/_standalone/__next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
  181. package/_standalone/__next/server/app/api/update-status/route.js +1 -1
  182. package/_standalone/__next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
  183. package/_standalone/__next/server/app/api/workflows/route.js +1 -1
  184. package/_standalone/__next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
  185. package/_standalone/__next/server/app/capture/history/page.js +2 -2
  186. package/_standalone/__next/server/app/capture/history/page.js.nft.json +1 -1
  187. package/_standalone/__next/server/app/capture/history/page_client-reference-manifest.js +1 -1
  188. package/_standalone/__next/server/app/capture/page.js +2 -2
  189. package/_standalone/__next/server/app/capture/page.js.nft.json +1 -1
  190. package/_standalone/__next/server/app/capture/page_client-reference-manifest.js +1 -1
  191. package/_standalone/__next/server/app/changelog/page.js +2 -2
  192. package/_standalone/__next/server/app/changelog/page.js.nft.json +1 -1
  193. package/_standalone/__next/server/app/changelog/page_client-reference-manifest.js +1 -1
  194. package/_standalone/__next/server/app/changes/page.js +2 -2
  195. package/_standalone/__next/server/app/changes/page.js.nft.json +1 -1
  196. package/_standalone/__next/server/app/changes/page_client-reference-manifest.js +1 -1
  197. package/_standalone/__next/server/app/echo/[segment]/page.js +5 -5
  198. package/_standalone/__next/server/app/echo/[segment]/page.js.nft.json +1 -1
  199. package/_standalone/__next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
  200. package/_standalone/__next/server/app/echo/page.js +2 -2
  201. package/_standalone/__next/server/app/echo/page.js.nft.json +1 -1
  202. package/_standalone/__next/server/app/echo/page_client-reference-manifest.js +1 -1
  203. package/_standalone/__next/server/app/explore/page.js +3 -3
  204. package/_standalone/__next/server/app/explore/page.js.nft.json +1 -1
  205. package/_standalone/__next/server/app/explore/page_client-reference-manifest.js +1 -1
  206. package/_standalone/__next/server/app/help/page.js +2 -2
  207. package/_standalone/__next/server/app/help/page.js.nft.json +1 -1
  208. package/_standalone/__next/server/app/help/page_client-reference-manifest.js +1 -1
  209. package/_standalone/__next/server/app/icon.svg/route.js +1 -1
  210. package/_standalone/__next/server/app/inbox/history/page.js +2 -2
  211. package/_standalone/__next/server/app/inbox/history/page.js.nft.json +1 -1
  212. package/_standalone/__next/server/app/inbox/history/page_client-reference-manifest.js +1 -1
  213. package/_standalone/__next/server/app/login/page.js +2 -2
  214. package/_standalone/__next/server/app/login/page.js.nft.json +1 -1
  215. package/_standalone/__next/server/app/login/page_client-reference-manifest.js +1 -1
  216. package/_standalone/__next/server/app/page.js +2 -2
  217. package/_standalone/__next/server/app/page.js.nft.json +1 -1
  218. package/_standalone/__next/server/app/page_client-reference-manifest.js +1 -1
  219. package/_standalone/__next/server/app/settings/page.js +8 -3
  220. package/_standalone/__next/server/app/settings/page.js.nft.json +1 -1
  221. package/_standalone/__next/server/app/settings/page_client-reference-manifest.js +1 -1
  222. package/_standalone/__next/server/app/setup/page.js +2 -2
  223. package/_standalone/__next/server/app/setup/page.js.nft.json +1 -1
  224. package/_standalone/__next/server/app/setup/page_client-reference-manifest.js +1 -1
  225. package/_standalone/__next/server/app/todo/page.js +2 -2
  226. package/_standalone/__next/server/app/todo/page.js.nft.json +1 -1
  227. package/_standalone/__next/server/app/todo/page_client-reference-manifest.js +1 -1
  228. package/_standalone/__next/server/app/trash/page.js +3 -3
  229. package/_standalone/__next/server/app/trash/page.js.nft.json +1 -1
  230. package/_standalone/__next/server/app/trash/page_client-reference-manifest.js +1 -1
  231. package/_standalone/__next/server/app/view/[...path]/page.js +3 -3
  232. package/_standalone/__next/server/app/view/[...path]/page.js.nft.json +1 -1
  233. package/_standalone/__next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
  234. package/_standalone/__next/server/app/wiki/page.js +2 -2
  235. package/_standalone/__next/server/app/wiki/page.js.nft.json +1 -1
  236. package/_standalone/__next/server/app/wiki/page_client-reference-manifest.js +1 -1
  237. package/_standalone/__next/server/app-paths-manifest.json +32 -32
  238. package/_standalone/__next/server/chunks/103.js +1 -1
  239. package/_standalone/__next/server/chunks/1976.js +1 -1
  240. package/_standalone/__next/server/chunks/3466.js +1 -1
  241. package/_standalone/__next/server/chunks/3727.js +1 -1
  242. package/_standalone/__next/server/chunks/4793.js +1 -1
  243. package/_standalone/__next/server/chunks/6377.js +3 -3
  244. package/_standalone/__next/server/chunks/6602.js +187 -0
  245. package/_standalone/__next/server/chunks/6646.js +16 -0
  246. package/_standalone/__next/server/chunks/8461.js +7 -7
  247. package/_standalone/__next/server/chunks/9868.js +2 -0
  248. package/_standalone/__next/server/chunks/{9773.js → 9969.js} +3 -3
  249. package/_standalone/__next/server/middleware-build-manifest.js +1 -1
  250. package/_standalone/__next/server/middleware-react-loadable-manifest.js +1 -1
  251. package/_standalone/__next/server/middleware.js +2 -2
  252. package/_standalone/__next/server/pages/500.html +2 -2
  253. package/_standalone/__next/server/server-reference-manifest.js +1 -1
  254. package/_standalone/__next/server/server-reference-manifest.json +1 -1
  255. package/_standalone/__next/static/chunks/{1430-c4ffa328888515c1.js → 1104-0822d9349a412b9b.js} +7 -2
  256. package/_standalone/__next/static/chunks/1655.0a559759973b42e9.js +1 -0
  257. package/_standalone/__next/static/chunks/{2073-3f913ebb13702b7e.js → 2073-fadffc82a27afdc7.js} +2 -2
  258. package/{static-web/_next/static/chunks/6728.e1841cddb63308b0.js → _standalone/__next/static/chunks/2245.ef71edb24c5232c2.js} +1 -1
  259. package/_standalone/__next/static/chunks/2258-2d3b5aac6a1fa92a.js +53 -0
  260. package/{static-web/_next/static/chunks/4937-4101fcdadacf46e3.js → _standalone/__next/static/chunks/2409-244f9b90dceb0c04.js} +1 -1
  261. package/_standalone/__next/static/chunks/3279-b49c25a4f2964b16.js +1 -0
  262. package/_standalone/__next/static/chunks/3807-115388f118106ca8.js +1 -0
  263. package/_standalone/__next/static/chunks/3966.ea75f9c5490955de.js +1 -0
  264. package/_standalone/__next/static/chunks/4010.48b219cb22dfa5d8.js +10 -0
  265. package/_standalone/__next/static/chunks/5026-7fed7ca22272c18f.js +1 -0
  266. package/_standalone/__next/static/chunks/5152-87e6ed56dfd7d17d.js +1 -0
  267. package/_standalone/__next/static/chunks/577.5e448c99068f1323.js +1 -0
  268. package/_standalone/__next/static/chunks/5913.a0a734f87b13f81a.js +1 -0
  269. package/_standalone/__next/static/chunks/596.9cbaf6ba90cb204f.js +7 -0
  270. package/_standalone/__next/static/chunks/6223-3fb90852221bda56.js +1 -0
  271. package/_standalone/__next/static/chunks/6343.582d063078c45d73.js +6 -0
  272. package/_standalone/__next/static/chunks/8174-50048777dc2469c0.js +1 -0
  273. package/_standalone/__next/static/chunks/{5913.3cee388e26959b62.js → 8294.cc9f9ff2f8b219ed.js} +1 -1
  274. package/_standalone/__next/static/chunks/8626-7da79d9ab2504eed.js +1 -0
  275. package/_standalone/__next/static/chunks/{8732.9002f42201b06fe8.js → 8732.87554c78e8825fac.js} +4 -4
  276. package/_standalone/__next/static/chunks/8922-3babcd35e18e9e4f.js +1 -0
  277. package/_standalone/__next/static/chunks/9440-eee639175695be7d.js +33 -0
  278. package/_standalone/__next/static/chunks/9479-b48d19e3588823c1.js +34 -0
  279. package/_standalone/__next/static/chunks/{9602.4e99e3525e5f062c.js → 9602.218427fc7b3d6b11.js} +1 -1
  280. package/_standalone/__next/static/chunks/app/_not-found/{page-eaedcec1b693c03c.js → page-ec6fa498a07e6fd9.js} +1 -1
  281. package/_standalone/__next/static/chunks/app/agents/[agentKey]/page-ef111ea0a3368752.js +1 -0
  282. package/_standalone/__next/static/chunks/app/agents/page-aacead0f47cedb0d.js +1 -0
  283. package/_standalone/__next/static/chunks/app/capture/history/page-d157ce945ad84c23.js +1 -0
  284. package/_standalone/__next/static/chunks/app/capture/page-ae4d683afdc7a7b2.js +1 -0
  285. package/_standalone/__next/static/chunks/app/changelog/page-5a39d8fe531f4d45.js +1 -0
  286. package/_standalone/__next/static/chunks/app/changes/page-64cf8d751245eee9.js +1 -0
  287. package/{static-web/_next/static/chunks/app/echo/[segment]/page-44b6b8e7fd0bbe31.js → _standalone/__next/static/chunks/app/echo/[segment]/page-c5ea40ac04f2dc29.js} +2 -2
  288. package/_standalone/__next/static/chunks/app/echo/page-64cf8d751245eee9.js +1 -0
  289. package/_standalone/__next/static/chunks/app/{error-1cfcd6abd93c3837.js → error-c46d1b03d5e3289c.js} +1 -1
  290. package/{static-web/_next/static/chunks/app/explore/page-117fcf54b8b9765c.js → _standalone/__next/static/chunks/app/explore/page-5d6dd4af8d1bb468.js} +1 -1
  291. package/_standalone/__next/static/chunks/app/global-error-d42727c6c6c48879.js +1 -0
  292. package/_standalone/__next/static/chunks/app/help/{page-6efb8aa3a3c169fa.js → page-3f0a1a8e51249cb2.js} +1 -1
  293. package/_standalone/__next/static/chunks/app/inbox/history/page-b2930c2ef04e00b0.js +1 -0
  294. package/_standalone/__next/static/chunks/app/layout-ed608bbf9585e78f.js +99 -0
  295. package/_standalone/__next/static/chunks/app/login/page-a4f9f9053c75ae8d.js +1 -0
  296. package/_standalone/__next/static/chunks/app/page-d22928276c36528c.js +1 -0
  297. package/_standalone/__next/static/chunks/app/settings/{page-f816f13a34613538.js → page-045afd8c0908f923.js} +1 -1
  298. package/{static-web/_next/static/chunks/app/setup/page-a1027871dc33ffbd.js → _standalone/__next/static/chunks/app/setup/page-034a608f19d04653.js} +1 -1
  299. package/_standalone/__next/static/chunks/app/todo/page-c7629a0c102c634f.js +1 -0
  300. package/_standalone/__next/static/chunks/app/trash/page-251aaf5aac9d5a0b.js +1 -0
  301. package/_standalone/__next/static/chunks/app/view/[...path]/{error-c9a3f6de7c963c74.js → error-f73092e638a4e999.js} +1 -1
  302. package/_standalone/__next/static/chunks/app/view/[...path]/{not-found-5a4f2b4fbe28d617.js → not-found-80e5f4054819b372.js} +1 -1
  303. package/_standalone/__next/static/chunks/app/view/[...path]/page-7e17c3d13fe2e275.js +12 -0
  304. package/{static-web/_next/static/chunks/app/wiki/page-7afd3b97c1ea1b8c.js → _standalone/__next/static/chunks/app/wiki/page-4c9bc816069b6f2a.js} +2 -2
  305. package/_standalone/__next/static/chunks/{main-app-8a6081b103b8f494.js → main-app-23adfdc06470abb6.js} +1 -1
  306. package/_standalone/__next/static/chunks/webpack-1decda0633a8a874.js +1 -0
  307. package/_standalone/__next/static/css/5f000212c8b2e09a.css +1 -0
  308. package/_standalone/__node_modules/@aws-sdk/xml-builder/node_modules/.bin/fxparser +2 -2
  309. package/_standalone/__node_modules/@mariozechner/pi-agent-core/node_modules/.bin/pi-ai +2 -2
  310. package/_standalone/__node_modules/@mariozechner/pi-agent-core/node_modules/@mariozechner/pi-ai/node_modules/.bin/anthropic-ai-sdk +2 -2
  311. package/_standalone/__node_modules/@mariozechner/pi-agent-core/node_modules/@mariozechner/pi-ai/node_modules/.bin/openai +2 -2
  312. package/_standalone/__node_modules/@mariozechner/pi-ai/node_modules/.bin/anthropic-ai-sdk +2 -2
  313. package/_standalone/__node_modules/@mariozechner/pi-ai/node_modules/.bin/openai +2 -2
  314. package/_standalone/__node_modules/@mariozechner/pi-coding-agent/node_modules/.bin/extract-zip +2 -2
  315. package/_standalone/__node_modules/@mariozechner/pi-coding-agent/node_modules/.bin/highlight +2 -2
  316. package/_standalone/__node_modules/@mariozechner/pi-coding-agent/node_modules/.bin/jiti +2 -2
  317. package/_standalone/__node_modules/@mariozechner/pi-coding-agent/node_modules/.bin/marked +2 -2
  318. package/_standalone/__node_modules/@mariozechner/pi-coding-agent/node_modules/.bin/pi-ai +2 -2
  319. package/_standalone/__node_modules/@mariozechner/pi-coding-agent/node_modules/.bin/yaml +2 -2
  320. package/_standalone/__node_modules/@mariozechner/pi-coding-agent/node_modules/@mariozechner/pi-ai/node_modules/.bin/anthropic-ai-sdk +2 -2
  321. package/_standalone/__node_modules/@mariozechner/pi-coding-agent/node_modules/@mariozechner/pi-ai/node_modules/.bin/openai +2 -2
  322. package/_standalone/__node_modules/@mariozechner/pi-tui/node_modules/.bin/marked +2 -2
  323. package/_standalone/__node_modules/degenerator/node_modules/.bin/escodegen +2 -2
  324. package/_standalone/__node_modules/degenerator/node_modules/.bin/esgenerate +2 -2
  325. package/_standalone/__node_modules/degenerator/node_modules/.bin/esparse +2 -2
  326. package/_standalone/__node_modules/degenerator/node_modules/.bin/esvalidate +2 -2
  327. package/_standalone/__node_modules/escodegen/node_modules/.bin/esparse +2 -2
  328. package/_standalone/__node_modules/escodegen/node_modules/.bin/esvalidate +2 -2
  329. package/_standalone/__node_modules/global-agent/node_modules/.bin/semver +2 -2
  330. package/_standalone/__node_modules/jsdom/node_modules/.bin/specificity +2 -2
  331. package/_standalone/__node_modules/postcss/node_modules/.bin/nanoid +2 -2
  332. package/_standalone/__node_modules/tough-cookie/node_modules/.bin/tldts +2 -2
  333. package/_standalone/public/agent-icons/claude.svg +1 -0
  334. package/_standalone/public/agent-icons/cursor.svg +1 -0
  335. package/_standalone/public/agent-icons/github-copilot.svg +1 -0
  336. package/_standalone/public/agent-icons/google.svg +1 -0
  337. package/_standalone/public/agent-icons/openai.svg +1 -0
  338. package/_standalone/public/agent-icons/windsurf.svg +1 -0
  339. package/_standalone/server.js +1 -1
  340. package/bin/lib/stop.js +45 -0
  341. package/bin/lib/sync.js +32 -19
  342. package/dist/server/handlers/file.js +5 -2
  343. package/dist/server/handlers/file.js.map +1 -1
  344. package/dist/server/handlers/mcp-restart.d.ts +2 -0
  345. package/dist/server/handlers/mcp-restart.d.ts.map +1 -1
  346. package/dist/server/handlers/mcp-restart.js +45 -2
  347. package/dist/server/handlers/mcp-restart.js.map +1 -1
  348. package/dist/server/handlers/skills.d.ts.map +1 -1
  349. package/dist/server/handlers/skills.js +17 -3
  350. package/dist/server/handlers/skills.js.map +1 -1
  351. package/dist/server/handlers/sync.d.ts.map +1 -1
  352. package/dist/server/handlers/sync.js +28 -10
  353. package/dist/server/handlers/sync.js.map +1 -1
  354. package/dist/server/index.d.ts +1 -1
  355. package/dist/server/index.d.ts.map +1 -1
  356. package/dist/server/index.js +1 -1
  357. package/dist/server/index.js.map +1 -1
  358. package/dist/server/runtime.d.ts.map +1 -1
  359. package/dist/server/runtime.js +20 -21
  360. package/dist/server/runtime.js.map +1 -1
  361. package/package.json +1 -1
  362. package/runtime-manifest.json +1 -1
  363. package/scripts/build-bun-binary.mjs +139 -6
  364. package/scripts/prepare-static-web.mjs +52 -4
  365. package/scripts/release.sh +1 -1
  366. package/scripts/setup.js +115 -2
  367. package/static-web/.mindos-build-version +1 -1
  368. package/static-web/_next/static/chunks/{1430-c4ffa328888515c1.js → 1104-0822d9349a412b9b.js} +7 -2
  369. package/static-web/_next/static/chunks/1655.0a559759973b42e9.js +1 -0
  370. package/static-web/_next/static/chunks/{2073-3f913ebb13702b7e.js → 2073-fadffc82a27afdc7.js} +2 -2
  371. package/{_standalone/__next/static/chunks/6728.e1841cddb63308b0.js → static-web/_next/static/chunks/2245.ef71edb24c5232c2.js} +1 -1
  372. package/static-web/_next/static/chunks/2258-2d3b5aac6a1fa92a.js +53 -0
  373. package/{_standalone/__next/static/chunks/4937-4101fcdadacf46e3.js → static-web/_next/static/chunks/2409-244f9b90dceb0c04.js} +1 -1
  374. package/static-web/_next/static/chunks/3279-b49c25a4f2964b16.js +1 -0
  375. package/static-web/_next/static/chunks/3807-115388f118106ca8.js +1 -0
  376. package/static-web/_next/static/chunks/3966.ea75f9c5490955de.js +1 -0
  377. package/static-web/_next/static/chunks/4010.48b219cb22dfa5d8.js +10 -0
  378. package/static-web/_next/static/chunks/5026-7fed7ca22272c18f.js +1 -0
  379. package/static-web/_next/static/chunks/5152-87e6ed56dfd7d17d.js +1 -0
  380. package/static-web/_next/static/chunks/577.5e448c99068f1323.js +1 -0
  381. package/static-web/_next/static/chunks/5913.a0a734f87b13f81a.js +1 -0
  382. package/static-web/_next/static/chunks/596.9cbaf6ba90cb204f.js +7 -0
  383. package/static-web/_next/static/chunks/6223-3fb90852221bda56.js +1 -0
  384. package/static-web/_next/static/chunks/6343.582d063078c45d73.js +6 -0
  385. package/static-web/_next/static/chunks/8174-50048777dc2469c0.js +1 -0
  386. package/static-web/_next/static/chunks/{5913.3cee388e26959b62.js → 8294.cc9f9ff2f8b219ed.js} +1 -1
  387. package/static-web/_next/static/chunks/8626-7da79d9ab2504eed.js +1 -0
  388. package/static-web/_next/static/chunks/{8732.9002f42201b06fe8.js → 8732.87554c78e8825fac.js} +4 -4
  389. package/static-web/_next/static/chunks/8922-3babcd35e18e9e4f.js +1 -0
  390. package/static-web/_next/static/chunks/9440-eee639175695be7d.js +33 -0
  391. package/static-web/_next/static/chunks/9479-b48d19e3588823c1.js +34 -0
  392. package/static-web/_next/static/chunks/{9602.4e99e3525e5f062c.js → 9602.218427fc7b3d6b11.js} +1 -1
  393. package/static-web/_next/static/chunks/app/_not-found/{page-eaedcec1b693c03c.js → page-ec6fa498a07e6fd9.js} +1 -1
  394. package/static-web/_next/static/chunks/app/agents/[agentKey]/page-ef111ea0a3368752.js +1 -0
  395. package/static-web/_next/static/chunks/app/agents/page-aacead0f47cedb0d.js +1 -0
  396. package/static-web/_next/static/chunks/app/capture/history/page-d157ce945ad84c23.js +1 -0
  397. package/static-web/_next/static/chunks/app/capture/page-ae4d683afdc7a7b2.js +1 -0
  398. package/static-web/_next/static/chunks/app/changelog/page-5a39d8fe531f4d45.js +1 -0
  399. package/static-web/_next/static/chunks/app/changes/page-64cf8d751245eee9.js +1 -0
  400. package/{_standalone/__next/static/chunks/app/echo/[segment]/page-44b6b8e7fd0bbe31.js → static-web/_next/static/chunks/app/echo/[segment]/page-c5ea40ac04f2dc29.js} +2 -2
  401. package/static-web/_next/static/chunks/app/echo/page-64cf8d751245eee9.js +1 -0
  402. package/static-web/_next/static/chunks/app/{error-1cfcd6abd93c3837.js → error-c46d1b03d5e3289c.js} +1 -1
  403. package/{_standalone/__next/static/chunks/app/explore/page-117fcf54b8b9765c.js → static-web/_next/static/chunks/app/explore/page-5d6dd4af8d1bb468.js} +1 -1
  404. package/static-web/_next/static/chunks/app/global-error-d42727c6c6c48879.js +1 -0
  405. package/static-web/_next/static/chunks/app/help/{page-6efb8aa3a3c169fa.js → page-3f0a1a8e51249cb2.js} +1 -1
  406. package/static-web/_next/static/chunks/app/inbox/history/page-b2930c2ef04e00b0.js +1 -0
  407. package/static-web/_next/static/chunks/app/layout-ed608bbf9585e78f.js +99 -0
  408. package/static-web/_next/static/chunks/app/login/page-a4f9f9053c75ae8d.js +1 -0
  409. package/static-web/_next/static/chunks/app/page-d22928276c36528c.js +1 -0
  410. package/static-web/_next/static/chunks/app/settings/{page-f816f13a34613538.js → page-045afd8c0908f923.js} +1 -1
  411. package/{_standalone/__next/static/chunks/app/setup/page-a1027871dc33ffbd.js → static-web/_next/static/chunks/app/setup/page-034a608f19d04653.js} +1 -1
  412. package/static-web/_next/static/chunks/app/todo/page-c7629a0c102c634f.js +1 -0
  413. package/static-web/_next/static/chunks/app/trash/page-251aaf5aac9d5a0b.js +1 -0
  414. package/static-web/_next/static/chunks/app/view/[...path]/{error-c9a3f6de7c963c74.js → error-f73092e638a4e999.js} +1 -1
  415. package/static-web/_next/static/chunks/app/view/[...path]/{not-found-5a4f2b4fbe28d617.js → not-found-80e5f4054819b372.js} +1 -1
  416. package/static-web/_next/static/chunks/app/view/[...path]/page-7e17c3d13fe2e275.js +12 -0
  417. package/{_standalone/__next/static/chunks/app/wiki/page-7afd3b97c1ea1b8c.js → static-web/_next/static/chunks/app/wiki/page-4c9bc816069b6f2a.js} +2 -2
  418. package/static-web/_next/static/chunks/{main-app-8a6081b103b8f494.js → main-app-23adfdc06470abb6.js} +1 -1
  419. package/static-web/_next/static/chunks/webpack-1decda0633a8a874.js +1 -0
  420. package/static-web/_next/static/css/5f000212c8b2e09a.css +1 -0
  421. package/static-web/agent-icons/claude.svg +1 -0
  422. package/static-web/agent-icons/cursor.svg +1 -0
  423. package/static-web/agent-icons/github-copilot.svg +1 -0
  424. package/static-web/agent-icons/google.svg +1 -0
  425. package/static-web/agent-icons/openai.svg +1 -0
  426. package/static-web/agent-icons/windsurf.svg +1 -0
  427. package/static-web/help/index.html +5 -20
  428. package/static-web/index.html +8 -22
  429. package/static-web/setup/index.html +5 -20
  430. package/static-web/static-web-manifest.json +1 -1
  431. package/static-web/wiki/index.html +5 -20
  432. package/_standalone/__next/server/chunks/1834.js +0 -210
  433. package/_standalone/__next/server/chunks/2037.js +0 -2
  434. package/_standalone/__next/server/chunks/9350.js +0 -11
  435. package/_standalone/__next/static/chunks/1957-723ac4eb5200214c.js +0 -33
  436. package/_standalone/__next/static/chunks/2288-4dcb8ad3ccbd651e.js +0 -1
  437. package/_standalone/__next/static/chunks/2737-f4970f0684c334d6.js +0 -48
  438. package/_standalone/__next/static/chunks/3424-060f01a8983e438d.js +0 -1
  439. package/_standalone/__next/static/chunks/4172-4fc551f07f7d082f.js +0 -1
  440. package/_standalone/__next/static/chunks/4454-f582e17b76ccf1d1.js +0 -1
  441. package/_standalone/__next/static/chunks/5152-2db55438be7ecb94.js +0 -1
  442. package/_standalone/__next/static/chunks/5200-6c82e5ce54a95b4b.js +0 -6
  443. package/_standalone/__next/static/chunks/6274-f173cb227ad1ef21.js +0 -1
  444. package/_standalone/__next/static/chunks/6947.fb89346ef2f6be17.js +0 -1
  445. package/_standalone/__next/static/chunks/725-3b648bf7929ff78d.js +0 -1
  446. package/_standalone/__next/static/chunks/9479-7b304601a56304cd.js +0 -32
  447. package/_standalone/__next/static/chunks/app/agents/[agentKey]/page-1dac12945bfbaf35.js +0 -1
  448. package/_standalone/__next/static/chunks/app/agents/page-7ff2e39ca12eb20a.js +0 -1
  449. package/_standalone/__next/static/chunks/app/capture/history/page-51db96203209a441.js +0 -1
  450. package/_standalone/__next/static/chunks/app/capture/page-3bf09d1f5e1c379c.js +0 -1
  451. package/_standalone/__next/static/chunks/app/changelog/page-01dc22b6d2230c7f.js +0 -1
  452. package/_standalone/__next/static/chunks/app/changes/page-c9f8d5632a001849.js +0 -1
  453. package/_standalone/__next/static/chunks/app/echo/page-c9f8d5632a001849.js +0 -1
  454. package/_standalone/__next/static/chunks/app/global-error-11b333dcf222bc09.js +0 -1
  455. package/_standalone/__next/static/chunks/app/inbox/history/page-913645bbd6161116.js +0 -1
  456. package/_standalone/__next/static/chunks/app/layout-24a31ea28c556e82.js +0 -114
  457. package/_standalone/__next/static/chunks/app/login/page-7f9aca3d51266bec.js +0 -1
  458. package/_standalone/__next/static/chunks/app/page-35662964020c0ea9.js +0 -1
  459. package/_standalone/__next/static/chunks/app/todo/page-54c3ec77f662ff73.js +0 -1
  460. package/_standalone/__next/static/chunks/app/trash/page-50622e3df2047204.js +0 -1
  461. package/_standalone/__next/static/chunks/app/view/[...path]/page-b10d3819827da1c2.js +0 -12
  462. package/_standalone/__next/static/chunks/webpack-7d8c24c6af17dd51.js +0 -1
  463. package/_standalone/__next/static/css/0d2fd378b5449176.css +0 -1
  464. package/static-web/_next/static/chunks/1957-723ac4eb5200214c.js +0 -33
  465. package/static-web/_next/static/chunks/2288-4dcb8ad3ccbd651e.js +0 -1
  466. package/static-web/_next/static/chunks/2737-f4970f0684c334d6.js +0 -48
  467. package/static-web/_next/static/chunks/3424-060f01a8983e438d.js +0 -1
  468. package/static-web/_next/static/chunks/4172-4fc551f07f7d082f.js +0 -1
  469. package/static-web/_next/static/chunks/4454-f582e17b76ccf1d1.js +0 -1
  470. package/static-web/_next/static/chunks/5152-2db55438be7ecb94.js +0 -1
  471. package/static-web/_next/static/chunks/5200-6c82e5ce54a95b4b.js +0 -6
  472. package/static-web/_next/static/chunks/6274-f173cb227ad1ef21.js +0 -1
  473. package/static-web/_next/static/chunks/6947.fb89346ef2f6be17.js +0 -1
  474. package/static-web/_next/static/chunks/725-3b648bf7929ff78d.js +0 -1
  475. package/static-web/_next/static/chunks/9479-7b304601a56304cd.js +0 -32
  476. package/static-web/_next/static/chunks/app/agents/[agentKey]/page-1dac12945bfbaf35.js +0 -1
  477. package/static-web/_next/static/chunks/app/agents/page-7ff2e39ca12eb20a.js +0 -1
  478. package/static-web/_next/static/chunks/app/capture/history/page-51db96203209a441.js +0 -1
  479. package/static-web/_next/static/chunks/app/capture/page-3bf09d1f5e1c379c.js +0 -1
  480. package/static-web/_next/static/chunks/app/changelog/page-01dc22b6d2230c7f.js +0 -1
  481. package/static-web/_next/static/chunks/app/changes/page-c9f8d5632a001849.js +0 -1
  482. package/static-web/_next/static/chunks/app/echo/page-c9f8d5632a001849.js +0 -1
  483. package/static-web/_next/static/chunks/app/global-error-11b333dcf222bc09.js +0 -1
  484. package/static-web/_next/static/chunks/app/inbox/history/page-913645bbd6161116.js +0 -1
  485. package/static-web/_next/static/chunks/app/layout-24a31ea28c556e82.js +0 -114
  486. package/static-web/_next/static/chunks/app/login/page-7f9aca3d51266bec.js +0 -1
  487. package/static-web/_next/static/chunks/app/page-35662964020c0ea9.js +0 -1
  488. package/static-web/_next/static/chunks/app/todo/page-54c3ec77f662ff73.js +0 -1
  489. package/static-web/_next/static/chunks/app/trash/page-50622e3df2047204.js +0 -1
  490. package/static-web/_next/static/chunks/app/view/[...path]/page-b10d3819827da1c2.js +0 -12
  491. package/static-web/_next/static/chunks/webpack-7d8c24c6af17dd51.js +0 -1
  492. package/static-web/_next/static/css/0d2fd378b5449176.css +0 -1
  493. /package/_standalone/__next/static/{3FkuJxcda957EywJ5ZWWG → apol5mbXb7N_sqaKgpXN1}/_buildManifest.js +0 -0
  494. /package/_standalone/__next/static/{3FkuJxcda957EywJ5ZWWG → apol5mbXb7N_sqaKgpXN1}/_ssgManifest.js +0 -0
  495. /package/static-web/_next/static/{3FkuJxcda957EywJ5ZWWG → apol5mbXb7N_sqaKgpXN1}/_buildManifest.js +0 -0
  496. /package/static-web/_next/static/{3FkuJxcda957EywJ5ZWWG → apol5mbXb7N_sqaKgpXN1}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2288],{42277:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});let r=(0,i(73015).A)("pen-line",[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]])},67294:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});let r=(0,i(73015).A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]])},73260:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});let r=(0,i(73015).A)("layout-template",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]])},76728:(e,t,i)=>{"use strict";i.d(t,{A:()=>r});let r=(0,i(73015).A)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]])},96737:function(e,t){var i,r;void 0===(r="function"==typeof(i=function e(){var t,i="u">typeof self?self:"u">typeof window?window:void 0!==i?i:{},r=!i.document&&!!i.postMessage,n=i.IS_PAPA_WORKER||!1,s={},a=0,o={};function h(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},(function(e){var t=k(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null),this._handle=new c(t),(this._handle.streamer=this)._config=t}).call(this,e),this.parseChunk=function(e,t){var r=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<r){let t=this._config.newline;t||(s=this._config.quoteChar||'"',t=this._handle.guessLineEndings(e,s)),e=[...e.split(t).slice(r)].join(t)}this.isFirstChunk&&E(this._config.beforeFirstChunk)&&void 0!==(s=this._config.beforeFirstChunk(e))&&(e=s),this.isFirstChunk=!1,this._halted=!1;var r=this._partialLine+e,s=(this._partialLine="",this._handle.parse(r,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(e=s.meta.cursor,this._finished||(this._partialLine=r.substring(e-this._baseIndex),this._baseIndex=e),s&&s.data&&(this._rowCount+=s.data.length),r=this._finished||this._config.preview&&this._rowCount>=this._config.preview,n)i.postMessage({results:s,workerId:o.WORKER_ID,finished:r});else if(E(this._config.chunk)&&!t){if(this._config.chunk(s,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=s=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(s.data),this._completeResults.errors=this._completeResults.errors.concat(s.errors),this._completeResults.meta=s.meta),this._completed||!r||!E(this._config.complete)||s&&s.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),r||s&&s.meta.paused||this._nextChunk(),s}this._halted=!0},this._sendError=function(e){E(this._config.error)?this._config.error(e):n&&this._config.error&&i.postMessage({workerId:o.WORKER_ID,error:e,finished:!1})}}function u(e){var t;(e=e||{}).chunkSize||(e.chunkSize=o.RemoteChunkSize),h.call(this,e),this._nextChunk=r?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),r||(t.onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)),t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!r),this._config.downloadRequestHeaders){var e,i,n=this._config.downloadRequestHeaders;for(i in n)t.setRequestHeader(i,n[i])}this._config.chunkSize&&(e=this._start+this._config.chunkSize-1,t.setRequestHeader("Range","bytes="+this._start+"-"+e));try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}r&&0===t.status&&this._chunkError()}},this._chunkLoaded=function(){let e;4===t.readyState&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize||t.responseText.length,this._finished=!this._config.chunkSize||this._start>=(null!==(e=(e=t).getResponseHeader("Content-Range"))?parseInt(e.substring(e.lastIndexOf("/")+1)):-1),this.parseChunk(t.responseText)))},this._chunkError=function(e){e=t.statusText||e,this._sendError(Error(e))}}function d(e){(e=e||{}).chunkSize||(e.chunkSize=o.LocalChunkSize),h.call(this,e);var t,i,r="u">typeof FileReader;this.stream=function(e){this._input=e,i=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input,n=(this._config.chunkSize&&(n=Math.min(this._start+this._config.chunkSize,this._input.size),e=i.call(e,this._start,n)),t.readAsText(e,this._config.encoding));r||this._chunkLoaded({target:{result:n}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function l(e){var t;h.call(this,e=e||{}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){var e,i;if(!this._finished)return t=(e=this._config.chunkSize)?(i=t.substring(0,e),t.substring(e)):(i=t,""),this._finished=!t,this.parseChunk(i)}}function f(e){h.call(this,e=e||{});var t=[],i=!0,r=!1;this.pause=function(){h.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){h.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=b(function(e){try{t.push("string"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=b(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=b(function(){this._streamCleanUp(),r=!0,this._streamData("")},this),this._streamCleanUp=b(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function c(e){var t,i,r,n,s=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,a=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,h=this,u=0,d=0,l=!1,f=!1,c=[],_={data:[],errors:[],meta:{}};function m(t){return"greedy"===e.skipEmptyLines?""===t.join("").trim():1===t.length&&0===t[0].length}function y(){if(_&&r&&(w("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+o.DefaultDelimiter+"'"),r=!1),e.skipEmptyLines&&(_.data=_.data.filter(function(e){return!m(e)})),b()){if(_)if(Array.isArray(_.data[0])){for(var t,i=0;b()&&i<_.data.length;i++)_.data[i].forEach(n);_.data.splice(0,1)}else _.data.forEach(n);function n(t,i){E(e.transformHeader)&&(t=e.transformHeader(t,i)),c.push(t)}}function h(t,i){for(var r=e.header?{}:[],n=0;n<t.length;n++){var o=n,h=t[n],h=((t,i)=>(e.dynamicTypingFunction&&void 0===e.dynamicTyping[t]&&(e.dynamicTyping[t]=e.dynamicTypingFunction(t)),!0===(e.dynamicTyping[t]||e.dynamicTyping))?"true"===i||"TRUE"===i||"false"!==i&&"FALSE"!==i&&((e=>{if(s.test(e)&&-0x20000000000000<(e=parseFloat(e))&&e<0x20000000000000)return 1})(i)?parseFloat(i):a.test(i)?new Date(i):""===i?null:i):i)(o=e.header?n>=c.length?"__parsed_extra":c[n]:o,h=e.transform?e.transform(h,o):h);"__parsed_extra"===o?(r[o]=r[o]||[],r[o].push(h)):r[o]=h}return e.header&&(n>c.length?w("FieldMismatch","TooManyFields","Too many fields: expected "+c.length+" fields but parsed "+n,d+i):n<c.length&&w("FieldMismatch","TooFewFields","Too few fields: expected "+c.length+" fields but parsed "+n,d+i)),r}_&&(e.header||e.dynamicTyping||e.transform)&&(t=1,!_.data.length||Array.isArray(_.data[0])?(_.data=_.data.map(h),t=_.data.length):_.data=h(_.data,0),e.header&&_.meta&&(_.meta.fields=c),d+=t)}function b(){return e.header&&0===c.length}function w(e,t,i,r){e={type:e,code:t,message:i},void 0!==r&&(e.row=r),_.errors.push(e)}E(e.step)&&(n=e.step,e.step=function(t){_=t,b()?y():(y(),0!==_.data.length&&(u+=t.data.length,e.preview&&u>e.preview?i.abort():(_.data=_.data[0],n(_,h))))}),this.parse=function(n,s,a){var h=e.quoteChar||'"',h=(e.newline||(e.newline=this.guessLineEndings(n,h)),r=!1,e.delimiter?E(e.delimiter)&&(e.delimiter=e.delimiter(n),_.meta.delimiter=e.delimiter):((h=((t,i,r,n,s)=>{var a,h,u,d;s=s||[","," ","|",";",o.RECORD_SEP,o.UNIT_SEP];for(var l=0;l<s.length;l++){for(var f,c=s[l],p=0,_=0,y=0,k=(u=void 0,new g({comments:n,delimiter:c,newline:i,preview:10}).parse(t)),b=0;b<k.data.length;b++)r&&m(k.data[b])?y++:(_+=f=k.data[b].length,void 0===u?u=f:0<f&&(p+=Math.abs(f-u),u=f));0<k.data.length&&(_/=k.data.length-y),(void 0===h||p<=h)&&(void 0===d||d<_)&&1.99<_&&(h=p,a=c,d=_)}return{successful:!!(e.delimiter=a),bestDelimiter:a}})(n,e.newline,e.skipEmptyLines,e.comments,e.delimitersToGuess)).successful?e.delimiter=h.bestDelimiter:(r=!0,e.delimiter=o.DefaultDelimiter),_.meta.delimiter=e.delimiter),k(e));return e.preview&&e.header&&h.preview++,t=n,_=(i=new g(h)).parse(t,s,a),y(),l?{meta:{paused:!0}}:_||{meta:{paused:!1}}},this.paused=function(){return l},this.pause=function(){l=!0,i.abort(),t=E(e.chunk)?"":t.substring(i.getCharIndex())},this.resume=function(){h.streamer._halted?(l=!1,h.streamer.parseChunk(t,!0)):setTimeout(h.resume,3)},this.aborted=function(){return f},this.abort=function(){f=!0,i.abort(),_.meta.aborted=!0,E(e.complete)&&e.complete(_),t=""},this.guessLineEndings=function(e,t){e=e.substring(0,1048576);var t=RegExp(p(t)+"([^]*?)"+p(t),"gm"),i=(e=e.replace(t,"")).split("\r"),t=e.split("\n"),e=1<t.length&&t[0].length<i[0].length;if(1===i.length||e)return"\n";for(var r=0,n=0;n<i.length;n++)"\n"===i[n][0]&&r++;return r>=i.length/2?"\r\n":"\r"}}function p(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function g(e){var t=(e=e||{}).delimiter,i=e.newline,r=e.comments,n=e.step,s=e.preview,a=e.fastMode,h=null,u=!1,d=null==e.quoteChar?'"':e.quoteChar,l=d;if(void 0!==e.escapeChar&&(l=e.escapeChar),("string"!=typeof t||-1<o.BAD_DELIMITERS.indexOf(t))&&(t=","),r===t)throw Error("Comment character same as delimiter");!0===r?r="#":("string"!=typeof r||-1<o.BAD_DELIMITERS.indexOf(r))&&(r=!1),"\n"!==i&&"\r"!==i&&"\r\n"!==i&&(i="\n");var f=0,c=!1;this.parse=function(o,g,_){if("string"!=typeof o)throw Error("Input must be a string");var m=o.length,y=t.length,k=i.length,b=r.length,w=E(n),v=[],x=[],R=[],C=f=0;if(!o)return q();if(a||!1!==a&&-1===o.indexOf(d)){for(var S=o.split(i),O=0;O<S.length;O++){if(R=S[O],f+=R.length,O!==S.length-1)f+=i.length;else if(_)break;if(!r||R.substring(0,b)!==r){if(w){if(v=[],F(R.split(t)),U(),c)return q()}else F(R.split(t));if(s&&s<=O)return v=v.slice(0,s),q(!0)}}return q()}for(var A=o.indexOf(t,f),I=o.indexOf(i,f),T=RegExp(p(l)+p(d),"g"),D=o.indexOf(d,f);;)if(o[f]===d)for(D=f,f++;;){if(-1===(D=o.indexOf(d,D+1)))return _||x.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:v.length,index:f}),z();if(D===m-1)return z(o.substring(f,D).replace(T,d));if(d===l&&o[D+1]===l)D++;else if(d===l||0===D||o[D-1]!==l){-1!==A&&A<D+1&&(A=o.indexOf(t,D+1));var L=j(-1===(I=-1!==I&&I<D+1?o.indexOf(i,D+1):I)?A:Math.min(A,I));if(o.substr(D+1+L,y)===t){R.push(o.substring(f,D).replace(T,d)),o[f=D+1+L+y]!==d&&(D=o.indexOf(d,f)),A=o.indexOf(t,f),I=o.indexOf(i,f);break}if(L=j(I),o.substring(D+1+L,D+1+L+k)===i){if(R.push(o.substring(f,D).replace(T,d)),M(D+1+L+k),A=o.indexOf(t,f),D=o.indexOf(d,f),w&&(U(),c))return q();if(s&&v.length>=s)return q(!0);break}x.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:v.length,index:f}),D++}}else if(r&&0===R.length&&o.substring(f,f+b)===r){if(-1===I)return q();f=I+k,I=o.indexOf(i,f),A=o.indexOf(t,f)}else if(-1!==A&&(A<I||-1===I))R.push(o.substring(f,A)),f=A+y,A=o.indexOf(t,f);else{if(-1===I)break;if(R.push(o.substring(f,I)),M(I+k),w&&(U(),c))return q();if(s&&v.length>=s)return q(!0)}return z();function F(e){v.push(e),C=f}function j(e){return -1!==e&&(e=o.substring(D+1,e))&&""===e.trim()?e.length:0}function z(e){return _||(void 0===e&&(e=o.substring(f)),R.push(e),f=m,F(R),w&&U()),q()}function M(e){f=e,F(R),R=[],I=o.indexOf(i,f)}function q(r){if(e.header&&!g&&v.length&&!u){var n=v[0],s=Object.create(null),a=new Set(n);let t=!1;for(let i=0;i<n.length;i++){let r=n[i];if(s[r=E(e.transformHeader)?e.transformHeader(r,i):r]){let e,o=s[r];for(;e=r+"_"+o,o++,a.has(e););a.add(e),n[i]=e,s[r]++,t=!0,(h=null===h?{}:h)[e]=r}else s[r]=1,n[i]=r;a.add(r)}t&&console.warn("Duplicate headers found and renamed."),u=!0}return{data:v,errors:x,meta:{delimiter:t,linebreak:i,aborted:c,truncated:!!r,cursor:C+(g||0),renamedHeaders:h}}}function U(){n(q()),v=[],x=[]}},this.abort=function(){c=!0},this.getCharIndex=function(){return f}}function _(e){var t=e.data,i=s[t.workerId],r=!1;if(t.error)i.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){r=!0,m(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:y,resume:y};if(E(i.userStep)){for(var a=0;a<t.results.data.length&&(i.userStep({data:t.results.data[a],errors:t.results.errors,meta:t.results.meta},n),!r);a++);delete t.results}else E(i.userChunk)&&(i.userChunk(t.results,n,t.file),delete t.results)}t.finished&&!r&&m(t.workerId,t.results)}function m(e,t){var i=s[e];E(i.userComplete)&&i.userComplete(t),i.terminate(),delete s[e]}function y(){throw Error("Not implemented.")}function k(e){if("object"!=typeof e||null===e)return e;var t,i=Array.isArray(e)?[]:{};for(t in e)i[t]=k(e[t]);return i}function b(e,t){return function(){e.apply(t,arguments)}}function E(e){return"function"==typeof e}return o.parse=function(t,r){var n,h,c,p=(r=r||{}).dynamicTyping||!1;if(E(p)&&(r.dynamicTypingFunction=p,p={}),r.dynamicTyping=p,r.transform=!!E(r.transform)&&r.transform,!r.worker||!o.WORKERS_SUPPORTED){let e;return p=null,o.NODE_STREAM_INPUT,"string"==typeof t?(t=65279!==(e=t).charCodeAt(0)?e:e.slice(1),p=new(r.download?u:l)(r)):!0===t.readable&&E(t.read)&&E(t.on)?p=new f(r):(i.File&&t instanceof File||t instanceof Object)&&(p=new d(r)),p.stream(t)}(p=!!o.WORKERS_SUPPORTED&&(h=i.URL||i.webkitURL||null,c=e.toString(),n=o.BLOB_URL||(o.BLOB_URL=h.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",c,")();"],{type:"text/javascript"}))),(n=new i.Worker(n)).onmessage=_,n.id=a++,s[n.id]=n)).userStep=r.step,p.userChunk=r.chunk,p.userComplete=r.complete,p.userError=r.error,r.step=E(r.step),r.chunk=E(r.chunk),r.complete=E(r.complete),r.error=E(r.error),delete r.worker,p.postMessage({input:t,config:r,workerId:p.id})},o.unparse=function(e,t){var i=!1,r=!0,n=",",s="\r\n",a='"',h=a+a,u=!1,d=null,l=!1,f=((()=>{if("object"==typeof t){if("string"!=typeof t.delimiter||o.BAD_DELIMITERS.filter(function(e){return -1!==t.delimiter.indexOf(e)}).length||(n=t.delimiter),("boolean"==typeof t.quotes||"function"==typeof t.quotes||Array.isArray(t.quotes))&&(i=t.quotes),"boolean"!=typeof t.skipEmptyLines&&"string"!=typeof t.skipEmptyLines||(u=t.skipEmptyLines),"string"==typeof t.newline&&(s=t.newline),"string"==typeof t.quoteChar&&(a=t.quoteChar),"boolean"==typeof t.header&&(r=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw Error("Option columns is empty");d=t.columns}void 0!==t.escapeChar&&(h=t.escapeChar+a),t.escapeFormulae instanceof RegExp?l=t.escapeFormulae:"boolean"==typeof t.escapeFormulae&&t.escapeFormulae&&(l=/^[=+\-@\t\r].*$/)}})(),RegExp(p(a),"g"));if("string"==typeof e&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return c(null,e,u);if("object"==typeof e[0])return c(d||Object.keys(e[0]),e,u)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||d),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:"object"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||"object"==typeof e.data[0]||(e.data=[e.data])),c(e.fields||[],e.data||[],u);throw Error("Unable to serialize unrecognized input");function c(e,t,i){var a="",o=("string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t)),Array.isArray(e)&&0<e.length),h=!Array.isArray(t[0]);if(o&&r){for(var u=0;u<e.length;u++)0<u&&(a+=n),a+=g(e[u],u);0<t.length&&(a+=s)}for(var d=0;d<t.length;d++){var l=(o?e:t[d]).length,f=!1,c=o?0===Object.keys(t[d]).length:0===t[d].length;if(i&&!o&&(f="greedy"===i?""===t[d].join("").trim():1===t[d].length&&0===t[d][0].length),"greedy"===i&&o){for(var p=[],_=0;_<l;_++){var m=h?e[_]:_;p.push(t[d][m])}f=""===p.join("").trim()}if(!f){for(var y=0;y<l;y++){0<y&&!c&&(a+=n);var k=o&&h?e[y]:y;a+=g(t[d][k],y)}d<t.length-1&&(!i||0<l&&!c)&&(a+=s)}}return a}function g(e,t){var r,s;return null==e?"":e.constructor===Date?JSON.stringify(e).slice(1,25):(s=!1,l&&"string"==typeof e&&l.test(e)&&(e="'"+e,s=!0),r=e.toString().replace(f,h),(s=s||!0===i||"function"==typeof i&&i(e,t)||Array.isArray(i)&&i[t]||((e,t)=>{for(var i=0;i<t.length;i++)if(-1<e.indexOf(t[i]))return!0;return!1})(r,o.BAD_DELIMITERS)||-1<r.indexOf(n)||" "===r.charAt(0)||" "===r.charAt(r.length-1))?a+r+a:r)}},o.RECORD_SEP="\x1e",o.UNIT_SEP="\x1f",o.BYTE_ORDER_MARK="\uFEFF",o.BAD_DELIMITERS=["\r","\n",'"',o.BYTE_ORDER_MARK],o.WORKERS_SUPPORTED=!r&&!!i.Worker,o.NODE_STREAM_INPUT=1,o.LocalChunkSize=0xa00000,o.RemoteChunkSize=5242880,o.DefaultDelimiter=",",o.Parser=g,o.ParserHandle=c,o.NetworkStreamer=u,o.FileStreamer=d,o.StringStreamer=l,o.ReadableStreamStreamer=f,i.jQuery&&((t=i.jQuery).fn.parse=function(e){var r=e.config||{},n=[];return this.each(function(e){if(!("INPUT"===t(this).prop("tagName").toUpperCase()&&"file"===t(this).attr("type").toLowerCase()&&i.FileReader)||!this.files||0===this.files.length)return!0;for(var s=0;s<this.files.length;s++)n.push({file:this.files[s],inputElem:this,instanceConfig:t.extend({},r)})}),s(),this;function s(){if(0===n.length)E(e.complete)&&e.complete();else{var i,r,s,h=n[0];if(E(e.before)){var u=e.before(h.file,h.inputElem);if("object"==typeof u){if("abort"===u.action)return i=h.file,r=h.inputElem,s=u.reason,void(E(e.error)&&e.error({name:"AbortError"},i,r,s));if("skip"===u.action)return void a();"object"==typeof u.config&&(h.instanceConfig=t.extend(h.instanceConfig,u.config))}else if("skip"===u)return void a()}var d=h.instanceConfig.complete;h.instanceConfig.complete=function(e){E(d)&&d(e,h.file,h.inputElem),a()},o.parse(h.file,h.instanceConfig)}}function a(){n.splice(0,1),s()}}),n&&(i.onmessage=function(e){e=e.data,void 0===o.WORKER_ID&&e&&(o.WORKER_ID=e.workerId),"string"==typeof e.input?i.postMessage({workerId:o.WORKER_ID,results:o.parse(e.input,e.config),finished:!0}):(i.File&&e.input instanceof File||e.input instanceof Object)&&(e=o.parse(e.input,e.config))&&i.postMessage({workerId:o.WORKER_ID,results:e,finished:!0})}),(u.prototype=Object.create(h.prototype)).constructor=u,(d.prototype=Object.create(h.prototype)).constructor=d,(l.prototype=Object.create(l.prototype)).constructor=l,(f.prototype=Object.create(h.prototype)).constructor=f,o})?i.apply(t,[]):i)||(e.exports=r)}}]);
@@ -1,48 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2737],{22737:(e,t,s)=>{s.d(t,{default:()=>tz});var r=s(66839),a=s(44223),n=s(19378),l=s(95333),o=s(96733),i=s(77932),d=s(82296),c=s(67885),m=s(71481),u=s(31606),x=s(21082),p=s(44361),g=s(52212),h=s(38688),b=s(72799),f=s(97786),v=s(56261),j=s(2073),y=s(65264),N=s(4373),k=s(78610),w=s(38325),S=s(76723),C=s(31082),A=s(40517),z=s(79455),T=s(69527),E=s(69604),R=s(74342),I=s(48892),P=s(87756);function M(e,t=[],s,r){let a=E.T_[e],n="zh"===r?a.nameZh:a.name,l=new Set(t.filter(e=>e&&e!==s).map(e=>e.trim().toLowerCase()));if(!l.has(n.trim().toLowerCase()))return n;let o=2;for(;l.has(`${n} ${o}`.toLowerCase());)o++;return`${n} ${o}`}function U({form:e,t,locale:s,layout:a="full"}){let n=E.T_[e.protocol],l="zh"===s?"名称":"Name",o="zh"===s?"协议":"Protocol",i="zh"===s?"可选,默认使用协议名称":"Optional, defaults to protocol 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)(T.D0,{label:l,hint:d,hintError:e.isDuplicateName,children:(0,r.jsx)(T.pd,{value:e.name,onChange:t=>e.setName(t.target.value),placeholder:i,autoFocus:!0})}),(0,r.jsx)(T.D0,{label:o,children:(0,r.jsx)(T.l6,{value:e.protocol,onChange:t=>e.setProtocol(t.target.value),children:E.jt.map(e=>(0,r.jsx)("option",{value:e,children:"zh"===s?E.T_[e].nameZh:E.T_[e].name},e))})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.D0,{label:l,hint:d,hintError:e.isDuplicateName,children:(0,r.jsx)(T.pd,{value:e.name,onChange:t=>e.setName(t.target.value),placeholder:i})}),(0,r.jsx)(T.D0,{label:o,children:(0,r.jsx)(T.l6,{value:e.protocol,onChange:t=>e.setProtocol(t.target.value),children:E.jt.map(e=>(0,r.jsx)("option",{value:e,children:"zh"===s?E.T_[e].nameZh:E.T_[e].name},e))})})]}),(0,r.jsx)(T.D0,{label:"Base URL",children:(0,r.jsx)(T.pd,{value:e.baseUrl,onChange:t=>e.setBaseUrl(t.target.value),placeholder:n.fixedBaseUrl||"https://api.example.com/v1"})}),(0,r.jsx)(T.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)(T.yA,{value:e.apiKey,onChange:e.setApiKey,placeholder:"sk-..."})}),(0,r.jsx)(T.D0,{label:"zh"===s?"模型":"Model",children:(0,r.jsx)(I.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 D=s(29696);function $({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)(S.A,{size:13}):o?(0,r.jsx)(x.A,{size:13}):(0,r.jsx)(D.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]})}let F=[10,20,30,40,50,999];function L({value:e,onChange:t}){let s=F.includes(e),[n,l]=(0,a.useState)(!s);return(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)(T.l6,{value:n?"custom":String(e),onChange:e=>{let s=e.target.value;"custom"===s?l(!0):(l(!1),t(Number(s)))},className:"w-28",children:[(0,r.jsx)("option",{value:"10",children:"10"}),(0,r.jsx)("option",{value:"20",children:"20"}),(0,r.jsx)("option",{value:"30",children:"30"}),(0,r.jsx)("option",{value:"40",children:"40"}),(0,r.jsx)("option",{value:"50",children:"50"}),(0,r.jsx)("option",{value:"999",children:"Unlimited"}),(0,r.jsx)("option",{value:"custom",children:"Custom"})]}),n&&(0,r.jsx)("input",{type:"number",value:999===e?"":e,onChange:e=>{let s=parseInt(e.target.value,10);!isNaN(s)&&s>0&&t(Math.min(999,s))},placeholder:"1-999",min:1,max:999,autoFocus:!0,className:"w-20 px-2 py-1 rounded-md border border-border/60 bg-muted/50 text-sm text-foreground"})]})}function O({data:e,setData:t,updateAi:s,updateAgent:l,t:o}){let{locale:i}=(0,j.Y)(),d=e.envOverrides??{},c=e.ai.providers.find(t=>t.id===e.ai.activeProvider),m=c?E.T_[c.protocol]:null,[u,x]=(0,a.useState)({}),[p,g]=(0,a.useState)(!1),h=(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,x({}),h.current&&(clearTimeout(h.current),h.current=void 0))},[e.ai.activeProvider]),(0,a.useEffect)(()=>()=>{h.current&&clearTimeout(h.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(!c)return;let e=c.id;x(t=>({...t,[e]:{state:"testing"}}));try{let t={provider:c.protocol};c.apiKey&&(t.apiKey=c.apiKey),c.model&&(t.model=c.model),c.baseUrl&&(t.baseUrl=c.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?(x(t=>({...t,[e]:{state:"ok",latency:r.latency}})),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{x(t=>({...t,[e]:{state:"idle"}}))},8e3)):x(t=>({...t,[e]:{state:"error",error:r.error,code:r.code}}))}catch{x(t=>({...t,[e]:{state:"error",code:"network_error",error:"Network error"}}))}},[c]),v=(0,a.useCallback)(t=>{c&&("apiKey"in t&&x(e=>({...e,[c.id]:{state:"idle"}})),s({providers:e.ai.providers.map(e=>e.id===c.id?{...e,...t}:e)}))},[c,e.ai.providers,s]),y=c?(0,E.Ux)(c.protocol):void 0,w=!!y&&d[y],S=!!m?.apiKeyFallback,C=(0,a.useCallback)(()=>{if(!c)return;let t=E.T_[c.protocol];x(e=>({...e,[c.id]:{state:"idle"}})),s({providers:e.ai.providers.map(e=>e.id===c.id?{...e,apiKey:"",model:"",baseUrl:t?.fixedBaseUrl??""}:e)})},[c,e.ai.providers,s]),A=(0,a.useCallback)(()=>{if(!c)return;let t=e.ai.providers.filter(e=>e.id!==c.id);s({activeProvider:t.length>0?t[0].id:"",providers:t}),x(e=>{let t={...e};return delete t[c.id],t})},[c,e.ai.providers,s]),z=(0,a.useCallback)(t=>{let r={id:t.id||(0,P.mV)(),name:t.name,protocol:t.protocol,apiKey:t.apiKey,model:t.model,baseUrl:t.baseUrl};s({activeProvider:r.id,providers:[...e.ai.providers,r]}),g(!1)},[e.ai.providers,s]),M=c?.name??("zh"===i?"未选择":"No provider");return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(n.A,{size:15}),title:o.settings.ai.provider,description:M,children:[(0,r.jsx)(R.A,{value:e.ai.activeProvider,onChange:e=>{"skip"!==e&&s({activeProvider:e}),g(!1)},compact:!0,customProviders:e.ai.providers,onAdd:()=>{let t=E.T_.openai,s="zh"===i?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})`}g(!0)}}),p&&(0,r.jsx)(B,{onSave:z,onCancel:()=>g(!1),t:o,existingNames:e.ai.providers.map(e=>e.name)},"new"),!p&&c&&(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)(T.D0,{label:"zh"===i?"名称":"Name",children:(0,r.jsx)(T.pd,{value:c.name,onChange:e=>v({name:e.target.value}),placeholder:"zh"===i?"输入名称":"Enter name"})}),(0,r.jsx)(T.D0,{label:"zh"===i?"协议":"Protocol",children:(0,r.jsx)(T.l6,{value:c.protocol,onChange:e=>v({protocol:e.target.value}),children:E.jt.map(e=>(0,r.jsx)("option",{value:e,children:"zh"===i?E.T_[e].nameZh:E.T_[e].name},e))})})]}),(0,r.jsxs)(T.D0,{label:(0,r.jsxs)(r.Fragment,{children:[o.settings.ai.apiKey," ",y&&(0,r.jsx)(T.Bt,{overridden:d[y]})]}),hint:m&&w?o.settings.ai.envFieldNote(y):m&&S?o.settings.ai.keyOptionalHint:void 0,children:[(0,r.jsx)(T.yA,{value:c.apiKey,onChange:e=>v({apiKey:e}),placeholder:"sk-..."}),m?.signupUrl&&!c.apiKey&&!w&&(0,r.jsxs)("a",{href:m.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}),S?"zh"===i?`下载 ${m.nameZh}`:`Download ${m.name}`:"zh"===i?`获取 ${m.nameZh} API Key`:`Get ${m.name} API Key`]})]}),(m?.supportsBaseUrl||c.baseUrl)&&(0,r.jsx)(T.D0,{label:"Base URL",children:(0,r.jsx)(T.pd,{value:c.baseUrl,onChange:e=>v({baseUrl:e.target.value}),placeholder:m?.fixedBaseUrl||(0,E.Ot)(c.protocol)||"https://api.openai.com/v1"})}),(0,r.jsx)(T.D0,{label:"zh"===i?"模型":"Model",children:(0,r.jsx)(I.A,{value:c.model,onChange:e=>v({model:e}),placeholder:m?.defaultModel??"",provider:c.protocol,apiKey:c.apiKey,envKey:!!w,baseUrl:c.baseUrl,supportsListModels:!!c.baseUrl?.trim()||!!m?.supportsListModels,allowNoKey:!!c.baseUrl?.trim(),browseLabel:o.settings.ai.listModels,noModelsLabel:o.settings.ai.noModelsFound})}),(0,r.jsx)(K,{provider:c.protocol,result:u[c.id]??{state:"idle"},hasKey:!!c.apiKey,hasEnv:!!w,hasConfig:!!(c.apiKey||c.model||c.baseUrl),onTest:f,onReset:C,onDelete:A,t:o})]})]}),(0,r.jsx)(G,{data:e,setData:t,t:o}),(0,r.jsx)(V,{data:e,setData:t,t:o}),(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(k.A,{size:15}),title:o.settings.agent.title,description:o.settings.agent.subtitle??"Configure how the AI agent operates",children:[(0,r.jsx)(T.pM,{label:o.settings.agent.maxSteps,hint:o.settings.agent.maxStepsHint,children:(0,r.jsx)(L,{value:e.agent?.maxSteps??20,onChange:e=>l({maxSteps:e})})}),(0,r.jsx)(T.pM,{label:o.settings.agent.contextStrategy,hint:o.settings.agent.contextStrategyHint,children:(0,r.jsxs)(T.l6,{value:e.agent?.contextStrategy??"auto",onChange:e=>l({contextStrategy:e.target.value}),className:"w-24",children:[(0,r.jsx)("option",{value:"auto",children:o.settings.agent.contextStrategyAuto}),(0,r.jsx)("option",{value:"off",children:o.settings.agent.contextStrategyOff})]})}),(0,r.jsx)(T.pM,{label:o.settings.agent.reconnectRetries,hint:o.settings.agent.reconnectRetriesHint,children:(0,r.jsxs)(T.l6,{value:String(e.agent?.reconnectRetries??3),onChange:e=>{let t=Number(e.target.value);l({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"})]})}),m?.supportsThinking&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.pM,{label:o.settings.agent.thinking,hint:o.settings.agent.thinkingHint,children:(0,r.jsx)(T.lM,{checked:e.agent?.enableThinking??!1,onChange:()=>l({enableThinking:!e.agent?.enableThinking})})}),e.agent?.enableThinking&&(0,r.jsx)(T.D0,{label:o.settings.agent.thinkingBudget,hint:o.settings.agent.thinkingBudgetHint,children:(0,r.jsx)(T.pd,{type:"number",value:String(e.agent?.thinkingBudget??5e3),onChange:e=>{let t=parseInt(e.target.value,10);isNaN(t)||l({thinkingBudget:Math.max(1e3,Math.min(5e4,t))})},min:1e3,max:5e4,step:1e3})})]})]}),(0,r.jsx)(Y,{})]})}function K({provider:e,result:t,hasKey:s,hasEnv:n,hasConfig:l,onTest:o,onReset:i,onDelete:d,t:c}){let[m,x]=(0,a.useState)(null),p=(0,a.useRef)(void 0),h=!!E.T_[e]?.apiKeyFallback;(0,a.useEffect)(()=>()=>{p.current&&clearTimeout(p.current)},[]);let b=e=>{m===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)($,{result:t,disabled:!(s||n||h),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"===m&&(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"===m?"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)(g.A,{size:12}),"reset"===m?"zh"===f?"确认重置?":"Confirm?":"zh"===f?"重置":"Reset"]}),d&&(0,r.jsxs)("button",{type:"button",onClick:()=>b("delete"),onBlur:()=>{"delete"===m&&(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"===m?"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)(u.A,{size:12}),"delete"===m?"zh"===f?"确认删除?":"Confirm?":"zh"===f?"删除":"Delete"]})]})]})})}function B({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=(0,a.useMemo)(()=>e?.name??M(e?.protocol??"openai",r,e?.name,s),[e?.name,e?.protocol,r,s]),[l,o]=(0,a.useState)(n),[i,d]=(0,a.useState)(e?.protocol??"openai"),[c,m]=(0,a.useState)(e?.apiKey??""),[u,x]=(0,a.useState)(e?.model??""),[p,g]=(0,a.useState)(e?.baseUrl??""),[h,b]=(0,a.useState)({state:"idle"}),[f,v]=(0,a.useState)(!!e?.name),j=(0,a.useMemo)(()=>M(i,r,e?.name,s),[i,r,e?.name,s]);(0,a.useEffect)(()=>{f||o(j)},[j,f]);let y=(0,a.useCallback)(e=>{v(!0),o(e)},[]),N=(0,a.useCallback)(e=>{d(e),b({state:"idle"})},[]),k=l.trim()||j,w=!!(k&&r?.some(t=>t!==e?.name&&t.toLowerCase()===k.toLowerCase())),S=!!(p.trim()&&u.trim()&&!w),C="zh"===s?"接口地址和模型为必填":"Base URL and model are required",A="zh"===s?"名称已存在,请使用其他名称":"Name already exists, please use a different name",z=(0,a.useCallback)(async()=>{if(w)return void b({state:"error",error:A});if(!p.trim()||!u.trim())return void b({state:"error",error:C});b({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:c,model:u,baseUrl:p}:{provider:i,apiKey:c,model:u,baseUrl:p,baseProviderId:i})}),s=await t.json();s.ok?b({state:"ok",latency:s.latency}):b({state:"error",error:s.error||"Test failed",code:s.code})}catch{b({state:"error",code:"network_error",error:"Network error"})}},[w,A,p,u,e?.id,c,i,C]),T=(0,a.useCallback)(()=>{w?b({state:"error",error:A}):p.trim()&&u.trim()?t({id:e?.id||(0,P.mV)(),name:k,protocol:i,apiKey:c,model:u.trim(),baseUrl:p.trim()}):b({state:"error",error:C})},[w,A,p,u,C,t,e?.id,k,i,c]);return{name:l,setName:y,protocol:i,setProtocol:N,apiKey:c,setApiKey:m,model:u,setModel:x,baseUrl:p,setBaseUrl:g,testResult:h,canSave:S,isDuplicateName:w,handleTest:z,handleSave:T}}({initial:e,onSave:t,locale:i,existingNames:o}),[c,m]=(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",g=[];return d.name.trim()||g.push("zh"===i?"名称":"Name"),d.baseUrl.trim()||g.push("zh"===i?"接口地址":"Base URL"),d.model.trim()||g.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)(U,{form:d,t:l,locale:i,layout:"compact"}),(0,r.jsxs)("div",{className:"flex items-center gap-2 pt-4",children:[(0,r.jsx)($,{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)):(m(!0),x.current=setTimeout(()=>m(!1),3e3))},onBlur:()=>{m(!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)(u.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&&g.length>0&&(0,r.jsx)("span",{className:"text-2xs text-muted-foreground/60 pl-2",children:"zh"===i?`需要: ${g.join("、")}`:`Required: ${g.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"})]})]})]})}let _=[{label:"SiliconFlow",baseUrl:"https://api.siliconflow.cn/v1",model:"BAAI/bge-m3",badge:"free"},{label:"OpenAI",baseUrl:"https://api.openai.com/v1",model:"text-embedding-3-small",badge:null},{label:"DeepSeek",baseUrl:"https://api.deepseek.com/v1",model:"deepseek-embed",badge:null},{label:"Ollama",baseUrl:"http://localhost:11434/v1",model:"nomic-embed-text",badge:"local"}],H=[{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"}];function G({data:e,setData:t,t:s}){let{locale:n}=(0,j.Y)(),l=s.settings.embedding??{},o=e.embedding??{enabled:!1,provider:"local",baseUrl:"",apiKey:"",model:""},i=e.embeddingStatus??{enabled:!1,ready:!1,building:!1,docCount:0},d=o.provider||"local",[c,u]=(0,a.useState)(null),[x,h]=(0,a.useState)("idle"),[f,v]=(0,a.useState)(null);(0,a.useEffect)(()=>{o.enabled&&"local"===d&&(0,y.n)("/api/embedding").then(e=>u(e.downloaded)).catch(()=>u(!1))},[o.enabled,d]),(0,a.useEffect)(()=>{if("downloading"!==x)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&&(u(!0),h("idle"),z.oR.success?.(l.modelReady??"Model downloaded")??(0,z.oR)(l.modelReady??"Model downloaded")),e.error&&(h("error"),v(e.error),z.oR.error?.(e.error)??(0,z.oR)(e.error))}).catch(()=>{})},3e3);return()=>clearInterval(e)},[x,l.modelReady]);let N=(0,a.useCallback)(()=>{h("starting"),v(null),(0,y.n)("/api/embedding",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"download",model:o.model||void 0})}).then(e=>{e.ok?h("downloading"):(h("error"),v(e.error??"Download request failed"))}).catch(e=>{h("error"),v(e instanceof Error?e.message:"Network error")})},[o.model]),k=(0,a.useCallback)(()=>{h("idle"),v(null)},[]);return(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(w.A,{size:15}),title:l.title??"Embedding Search",description:l.description??"Semantic search with vector embeddings.",children:[(0,r.jsx)(T.pM,{label:l.enable??"Enable embedding search",hint:l.enableHint,children:(0,r.jsx)(T.lM,{checked:o.enabled,onChange:()=>{t(e=>e?{...e,embedding:{...o,enabled:!o.enabled}}:e)}})}),o.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:{...o,provider:"local",model:o.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"===d?"border-[var(--amber)] text-[var(--amber)] bg-[var(--amber)]/10":"border-border text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:[(0,r.jsxs)("span",{className:"font-medium",children:[l.providerLocal??"Local"," (",l.providerLocalFree??"Free",")"]}),(0,r.jsx)("span",{className:"block text-xs opacity-70 mt-0.5",children:l.providerLocalDesc??"Runs on your machine"})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>t(e=>e?{...e,embedding:{...o,provider:"api",model:o.model||"BAAI/bge-m3",baseUrl:o.baseUrl||"https://api.siliconflow.cn/v1"}}:e),className:`flex-1 px-3 py-2 text-sm rounded-lg border transition-colors text-center ${"api"===d?"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:l.providerApi??"API"}),(0,r.jsx)("span",{className:"block text-xs opacity-70 mt-0.5",children:l.providerApiDesc??"OpenAI, DeepSeek, Ollama, etc."})]})]}),"local"===d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.D0,{label:l.model??"Model",hint:l.modelHint,children:(0,r.jsx)("div",{className:"space-y-1.5",children:H.map(e=>(0,r.jsxs)("label",{className:`flex items-center gap-3 px-3 py-2 rounded-lg border cursor-pointer transition-colors ${o.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:o.model===e.id,onChange:()=>t(t=>t?{...t,embedding:{...o,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===c&&"idle"===x&&(0,r.jsxs)("button",{type:"button",onClick:N,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)(m.A,{size:14}),l.downloadModel??"Install Runtime & Download Model"]}),"starting"===x&&(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:l.starting??"Starting download..."})]}),"downloading"===x&&(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:l.downloading??"Downloading model..."})]}),"error"===x&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-destructive",children:[(0,r.jsx)(b.A,{size:14}),(0,r.jsx)("span",{children:f??"Download failed"})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:l.downloadFailedHint??"If install or download keeps failing, try API mode or set HF_ENDPOINT=https://hf-mirror.com"}),(0,r.jsxs)("button",{type:"button",onClick:k,className:"flex items-center gap-2 px-3 py-1.5 text-xs font-medium rounded-md border border-border text-foreground hover:bg-muted transition-colors",children:[(0,r.jsx)(g.A,{size:12}),l.retry??"Retry"]})]}),!0===c&&"idle"===x&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(S.A,{size:12}),(0,r.jsx)("span",{children:l.modelReady??"Model ready"})]})]}),"api"===d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"grid grid-cols-2 gap-2",children:_.map(e=>{let s=o.baseUrl===e.baseUrl;return(0,r.jsxs)("button",{type:"button",onClick:()=>{t(t=>t?{...t,embedding:{...o,baseUrl:e.baseUrl,model:e.model}}:t)},className:`relative px-3 py-2 text-left text-sm rounded-lg border transition-colors ${s?"border-[var(--amber)] bg-[var(--amber)]/5":"border-border hover:bg-muted"}`,children:[(0,r.jsx)("span",{className:`font-medium ${s?"text-[var(--amber)]":"text-foreground"}`,children:e.label}),e.badge&&(0,r.jsx)("span",{className:`ml-1.5 inline-flex items-center px-1.5 py-0.5 text-2xs rounded-full font-medium ${"free"===e.badge?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":"bg-blue-500/10 text-blue-600 dark:text-blue-400"}`,children:"free"===e.badge?"zh"===n?"免费":"Free":"zh"===n?"本地":"Local"}),(0,r.jsx)("span",{className:"block text-2xs text-muted-foreground mt-0.5 truncate",children:e.model})]},e.label)})}),!o.baseUrl&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"zh"===n?"推荐使用硅基流动 (SiliconFlow),注册即可免费使用嵌入模型。":"SiliconFlow recommended — free embedding models with registration."}),(0,r.jsx)(T.D0,{label:l.baseUrl??"Base URL",hint:l.baseUrlHint,children:(0,r.jsx)(T.pd,{value:o.baseUrl,onChange:e=>t(t=>t?{...t,embedding:{...o,baseUrl:e.target.value}}:t),placeholder:"https://api.siliconflow.cn/v1"})}),(0,r.jsx)(T.D0,{label:l.apiKey??"API Key",hint:o.baseUrl?.includes("localhost")||o.baseUrl?.includes("127.0.0.1")?l.apiKeyHintLocal??("zh"===n?"本地服务可留空":"Leave empty for local services"):l.apiKeyHint??("zh"===n?"在服务商网站获取 API Key":"Get your API key from the provider"),children:(0,r.jsx)(T.yA,{value:o.apiKey,onChange:e=>t(t=>t?{...t,embedding:{...o,apiKey:e}}:t),placeholder:"sk-..."})}),(0,r.jsx)(T.D0,{label:l.model??"Model",hint:l.modelName,children:(0,r.jsx)(T.pd,{value:o.model,onChange:e=>t(t=>t?{...t,embedding:{...o,model:e.target.value}}:t),placeholder:"BAAI/bge-m3"})})]}),(0,r.jsx)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground pt-1",children:i.building?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(p.A,{size:12,className:"animate-spin"}),(0,r.jsx)("span",{children:l.indexBuilding??"Building embedding index..."})]}):i.ready?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(S.A,{size:12,className:"text-success"}),(0,r.jsx)("span",{children:"function"==typeof l.indexReady?l.indexReady(i.docCount):`${i.docCount} documents indexed`})]}):(0,r.jsx)("span",{children:l.indexPending??"Index will be built on first search"})})]})]})}let J=[{id:"auto",labelKey:"providerAuto",descKey:"providerAutoDesc"},{id:"exa",labelKey:"providerExa",descKey:"providerExaDesc"},{id:"perplexity",labelKey:"providerPerplexity",descKey:"providerPerplexityDesc"},{id:"gemini",labelKey:"providerGemini",descKey:"providerGeminiDesc"}],W=[{key:"exaApiKey",labelKey:"exaApiKey",placeholder:"exa-..."},{key:"perplexityApiKey",labelKey:"perplexityApiKey",placeholder:"pplx-..."},{key:"geminiApiKey",labelKey:"geminiApiKey",placeholder:"AIza..."}];function V({data:e,setData:t,t:s}){let a=s.settings.webSearch??{},n=e.webSearch??{provider:"auto",exaApiKey:"",perplexityApiKey:"",geminiApiKey:""},l=n.provider||"auto";return(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(C.A,{size:15}),title:a.title??"Web Search",description:a.description??"Configure search providers.",children:[(0,r.jsx)("div",{className:"flex gap-2 flex-wrap",children:J.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>{t(t=>t?{...t,webSearch:{...n,provider:e.id}}:t)},className:`px-2.5 py-1 text-xs rounded-md border transition-colors ${l===e.id?"border-[var(--amber)] text-[var(--amber)] bg-[var(--amber)]/10":"border-border text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:a[e.labelKey]??e.id},e.id))}),(()=>{let e=J.find(e=>e.id===l);if(!e)return null;let t=a[e.descKey];return t?(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:t}):null})(),W.map(e=>(0,r.jsx)(T.D0,{label:a[e.labelKey]??e.key,hint:a.apiKeyHint,children:(0,r.jsx)(T.yA,{value:n[e.key]??"",onChange:s=>t(t=>t?{...t,webSearch:{...n,[e.key]:s}}:t),placeholder:e.placeholder})},e.key)),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:a.noKeysHint??"Works without API keys via Exa MCP (zero-config)."})]})}function Y(){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)(T.L7,{icon:(0,r.jsx)(A.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)(T.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 q=s(38125),Z=s(25208),X=s(88283),Q=s(47533),ee=s(95156),et=s(21036),es=s(72615),er=s(98327);let ea=[{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 en({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 el({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 eo({font:e,setFont:t,fontSize:s,setFontSize:n,contentWidth:l,setContentWidth:o,dark:i,setDark:c,locale:m,setLocale:u,t:x}){let[p,g]=(0,a.useState)(!1),[h,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)(T.L7,{icon:(0,r.jsx)(d.A,{size:15}),title:j.preferencesTitle??"Preferences",children:[(0,r.jsx)(en,{icon:(0,r.jsx)(q.A,{size:14}),label:j.colorTheme,children:(0,r.jsx)(el,{options:[{value:"system",label:j.system,icon:(0,r.jsx)(A.A,{size:14})},{value:"dark",label:j.dark,icon:(0,r.jsx)(Z.A,{size:14})},{value:"light",label:j.light,icon:(0,r.jsx)(q.A,{size:14})}],value:h,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)(en,{icon:(0,r.jsx)(C.A,{size:14}),label:j.language,children:(0,r.jsx)(el,{options:[{value:"system",label:j.system,icon:(0,r.jsx)(A.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;u(t),document.cookie=`locale=${t};path=/;max-age=31536000;SameSite=Lax`}})})]}),(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(X.A,{size:15}),title:j.readingTitle??"Reading",description:j.readingDesc??"Customize how your notes look",children:[(0,r.jsx)(en,{icon:(0,r.jsx)(Q.A,{size:14}),label:j.readingFont,children:(0,r.jsx)("div",{className:"space-y-0.5",children:ea.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)(en,{icon:(0,r.jsx)(ee.A,{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:12,max:22,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:ea.find(t=>t.value===e)?.style.fontFamily},children:j.fontSizePreview})]})}),(0,r.jsx)(en,{icon:(0,r.jsx)(et.A,{size:14}),label:j.contentWidth,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",children:"▬"}),(0,r.jsx)("input",{type:"range",min:50,max:100,step:5,value:parseInt(l)||80,onChange:e=>o(`${e.target.value}%`),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-xs text-muted-foreground/60 shrink-0",children:"▬▬▬"})]}),(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(l)||80,"%"]})})]})})]}),(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:()=>g(!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)(es.A,{size:14}):(0,r.jsx)(er.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))})]})]})}var ei=s(10500),ed=s(42973),ec=s(24336),em=s(46884),eu=s(34137),ex=s(84734),ep=s(46990);function eg(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 eh=s(10195),eb=s(65799);let ef=(0,eb.createServerReference)("0056381feff6cde56ce45a74c24b752cd8930b4c5a",eb.callServer,void 0,eb.findSourceMapURL,"scanExampleFilesAction"),ev=(0,eb.createServerReference)("00dec94ea8ea8af731d2263820b7f548f2091b8852",eb.callServer,void 0,eb.findSourceMapURL,"cleanupExamplesAction");var ej=s(5038);let ey={checking:!1,available:null,isSelf:!1,suggestion:null};function eN({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 ek({m:e}){let[t,s]=(0,a.useState)(0),[n,l]=(0,a.useState)(0),[o,i]=(0,a.useState)(ey),[d,c]=(0,a.useState)(!1),[m,u]=(0,a.useState)(null),[x,g]=(0,a.useState)(void 0),b=(0,a.useRef)(void 0),f=(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(b.current),clearTimeout(f.current)},[]);let v=n!==t,j=n<1024||n>65535,N=o.checking||!1===o.available&&!o.isSelf,k=(0,a.useCallback)(async e=>{if(e<1024||e>65535)return void i({...ey,available:!1,invalid:!0});i({...ey,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(ey)}},[]),w=async()=>{if(v&&!j&&!N&&!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),z.oR.error(e.portInUse(n));return}await (0,y.n)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:n})}),u(e.portWebRestarting),g(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;b.current=setInterval(async()=>{if(Date.now()>r){clearInterval(b.current),u(null),c(!1),z.oR.error(e.portRestartTimeout);return}try{(await fetch(`${s}/api/health`,{signal:AbortSignal.timeout(2e3)})).ok&&(clearInterval(b.current),window.location.href=s)}catch{}},1500)}catch{c(!1),z.oR.error(e.portUpdateFailed)}}};return 0===t?null:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.L7,{icon:(0,r.jsx)(A.A,{size:15}),title:e.webPortLabel,description:e.webPortHint,children:(0,r.jsxs)("div",{className:"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),i(ey),clearTimeout(f.current),t>=1024&&t<=65535&&(f.current=setTimeout(()=>k(t),500))},onBlur:()=>{clearTimeout(f.current),n>=1024&&n<=65535&&k(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:w,disabled:!v||j||N||d,className:"shrink-0 px-4 py-1.5 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})]}),o.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"})," ",e.portChecking]}),!o.checking&&!1===o.available&&!o.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)(ej.A,{size:11})," ",e.portInUse(n)]}),null!==o.suggestion&&(0,r.jsx)("button",{type:"button",onClick:()=>{l(o.suggestion),i(ey),setTimeout(()=>k(o.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:e.portSuggest(o.suggestion)})]}),!o.checking&&o.invalid&&(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-destructive",children:[(0,r.jsx)(ej.A,{size:11})," 1024 – 65535"]}),!o.checking&&!0===o.available&&(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-success",children:[(0,r.jsx)(h.A,{size:11})," ",o.isSelf?e.portSelf:e.portAvailable]})]})}),m&&(0,r.jsx)(eN,{message:m,sub:x})]})}function ew({data:e,setData:t,t:s}){let l=e.envOverrides??{},o=s.settings.knowledge,i=s.settings.appearance,[d,m]=(0,a.useState)(()=>"1"===localStorage.getItem("mindos:labs-echo")),[x,h]=(0,a.useState)(()=>"1"===localStorage.getItem("mindos:labs-workflows")),[b,f]=(0,a.useState)(()=>"true"===localStorage.getItem("show-hidden-files")),[v,j]=(0,a.useState)(null),[N,k]=(0,a.useState)(!1),[w,C]=(0,a.useState)(null);(0,a.useEffect)(()=>{ef().then(e=>j(e.files.length)).catch(e=>{console.warn("[KnowledgeTab] scanExampleFilesAction failed:",e)})},[]);let[A,E]=(0,a.useState)(null),[R,I]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(0,y.n)("/api/setup").then(e=>{let t=e.guideState;t&&(E(t.active),I(!!t.dismissed))}).catch(e=>{console.error("Failed to fetch guide state:",e)})},[]);let P=(0,a.useCallback)(()=>{let e=!R;I(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),I(!e)})},[R]),M=(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(()=>{E(!0),I(!1),window.dispatchEvent(new Event("guide-state-updated"))}).catch(e=>console.error("Failed to restart walkthrough:",e))},[]),U=(0,a.useSyncExternalStore)(()=>()=>{},()=>`${window.location.protocol}//${window.location.hostname}`,()=>"http://localhost"),[D,$]=(0,a.useState)(!1),[F,L]=(0,a.useState)(null),[O,K]=(0,a.useState)(!1),[B,_]=(0,a.useState)(!1),H=!!e.authToken,G=F??e.authToken??"";async function J(){$(!0);try{let e=await (0,y.n)("/api/settings/reset-token",{method:"POST"});L(e.token),t(t=>t?{...t,authToken:e.token}:t)}finally{$(!1)}}async function W(){t(e=>e?{...e,authToken:""}:e),L(null)}return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(ei.A,{size:15}),title:o.cardTitle??"Knowledge Base",description:o.mindRootHint,children:[(0,r.jsx)(T.D0,{label:(0,r.jsxs)(r.Fragment,{children:[o.mindRoot," ",(0,r.jsx)(T.Bt,{overridden:l.MIND_ROOT})]}),hint:l.MIND_ROOT?o.envNote:o.mindRootHint,children:(0,r.jsx)(T.pd,{value:e.mindRoot,onChange:e=>t(t=>t?{...t,mindRoot:e.target.value}:t),placeholder:"/path/to/your/notes"})}),(0,r.jsx)(T.pM,{label:o.showHiddenFiles,hint:o.showHiddenFilesHint,children:(0,r.jsx)(T.lM,{checked:b,onChange:()=>{let e=!b;f(e),(0,eh.Fo)(e)}})}),null!==v&&v>0&&null===w&&(0,r.jsx)(T.pM,{label:o.cleanupExamples,hint:o.cleanupExamplesHint,children:(0,r.jsxs)("button",{onClick:()=>_(!0),disabled:N,title:N?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:[N?(0,r.jsx)(p.A,{size:12,className:"animate-spin"}):(0,r.jsx)(u.A,{size:12}),o.cleanupExamplesButton,(0,r.jsx)("span",{className:"ml-1 tabular-nums text-2xs opacity-70",children:v})]})}),null!==w&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(S.A,{size:14}),o.cleanupExamplesDone(w)]})]}),(0,r.jsx)(ek,{m:s.settings?.mcp??{}}),(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(ed.A,{size:15}),title:o.securityTitle??"Security",children:[(0,r.jsx)(T.D0,{label:o.webPassword,hint:o.webPasswordHint,children:(0,r.jsx)(T.yA,{value:e.webPassword??"",onChange:e=>t(t=>t?{...t,webPassword:e}:t),placeholder:o.passwordPlaceholder??"Leave empty to disable"})}),(0,r.jsx)(T.pM,{label:o.allowNetworkAccess??"Allow LAN access",hint:o.allowNetworkAccessHint??"Bind the Web UI to 0.0.0.0 so other devices on your network can connect after restart.",children:(0,r.jsx)(T.lM,{checked:!0===e.allowNetworkAccess,onChange:()=>t(e=>e?{...e,allowNetworkAccess:!0!==e.allowNetworkAccess}:e)})}),(0,r.jsx)(T.D0,{label:o.authToken,hint:H?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:G||(0,r.jsx)("span",{className:"text-muted-foreground italic",children:o.tokenNotSet??"— not set —"})}),G&&(0,r.jsx)("button",{type:"button",onClick:function(){let t=F??e.authToken??"";t&&(0,ep.l)(t).then(e=>{e&&z.oR.copy()})},className:"shrink-0 p-1 rounded text-muted-foreground hover:text-foreground transition-colors",title:o.authTokenCopy,children:(0,r.jsx)(ec.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}),G&&(0,r.jsxs)(r.Fragment,{children:[" \xa0\xb7\xa0 ",o.mcpUrl??"MCP URL",": ",(0,r.jsx)("code",{className:"font-mono select-all",children:`${U}:${e.mcpPort}/mcp`})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:function(){K(!0)},disabled:D,title:D?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:D?"animate-spin":""}),o.authTokenReset]}),H&&(0,r.jsxs)("button",{type:"button",onClick:W,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)(u.A,{size:14}),o.authTokenClear]})]}),F&&(0,r.jsx)("p",{className:"text-xs text-[var(--amber-text)]",children:o.tokenGenerated})]})})]}),null!==A&&(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(n.A,{size:15}),title:s.guide?.title??"Getting Started",children:[(0,r.jsx)(T.pM,{label:s.guide?.showGuide??"Show getting started guide",children:(0,r.jsx)(T.lM,{checked:!R,onChange:()=>P()})}),(0,r.jsxs)("button",{onClick:M,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)(g.A,{size:14}),o.restartWalkthrough??"Restart walkthrough"]})]}),(0,r.jsx)(T.L7,{icon:(0,r.jsx)(em.A,{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)(eS,{label:i.labsEcho??"Echo",description:i.labsEchoDesc??"Reflective journaling powered by your notes.",checked:d,onChange:e=>{m(e),localStorage.setItem("mindos:labs-echo",e?"1":"0"),window.dispatchEvent(new Event("mindos:labs-changed"))}}),(0,r.jsx)(eS,{label:i.labsWorkflows??"Flows",description:i.labsWorkflowsDesc??"Visual workflow automation for agents.",checked:x,onChange:e=>{h(e),localStorage.setItem("mindos:labs-workflows",e?"1":"0"),window.dispatchEvent(new Event("mindos:labs-changed"))}})]})}),(0,r.jsx)(eC,{k:o}),(0,r.jsx)(ex.TM,{open:O,title:o.authTokenReset??"Regenerate Token",message:o.authTokenResetConfirm,confirmLabel:o.authTokenReset??"Regenerate",cancelLabel:o.cancel??"Cancel",onConfirm:()=>{K(!1),J()},onCancel:()=>K(!1)}),(0,r.jsx)(ex.TM,{open:B,title:o.cleanupExamples??"Cleanup Examples",message:null!==v?o.cleanupExamplesConfirm(v):"",confirmLabel:o.cleanupExamplesButton??"Clean up",cancelLabel:o.cancel??"Cancel",variant:"destructive",onConfirm:async()=>{_(!1),k(!0);let e=await ev();k(!1),e.success&&(C(e.deleted),j(0))},onCancel:()=>_(!1)})]})}function eS({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 eC({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)(es.A,{size:14}):(0,r.jsx)(er.A,{size:14}),(0,r.jsx)(eu.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:[eg(n.system.memory.heapUsed)," / ",eg(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:eg(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," (",eg(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 eA=s(75579),ez=s(19777),eT=s(98480),eE=s(9986),eR=s(55798),eI=s(20677),eP=s(73601),eM=s(27636),eU=s(2408);let eD=(0,s(93738).default)(()=>Promise.all([s.e(8225),s.e(206),s.e(2303)]).then(s.bind(s,32303)),{loadableGenerated:{webpack:()=>[32303]},ssr:!1});function e$({skill:e,expanded:t,onExpand:s,onToggle:a,onDelete:n,onEditStart:l,onEditSave:o,onEditCancel:i,editing:d,editContent:c,setEditContent:m,editError:g,saving:h,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)(es.A,{size:12}):(0,r.jsx)(er.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)(T.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)(eU.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)(u.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=>m(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:h,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:[h&&(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"})]}),g&&(0,r.jsxs)("p",{className:"text-2xs text-destructive flex items-center gap-1",children:[(0,r.jsx)(x.A,{size:10}),g]})]}):(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)(eD,{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 eF=e=>`---
2
- name: ${e}
3
- description: >
4
- Describe WHEN the agent should use this
5
- skill. Be specific about trigger conditions.
6
- ---`,eL={general:e=>`${eF(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=>`${eF(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=>`${eF(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 eO({onSave:e,onCancel:t,saving:s,error:n,m:l}){let[o,i]=(0,a.useState)(""),[d,c]=(0,a.useState)(""),[m,u]=(0,a.useState)("general"),g=(e,t)=>(eL[t||m]||eL.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=g(o||"my-skill"),void((!d||d===s)&&c(g(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=g(o||"my-skill",m),void(u(e),(!d||d===t)&&c(g(o||"my-skill",e)))},className:`px-2.5 py-1 text-xs transition-colors ${t>0?"border-l border-border":""} ${m===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||g(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||g(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 eK=s(3824);function eB({t:e}){let t,s,n=e.settings?.mcp,l=(0,eI.cd)(),[o,i]=(0,a.useState)([]),[d,c]=(0,a.useState)(!0),[m,u]=(0,a.useState)(null),[x,g]=(0,a.useState)(!1),[h,f]=(0,a.useState)(!1),[v,j]=(0,a.useState)(""),[N,k]=(0,a.useState)(""),[S,C]=(0,a.useState)(!0),[A,z]=(0,a.useState)(null),[T,E]=(0,a.useState)(""),[R,I]=(0,a.useState)(""),[P,M]=(0,a.useState)({}),[U,D]=(0,a.useState)(null),[$,F]=(0,a.useState)({}),[L,O]=(0,a.useState)(!1),[K,B]=(0,a.useState)(null),_=(0,a.useCallback)(async()=>{try{let e=await (0,y.n)("/api/skills");i(e.skills),F({})}catch(t){let e=t instanceof Error?t.message:"Failed to load skills";console.error("fetchSkills error:",e),F(t=>({...t,_root:e}))}c(!1)},[]);(0,a.useEffect)(()=>{_()},[_]);let H=(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]),G=(0,a.useMemo)(()=>H.filter(e=>"user"===e.source),[H]),J=(0,a.useMemo)(()=>H.filter(e=>"builtin"===e.source),[H]),W=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)),F(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),F(s=>({...s,[e]:t}))}},V=e=>{B(e)},Y=async e=>{try{await (0,y.n)("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",name:e})}),M(t=>{let s={...t};return delete s[e],s}),A===e&&z(null),m===e&&u(null),F(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),F(s=>({...s,[e]:t}))}},q=async e=>{if(!P[e]){D(e);try{let t=await (0,y.n)("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"read",name:e})});M(s=>({...s,[e]:t.content})),F(t=>{let s={...t};return delete s[e],s})}catch(t){F(s=>({...s,[e]:t instanceof Error?t.message:"Failed to load skill content"}))}finally{D(null)}}},Z=e=>{let t=m===e?null:e;u(t),t&&q(e),A&&A!==e&&z(null)},X=e=>{z(e),E(P[e]||""),I("")},Q=async e=>{f(!0),I("");try{await (0,y.n)("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"update",name:e,content:T})}),M(t=>({...t,[e]:T})),z(null),_(),window.dispatchEvent(new Event("mindos:skills-changed"))}catch(e){I(e instanceof Error?e.message:"Failed to save skill")}finally{f(!1)}},ee=()=>{z(null),E(""),I("")},et=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})}),g(!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)(w.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&&!L){O(!0);try{"en"===e?(await W("mindos",!0),await W("mindos-zh",!1)):(await W("mindos-zh",!0),await W("mindos",!1))}catch(e){console.error("Lang switch failed:",e)}finally{O(!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:L,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:L,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===H.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}"`}),G.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"," (",G.length,")"]})}),(0,r.jsx)("div",{className:"space-y-1.5",children:G.map(e=>(0,r.jsx)(e$,{skill:e,expanded:m===e.name,onExpand:Z,onToggle:W,onDelete:V,onEditStart:X,onEditSave:Q,onEditCancel:ee,editing:A,editContent:T,setEditContent:E,editError:R,saving:h,fullContent:P,loadingContent:U,loadErrors:$,m:n},e.name))})]}),J.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:()=>C(!S),children:[S?(0,r.jsx)(er.A,{size:12}):(0,r.jsx)(es.A,{size:12}),(0,r.jsxs)("span",{children:[n?.builtinGroup??"Built-in"," (",J.length,")"]})]}),!S&&(0,r.jsx)("div",{className:"space-y-1.5",children:J.map(e=>(0,r.jsx)(e$,{skill:e,expanded:m===e.name,onExpand:Z,onToggle:W,onDelete:V,onEditStart:X,onEditSave:Q,onEditCancel:ee,editing:A,editContent:T,setEditContent:E,editError:R,saving:h,fullContent:P,loadingContent:U,loadErrors:$,m:n},e.name))})]}),x?(0,r.jsx)(eO,{onSave:et,onCancel:()=>{g(!1),j("")},saving:h,error:v,m:n}):(0,r.jsxs)("button",{onClick:()=>g(!0),className:"flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,r.jsx)(eP.A,{size:12}),n?.addSkill??"+ Add Skill"]}),(0,r.jsx)(e_,{m:n}),(0,r.jsx)(eH,{agents:l?.agents??[],skillName:o.find(e=>"mindos"===e.name)?.enabled??!0?"mindos":"mindos-zh",m:n}),(0,r.jsx)(ex.TM,{open:!!K,title:"Delete skill?",message:K?n?.skillDeleteConfirm?.(K)??`Delete skill "${K}"?`:"",confirmLabel:"Delete",cancelLabel:"Cancel",variant:"destructive",onConfirm:async()=>{B(null),await Y(K)},onCancel:()=>B(null)})]})}function e_({m:e}){let[t,s]=(0,a.useState)(!0),[n,l]=(0,a.useState)([]),[o,i]=(0,a.useState)(""),[d,c]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(async()=>{try{let e=await (0,y.n)("/api/settings");s(e.skillPaths?.enableAgentsDir!==!1),l(e.skillPaths?.custom??[])}catch{}c(!0)})()},[]);let m=async(e,t)=>{try{await (0,y.n)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({skillPaths:{enableAgentsDir:e,custom:t}})})}catch(e){console.error("Failed to save skill paths:",e)}},x=async()=>{let e=!t;s(e),await m(e,n)},p=async()=>{let e=o.trim();if(!e||n.includes(e))return;let s=[...n,e];l(s),i(""),await m(t,s)},g=async e=>{let s=n.filter((t,s)=>s!==e);l(s),await m(t,s)};return d?(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:e?.skillSearchPaths??"Skill Search Paths"}),(0,r.jsxs)("label",{className:"flex items-center gap-2 text-xs cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:t,onChange:x,className:"rounded border-border accent-[var(--amber)]"}),(0,r.jsx)(eM.A,{size:12,className:"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-foreground",children:e?.skillAgentsDir??"External agent skills (~/.agents/skills)"})]}),(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)("p",{className:"text-2xs text-muted-foreground",children:e?.skillCustomPaths??"Custom Paths"}),n.map((t,s)=>(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 px-2 py-1 text-muted-foreground truncate",children:t}),(0,r.jsx)("button",{onClick:()=>g(s),className:"p-1 rounded text-muted-foreground hover:text-destructive transition-colors",title:e?.skillPathRemove??"Remove",children:(0,r.jsx)(u.A,{size:11})})]},s)),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("input",{type:"text",value:o,onChange:e=>i(e.target.value),onKeyDown:e=>"Enter"===e.key&&p(),placeholder:e?.skillPathPlaceholder??"Enter directory path...",className:"flex-1 text-xs px-2 py-1.5 rounded-md border border-border bg-background text-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring"}),(0,r.jsx)("button",{onClick:p,disabled:!o.trim(),className:"text-xs text-muted-foreground hover:text-foreground disabled:opacity-30 transition-colors",children:(0,r.jsx)(eP.A,{size:14})})]})]})]}):null}function eH({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,ep.l)(o)&&z.oR.copy()},c=e.filter(e=>e.present&&e.installed),m=e.filter(e=>e.present&&!e.installed),u=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)(eK.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}))}]:[],...m.length>0?[{label:s?.detectedGroup??"Detected",options:m.map(e=>({value:e.key,label:e.name}))}]:[],...u.length>0?[{label:s?.notFoundGroup??"Not Installed",options:u.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)(ec.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 eG=s(71128);function eJ(e){return Array.isArray(e)?new Set(e):new Set}function eW(){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 m=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)),z.oR.success("Saved")}catch{z.oR.error("Failed to save")}d(null)},u=async(t,s,r)=>{let a=e.find(e=>e.name===t);if(!a)return;let n=eJ(a.directTools);r?n.add(s):n.delete(s);let l=[...n];await m(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=eJ(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)(es.A,{size:12,className:"text-muted-foreground shrink-0"}):(0,r.jsx)(er.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)(eV,{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)(eY,{active:"proxy"===s,onClick:()=>m(e.name,"proxy"),icon:(0,r.jsx)(eT.A,{size:11}),label:"Proxy only"}),(0,r.jsx)(eY,{active:"all"===s,onClick:()=>m(e.name,"all"),icon:(0,r.jsx)(D.A,{size:11}),label:"All direct"}),(0,r.jsx)(eY,{active:"select"===s,onClick:()=>{"select"!==s&&m(e.name,"select",[])},icon:(0,r.jsx)(eG.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=>u(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 eV({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 eY({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 eq=s(59694),eZ=s(13591),eX=s(98641);function eQ({agents:e,t,onRefresh:s,mode:n="mcp",activeSkillName:l="mindos"}){let o=t.settings?.mcp,[i,d]=(0,a.useState)(new Set),[c,m]=(0,a.useState)("auto"),[u,g]=(0,a.useState)("http://localhost:8781/mcp"),[b,f]=(0,a.useState)(""),[v,j]=(0,a.useState)({}),[N,k]=(0,a.useState)(!1),[w,S]=(0,a.useState)(null),C=async()=>{if(0!==i.size){k(!0),S(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]||"global",transport:r}}),transport:c,..."http"===c?{url:u,token:b}:{},..."auto"===c?{url:u,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?S({type:"error",text:n.map(e=>`${e.agent}: ${e.message}`).join("; ")}):S({type:"success",text:o?.installSuccess?o.installSuccess(a):`${a} agent(s) configured`}),d(new Set),s()}catch{S({type:"error",text:o?.installFailed??"Install failed"})}finally{k(!1),setTimeout(()=>S(null),4e3)}}},A="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)(e0,{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)(eK.A,{value:v[e.key]||"global",onChange:t=>j({...v,[e.key]:t}),size:"sm",className:"ml-auto",options:[{value:"global",label:o?.global??"Global"},{value:"project",label:o?.project??"Project"}]})]},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:()=>m("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:()=>m("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:()=>m("http"),className:"form-radio"}),o?.transportHttp??"http"]})]}),A&&(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:u,onChange:e=>g(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)(T.yA,{value:b,onChange:f,placeholder:"Bearer token",size:"sm"})]})]}),(0,r.jsxs)("button",{onClick:C,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)(h.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 e0({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,ep.l)(i)&&z.oR.copy()},c=e.filter(e=>e.present&&e.installed),m=e.filter(e=>e.present&&!e.installed),u=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)(eK.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}))}]:[],...m.length>0?[{label:t?.detectedGroup??"Detected",options:m.map(e=>({value:e.key,label:e.name}))}]:[],...u.length>0?[{label:t?.notFoundGroup??"Not Installed",options:u.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)(h.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)(ec.A,{size:11})})]})]})}let e1={checking:!1,available:null,isSelf:!1,suggestion:null};function e2({m:e}){let[t,s]=(0,a.useState)(0),[n,l]=(0,a.useState)(0),[o,d]=(0,a.useState)(e1),[c,m]=(0,a.useState)(!1),u=(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(u.current),clearInterval(x.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 d({...e1,available:!1,invalid:!0});d({...e1,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(e1)}},[]),j=async()=>{if(g&&!b&&!f&&!c){m(!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}),m(!1),z.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{m(!1),z.oR.error(e.portUpdateFailed);return}let r=Date.now()+6e4;x.current=setInterval(async()=>{if(Date.now()>r){clearInterval(x.current),m(!1),z.oR.error(e.portRestartTimeout);return}try{(await (0,y.n)("/api/mcp/status",{timeout:3e3})).running&&(clearInterval(x.current),m(!1),s(n),z.oR.success(e.portUpdateSuccess))}catch{}},3e3)}catch{m(!1),z.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)(i.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(e1),clearTimeout(u.current),t>=1024&&t<=65535&&(u.current=setTimeout(()=>v(t),500))},onBlur:()=>{clearTimeout(u.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:!g||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})]}),o.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]}),!o.checking&&!1===o.available&&!o.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)(ej.A,{size:10})," ",e.portInUse(n)]}),null!==o.suggestion&&(0,r.jsx)("button",{type:"button",onClick:()=>{l(o.suggestion),d(e1),setTimeout(()=>v(o.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(o.suggestion)})]}),!o.checking&&o.invalid&&(0,r.jsxs)("p",{className:"text-2xs flex items-center gap-1 text-destructive",children:[(0,r.jsx)(ej.A,{size:10})," 1024 – 65535"]}),!o.checking&&!0===o.available&&(0,r.jsxs)("p",{className:"text-2xs flex items-center gap-1 text-success",children:[(0,r.jsx)(h.A,{size:10})," ",o.isSelf?e.portSelf:e.portAvailable]})]})]})}function e5(){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,ep.l)(e)&&(t(s),z.oR.copy())},[])}}function e3({mode:e,onModeChange:t,status:s,agents:a,connectedAgents:n,detectedAgents:o,notFoundAgents:i,currentAgent:d,selectedAgent:c,onSelectAgent:m,restarting:u,onRestart:x,onRefresh:p,activeSkillName:g,mcpEnabled:h,m:b,t:f}){if(!s)return null;let v=h?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)(eq.A,{size:14,className:"text-[var(--amber)]"})}),(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:b?.connectionTitle??"Connect Agents"})]}),h?(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)(ez.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)(ez.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)(e4,{status:s,activeSkillName:g,agents:a,connectedAgents:n,detectedAgents:o,notFoundAgents:i,onRefresh:p,m:b,t:f}):(0,r.jsx)(e6,{status:s,agents:a,activeSkillName:g,connectedAgents:n,detectedAgents:o,notFoundAgents:i,currentAgent:d,selectedAgent:c,onSelectAgent:m,restarting:u,onRestart:x,onRefresh:p,m:b,t:f})})]})}function e4({status:e,activeSkillName:t,agents:s,connectedAgents:a,detectedAgents:n,notFoundAgents:l,onRefresh:o,m:i,t:d}){let{copiedField:c,handleCopy:m}=e5(),u=e.authConfigured&&!!e.authToken,x=e.localIP||"localhost",p=window.location.port||"3456",g=`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)(A.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)(h.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)(te,{code:"mindos file list",label:i?.cliSkillVerify??"Verify",onCopy:m,copiedField:c,fieldId:"cli-verify"}),s.length>0&&(0,r.jsx)(e7,{icon:(0,r.jsx)(eZ.A,{size:12,className:"text-muted-foreground"}),title:i?.detectedAgentsTitle??"Detected Agents",badge:`${a.length+n.length}/${s.length}`,children:(0,r.jsx)(eQ,{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)(C.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)(e8,{step:"1",label:i?.cliSkillInstall??"Install",children:(0,r.jsx)(te,{code:"npm install -g @geminilight/mindos",onCopy:m,copiedField:c,fieldId:"cli-install",compact:!0})}),(0,r.jsx)(e8,{step:"2",label:i?.cliRemoteConfigure??"Configure",children:(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)(te,{code:`mindos config set url ${g}`,onCopy:m,copiedField:c,fieldId:"cli-url",compact:!0}),(0,r.jsx)(te,{code:`mindos config set authToken ${u?b:"<token>"}`,onCopy:(t,s)=>{m(`mindos config set authToken ${e.authToken??"<token>"}`,s)},copiedField:c,fieldId:"cli-token",compact:!0,hint:u?i?.tokenCopyFullHint??"Copies full token":void 0})]})}),(0,r.jsx)(e8,{step:"3",label:i?.cliInstallSkill??"Install Skill",children:(0,r.jsx)(te,{code:`npx skills add GeminiLight/MindOS --skill ${t} -g -y`,onCopy:m,copiedField:c,fieldId:"cli-skill",compact:!0})}),(0,r.jsx)(e8,{step:"4",label:i?.cliSkillVerify??"Verify",children:(0,r.jsx)(te,{code:"mindos file list",onCopy:m,copiedField:c,fieldId:"cli-remote-verify",compact:!0})})]})]})}function e6({status:e,agents:t,activeSkillName:s,connectedAgents:n,detectedAgents:l,notFoundAgents:o,currentAgent:i,selectedAgent:d,onSelectAgent:c,restarting:m,onRestart:u,onRefresh:p,m:g,t:b}){let{copiedField:f,handleCopy:v}=e5(),j=e.authConfigured&&!!e.authToken,y=e.localIP||"localhost",N=`http://${y}:${e.port}/mcp`,k=(0,a.useMemo)(()=>i?(0,eX.$k)(i,e,"stdio"):null,[i,e]),w=(0,a.useMemo)(()=>i?(0,eX.$k)(i,e,"http"):null,[i,e]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e9,{status:e,restarting:m,onRestart:u,onRefresh:p,m:g}),g&&(0,r.jsx)(e2,{m:g}),(0,r.jsxs)("div",{className:"space-y-2.5",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(A.A,{size:12,className:e.running?"text-success":"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-xs font-semibold text-foreground",children:g?.localTitle??"Local"})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:g?.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)(eK.A,{value:d,onChange:c,options:[...n.length>0?[{label:g?.connectedGroup??"Connected",options:n.map(e=>({value:e.key,label:e.name}))}]:[],...l.length>0?[{label:g?.detectedGroup??"Detected",options:l.map(e=>({value:e.key,label:e.name}))}]:[],...o.length>0?[{label:g?.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)(h.A,{size:10})," ",g?.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,ep.l)(k.snippet)&&z.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)(ec.A,{size:14})," ",g?.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)(e7,{icon:(0,r.jsx)(eZ.A,{size:12,className:"text-muted-foreground"}),title:g?.detectedAgentsTitle??"Detected Agents",badge:`${n.length+l.length}/${t.length}`,children:(0,r.jsx)(eQ,{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)(C.A,{size:12,className:"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-xs font-semibold text-foreground",children:g?.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})," ",g?.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:g?.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)(tt,{onCopy:()=>v(N,"mcp-url"),copied:"mcp-url"===f,size:"sm"})]})]}),t.length>0&&i&&w&&(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:w.displaySnippet}),(0,r.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,r.jsxs)("button",{onClick:async()=>{await (0,ep.l)(w.snippet)&&z.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)(ec.A,{size:14})," ",g?.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:w.path})]})]})]})]})}function e7({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)(es.A,{size:11,className:"text-muted-foreground"}):(0,r.jsx)(er.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 e8({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 e9({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)(g.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 te({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)(tt,{onCopy:()=>s(t,n),copied:a===n,size:"sm"})]})]})}function tt({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)(S.A,{size:n}):(0,r.jsx)(ec.A,{size:n})})}function ts({t:e}){let t=(0,eI.cd)(),s=e.settings?.mcp,[o,i]=(0,a.useState)("cli"),[d,c]=(0,a.useState)(!1),[m,u]=(0,a.useState)(""),[x,g]=(0,a.useState)(!1),h=(0,a.useRef)(void 0),b=t?.status?.connectionMode,f=b?.mcp??!1;if((0,a.useEffect)(()=>()=>clearInterval(h.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=m||(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=>{g(!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{z.oR.error("Failed to toggle connection mode")}finally{g(!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(h.current),h.current=setInterval(async()=>{if(Date.now()>e){clearInterval(h.current),c(!1);return}try{(await (0,y.n)("/api/mcp/status",{timeout:3e3})).running&&(clearInterval(h.current),c(!1),t.refresh())}catch{}},3e3)};return(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)(tr,{mcpEnabled:f,onToggle:C,saving:x,mcpRunning:t.status?.running??!1,m:s}),(0,r.jsx)(ta,{status:t.status,m:s}),(0,r.jsx)(e3,{mode:o,onModeChange:i,status:t.status,agents:t.agents,connectedAgents:v,detectedAgents:j,notFoundAgents:N,currentAgent:w??null,selectedAgent:k,onSelectAgent:u,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)(eW,{})})]}),(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)(eB,{t:e})})]})]})}function tr({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)(ez.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 ta({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,ep.l)(e)&&(n(t),z.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)(eT.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)(eE.A,{size:13}):(0,r.jsx)(eR.A,{size:13})}),(0,r.jsx)(tt,{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 tn=s(46354),tl=s(52364),to=s(39966);let ti={compatible:{icon:h.A,color:"var(--success)",label:"Compatible",bg:"rgba(90,141,96,0.1)"},partial:{icon:ej.A,color:"var(--amber)",label:"Partial",bg:"var(--amber-subtle)"},blocked:{icon:tl.A,color:"var(--error)",label:"Blocked",bg:"rgba(200,80,80,0.08)"}};function td({mindRoot:e}){let[t,s]=(0,a.useState)(!1),[n,l]=(0,a.useState)(""),[o,i]=(0,a.useState)("idle"),[d,c]=(0,a.useState)(""),[u,x]=(0,a.useState)(null),[g,b]=(0,a.useState)(new Set),[f,v]=(0,a.useState)("idle"),[j,N]=(0,a.useState)([]),k=(0,a.useCallback)(async()=>{let e=n.trim();if(e){i("scanning"),c(""),x(null),b(new Set),v("idle"),N([]);try{let t=await (0,y.n)(`/api/obsidian/compat-report?vaultRoot=${encodeURIComponent(e)}`);x(t);let s=new Set(t.plugins.filter(e=>"compatible"===e.compatibilityLevel).map(e=>e.id));b(s),i("done")}catch(e){c(e instanceof Error?e.message:"Scan failed"),i("error")}}},[n]),S=(0,a.useCallback)(async()=>{if(!u||0===g.size||!e)return;v("importing");let t=[];for(let s of g)try{await (0,y.n)("/api/obsidian/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({vaultRoot:u.vaultRoot,pluginId:s,targetMindRoot:e})}),t.push({id:s,ok:!0})}catch(e){t.push({id:s,ok:!1,error:e instanceof Error?e.message:"Failed"})}N(t),v("done")},[u,g,e]);return(0,r.jsxs)("div",{className:"border border-border rounded-xl overflow-hidden",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>s(e=>!e),className:"w-full flex items-center gap-3 px-4 py-3 text-left hover:bg-muted/50 transition-colors",children:[(0,r.jsx)(eM.A,{size:16,className:"text-muted-foreground shrink-0"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Import from Obsidian"}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Scan an Obsidian vault and import compatible plugins"})]}),t?(0,r.jsx)(to.A,{size:14,className:"text-muted-foreground"}):(0,r.jsx)(es.A,{size:14,className:"text-muted-foreground"})]}),t&&(0,r.jsxs)("div",{className:"px-4 pb-4 space-y-4 border-t border-border",children:[(0,r.jsxs)("div",{className:"flex gap-2 mt-3",children:[(0,r.jsx)("input",{type:"text",value:n,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"===e.key&&k()},placeholder:"~/obsidian-vault",className:"flex-1 px-3 py-2 text-sm bg-background border border-border rounded-lg text-foreground placeholder:text-muted-foreground/50 outline-none focus-visible:ring-1 focus-visible:ring-ring"}),(0,r.jsxs)("button",{onClick:k,disabled:!n.trim()||"scanning"===o,className:"flex items-center gap-1.5 px-3 py-2 text-sm font-medium rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",style:{background:"var(--amber)",color:"var(--amber-foreground)"},children:["scanning"===o?(0,r.jsx)(p.A,{size:14,className:"animate-spin"}):(0,r.jsx)(w.A,{size:14}),(0,r.jsx)("span",{children:"Scan"})]})]}),"error"===o&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-[var(--error)] bg-[rgba(200,80,80,0.08)] rounded-lg px-3 py-2",children:[(0,r.jsx)(tl.A,{size:13,className:"shrink-0"}),(0,r.jsx)("span",{children:d})]}),"scanning"===o&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground py-4 justify-center",children:[(0,r.jsx)(p.A,{size:14,className:"animate-spin"}),(0,r.jsx)("span",{children:"Scanning plugins..."})]}),"done"===o&&u&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[(0,r.jsxs)("span",{children:[u.summary.total," plugins found"]}),(0,r.jsxs)("span",{className:"text-[var(--success)]",children:[u.summary.compatible," compatible"]}),u.summary.partial>0&&(0,r.jsxs)("span",{className:"text-[var(--amber)]",children:[u.summary.partial," partial"]}),u.summary.blocked>0&&(0,r.jsxs)("span",{className:"text-[var(--error)]",children:[u.summary.blocked," blocked"]}),u.skipped.length>0&&(0,r.jsxs)("span",{children:[u.skipped.length," skipped"]})]}),0===u.plugins.length?(0,r.jsx)("p",{className:"text-sm text-muted-foreground text-center py-4",children:"No plugins found in this vault"}):(0,r.jsx)("div",{className:"flex flex-col gap-1.5 max-h-[400px] overflow-y-auto",children:u.plugins.map(e=>{let t=ti[e.compatibilityLevel],s=t.icon,a="compatible"===e.compatibilityLevel,n=g.has(e.id);return(0,r.jsxs)("label",{className:`flex items-start gap-3 rounded-lg px-3 py-2.5 transition-colors ${a?"cursor-pointer hover:bg-muted/50":"opacity-60"}`,style:{background:n?t.bg:void 0},children:[a&&(0,r.jsx)("input",{type:"checkbox",checked:n,onChange:()=>{var t;return t=e.id,void b(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},className:"form-check mt-0.5"}),!a&&(0,r.jsx)(s,{size:14,className:"mt-0.5 shrink-0",style:{color:t.color}}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:e.manifest.name}),(0,r.jsx)("span",{className:"text-2xs px-1.5 py-0.5 rounded font-mono shrink-0",style:{background:t.bg,color:t.color},children:t.label}),(0,r.jsx)("span",{className:"text-2xs text-muted-foreground/50 font-mono",children:e.manifest.version})]}),e.manifest.description&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 truncate",children:e.manifest.description}),"partial"===e.compatibilityLevel&&e.compatibility.partialApis.length>0&&(0,r.jsxs)("p",{className:"text-2xs text-[var(--amber)] mt-1",children:["Partial APIs: ",e.compatibility.partialApis.join(", ")]}),"blocked"===e.compatibilityLevel&&e.compatibility.blockers.length>0&&(0,r.jsx)("p",{className:"text-2xs text-[var(--error)] mt-1",children:e.compatibility.blockers[0]})]})]},e.id)})}),u.summary.compatible>0&&"done"!==f&&(0,r.jsxs)("button",{onClick:S,disabled:0===g.size||"importing"===f,className:"flex items-center gap-1.5 px-4 py-2 text-sm font-medium rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",style:{background:"var(--amber)",color:"var(--amber-foreground)"},children:["importing"===f?(0,r.jsx)(p.A,{size:14,className:"animate-spin"}):(0,r.jsx)(m.A,{size:14}),(0,r.jsx)("span",{children:"importing"===f?"Importing...":`Import ${g.size} plugin${1!==g.size?"s":""}`})]}),"done"===f&&j.length>0&&(0,r.jsxs)("div",{className:"space-y-1.5",children:[j.map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[e.ok?(0,r.jsx)(h.A,{size:13,style:{color:"var(--success)"}}):(0,r.jsx)(tl.A,{size:13,style:{color:"var(--error)"}}),(0,r.jsxs)("span",{className:e.ok?"text-foreground":"text-[var(--error)]",children:[e.id,e.error?` — ${e.error}`:""]})]},e.id)),(0,r.jsxs)("p",{className:"text-xs text-[var(--success)] font-medium mt-2",children:[j.filter(e=>e.ok).length," plugin",1!==j.filter(e=>e.ok).length?"s":""," imported successfully"]})]})]})]})]})}function tc({pluginId:e,pluginName:t,items:s}){let[n,l]=(0,a.useState)(!1);return 0===s.length?null:(0,r.jsxs)("div",{className:"border border-border rounded-xl overflow-hidden",children:[(0,r.jsx)("button",{onClick:()=>l(!n),className:"w-full flex items-center justify-between p-4 hover:bg-muted/30 transition-colors",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[n?(0,r.jsx)(es.A,{size:16}):(0,r.jsx)(er.A,{size:16}),(0,r.jsx)("span",{className:"text-sm font-medium",children:t}),(0,r.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",s.length," settings)"]})]})}),n&&(0,r.jsx)("div",{className:"border-t border-border p-4 space-y-4 bg-card/30",children:s.map((t,s)=>(0,r.jsx)(tm,{item:t},`${e}-${s}`))})]})}function tm({item:e}){let[t,s]=(0,a.useState)(e.value),n=t=>{s(t),e.onChange?.(t)};return(0,r.jsxs)("div",{className:"space-y-2",children:[e.name&&(0,r.jsx)("div",{className:"text-sm font-medium text-foreground",children:e.name}),e.desc&&(0,r.jsx)("div",{className:"text-xs text-muted-foreground",children:e.desc}),(0,r.jsxs)("div",{className:"pt-1",children:["text"===e.kind&&(0,r.jsx)("input",{type:"text",value:t??"",onChange:e=>n(e.target.value),className:"w-full px-3 py-2 text-sm bg-background border border-border rounded-lg focus:outline-none focus:ring-2 focus:ring-ring"}),"toggle"===e.kind&&(0,r.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:t??!1,onChange:e=>n(e.target.checked),className:"w-4 h-4 rounded border-border text-[var(--amber)] focus:ring-2 focus:ring-ring"}),(0,r.jsx)("span",{className:"text-sm text-muted-foreground",children:t?"Enabled":"Disabled"})]}),"dropdown"===e.kind&&e.options&&(0,r.jsx)("select",{value:t??"",onChange:e=>n(e.target.value),className:"w-full px-3 py-2 text-sm bg-background border border-border rounded-lg focus:outline-none focus:ring-2 focus:ring-ring",children:e.options.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))}),"button"===e.kind&&(0,r.jsx)("button",{onClick:()=>e.onClick?.(),className:"px-4 py-2 text-sm font-medium bg-[var(--amber)] text-[var(--amber-foreground)] rounded-lg hover:opacity-90 transition-opacity",children:e.buttonText??"Click"})]})]})}function tu(){let[e,t]=(0,a.useState)([]),[s,n]=(0,a.useState)(!0),[l,o]=(0,a.useState)(null);if((0,a.useEffect)(()=>{!async function(){try{let e=await fetch("/api/obsidian-plugins/settings");if(!e.ok)throw Error("Failed to fetch plugin settings");let s=await e.json();t(s.plugins||[])}catch(e){o(e instanceof Error?e.message:"Unknown error")}finally{n(!1)}}()},[]),s)return(0,r.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,r.jsx)("div",{className:"text-sm text-muted-foreground",children:"Loading plugin settings..."})});if(l)return(0,r.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,r.jsxs)("div",{className:"text-sm text-destructive",children:["Error: ",l]})});let i=e.filter(e=>e.settingTabs.some(e=>e.items.length>0));return 0===i.length?(0,r.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,r.jsx)("div",{className:"text-sm text-muted-foreground",children:"No plugin settings available"})}):(0,r.jsx)("div",{className:"space-y-3",children:i.map(e=>e.settingTabs.map((t,s)=>(0,r.jsx)(tc,{pluginId:e.id,pluginName:e.name,items:t.items},`${e.id}-${s}`)))})}function tx({pluginStates:e,setPluginStates:t,t:s,mindRoot:a}){let n=(0,tn.MZ)();return(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)("p",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:s.settings.plugins.title}),0===n.length?(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:s.settings.plugins.noPlugins}):(0,r.jsx)("div",{className:"flex flex-col gap-3",children:n.map(a=>{let n=!!a.core,l=!!n||(e[a.id]??!0);return(0,r.jsx)("div",{className:`border rounded-xl p-4 transition-colors ${l?"border-border bg-card":"border-border/50 bg-muted/30 opacity-60"}`,children:(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("span",{className:"text-2xl leading-none mt-0.5",children:a.icon}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:a.name}),n&&(0,r.jsx)("span",{className:"text-2xs px-1.5 py-0.5 rounded bg-[var(--amber-subtle)] text-[var(--amber-text)] font-mono",children:s.settings.plugins.coreBadge??"core"}),a.builtin&&!n&&(0,r.jsx)("span",{className:"text-2xs px-1.5 py-0.5 rounded bg-muted text-muted-foreground font-mono",children:s.settings.plugins.builtinBadge}),(0,r.jsx)("div",{className:"flex gap-1 flex-wrap",children:a.tags.map(e=>(0,r.jsx)("span",{className:"text-2xs px-1.5 py-0.5 rounded bg-muted/60 text-muted-foreground",children:e},e))})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1 leading-relaxed",children:a.description}),(0,r.jsxs)("p",{className:"text-xs text-muted-foreground/60 mt-1.5 font-mono",children:[s.settings.plugins.matchHint,": ",(0,r.jsx)("code",{className:"bg-muted px-1 rounded",children:a.match.toString().match(/\/(.+)\//)?.[1]??"—"})]})]})]}),n?(0,r.jsx)(T.lM,{checked:!0,disabled:!0}):(0,r.jsx)(T.lM,{checked:l,onChange:e=>{(0,tn.$7)(a.id,e),t(t=>({...t,[a.id]:e}))},title:l?s.settings.plugins.enabled:s.settings.plugins.disabled})]})},a.id)})}),(0,r.jsx)(td,{mindRoot:a}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)("p",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:"Obsidian Plugin Settings"}),(0,r.jsx)(tu,{})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground border border-border/40 bg-card/30 rounded-xl px-4 py-3",children:[(0,r.jsx)(o.A,{size:13,className:"shrink-0"}),(0,r.jsx)("span",{children:s.settings.plugins.comingSoon})]})]})}var tp=s(3837);function tg(){let e=window;return e.mindos?.checkUpdate?e.mindos:null}let th="https://github.com/GeminiLight/MindOS/releases",tb="mindos_update_in_progress",tf={downloading:{en:"Downloading update",zh:"下载更新"},skills:{en:"Updating skills",zh:"更新 Skills"},rebuilding:{en:"Rebuilding app",zh:"重新构建应用"},restarting:{en:"Restarting server",zh:"重启服务"}};function tv({status:e}){switch(e){case"done":return(0,r.jsx)(h.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)(tp.A,{size:14,className:"text-muted-foreground/40 shrink-0"})}}function tj(e){return e<1048576?`${Math.round(e/1024)} KB`:`${(e/1048576).toFixed(1)} MB`}function ty(){let{t:e}=(0,j.Y)(),t=e.settings.update,s=tg(),[n,l]=(0,a.useState)("idle"),[o,i]=(0,a.useState)(""),[d,u]=(0,a.useState)(""),[g,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){u(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),u(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?(u(e.latestVersion),w(e.minDesktopVersion),l("desktopTooOld")):e.available?(u(e.latestVersion),b({urls:e.urls,size:e.size,sha256:e.sha256}),l("available")):l("idle")}catch{l("idle")}}},C=async()=>{if(s.downloadCoreUpdate&&g){l("downloading"),v(0);try{await s.downloadCoreUpdate(g.urls,d,g.size,g.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)(h.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)(m.A,{size:13}),"v",d," ",t?.coreAvailable?t.coreAvailable(tj(g?.size??0)):`available (${tj(g?.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)(h.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)(m.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:g?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 tN(){let{t:e}=(0,j.Y)(),t=e.settings.update,s=tg(),[n,l]=(0,a.useState)("idle"),[o,i]=(0,a.useState)(!1),[d,u]=(0,a.useState)(null),[g,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)}),w();let e=[];return s.onUpdateAvailable&&e.push(s.onUpdateAvailable(e=>{i(!0),e?.version&&u(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 w=async()=>{l("checking"),k("");try{let e=await s.checkUpdate();i(e.available),e.version&&u(e.version),l("idle")}catch{l("error"),k(t?.error??"Failed to check for updates.")}},S=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)(A.A,{size:14,className:"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:t?.shellTitle??"MindOS Desktop"})]}),g&&(0,r.jsxs)("span",{className:"text-xs font-mono text-muted-foreground",children:["v",g]})]}),"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)(h.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)(m.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)(h.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:w,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:S,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)(m.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:th,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 tk(){let[e,t]=(0,a.useState)(!1),[s,n]=(0,a.useState)(!0);return((0,a.useEffect)(()=>{let e=tg();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)(ty,{}),(0,r.jsx)(tN,{})]}):(0,r.jsx)(tw,{})}function tw(){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,u]=(0,a.useState)(""),[g,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"),u("");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"),u(s?.error??"Failed to check for updates.")}},[s]),T=(0,a.useCallback)(()=>{clearInterval(S.current),clearTimeout(C.current)},[]),E=(0,a.useCallback)(e=>{T(),l(e),i("updated"),localStorage.removeItem("mindos_update_latest"),localStorage.removeItem("mindos_update_dismissed"),localStorage.removeItem(tb),window.dispatchEvent(new Event("mindos:update-dismissed")),setTimeout(()=>window.location.reload(),2e3)},[T]),R=(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(tb),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 E(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"}))),E(e))}catch{}}},3e3),C.current=setTimeout(()=>{T(),localStorage.removeItem(tb),i("timeout")},9e5)},[T,E]);(0,a.useEffect)(()=>{let e=localStorage.getItem(tb);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"}]),R()}catch{localStorage.removeItem(tb),z()}else z()},[]),(0,a.useEffect)(()=>T,[T]);let I=(0,a.useCallback)(async()=>{i("updating"),u(""),v(null),w(!1),b([{id:"downloading",status:"pending"},{id:"skills",status:"pending"},{id:"rebuilding",status:"pending"},{id:"restarting",status:"pending"}]),localStorage.setItem(tb,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(tb),v(e.message||"Update failed"),i("error");return}}R()},[R,n]),P=(0,a.useCallback)(()=>{v(null),I()},[I]),M="zh"===t?"zh":"en",U=g.filter(e=>"done"===e.status).length,D=g.length>0?Math.round(U/g.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)(h.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)(m.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:g.map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,r.jsx)(tv,{status:e.status}),(0,r.jsx)("span",{className:"pending"===e.status?"text-muted-foreground/50":"running"===e.status?"text-foreground":"text-muted-foreground",children:tf[e.id]?.[M]??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)(h.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:P,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:I,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)(m.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:th,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 tS=s(73033);function tC(){let e=window;return e.mindos?.uninstallApp?e.mindos:null}function tA(){let{t:e}=(0,j.Y)(),t=e.settings.uninstall,s=!!tC(),[n,l]=(0,a.useState)("idle"),[o,i]=(0,a.useState)(""),[d,c]=(0,a.useState)(!0),[m,x]=(0,a.useState)(!0),g=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&&m){let e=tC();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)(T.L7,{icon:(0,r.jsx)(u.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)(tS.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:m,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)(u.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:g,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)(h.A,{size:14,className:"text-success"}),(0,r.jsx)("span",{className:"text-xs text-success font-medium",children:s&&m?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)(ej.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 tz({visible:e,initialTab:t,variant:s,onClose:N}){let[k,w]=(0,a.useState)("ai"),[S,C]=(0,a.useState)(null),[A,z]=(0,a.useState)(!1),[T,E]=(0,a.useState)("idle"),{t:R,locale:I,setLocale:P}=(0,j.Y)(),M=(0,v.useRouter)(),U=(0,a.useRef)(void 0),D=(0,a.useRef)(!1),$=(0,a.useRef)(null),[F,L]=(0,a.useState)("inter"),[K,B]=(0,a.useState)("15px"),[_,H]=(0,a.useState)("80%"),[G,J]=(0,a.useState)(!0),[W,V]=(0,a.useState)({}),[Y,q]=(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=()=>q(!0),t=()=>q(!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 Z="panel"===s,X=(0,a.useRef)(!1);(0,a.useEffect)(()=>{if(Z?e&&!X.current:e){let e;(0,y.n)("/api/settings").then(e=>{C(e),D.current=!0}).catch(()=>E("load-error")),L("geist"===localStorage.getItem("prose-font")?"inter":localStorage.getItem("prose-font")??"inter"),B(localStorage.getItem("prose-font-size")??"15px");let t=localStorage.getItem("content-width")??"80%";H(t.endsWith("px")?(e=parseInt(t))>=960?"100%":e>=780?"80%":"65%":t);let s=localStorage.getItem("theme");J(s?"dark"===s:window.matchMedia("(prefers-color-scheme: dark)").matches),E("idle")}e||(D.current=!1),X.current=e},[e,Z]),(0,a.useEffect)(()=>{e&&t&&Q(t)},[e,t]);let Q=(0,a.useCallback)(e=>{w(e),$.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"}[F]??""),localStorage.setItem("prose-font",F)},[F]),(0,a.useEffect)(()=>{document.documentElement.style.setProperty("--prose-font-size-override",K),localStorage.setItem("prose-font-size",K)},[K]),(0,a.useEffect)(()=>{document.documentElement.style.setProperty("--content-width-override",_),localStorage.setItem("content-width",_)},[_]),(0,a.useEffect)(()=>{if("modal"!==s||!e||!N)return;let t=e=>{"Escape"===e.key&&N()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[s,e,N]);let ee=(0,a.useCallback)(async e=>{z(!0);try{await (0,y.n)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ai:e.ai,agent:e.agent,embedding:e.embedding,webSearch:e.webSearch,mindRoot:e.mindRoot,webPassword:e.webPassword,authToken:e.authToken,allowNetworkAccess:!0===e.allowNetworkAccess,skillPaths:e.skillPaths,connectionMode:e.connectionMode})}),E("saved"),window.dispatchEvent(new Event("mindos:settings-changed")),setTimeout(()=>E("idle"),2500)}catch{E("error"),setTimeout(()=>E("idle"),2500)}finally{z(!1)}},[]),et=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(S&&D.current)return et.current=S,clearTimeout(U.current),U.current=setTimeout(()=>{et.current=null,ee(S)},800),()=>clearTimeout(U.current)},[S,ee]),(0,a.useEffect)(()=>{if(!e&&et.current){let e=et.current;et.current=null,clearTimeout(U.current),ee(e)}},[e,ee]),(0,a.useEffect)(()=>()=>{if(et.current){clearTimeout(U.current);let e=et.current;et.current=null,(0,y.n)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ai:e.ai,agent:e.agent,embedding:e.embedding,webSearch:e.webSearch,mindRoot:e.mindRoot,webPassword:e.webPassword,authToken:e.authToken,allowNetworkAccess:!0===e.allowNetworkAccess,skillPaths:e.skillPaths,connectionMode:e.connectionMode})}).catch(()=>{})}},[]);let es=(0,a.useCallback)(e=>{C(t=>t?{...t,ai:{...t.ai,...e}}:t)},[]),er=(0,a.useCallback)(e=>{C(t=>t?{...t,agent:{...t.agent??{},...e}}:t)},[]),ea=(0,a.useCallback)(async()=>{if(!S)return;let e={activeProvider:"",providers:[]};C(t=>t?{...t,ai:e}:t),setTimeout(()=>{(0,y.n)("/api/settings").then(e=>{C(e)}).catch(()=>E("error"))},1300)},[S]),en=S?.envOverrides??{},el=Z?12:13,ei=[{id:"ai",label:R.settings.tabs.ai,icon:(0,r.jsx)(n.A,{size:el})},{id:"mcp",label:R.settings.tabs.mcp??"Connections",icon:(0,r.jsx)(l.A,{size:el})},{id:"plugins",label:R.settings.tabs.plugins??"Plugins",icon:(0,r.jsx)(o.A,{size:el})},{id:"knowledge",label:R.settings.tabs.knowledge,icon:(0,r.jsx)(i.A,{size:el})},{id:"appearance",label:R.settings.tabs.appearance,icon:(0,r.jsx)(d.A,{size:el})},{id:"sync",label:R.settings.tabs.sync??"Sync",icon:(0,r.jsx)(c.A,{size:el})},{id:"update",label:R.settings.tabs.update??"Update",icon:(0,r.jsx)(m.A,{size:el}),badge:Y},{id:"uninstall",label:R.settings.tabs.uninstall??"Uninstall",icon:(0,r.jsx)(u.A,{size:el})}],ed=ei.find(e=>e.id===k)?.label??"",ec=()=>(0,r.jsx)("div",{ref:$,className:`flex-1 overflow-y-auto min-h-0 ${Z?"px-4 py-4 space-y-4":"px-5 py-5 space-y-5"}`,children:"load-error"===T&&("ai"===k||"knowledge"===k)?(0,r.jsxs)("div",{className:"flex flex-col items-center gap-2 py-8 text-center",children:[(0,r.jsx)(x.A,{size:Z?18:20,className:"text-destructive"}),(0,r.jsx)("p",{className:`${Z?"text-xs":"text-sm"} text-destructive font-medium`,children:"Failed to load settings"}),!Z&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"Check that the server is running and AUTH_TOKEN is configured correctly."})]}):S||"appearance"===k||"mcp"===k||"sync"===k||"update"===k||"uninstall"===k?(0,r.jsxs)(r.Fragment,{children:["ai"===k&&S?.ai&&(0,r.jsx)(O,{data:S,setData:C,updateAi:es,updateAgent:er,t:R}),"appearance"===k&&(0,r.jsx)(eo,{font:F,setFont:L,fontSize:K,setFontSize:B,contentWidth:_,setContentWidth:H,dark:G,setDark:J,locale:I,setLocale:P,t:R}),"knowledge"===k&&S&&(0,r.jsx)(ew,{data:S,setData:C,t:R}),"sync"===k&&(0,r.jsx)(eA.vP,{t:R,visible:e}),"mcp"===k&&(0,r.jsx)(ts,{t:R}),"plugins"===k&&(0,r.jsx)(tx,{pluginStates:W,setPluginStates:V,t:R,mindRoot:S?.mindRoot}),"update"===k&&(0,r.jsx)(tk,{}),"uninstall"===k&&(0,r.jsx)(tA,{})]}):(0,r.jsx)("div",{className:"flex justify-center py-8",children:(0,r.jsx)(p.A,{size:Z?16:18,className:"animate-spin text-muted-foreground"})})}),em=()=>"ai"===k||"knowledge"===k?(0,r.jsxs)("div",{className:`${Z?"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"===k&&Object.values(en).some(Boolean)&&(0,r.jsxs)("button",{onClick:ea,disabled:A||!S,className:`flex items-center gap-1.5 ${Z?"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)(g.A,{size:Z?12:13}),R.settings.ai.restoreFromEnv]}),"knowledge"===k&&(0,r.jsxs)("a",{href:"/setup?force=1",className:`flex items-center gap-1.5 ${Z?"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)(g.A,{size:Z?12:13}),R.settings.reconfigure]})]}),!Z&&(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-xs",role:"status","aria-live":"polite",children:[A&&(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:[R.settings.save,"..."]})]}),"saved"===T&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(h.A,{size:12,className:"text-success"}),(0,r.jsx)("span",{className:"text-success",children:R.settings.saved})]}),"error"===T&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x.A,{size:12,className:"text-destructive"}),(0,r.jsx)("span",{className:"text-destructive",children:R.settings.saveFailed})]})]})]}):null;return Z?(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)(i.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:[A&&(0,r.jsx)(p.A,{size:10,className:"animate-spin text-muted-foreground"}),"saved"===T&&(0,r.jsx)(h.A,{size:10,className:"text-success"}),"error"===T&&(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:ei.map(e=>(0,r.jsxs)("button",{onClick:()=>Q(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 ${k===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))}),ec(),em()]}):(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)(i.A,{size:15,className:"text-muted-foreground"}),(0,r.jsx)("span",{children:R.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:[A&&(0,r.jsx)(p.A,{size:12,className:"animate-spin text-muted-foreground"}),"saved"===T&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(h.A,{size:12,className:"text-success"}),(0,r.jsx)("span",{className:"text-success",children:R.settings.saved})]}),"error"===T&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x.A,{size:12,className:"text-destructive"}),(0,r.jsx)("span",{className:"text-destructive",children:R.settings.saveFailed})]})]}),N&&(0,r.jsx)("button",{onClick:N,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:[ei.map(e=>(0,r.jsxs)("button",{onClick:()=>Q(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 ${k===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:()=>{N?.(),M.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:el}),R.sidebar.help]})]}),ec(),em()]}),(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)(i.A,{size:15,className:"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:R.settings.title})]}),(0,r.jsx)("nav",{className:"flex-1 overflow-y-auto py-1.5",children:ei.map(e=>(0,r.jsxs)("button",{onClick:()=>Q(e.id),className:`flex items-center gap-2 w-full px-4 py-2 text-sm font-medium transition-colors relative ${k===e.id?"text-foreground bg-muted":"text-muted-foreground hover:text-foreground hover:bg-muted/50"}`,children:[k===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:()=>{N?.(),M.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}),R.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:ed}),(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:[A&&(0,r.jsx)(p.A,{size:12,className:"animate-spin text-muted-foreground"}),"saved"===T&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(h.A,{size:12,className:"text-success"}),(0,r.jsx)("span",{className:"text-success",children:R.settings.saved})]}),"error"===T&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x.A,{size:12,className:"text-destructive"}),(0,r.jsx)("span",{className:"text-destructive",children:R.settings.saveFailed})]})]}),N&&(0,r.jsx)("button",{onClick:N,className:"p-1 rounded hover:bg-muted text-muted-foreground hover:text-foreground transition-colors",children:(0,r.jsx)(b.A,{size:15})})]})]}),ec(),em()]})]})]})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3424],{2408:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},5038:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},9181:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("toggle-left",[["circle",{cx:"9",cy:"12",r:"3",key:"u3jwor"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]])},9986:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]])},12240:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]])},12361:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]])},19777:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]])},21082:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},24336:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},26732:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]])},28284:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]])},29696:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]])},30401:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},30626:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]])},31082:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},31606:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]])},38325:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},38688:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},44361:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},48632:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]])},53097:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},55798:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},71044:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},72700:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("wifi-off",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]])},72799:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},73033:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("shield-check",[["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"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},73601:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},75157:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("file-pen",[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]])},76723:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},86386:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("file-plus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]])},88283:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])},98327:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},98480:(e,a,t)=>{t.d(a,{A:()=>y});let y=(0,t(73015).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"}]])}}]);