@whxway/loom 1.0.2 → 1.1.0

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 (353) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build/56416d4ae4ce586f.js +6 -0
  3. package/.next/build/56416d4ae4ce586f.js.map +5 -0
  4. package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js +206 -0
  5. package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js.map +8 -0
  6. package/.next/build/chunks/[root-of-the-server]__1f933tp._.js +500 -0
  7. package/.next/build/chunks/[root-of-the-server]__1f933tp._.js.map +11 -0
  8. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js +13 -0
  9. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js.map +5 -0
  10. package/.next/build/chunks/[turbopack]_runtime.js +890 -0
  11. package/.next/build/chunks/[turbopack]_runtime.js.map +11 -0
  12. package/.next/build/chunks/node_modules_20v-8wl._.js +6824 -0
  13. package/.next/build/chunks/node_modules_20v-8wl._.js.map +47 -0
  14. package/.next/build/package.json +1 -0
  15. package/.next/build-manifest.json +3 -3
  16. package/.next/cache/.previewinfo +1 -0
  17. package/.next/cache/.rscinfo +1 -0
  18. package/.next/cache/.tsbuildinfo +1 -0
  19. package/.next/diagnostics/build-diagnostics.json +6 -0
  20. package/.next/diagnostics/framework.json +1 -0
  21. package/.next/diagnostics/route-bundle-stats.json +488 -0
  22. package/.next/fallback-build-manifest.json +3 -3
  23. package/.next/prerender-manifest.json +3 -3
  24. package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/(dashboard)/logs/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/(dashboard)/mcp/page.js.nft.json +1 -1
  27. package/.next/server/app/(dashboard)/mcp/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/(dashboard)/mcp/presets/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/(dashboard)/models/[name]/page_client-reference-manifest.js +1 -1
  30. package/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/(dashboard)/playground/audio/speech/page_client-reference-manifest.js +1 -1
  32. package/.next/server/app/(dashboard)/playground/audio/transcription/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/(dashboard)/playground/chat/page.js.nft.json +1 -1
  34. package/.next/server/app/(dashboard)/playground/chat/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/(dashboard)/playground/embedding/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/(dashboard)/playground/image/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/(dashboard)/playground/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/(dashboard)/playground/video/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/(dashboard)/providers/[name]/page.js.nft.json +1 -1
  40. package/.next/server/app/(dashboard)/providers/[name]/page_client-reference-manifest.js +1 -1
  41. package/.next/server/app/(dashboard)/providers/page.js.nft.json +1 -1
  42. package/.next/server/app/(dashboard)/providers/page_client-reference-manifest.js +1 -1
  43. package/.next/server/app/(dashboard)/settings/api-keys/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  45. package/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/(dashboard)/settings/users/page.js.nft.json +1 -1
  47. package/.next/server/app/(dashboard)/settings/users/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/_global-error.html +1 -1
  49. package/.next/server/app/_global-error.rsc +1 -1
  50. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  51. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  52. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  53. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  54. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  55. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/_not-found.html +2 -2
  57. package/.next/server/app/_not-found.rsc +3 -3
  58. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  59. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  60. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  61. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  62. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  63. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  64. package/.next/server/app/api/adapters/route.js.nft.json +1 -1
  65. package/.next/server/app/api/apikeys/[id]/route.js.nft.json +1 -1
  66. package/.next/server/app/api/apikeys/route.js.nft.json +1 -1
  67. package/.next/server/app/api/capabilities/route.js.nft.json +1 -1
  68. package/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -1
  69. package/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -1
  70. package/.next/server/app/api/conversations/route.js.nft.json +1 -1
  71. package/.next/server/app/api/health/route.js.nft.json +1 -1
  72. package/.next/server/app/api/login/route.js.nft.json +1 -1
  73. package/.next/server/app/api/logout/route.js.nft.json +1 -1
  74. package/.next/server/app/api/logs/generations/[id]/images/[idx]/route.js.nft.json +1 -1
  75. package/.next/server/app/api/logs/generations/[id]/route.js.nft.json +1 -1
  76. package/.next/server/app/api/logs/generations/route.js.nft.json +1 -1
  77. package/.next/server/app/api/mcp/presets/route.js.nft.json +1 -1
  78. package/.next/server/app/api/mcp/servers/[id]/check/route.js.nft.json +1 -1
  79. package/.next/server/app/api/mcp/servers/[id]/route.js.nft.json +1 -1
  80. package/.next/server/app/api/mcp/servers/[id]/tools/route.js.nft.json +1 -1
  81. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  82. package/.next/server/app/api/messages/[id]/rate/route.js.nft.json +1 -1
  83. package/.next/server/app/api/models/[id]/route.js.nft.json +1 -1
  84. package/.next/server/app/api/models/route.js.nft.json +1 -1
  85. package/.next/server/app/api/ping/route.js.nft.json +1 -1
  86. package/.next/server/app/api/playground/chat/route.js.nft.json +1 -1
  87. package/.next/server/app/api/playground/embedding/route.js.nft.json +1 -1
  88. package/.next/server/app/api/providers/[id]/check/route.js.nft.json +1 -1
  89. package/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  90. package/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  91. package/.next/server/app/api/providers/probe/route.js.nft.json +1 -1
  92. package/.next/server/app/api/providers/reload/route.js.nft.json +1 -1
  93. package/.next/server/app/api/providers/route.js.nft.json +1 -1
  94. package/.next/server/app/api/stats/models/[name]/route.js.nft.json +1 -1
  95. package/.next/server/app/api/stats/route.js.nft.json +1 -1
  96. package/.next/server/app/api/tools/[id]/route.js.nft.json +1 -1
  97. package/.next/server/app/api/tools/route.js.nft.json +1 -1
  98. package/.next/server/app/api/users/[username]/route.js.nft.json +1 -1
  99. package/.next/server/app/api/users/me/preferences/route.js.nft.json +1 -1
  100. package/.next/server/app/api/users/me/route.js.nft.json +1 -1
  101. package/.next/server/app/api/users/route.js.nft.json +1 -1
  102. package/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  103. package/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  104. package/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  105. package/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  106. package/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  107. package/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  108. package/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
  109. package/.next/server/app/api/v1/videos/[id]/content/route.js.nft.json +1 -1
  110. package/.next/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  111. package/.next/server/app/api/v1/videos/route.js.nft.json +1 -1
  112. package/.next/server/app/api/variants/route.js.nft.json +1 -1
  113. package/.next/server/app/index.html +2 -2
  114. package/.next/server/app/index.rsc +3 -3
  115. package/.next/server/app/index.segments/!KGRhc2hib2FyZCk/__PAGE__.segment.rsc +1 -1
  116. package/.next/server/app/index.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  117. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  118. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  119. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  120. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  121. package/.next/server/app/login.html +2 -2
  122. package/.next/server/app/login.rsc +3 -3
  123. package/.next/server/app/login.segments/!KGF1dGgp/login/__PAGE__.segment.rsc +1 -1
  124. package/.next/server/app/login.segments/!KGF1dGgp/login.segment.rsc +1 -1
  125. package/.next/server/app/login.segments/!KGF1dGgp.segment.rsc +1 -1
  126. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  127. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  128. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  129. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  130. package/.next/server/app/logs.html +2 -2
  131. package/.next/server/app/logs.rsc +3 -3
  132. package/.next/server/app/logs.segments/!KGRhc2hib2FyZCk/logs/__PAGE__.segment.rsc +1 -1
  133. package/.next/server/app/logs.segments/!KGRhc2hib2FyZCk/logs.segment.rsc +1 -1
  134. package/.next/server/app/logs.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  135. package/.next/server/app/logs.segments/_full.segment.rsc +3 -3
  136. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  137. package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
  138. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  139. package/.next/server/app/mcp/presets.html +2 -2
  140. package/.next/server/app/mcp/presets.rsc +5 -5
  141. package/.next/server/app/mcp/presets.segments/!KGRhc2hib2FyZCk/mcp/presets/__PAGE__.segment.rsc +2 -2
  142. package/.next/server/app/mcp/presets.segments/!KGRhc2hib2FyZCk/mcp/presets.segment.rsc +1 -1
  143. package/.next/server/app/mcp/presets.segments/!KGRhc2hib2FyZCk/mcp.segment.rsc +1 -1
  144. package/.next/server/app/mcp/presets.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  145. package/.next/server/app/mcp/presets.segments/_full.segment.rsc +5 -5
  146. package/.next/server/app/mcp/presets.segments/_head.segment.rsc +1 -1
  147. package/.next/server/app/mcp/presets.segments/_index.segment.rsc +2 -2
  148. package/.next/server/app/mcp/presets.segments/_tree.segment.rsc +2 -2
  149. package/.next/server/app/mcp.html +2 -2
  150. package/.next/server/app/mcp.rsc +5 -5
  151. package/.next/server/app/mcp.segments/!KGRhc2hib2FyZCk/mcp/__PAGE__.segment.rsc +2 -2
  152. package/.next/server/app/mcp.segments/!KGRhc2hib2FyZCk/mcp.segment.rsc +1 -1
  153. package/.next/server/app/mcp.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  154. package/.next/server/app/mcp.segments/_full.segment.rsc +5 -5
  155. package/.next/server/app/mcp.segments/_head.segment.rsc +1 -1
  156. package/.next/server/app/mcp.segments/_index.segment.rsc +2 -2
  157. package/.next/server/app/mcp.segments/_tree.segment.rsc +2 -2
  158. package/.next/server/app/playground/audio/speech.html +2 -2
  159. package/.next/server/app/playground/audio/speech.rsc +3 -3
  160. package/.next/server/app/playground/audio/speech.segments/!KGRhc2hib2FyZCk/playground/audio/speech/__PAGE__.segment.rsc +1 -1
  161. package/.next/server/app/playground/audio/speech.segments/!KGRhc2hib2FyZCk/playground/audio/speech.segment.rsc +1 -1
  162. package/.next/server/app/playground/audio/speech.segments/!KGRhc2hib2FyZCk/playground/audio.segment.rsc +1 -1
  163. package/.next/server/app/playground/audio/speech.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  164. package/.next/server/app/playground/audio/speech.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  165. package/.next/server/app/playground/audio/speech.segments/_full.segment.rsc +3 -3
  166. package/.next/server/app/playground/audio/speech.segments/_head.segment.rsc +1 -1
  167. package/.next/server/app/playground/audio/speech.segments/_index.segment.rsc +2 -2
  168. package/.next/server/app/playground/audio/speech.segments/_tree.segment.rsc +2 -2
  169. package/.next/server/app/playground/audio/transcription.html +2 -2
  170. package/.next/server/app/playground/audio/transcription.rsc +3 -3
  171. package/.next/server/app/playground/audio/transcription.segments/!KGRhc2hib2FyZCk/playground/audio/transcription/__PAGE__.segment.rsc +1 -1
  172. package/.next/server/app/playground/audio/transcription.segments/!KGRhc2hib2FyZCk/playground/audio/transcription.segment.rsc +1 -1
  173. package/.next/server/app/playground/audio/transcription.segments/!KGRhc2hib2FyZCk/playground/audio.segment.rsc +1 -1
  174. package/.next/server/app/playground/audio/transcription.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  175. package/.next/server/app/playground/audio/transcription.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  176. package/.next/server/app/playground/audio/transcription.segments/_full.segment.rsc +3 -3
  177. package/.next/server/app/playground/audio/transcription.segments/_head.segment.rsc +1 -1
  178. package/.next/server/app/playground/audio/transcription.segments/_index.segment.rsc +2 -2
  179. package/.next/server/app/playground/audio/transcription.segments/_tree.segment.rsc +2 -2
  180. package/.next/server/app/playground/chat.html +2 -2
  181. package/.next/server/app/playground/chat.rsc +5 -5
  182. package/.next/server/app/playground/chat.segments/!KGRhc2hib2FyZCk/playground/chat/__PAGE__.segment.rsc +2 -2
  183. package/.next/server/app/playground/chat.segments/!KGRhc2hib2FyZCk/playground/chat.segment.rsc +1 -1
  184. package/.next/server/app/playground/chat.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  185. package/.next/server/app/playground/chat.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  186. package/.next/server/app/playground/chat.segments/_full.segment.rsc +5 -5
  187. package/.next/server/app/playground/chat.segments/_head.segment.rsc +1 -1
  188. package/.next/server/app/playground/chat.segments/_index.segment.rsc +2 -2
  189. package/.next/server/app/playground/chat.segments/_tree.segment.rsc +2 -2
  190. package/.next/server/app/playground/embedding.html +2 -2
  191. package/.next/server/app/playground/embedding.rsc +3 -3
  192. package/.next/server/app/playground/embedding.segments/!KGRhc2hib2FyZCk/playground/embedding/__PAGE__.segment.rsc +1 -1
  193. package/.next/server/app/playground/embedding.segments/!KGRhc2hib2FyZCk/playground/embedding.segment.rsc +1 -1
  194. package/.next/server/app/playground/embedding.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  195. package/.next/server/app/playground/embedding.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  196. package/.next/server/app/playground/embedding.segments/_full.segment.rsc +3 -3
  197. package/.next/server/app/playground/embedding.segments/_head.segment.rsc +1 -1
  198. package/.next/server/app/playground/embedding.segments/_index.segment.rsc +2 -2
  199. package/.next/server/app/playground/embedding.segments/_tree.segment.rsc +2 -2
  200. package/.next/server/app/playground/image.html +2 -2
  201. package/.next/server/app/playground/image.rsc +3 -3
  202. package/.next/server/app/playground/image.segments/!KGRhc2hib2FyZCk/playground/image/__PAGE__.segment.rsc +1 -1
  203. package/.next/server/app/playground/image.segments/!KGRhc2hib2FyZCk/playground/image.segment.rsc +1 -1
  204. package/.next/server/app/playground/image.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  205. package/.next/server/app/playground/image.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  206. package/.next/server/app/playground/image.segments/_full.segment.rsc +3 -3
  207. package/.next/server/app/playground/image.segments/_head.segment.rsc +1 -1
  208. package/.next/server/app/playground/image.segments/_index.segment.rsc +2 -2
  209. package/.next/server/app/playground/image.segments/_tree.segment.rsc +2 -2
  210. package/.next/server/app/playground/video.html +2 -2
  211. package/.next/server/app/playground/video.rsc +3 -3
  212. package/.next/server/app/playground/video.segments/!KGRhc2hib2FyZCk/playground/video/__PAGE__.segment.rsc +1 -1
  213. package/.next/server/app/playground/video.segments/!KGRhc2hib2FyZCk/playground/video.segment.rsc +1 -1
  214. package/.next/server/app/playground/video.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  215. package/.next/server/app/playground/video.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  216. package/.next/server/app/playground/video.segments/_full.segment.rsc +3 -3
  217. package/.next/server/app/playground/video.segments/_head.segment.rsc +1 -1
  218. package/.next/server/app/playground/video.segments/_index.segment.rsc +2 -2
  219. package/.next/server/app/playground/video.segments/_tree.segment.rsc +2 -2
  220. package/.next/server/app/playground.html +2 -2
  221. package/.next/server/app/playground.rsc +3 -3
  222. package/.next/server/app/playground.segments/!KGRhc2hib2FyZCk/playground/__PAGE__.segment.rsc +1 -1
  223. package/.next/server/app/playground.segments/!KGRhc2hib2FyZCk/playground.segment.rsc +1 -1
  224. package/.next/server/app/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  225. package/.next/server/app/playground.segments/_full.segment.rsc +3 -3
  226. package/.next/server/app/playground.segments/_head.segment.rsc +1 -1
  227. package/.next/server/app/playground.segments/_index.segment.rsc +2 -2
  228. package/.next/server/app/playground.segments/_tree.segment.rsc +2 -2
  229. package/.next/server/app/providers.html +2 -2
  230. package/.next/server/app/providers.rsc +5 -5
  231. package/.next/server/app/providers.segments/!KGRhc2hib2FyZCk/providers/__PAGE__.segment.rsc +2 -2
  232. package/.next/server/app/providers.segments/!KGRhc2hib2FyZCk/providers.segment.rsc +1 -1
  233. package/.next/server/app/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  234. package/.next/server/app/providers.segments/_full.segment.rsc +5 -5
  235. package/.next/server/app/providers.segments/_head.segment.rsc +1 -1
  236. package/.next/server/app/providers.segments/_index.segment.rsc +2 -2
  237. package/.next/server/app/providers.segments/_tree.segment.rsc +2 -2
  238. package/.next/server/app/settings/api-keys.html +2 -2
  239. package/.next/server/app/settings/api-keys.rsc +3 -3
  240. package/.next/server/app/settings/api-keys.segments/!KGRhc2hib2FyZCk/settings/api-keys/__PAGE__.segment.rsc +1 -1
  241. package/.next/server/app/settings/api-keys.segments/!KGRhc2hib2FyZCk/settings/api-keys.segment.rsc +1 -1
  242. package/.next/server/app/settings/api-keys.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  243. package/.next/server/app/settings/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  244. package/.next/server/app/settings/api-keys.segments/_full.segment.rsc +3 -3
  245. package/.next/server/app/settings/api-keys.segments/_head.segment.rsc +1 -1
  246. package/.next/server/app/settings/api-keys.segments/_index.segment.rsc +2 -2
  247. package/.next/server/app/settings/api-keys.segments/_tree.segment.rsc +2 -2
  248. package/.next/server/app/settings/users.html +2 -2
  249. package/.next/server/app/settings/users.rsc +5 -5
  250. package/.next/server/app/settings/users.segments/!KGRhc2hib2FyZCk/settings/users/__PAGE__.segment.rsc +2 -2
  251. package/.next/server/app/settings/users.segments/!KGRhc2hib2FyZCk/settings/users.segment.rsc +1 -1
  252. package/.next/server/app/settings/users.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  253. package/.next/server/app/settings/users.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  254. package/.next/server/app/settings/users.segments/_full.segment.rsc +5 -5
  255. package/.next/server/app/settings/users.segments/_head.segment.rsc +1 -1
  256. package/.next/server/app/settings/users.segments/_index.segment.rsc +2 -2
  257. package/.next/server/app/settings/users.segments/_tree.segment.rsc +2 -2
  258. package/.next/server/app/settings.html +2 -2
  259. package/.next/server/app/settings.rsc +5 -5
  260. package/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
  261. package/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  262. package/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  263. package/.next/server/app/settings.segments/_full.segment.rsc +5 -5
  264. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  265. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  266. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  267. package/.next/server/chunks/[root-of-the-server]__02sypva._.js +2 -2
  268. package/.next/server/chunks/[root-of-the-server]__02sypva._.js.map +1 -1
  269. package/.next/server/chunks/[root-of-the-server]__0g3mnim._.js +4 -1
  270. package/.next/server/chunks/[root-of-the-server]__0g3mnim._.js.map +1 -1
  271. package/.next/server/chunks/[root-of-the-server]__0myi8j1._.js +2 -2
  272. package/.next/server/chunks/[root-of-the-server]__0myi8j1._.js.map +1 -1
  273. package/.next/server/chunks/[root-of-the-server]__1qg3d87._.js +2 -2
  274. package/.next/server/chunks/[root-of-the-server]__1qg3d87._.js.map +1 -1
  275. package/.next/server/chunks/ssr/_001fhst._.js +3 -0
  276. package/.next/server/chunks/ssr/_001fhst._.js.map +1 -0
  277. package/.next/server/chunks/ssr/_02wtd-0._.js +3 -0
  278. package/.next/server/chunks/ssr/_02wtd-0._.js.map +1 -0
  279. package/.next/server/chunks/ssr/_05ufvn1._.js +9 -0
  280. package/.next/server/chunks/ssr/_05ufvn1._.js.map +1 -0
  281. package/.next/server/chunks/ssr/{_1fd20ju._.js → _066w-6f._.js} +2 -2
  282. package/.next/server/chunks/ssr/{_1fd20ju._.js.map → _066w-6f._.js.map} +1 -1
  283. package/.next/server/chunks/ssr/_0gd7kq_._.js +1 -1
  284. package/.next/server/chunks/ssr/_0gd7kq_._.js.map +1 -1
  285. package/.next/server/chunks/ssr/_0k-6auj._.js +3 -0
  286. package/.next/server/chunks/ssr/_0k-6auj._.js.map +1 -0
  287. package/.next/server/chunks/ssr/_0qo9tx1._.js +3 -0
  288. package/.next/server/chunks/ssr/_0qo9tx1._.js.map +1 -0
  289. package/.next/server/chunks/ssr/_0uom5g-._.js +9 -0
  290. package/.next/server/chunks/ssr/_0uom5g-._.js.map +1 -0
  291. package/.next/server/chunks/ssr/_1b09eqp._.js +1 -1
  292. package/.next/server/chunks/ssr/_1b09eqp._.js.map +1 -1
  293. package/.next/server/chunks/ssr/_1oi0iqt._.js +9 -0
  294. package/.next/server/chunks/ssr/_1oi0iqt._.js.map +1 -0
  295. package/.next/server/chunks/ssr/_1q3gglq._.js +3 -0
  296. package/.next/server/chunks/ssr/_1q3gglq._.js.map +1 -0
  297. package/.next/server/chunks/ssr/_1y5sreb._.js +3 -0
  298. package/.next/server/chunks/ssr/_1y5sreb._.js.map +1 -0
  299. package/.next/server/chunks/ssr/_1zlpzyk._.js +1 -1
  300. package/.next/server/chunks/ssr/_1zlpzyk._.js.map +1 -1
  301. package/.next/server/chunks/ssr/app_(dashboard)_mcp_page_tsx_0cg7pz9._.js +1 -1
  302. package/.next/server/chunks/ssr/app_(dashboard)_mcp_page_tsx_0cg7pz9._.js.map +1 -1
  303. package/.next/server/middleware-build-manifest.js +3 -3
  304. package/.next/server/pages/404.html +2 -2
  305. package/.next/server/pages/500.html +1 -1
  306. package/.next/server/server-reference-manifest.js +1 -1
  307. package/.next/server/server-reference-manifest.json +1 -1
  308. package/.next/static/chunks/0brzabhj3foow.js +1 -0
  309. package/.next/static/chunks/0cbg1vmtl84ae.css +1 -0
  310. package/.next/static/chunks/0hf0pedij0d6a.js +7 -0
  311. package/.next/static/chunks/1lo5yg9gvb9eg.js +7 -0
  312. package/.next/static/chunks/1s-rfyrjre6lb.js +1 -0
  313. package/.next/static/chunks/27siz43i4h5l7.js +9 -0
  314. package/.next/static/chunks/29p-wdja_cbgh.js +11 -0
  315. package/.next/static/chunks/396ikhrcofosq.js +7 -0
  316. package/.next/static/chunks/3m3fw3fmcc301.js +7 -0
  317. package/.next/trace +2 -0
  318. package/.next/trace-build +1 -1
  319. package/.next/types/cache-life.d.ts +145 -0
  320. package/.next/types/routes.d.ts +139 -0
  321. package/.next/types/validator.ts +682 -0
  322. package/bin/loom.mjs +1 -1
  323. package/package.json +1 -1
  324. package/.next/server/chunks/ssr/_0g6iz5n._.js +0 -3
  325. package/.next/server/chunks/ssr/_0g6iz5n._.js.map +0 -1
  326. package/.next/server/chunks/ssr/_0mim08o._.js +0 -3
  327. package/.next/server/chunks/ssr/_0mim08o._.js.map +0 -1
  328. package/.next/server/chunks/ssr/_0xm-krv._.js +0 -9
  329. package/.next/server/chunks/ssr/_0xm-krv._.js.map +0 -1
  330. package/.next/server/chunks/ssr/_0zxn_u0._.js +0 -3
  331. package/.next/server/chunks/ssr/_0zxn_u0._.js.map +0 -1
  332. package/.next/server/chunks/ssr/_151pht4._.js +0 -9
  333. package/.next/server/chunks/ssr/_151pht4._.js.map +0 -1
  334. package/.next/server/chunks/ssr/_18tl_0o._.js +0 -9
  335. package/.next/server/chunks/ssr/_18tl_0o._.js.map +0 -1
  336. package/.next/server/chunks/ssr/_19nuoa6._.js +0 -9
  337. package/.next/server/chunks/ssr/_19nuoa6._.js.map +0 -1
  338. package/.next/server/chunks/ssr/_1ax02l9._.js +0 -3
  339. package/.next/server/chunks/ssr/_1ax02l9._.js.map +0 -1
  340. package/.next/server/chunks/ssr/_1fze3ic._.js +0 -9
  341. package/.next/server/chunks/ssr/_1fze3ic._.js.map +0 -1
  342. package/.next/static/chunks/0zryggvaj_s87.js +0 -7
  343. package/.next/static/chunks/16bx44gr1d_ij.js +0 -7
  344. package/.next/static/chunks/172e7ymu9a3w9.js +0 -1
  345. package/.next/static/chunks/1_w-1rm5wy0l7.css +0 -1
  346. package/.next/static/chunks/2j_bpzzylp1un.js +0 -9
  347. package/.next/static/chunks/2r2pwisd9bptv.js +0 -11
  348. package/.next/static/chunks/3at-42v-_yh7y.js +0 -7
  349. package/.next/static/chunks/3bp0ieicfxx5n.js +0 -1
  350. package/.next/static/chunks/3et56kszc9f9a.js +0 -7
  351. /package/.next/static/{S-TxD5uw__EHY12mebgvS → wCZkC7ZaYrxG37d-e2tac}/_buildManifest.js +0 -0
  352. /package/.next/static/{S-TxD5uw__EHY12mebgvS → wCZkC7ZaYrxG37d-e2tac}/_clientMiddlewareManifest.js +0 -0
  353. /package/.next/static/{S-TxD5uw__EHY12mebgvS → wCZkC7ZaYrxG37d-e2tac}/_ssgManifest.js +0 -0
@@ -0,0 +1,11 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,970065,e=>{"use strict";var t=e.i(843476),a=e.i(647163);e.s(["Card",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card",className:(0,a.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...r})},"CardContent",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-6",e),...r})},"CardDescription",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-muted-foreground text-sm",e),...r})},"CardHeader",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...r})},"CardTitle",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("leading-none font-semibold",e),...r})}])},531278,e=>{"use strict";var t=e.i(717521);e.s(["Loader2",()=>t.default])},23750,e=>{"use strict";var t=e.i(843476),a=e.i(647163);e.s(["Input",0,function({className:e,type:r,...s}){return(0,t.jsx)("input",{type:r,"data-slot":"input",className:(0,a.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...s})}])},10708,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(248425),s=a.forwardRef((e,a)=>(0,t.jsx)(r.Primitive.label,{...e,ref:a,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));s.displayName="Label";var i=e.i(647163);e.s(["Label",0,function({className:e,...a}){return(0,t.jsx)(s,{"data-slot":"label",className:(0,i.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...a})}],10708)},999682,e=>{"use strict";var t=e.i(271645);e.s(["usePrevious",0,function(e){let a=t.useRef({value:e,previous:e});return t.useMemo(()=>(a.current.value!==e&&(a.current.previous=a.current.value,a.current.value=e),a.current.previous),[e])}])},733467,e=>{"use strict";let t=(0,e.i(718512).defineResource)({path:"/models",key:"models",listShape:"array",staleTime:6e4,invalidates:["providers"]});e.s(["models",0,t])},631171,e=>{"use strict";let t=(0,e.i(475254).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["default",0,t])},470152,e=>{"use strict";e.s(["clamp",0,function(e,[t,a]){return Math.min(a,Math.max(t,e))}])},422758,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(647163);let s={openai:"/providers/openai.svg",claude:"/providers/claude.svg",anthropic:"/providers/claude.svg",gemini:"/providers/gemini.svg",google:"/providers/gemini.svg",vertexai:"/providers/vertexai.svg",vertex:"/providers/vertex.svg",deepseek:"/providers/deepseek.png",moonshot:"/providers/moonshot.png",zhipu:"/providers/zhipu.png",aliyun:"/providers/alibabacloud.png",alibabacloud:"/providers/alibabacloud.png",siliconflow:"/providers/siliconflow.svg",tei:"/providers/tei.svg",transformers:"/providers/transformers.svg",baichuan:"/providers/baichuan.png",volcengine:"/providers/volcengine.png",stepfun:"/providers/stepfun.png"},i=new Set(["openai","vertex","vertexai","siliconflow"]),n=(0,a.memo)(function({providerName:e,className:n,width:o=24,height:l=24}){let[d,c]=(0,a.useState)(!1),u=e.toLowerCase().replace(/[^a-z0-9_]/g,""),m=s[u],p=i.has(u);return m&&!d?(0,t.jsx)("img",{src:m,alt:"",width:o,height:l,loading:"lazy",className:(0,r.cn)("object-contain shrink-0",p&&"dark:invert",n),onError:()=>c(!0)}):(0,t.jsx)("span",{className:(0,r.cn)("rounded bg-muted flex items-center justify-center text-[8px] font-bold shrink-0",n),style:{width:o,height:l},children:e.substring(0,2).toUpperCase()})});e.s(["ProviderIcon",0,n])},555436,e=>{"use strict";let t=(0,e.i(475254).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",0,t],555436)},664659,e=>{"use strict";var t=e.i(631171);e.s(["ChevronDown",()=>t.default])},531245,e=>{"use strict";let t=(0,e.i(475254).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["Bot",0,t],531245)},643531,e=>{"use strict";var t=e.i(678745);e.s(["Check",()=>t.default])},777951,e=>{"use strict";var t=e.i(869230),a=e.i(992571),r=class extends t.QueryObserver{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type="infinite",super.setOptions(e)}getOptimisticResult(e){return e._type="infinite",super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){let{state:r}=e,s=super.createResult(e,t),{isFetching:i,isRefetching:n,isError:o,isRefetchError:l}=s,d=r.fetchMeta?.fetchMore?.direction,c=o&&"forward"===d,u=i&&"forward"===d,m=o&&"backward"===d,p=i&&"backward"===d;return{...s,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,a.hasNextPage)(t,r.data),hasPreviousPage:(0,a.hasPreviousPage)(t,r.data),isFetchNextPageError:c,isFetchingNextPage:u,isFetchPreviousPageError:m,isFetchingPreviousPage:p,isRefetchError:l&&!c&&!m,isRefetching:n&&!u&&!p}}},s=e.i(469637),i=e.i(912598),n=e.i(718512),o=e.i(715760);let l=(0,n.defineResource)({path:"/conversations",key:"conversations",paramsOf:e=>({page:e.page??1,page_size:e.page_size??20,sort:e.sort??"-updated_at",keyword:e.keyword}),staleTime:6e4}),d={...l,updateTitle:(e,t)=>l.update(e,{title:t}),messagesCacheKey:function(e,t){return[...l.keys.one(e),"messages-cache",t]},useInvalidateList:()=>{let e=(0,i.useQueryClient)();return()=>e.invalidateQueries({queryKey:l.keys.all(),predicate:e=>{let t=e.queryKey;return t.length>=2&&("list"===t[1]||"infinite"===t[1])}})},useInfinite:e=>{var t;let a=e?.pageSize??20,i=e?.keyword?.trim()||void 0;return t={queryKey:[...l.keys.all(),"infinite",e?.scope??"default",a,i??""],initialPageParam:1,queryFn:({pageParam:e=1})=>l.list({page:e,page_size:a,keyword:i}),getNextPageParam:e=>{if(e)return e.page*e.page_size<e.total?e.page+1:void 0}},(0,s.useBaseQuery)(t,r,void 0)},listMessages:(e,t)=>(0,o.fetcher)(`/conversations/${encodeURIComponent(e)}/messages?`+new URLSearchParams({page:String(t?.page??1),page_size:String(t?.page_size??50),sort:t?.sort??"-created_at"}).toString())},c=["messages"];e.s(["conversations",0,d,"messages",0,{keys:{all:()=>c},rate:(e,t,a)=>(0,o.fetcher)(`/messages/${encodeURIComponent(e)}/rate`,{method:"POST",body:JSON.stringify({rating:t,feedback:a})})}],777951)},281601,e=>{"use strict";var t=e.i(954616),a=e.i(266027),r=e.i(912598),s=e.i(271645),i=e.i(718512),n=e.i(715760);let o=(0,i.defineResource)({path:"/mcp/servers",key:"mcp-servers",listShape:"array",staleTime:6e4}),l={...o,listPresets:()=>(0,n.fetcher)("/mcp/presets"),usePresets:()=>(0,a.useQuery)({queryKey:["mcp-presets"],queryFn:()=>l.listPresets(),staleTime:3e5}),check:e=>(0,n.fetcher)(`/mcp/servers/${encodeURIComponent(e)}/check`,{method:"POST"}),useCheck:e=>{let a=(0,r.useQueryClient)();return(0,t.useMutation)({mutationFn:e=>l.check(e),onSuccess:t=>{a.invalidateQueries({queryKey:o.keys.all()}),e?.onSuccess?.(t)},onError:t=>e?.onError?.(t)})},checkStream:async(e,t,a)=>{let r=await (0,n.rawFetch)(`/mcp/servers/${encodeURIComponent(e)}/check`,{method:"POST",headers:{Accept:"text/event-stream"},signal:a?.signal});if(!r.body)throw Error("No response body");let s=r.body.getReader(),i=new TextDecoder,o="",l=null;try{for(;;){let{done:e,value:a}=await s.read();if(e)break;let r=(o+=i.decode(a,{stream:!0})).indexOf("\n\n");for(;-1!==r;){let e=o.slice(0,r);o=o.slice(r+2);let a=e.split("\n").find(e=>e.startsWith("data: "));if(a)try{let e=JSON.parse(a.slice(6));t(e),"result"===e.type?l=e.server:"error"===e.type&&e.server&&(l=e.server)}catch{}r=o.indexOf("\n\n")}}}finally{try{s.releaseLock()}catch{}}return l},useCheckStream:()=>{let e=(0,r.useQueryClient)(),[t,a]=s.useState(null),[i,n]=s.useState([]),[d,c]=s.useState(!1),[u,m]=s.useState(null),[p,h]=s.useState(null),f=s.useRef(null),x=s.useCallback(()=>{a(null),n([]),m(null),h(null)},[]),g=s.useCallback(()=>{f.current?.abort(),f.current=null,c(!1)},[]),v=s.useCallback(async t=>{x(),c(!0);let r=new AbortController;f.current=r;try{let s=await l.checkStream(t,e=>{"phase"===e.type?a(e.phase):"log"===e.type?n(t=>[...t,e.line]):"result"===e.type?h(e.server):"error"===e.type&&(m(e.message),e.server&&h(e.server))},{signal:r.signal});return e.invalidateQueries({queryKey:o.keys.all()}),s}catch(t){let e=t instanceof Error?t.message:String(t);return r.signal.aborted||m(e),null}finally{c(!1),f.current=null}},[x,e]);return s.useEffect(()=>()=>f.current?.abort(),[]),{run:v,cancel:g,reset:x,phase:t,logs:i,isChecking:d,error:u,result:p}}};e.s(["mcpServers",0,l])},788699,e=>{"use strict";let t=(0,e.i(475254).default)("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"}]]);e.s(["Pencil",0,t],788699)},319036,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(981140),s=e.i(820783),i=e.i(30030),n=e.i(369340),o=e.i(999682),l=e.i(635804),d=e.i(248425),c="Switch",[u,m]=(0,i.createContextScope)(c),[p,h]=u(c);function f(e){let{__scopeSwitch:r,checked:s,children:i,defaultChecked:o,disabled:l,form:d,name:u,onCheckedChange:m,required:h,value:f="on",internal_do_not_use_render:x}=e,[g,v]=(0,n.useControllableState)({prop:s,defaultProp:o??!1,onChange:m,caller:c}),[b,y]=a.useState(null),[j,w]=a.useState(null),k=a.useRef(!1),N=!b||!!d||!!b.closest("form"),S={checked:g,setChecked:v,disabled:l,control:b,setControl:y,name:u,form:d,value:f,hasConsumerStoppedPropagationRef:k,required:h,defaultChecked:o,isFormControl:N,bubbleInput:j,setBubbleInput:w};return(0,t.jsx)(p,{scope:r,...S,children:"function"==typeof x?x(S):i})}var x="SwitchTrigger",g=a.forwardRef(({__scopeSwitch:e,onClick:a,...i},n)=>{let{value:o,disabled:l,checked:c,required:u,setControl:m,setChecked:p,hasConsumerStoppedPropagationRef:f,isFormControl:g,bubbleInput:v}=h(x,e),b=(0,s.useComposedRefs)(n,m);return(0,t.jsx)(d.Primitive.button,{type:"button",role:"switch","aria-checked":c,"aria-required":u,"data-state":k(c),"data-disabled":l?"":void 0,disabled:l,value:o,...i,ref:b,onClick:(0,r.composeEventHandlers)(a,e=>{p(e=>!e),v&&g&&(f.current=e.isPropagationStopped(),f.current||e.stopPropagation())})})});g.displayName=x;var v=a.forwardRef((e,a)=>{let{__scopeSwitch:r,name:s,checked:i,defaultChecked:n,required:o,disabled:l,value:d,onCheckedChange:c,form:u,...m}=e;return(0,t.jsx)(f,{__scopeSwitch:r,checked:i,defaultChecked:n,disabled:l,required:o,onCheckedChange:c,name:s,form:u,value:d,internal_do_not_use_render:({isFormControl:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(g,{...m,ref:a,__scopeSwitch:r}),e&&(0,t.jsx)(w,{__scopeSwitch:r})]})})});v.displayName=c;var b="SwitchThumb",y=a.forwardRef((e,a)=>{let{__scopeSwitch:r,...s}=e,i=h(b,r);return(0,t.jsx)(d.Primitive.span,{"data-state":k(i.checked),"data-disabled":i.disabled?"":void 0,...s,ref:a})});y.displayName=b;var j="SwitchBubbleInput",w=a.forwardRef(({__scopeSwitch:e,...r},i)=>{let{control:n,hasConsumerStoppedPropagationRef:c,checked:u,defaultChecked:m,required:p,disabled:f,name:x,value:g,form:v,bubbleInput:b,setBubbleInput:y}=h(j,e),w=(0,s.useComposedRefs)(i,y),k=(0,o.usePrevious)(u),N=(0,l.useSize)(n);a.useEffect(()=>{if(!b)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!c.current;if(k!==u&&e){let a=new Event("click",{bubbles:t});e.call(b,u),b.dispatchEvent(a)}},[b,k,u,c]);let S=a.useRef(u);return(0,t.jsx)(d.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:m??S.current,required:p,disabled:f,name:x,value:g,form:v,...r,tabIndex:-1,ref:w,style:{...r.style,...N,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function k(e){return e?"checked":"unchecked"}w.displayName=j;var N=e.i(647163);e.s(["Switch",0,function({className:e,...a}){return(0,t.jsx)(v,{"data-slot":"switch",className:(0,N.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...a,children:(0,t.jsx)(y,{"data-slot":"switch-thumb",className:(0,N.cn)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}],319036)},184762,e=>{"use strict";var t=e.i(843476),a=e.i(647163);e.s(["Textarea",0,function({className:e,...r}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,a.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),...r})}])},137309,117089,e=>{"use strict";var t=e.i(843476);let a=(0,e.i(475254).default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);var r=e.i(947627),s=e.i(647163);e.s(["DataTableCell",0,function({className:e,...a}){return(0,t.jsx)(r.TableCell,{className:(0,s.cn)("py-2 first:pl-4 last:pr-4",e),...a})},"DataTableEmpty",0,function({colSpan:e,children:s}){return(0,t.jsx)(r.TableRow,{className:"hover:bg-transparent",children:(0,t.jsx)(r.TableCell,{colSpan:e,className:"h-48 text-center align-middle text-muted-foreground/40",children:(0,t.jsx)("div",{className:"flex items-center justify-center",children:(0,t.jsx)(a,{className:"h-8 w-8","aria-label":"empty"})})})})},"DataTableHead",0,function({className:e,...a}){return(0,t.jsx)(r.TableHead,{className:(0,s.cn)("h-10 text-xs font-semibold uppercase tracking-wide text-muted-foreground/80 first:pl-4 last:pr-4",e),...a})},"DataTableHeader",0,function({className:e,...a}){return(0,t.jsx)(r.TableHeader,{className:(0,s.cn)("bg-muted/40 sticky top-0 z-10",e),...a})},"DataTableHeaderRow",0,function({className:e,...a}){return(0,t.jsx)(r.TableRow,{className:(0,s.cn)("hover:bg-transparent border-b-muted/60 shadow-sm",e),...a})},"DataTableRow",0,function({className:e,interactive:a=!0,...i}){return(0,t.jsx)(r.TableRow,{className:(0,s.cn)("h-10 border-b-muted/20 even:bg-muted/50 group",a&&"cursor-pointer hover:bg-muted/90",e),...i})},"DataTableShell",0,function({className:e,...a}){return(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsx)(r.Table,{className:e,...a})})}],137309),e.s(["DataTableBody",()=>r.TableBody],117089)},630374,e=>{"use strict";var t=e.i(843476),a=e.i(326999),r=e.i(995926),s=e.i(647163);function i({...e}){return(0,t.jsx)(a.Portal,{"data-slot":"dialog-portal",...e})}function n({className:e,...r}){return(0,t.jsx)(a.Overlay,{"data-slot":"dialog-overlay",className:(0,s.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...r})}e.s(["Dialog",0,function({...e}){return(0,t.jsx)(a.Root,{"data-slot":"dialog",...e})},"DialogContent",0,function({className:e,children:o,showCloseButton:l=!0,...d}){return(0,t.jsxs)(i,{"data-slot":"dialog-portal",children:[(0,t.jsx)(n,{}),(0,t.jsxs)(a.Content,{"data-slot":"dialog-content",className:(0,s.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",e),...d,children:[o,l&&(0,t.jsxs)(a.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,t.jsx)(r.XIcon,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"DialogDescription",0,function({className:e,...r}){return(0,t.jsx)(a.Description,{"data-slot":"dialog-description",className:(0,s.cn)("text-muted-foreground text-sm",e),...r})},"DialogFooter",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"dialog-footer",className:(0,s.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...a})},"DialogHeader",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"dialog-header",className:(0,s.cn)("flex flex-col gap-2 text-center sm:text-left",e),...a})},"DialogTitle",0,function({className:e,...r}){return(0,t.jsx)(a.Title,{"data-slot":"dialog-title",className:(0,s.cn)("text-lg leading-none font-semibold",e),...r})}])},994179,e=>{"use strict";var t=e.i(843476),a=e.i(991918),r=e.i(225913),s=e.i(647163);let i=(0,r.cva)("inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:r,asChild:n=!1,...o}){let l=n?a.Slot:"span";return(0,t.jsx)(l,{"data-slot":"badge",className:(0,s.cn)(i({variant:r}),e),...o})}])},282022,e=>{"use strict";let t=(0,e.i(718512).defineResource)({path:"/logs/generations",key:"logs",staleTime:3e4});e.s(["logs",0,t])},511169,e=>{"use strict";let t=(0,e.i(718512).defineResource)({path:"/users",key:"users",staleTime:6e4});e.s(["users",0,t])},32506,e=>{"use strict";var t=e.i(954616),a=e.i(266027),r=e.i(718512),s=e.i(715760);let i=(0,r.defineResource)({path:"/providers",key:"providers",listShape:"array",staleTime:6e4,invalidates:["models"]}),n={...i,listModels:e=>(0,s.fetcher)(`/providers/${encodeURIComponent(e)}/models`),reload:()=>(0,s.fetcher)("/providers/reload",{method:"POST"}),check:e=>(0,s.fetcher)(`/providers/${encodeURIComponent(e)}/check`,{method:"POST"}),probe:e=>(0,s.fetcher)("/providers/probe",{method:"POST",body:JSON.stringify({health_check_url:e}),headers:{"Content-Type":"application/json"}}),useModels:e=>(0,a.useQuery)({queryKey:[...i.keys.one(e??""),"models"],queryFn:()=>n.listModels(e),enabled:!!e}),useReload:e=>{let a=i.useInvalidate();return(0,t.useMutation)({mutationFn:n.reload,...e,onSuccess:(t,r,s,i)=>{a(),e?.onSuccess?.(t,r,s,i)}})},useCheck:(e,a)=>{let r=i.useInvalidate();return(0,t.useMutation)({mutationFn:()=>n.check(e),...a,onSuccess:(e,t,s,i)=>{r(),a?.onSuccess?.(e,t,s,i)}})}};e.s(["providers",0,n])},251383,402487,581445,778296,585381,e=>{"use strict";e.i(511169),e.i(32506),e.i(733467),e.i(518874),e.i(282022),e.i(777951);var t=e.i(718512);let a=(0,t.defineResource)({path:"/capabilities",key:"capabilities",listShape:"array",staleTime:6e4});e.s(["capabilities",0,a],402487);let r=(0,t.defineResource)({path:"/adapters",key:"adapters",listShape:"array",staleTime:6e4});e.s(["adapters",0,r],581445);let s=(0,t.defineResource)({path:"/variants",key:"variants",listShape:"array",staleTime:6e4});e.s(["variants",0,s],778296);let i=(0,t.defineResource)({path:"/tools",key:"tools",listShape:"array",staleTime:6e4});e.s(["tools",0,i],585381),e.i(281601),e.s([],251383)},727612,e=>{"use strict";let t=(0,e.i(475254).default)("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"}]]);e.s(["Trash2",0,t],727612)},878894,e=>{"use strict";var t=e.i(582458);e.s(["AlertTriangle",()=>t.default])},57559,e=>{"use strict";var t=e.i(843476),a=e.i(878894),r=e.i(531278),s=e.i(271645),i=e.i(30030),n=e.i(820783),o=e.i(326999),l=e.i(981140),d=e.i(991918),c="AlertDialog",[u,m]=(0,i.createContextScope)(c,[o.createDialogScope]),p=(0,o.createDialogScope)(),h=e=>{let{__scopeAlertDialog:a,...r}=e,s=p(a);return(0,t.jsx)(o.Root,{...s,...r,modal:!0})};h.displayName=c,s.forwardRef((e,a)=>{let{__scopeAlertDialog:r,...s}=e,i=p(r);return(0,t.jsx)(o.Trigger,{...i,...s,ref:a})}).displayName="AlertDialogTrigger";var f=e=>{let{__scopeAlertDialog:a,...r}=e,s=p(a);return(0,t.jsx)(o.Portal,{...s,...r})};f.displayName="AlertDialogPortal";var x=s.forwardRef((e,a)=>{let{__scopeAlertDialog:r,...s}=e,i=p(r);return(0,t.jsx)(o.Overlay,{...i,...s,ref:a})});x.displayName="AlertDialogOverlay";var g="AlertDialogContent",[v,b]=u(g),y=(0,d.createSlottable)("AlertDialogContent"),j=s.forwardRef((e,a)=>{let{__scopeAlertDialog:r,children:i,...d}=e,c=p(r),u=s.useRef(null),m=(0,n.useComposedRefs)(a,u),h=s.useRef(null);return(0,t.jsx)(o.WarningProvider,{contentName:g,titleName:w,docsSlug:"alert-dialog",children:(0,t.jsx)(v,{scope:r,cancelRef:h,children:(0,t.jsxs)(o.Content,{role:"alertdialog",...c,...d,ref:m,onOpenAutoFocus:(0,l.composeEventHandlers)(d.onOpenAutoFocus,e=>{e.preventDefault(),h.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,t.jsx)(y,{children:i}),(0,t.jsx)(T,{contentRef:u})]})})})});j.displayName=g;var w="AlertDialogTitle",k=s.forwardRef((e,a)=>{let{__scopeAlertDialog:r,...s}=e,i=p(r);return(0,t.jsx)(o.Title,{...i,...s,ref:a})});k.displayName=w;var N="AlertDialogDescription",S=s.forwardRef((e,a)=>{let{__scopeAlertDialog:r,...s}=e,i=p(r);return(0,t.jsx)(o.Description,{...i,...s,ref:a})});S.displayName=N;var C=s.forwardRef((e,a)=>{let{__scopeAlertDialog:r,...s}=e,i=p(r);return(0,t.jsx)(o.Close,{...i,...s,ref:a})});C.displayName="AlertDialogAction";var D="AlertDialogCancel",P=s.forwardRef((e,a)=>{let{__scopeAlertDialog:r,...s}=e,{cancelRef:i}=b(D,r),l=p(r),d=(0,n.useComposedRefs)(a,i);return(0,t.jsx)(o.Close,{...l,...s,ref:d})});P.displayName=D;var T=({contentRef:e})=>{let t=`\`${g}\` requires a description for the component to be accessible for screen reader users.
2
+
3
+ You can add a description to the \`${g}\` by passing a \`${N}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
4
+
5
+ Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${g}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
6
+
7
+ For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return s.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},R=e.i(647163),M=e.i(167881);let _=s.forwardRef(({className:e,...a},r)=>(0,t.jsx)(x,{className:(0,R.cn)("fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...a,ref:r}));_.displayName=x.displayName;let E=s.forwardRef(({className:e,...a},r)=>(0,t.jsxs)(f,{children:[(0,t.jsx)(_,{}),(0,t.jsx)(j,{ref:r,className:(0,R.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",e),...a})]}));E.displayName=j.displayName;let z=({className:e,...a})=>(0,t.jsx)("div",{className:(0,R.cn)("flex flex-col space-y-2 text-center sm:text-left",e),...a});z.displayName="AlertDialogHeader";let A=({className:e,...a})=>(0,t.jsx)("div",{className:(0,R.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...a});A.displayName="AlertDialogFooter";let O=s.forwardRef(({className:e,...a},r)=>(0,t.jsx)(k,{ref:r,className:(0,R.cn)("text-lg font-semibold",e),...a}));O.displayName=k.displayName;let H=s.forwardRef(({className:e,...a},r)=>(0,t.jsx)(S,{ref:r,className:(0,R.cn)("text-sm text-muted-foreground",e),...a}));H.displayName=S.displayName;let I=s.forwardRef(({className:e,...a},r)=>(0,t.jsx)(C,{ref:r,className:(0,R.cn)((0,M.buttonVariants)(),e),...a}));I.displayName=C.displayName;let L=s.forwardRef(({className:e,...a},r)=>(0,t.jsx)(P,{ref:r,className:(0,R.cn)((0,M.buttonVariants)({variant:"outline"}),"mt-2 sm:mt-0",e),...a}));L.displayName=P.displayName,e.s(["ConfirmDialog",0,function({open:e,onOpenChange:s,title:i,description:n,confirmLabel:o="Confirm",cancelLabel:l="Cancel",destructive:d,isLoading:c,onConfirm:u}){return(0,t.jsx)(h,{open:e,onOpenChange:s,children:(0,t.jsxs)(E,{children:[(0,t.jsx)(z,{children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[d&&(0,t.jsx)("div",{className:"mt-0.5 flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-destructive/10 text-destructive",children:(0,t.jsx)(a.AlertTriangle,{className:"h-4 w-4"})}),(0,t.jsxs)("div",{className:"flex-1 space-y-1.5",children:[(0,t.jsx)(O,{className:(0,R.cn)(d&&"text-foreground"),children:i}),(0,t.jsx)(H,{children:n})]})]})}),(0,t.jsxs)(A,{children:[(0,t.jsx)(L,{disabled:c,children:l}),(0,t.jsxs)(I,{onClick:e=>{e.preventDefault(),u()},disabled:c,className:(0,R.cn)(d&&"bg-destructive text-white shadow-sm shadow-destructive/30 hover:bg-destructive/90 focus-visible:ring-destructive/40"),children:[c&&(0,t.jsx)(r.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),o]})]})]})})}],57559)},947627,e=>{"use strict";var t=e.i(843476),a=e.i(647163);e.s(["Table",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,t.jsx)("table",{"data-slot":"table",className:(0,a.cn)("w-full caption-bottom text-sm",e),...r})})},"TableBody",0,function({className:e,...r}){return(0,t.jsx)("tbody",{"data-slot":"table-body",className:(0,a.cn)("[&_tr:last-child]:border-0",e),...r})},"TableCell",0,function({className:e,...r}){return(0,t.jsx)("td",{"data-slot":"table-cell",className:(0,a.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...r})},"TableHead",0,function({className:e,...r}){return(0,t.jsx)("th",{"data-slot":"table-head",className:(0,a.cn)("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...r})},"TableHeader",0,function({className:e,...r}){return(0,t.jsx)("thead",{"data-slot":"table-header",className:(0,a.cn)("[&_tr]:border-b",e),...r})},"TableRow",0,function({className:e,...r}){return(0,t.jsx)("tr",{"data-slot":"table-row",className:(0,a.cn)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",e),...r})}])},107233,e=>{"use strict";let t=(0,e.i(475254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],107233)},284614,e=>{"use strict";let t=(0,e.i(475254).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",0,t],284614)},367240,656694,90382,e=>{"use strict";let t=(0,e.i(475254).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],367240);var a=e.i(768834),r=e.i(579473);let s={sendOnEnter:!0,showTimestamps:!0,compactMode:!1},i=(0,a.create)()((0,r.persist)(e=>({...s,updateDeviceSettings:t=>e(e=>({...e,...t})),resetDeviceSettings:()=>e(s)}),{name:"loom-device-settings",storage:(0,r.createJSONStorage)(()=>localStorage)}));e.s(["useDeviceSettingsStore",0,i],656694);var n=e.i(843476),o=e.i(271645),l=e.i(470152),d=e.i(981140),c=e.i(820783),u=e.i(30030),m=e.i(369340),p=e.i(586318),h=e.i(999682),f=e.i(635804),x=e.i(248425),g=e.i(75830),v=["PageUp","PageDown"],b=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],y={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},j="Slider",[w,k,N]=(0,g.createCollection)(j),[S,C]=(0,u.createContextScope)(j,[N]),[D,P]=S(j),T=o.forwardRef((e,t)=>{let{name:a,min:r=0,max:s=100,step:i=1,orientation:c="horizontal",disabled:u=!1,minStepsBetweenThumbs:p=0,defaultValue:h=[r],value:f,onValueChange:x=()=>{},onValueCommit:g=()=>{},inverted:y=!1,form:j,...k}=e,N=o.useRef(new Set),S=o.useRef(0),C=o.useRef(!1),P="horizontal"===c,[T=[],R]=(0,m.useControllableState)({prop:f,defaultProp:h,onChange:e=>{let t=[...N.current];t[S.current]?.focus({preventScroll:!0,focusVisible:C.current}),C.current=!1,x(e)}}),M=o.useRef(T);function z(e,t,{commit:a}={commit:!1}){let n,o=function(e){if(!Number.isFinite(e))return 0;let t=e.toString();if(t.includes("e")){let[e,a]=t.split("e"),r=e.split(".")[1]||"",s=Number(a);return Math.max(0,r.length-s)}let a=t.split(".")[1];return a?a.length:0}(i),d=Math.round((Math.round((e-r)/i)*i+r)*(n=Math.pow(10,o)))/n,c=(0,l.clamp)(d,[r,s]);R((e=[])=>{let r=function(e=[],t,a){let r=[...e];return r[a]=t,r.sort((e,t)=>e-t)}(e,c,t);if(!function(e,t){if(t>0)return Math.min(...e.slice(0,-1).map((t,a)=>e[a+1]-t))>=t;return!0}(r,p*i))return e;{S.current=r.indexOf(c);let t=String(r)!==String(e);return t&&a&&g(r),t?r:e}})}return(0,n.jsx)(D,{scope:e.__scopeSlider,name:a,disabled:u,min:r,max:s,valueIndexToChangeRef:S,thumbs:N.current,values:T,orientation:c,form:j,children:(0,n.jsx)(w.Provider,{scope:e.__scopeSlider,children:(0,n.jsx)(w.Slot,{scope:e.__scopeSlider,children:(0,n.jsx)(P?_:E,{"aria-disabled":u,"data-disabled":u?"":void 0,...k,ref:t,onPointerDown:(0,d.composeEventHandlers)(k.onPointerDown,()=>{u||(M.current=T,C.current=!1)}),min:r,max:s,inverted:y,onSlideStart:u?void 0:function(e){let t=function(e,t){if(1===e.length)return 0;let a=e.map(e=>Math.abs(e-t)),r=Math.min(...a);return a.indexOf(r)}(T,e);z(e,t)},onSlideMove:u?void 0:function(e){z(e,S.current)},onSlideEnd:u?void 0:function(){let e=M.current[S.current];T[S.current]!==e&&g(T)},onHomeKeyDown:()=>{u||(C.current=!0,z(r,0,{commit:!0}))},onEndKeyDown:()=>{u||(C.current=!0,z(s,T.length-1,{commit:!0}))},onStepKeyDown:({event:e,direction:t})=>{if(!u){C.current=!0;let a=v.includes(e.key)||e.shiftKey&&b.includes(e.key),r=S.current;z(T[r]+i*(a?10:1)*t,r,{commit:!0})}}})})})})});T.displayName=j;var[R,M]=S(j,{startEdge:"left",endEdge:"right",size:"width",direction:1}),_=o.forwardRef((e,t)=>{let{min:a,max:r,dir:s,inverted:i,onSlideStart:l,onSlideMove:d,onSlideEnd:u,onStepKeyDown:m,...h}=e,[f,x]=o.useState(null),g=(0,c.useComposedRefs)(t,e=>x(e)),v=o.useRef(void 0),b=(0,p.useDirection)(s),j="ltr"===b,w=j&&!i||!j&&i;function k(e){let t=v.current||f.getBoundingClientRect(),s=X([0,t.width],w?[a,r]:[r,a]);return v.current=t,s(e-t.left)}return(0,n.jsx)(R,{scope:e.__scopeSlider,startEdge:w?"left":"right",endEdge:w?"right":"left",direction:w?1:-1,size:"width",children:(0,n.jsx)(z,{dir:b,"data-orientation":"horizontal",...h,ref:g,style:{...h.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:e=>{let t=k(e.clientX);l?.(t)},onSlideMove:e=>{let t=k(e.clientX);d?.(t)},onSlideEnd:()=>{v.current=void 0,u?.()},onStepKeyDown:e=>{let t=y[w?"from-left":"from-right"].includes(e.key);m?.({event:e,direction:t?-1:1})}})})}),E=o.forwardRef((e,t)=>{let{min:a,max:r,inverted:s,onSlideStart:i,onSlideMove:l,onSlideEnd:d,onStepKeyDown:u,...m}=e,p=o.useRef(null),h=(0,c.useComposedRefs)(t,p),f=o.useRef(void 0),x=!s;function g(e){let t=f.current||p.current.getBoundingClientRect(),s=X([0,t.height],x?[r,a]:[a,r]);return f.current=t,s(e-t.top)}return(0,n.jsx)(R,{scope:e.__scopeSlider,startEdge:x?"bottom":"top",endEdge:x?"top":"bottom",size:"height",direction:x?1:-1,children:(0,n.jsx)(z,{"data-orientation":"vertical",...m,ref:h,style:{...m.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:e=>{let t=g(e.clientY);i?.(t)},onSlideMove:e=>{let t=g(e.clientY);l?.(t)},onSlideEnd:()=>{f.current=void 0,d?.()},onStepKeyDown:e=>{let t=y[x?"from-bottom":"from-top"].includes(e.key);u?.({event:e,direction:t?-1:1})}})})}),z=o.forwardRef((e,t)=>{let{__scopeSlider:a,onSlideStart:r,onSlideMove:s,onSlideEnd:i,onHomeKeyDown:o,onEndKeyDown:l,onStepKeyDown:c,...u}=e,m=P(j,a);return(0,n.jsx)(x.Primitive.span,{...u,ref:t,onKeyDown:(0,d.composeEventHandlers)(e.onKeyDown,e=>{"Home"===e.key?(o(e),e.preventDefault()):"End"===e.key?(l(e),e.preventDefault()):v.concat(b).includes(e.key)&&(c(e),e.preventDefault())}),onPointerDown:(0,d.composeEventHandlers)(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),m.thumbs.has(t)?t.focus({preventScroll:!0,focusVisible:!1}):r(e)}),onPointerMove:(0,d.composeEventHandlers)(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&s(e)}),onPointerUp:(0,d.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),i(e))})})}),A="SliderTrack",O=o.forwardRef((e,t)=>{let{__scopeSlider:a,...r}=e,s=P(A,a);return(0,n.jsx)(x.Primitive.span,{"data-disabled":s.disabled?"":void 0,"data-orientation":s.orientation,...r,ref:t})});O.displayName=A;var H="SliderRange",I=o.forwardRef((e,t)=>{let{__scopeSlider:a,...r}=e,s=P(H,a),i=M(H,a),l=o.useRef(null),d=(0,c.useComposedRefs)(t,l),u=s.values.length,m=s.values.map(e=>W(e,s.min,s.max)),p=u>1?Math.min(...m):0,h=100-Math.max(...m);return(0,n.jsx)(x.Primitive.span,{"data-orientation":s.orientation,"data-disabled":s.disabled?"":void 0,...r,ref:d,style:{...e.style,[i.startEdge]:p+"%",[i.endEdge]:h+"%"}})});I.displayName=H;var L="SliderThumb",[F,U]=S(L),B="SliderThumbProvider";function q(e){let{__scopeSlider:t,name:a,children:r,internal_do_not_use_render:s}=e,i=P(B,t),l=k(t),[d,c]=o.useState(null),u=o.useMemo(()=>d?l().findIndex(e=>e.ref.current===d):-1,[l,d]),m=(0,f.useSize)(d),p=!d||!!i.form||!!d.closest("form"),h=i.values[u],x=a??(i.name?i.name+(i.values.length>1?"[]":""):void 0),g=void 0===h?0:W(h,i.min,i.max);o.useEffect(()=>{if(d)return i.thumbs.add(d),()=>{i.thumbs.delete(d)}},[d,i.thumbs]);let v={value:h,name:x,form:i.form,isFormControl:p,index:u,thumb:d,onThumbChange:c,percent:g,size:m};return(0,n.jsx)(F,{scope:t,...v,children:"function"==typeof s?s(v):r})}q.displayName=B;var K="SliderThumbTrigger",V=o.forwardRef((e,t)=>{var a,r,s,i,o;let l,u,{__scopeSlider:m,...p}=e,h=P(K,m),f=M(K,m),{index:g,value:v,percent:b,size:y,onThumbChange:j}=U(K,m),k=(0,c.useComposedRefs)(t,e=>j(e)),N=(a=g,(r=h.values.length)>2?`Value ${a+1} of ${r}`:2===r?["Minimum","Maximum"][a]:void 0),S=y?.[f.size],C=S?(s=S,i=b,o=f.direction,u=X([0,50],[0,l=s/2]),(l-u(i)*o)*o):0;return(0,n.jsx)("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[f.startEdge]:`calc(${b}% + ${C}px)`},children:(0,n.jsx)(w.ItemSlot,{scope:m,children:(0,n.jsx)(x.Primitive.span,{role:"slider","aria-label":e["aria-label"]||N,"aria-valuemin":h.min,"aria-valuenow":v,"aria-valuemax":h.max,"aria-orientation":h.orientation,"data-orientation":h.orientation,"data-disabled":h.disabled?"":void 0,tabIndex:h.disabled?void 0:0,...p,ref:k,style:void 0===v?{display:"none"}:e.style,onFocus:(0,d.composeEventHandlers)(e.onFocus,()=>{h.valueIndexToChangeRef.current=g})})})})});V.displayName=K;var $=o.forwardRef((e,t)=>{let{__scopeSlider:a,name:r,...s}=e;return(0,n.jsx)(q,{__scopeSlider:a,name:r,internal_do_not_use_render:({index:e,isFormControl:r})=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(V,{...s,ref:t,__scopeSlider:a}),r?(0,n.jsx)(J,{__scopeSlider:a},e):null]})})});$.displayName=L;var Q="SliderBubbleInput",J=o.forwardRef(({__scopeSlider:e,...t},a)=>{let{value:r,name:s,form:i}=U(Q,e),l=o.useRef(null),d=(0,c.useComposedRefs)(l,a),u=(0,h.usePrevious)(r);return o.useEffect(()=>{let e=l.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;if(u!==r&&t){let a=new Event("input",{bubbles:!0});t.call(e,r),e.dispatchEvent(a)}},[u,r]),(0,n.jsx)(x.Primitive.input,{style:{display:"none"},name:s,form:i,...t,ref:d,defaultValue:r})});function W(e,t,a){return(0,l.clamp)(100/(a-t)*(e-t),[0,100])}function X(e,t){return a=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(a-e[0])}}J.displayName=Q;var Y=e.i(647163);e.s(["Slider",0,function({className:e,defaultValue:t,value:a,min:r=0,max:s=100,...i}){let l=o.useMemo(()=>Array.isArray(a)?a:Array.isArray(t)?t:[r,s],[a,t,r,s]);return(0,n.jsxs)(T,{"data-slot":"slider",defaultValue:t,value:a,min:r,max:s,className:(0,Y.cn)("relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",e),...i,children:[(0,n.jsx)(O,{"data-slot":"slider-track",className:(0,Y.cn)("bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"),children:(0,n.jsx)(I,{"data-slot":"slider-range",className:(0,Y.cn)("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")})}),Array.from({length:l.length},(e,t)=>(0,n.jsx)($,{"data-slot":"slider-thumb",className:"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"},t))]})}],90382)},888501,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(531245),s=e.i(686311),i=e.i(475254);let n=(0,i.default)("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]);var o=e.i(367240);let l=(0,i.default)("sliders-vertical",[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]]);var d=e.i(284614),c=e.i(195116),u=e.i(846696),m=e.i(407995),p=e.i(16942),h=e.i(656694),f=e.i(167881),x=e.i(647163);let g=(0,i.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),v=(0,i.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),b=(0,i.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);var y=e.i(643531);e.i(251383),e.i(443674);var j=e.i(928435),w=e.i(90382),k=e.i(970065),N=e.i(23750),S=e.i(664659),C=e.i(555436),D=e.i(422758);function P({icon:e,title:a,description:r,action:s,children:i}){return(0,t.jsxs)(k.Card,{children:[(0,t.jsx)(k.CardHeader,{className:"pb-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"rounded-lg bg-primary/10 p-2",children:(0,t.jsx)(e,{className:"h-4 w-4 text-primary"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)(k.CardTitle,{className:"text-base",children:a}),r&&(0,t.jsx)(k.CardDescription,{className:"text-sm",children:r})]}),s]})}),(0,t.jsx)(k.CardContent,{className:"space-y-4",children:i})]})}function T({label:e,description:a,children:r,stacked:s}){return s?(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"space-y-0.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:e}),a&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:a})]}),(0,t.jsx)("div",{children:r})]}):(0,t.jsxs)("div",{className:"flex flex-col justify-between gap-2 sm:flex-row sm:items-center sm:gap-4",children:[(0,t.jsxs)("div",{className:"shrink-0 space-y-0.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:e}),a&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:a})]}),(0,t.jsx)("div",{className:"w-full sm:max-w-[280px]",children:r})]})}let R=a.memo(function({value:e,onValueChange:r,models:s,isLoading:i,placeholder:n}){let[o,l]=a.useState(!1),[d,c]=a.useState(""),u=a.useRef(null),m=a.useMemo(()=>{if(!d)return s;let e=d.toLowerCase();return s.filter(t=>t.name.toLowerCase().includes(e))},[s,d]);return a.useEffect(()=>{if(!o)return;let e=e=>{u.current&&!u.current.contains(e.target)&&l(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[o]),a.useEffect(()=>{o||c("")},[o]),(0,t.jsxs)("div",{ref:u,className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>!i&&l(!o),className:(0,x.cn)("flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 text-sm","transition-colors hover:bg-muted/50",i&&"cursor-not-allowed opacity-50"),disabled:i,children:[(0,t.jsx)("span",{className:"truncate",children:e||n}),(0,t.jsx)(S.ChevronDown,{className:"h-4 w-4 shrink-0 opacity-50"})]}),o&&(0,t.jsxs)("div",{className:"absolute z-50 mt-1 w-full rounded-md border bg-popover shadow-md",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(C.Search,{className:"absolute left-2 top-1.5 h-3.5 w-3.5 text-muted-foreground"}),(0,t.jsx)(N.Input,{placeholder:"Search...",className:"h-7 pl-7 text-xs",value:d,onChange:e=>c(e.target.value),autoFocus:!0})]})}),(0,t.jsx)("div",{className:"scrollbar-thin max-h-[240px] overflow-y-auto p-1",children:0===m.length?(0,t.jsx)("div",{className:"p-2 text-sm text-muted-foreground",children:"No models"}):m.map(a=>(0,t.jsxs)("button",{type:"button",onClick:()=>{r(a.name),l(!1)},className:(0,x.cn)("flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs",e===a.name?"bg-accent":"hover:bg-muted/50"),children:[(0,t.jsx)(D.ProviderIcon,{providerName:a.provider||"?"}),(0,t.jsx)("span",{className:"truncate",children:a.name})]},a.name))})]})]})});function M({theme:e,active:a,onSelect:r}){let[s,i,n,o]=e.preview.swatches;return(0,t.jsxs)("button",{type:"button",onClick:r,className:(0,x.cn)("group relative flex items-stretch gap-3 overflow-hidden rounded-xl border bg-card p-3 text-left transition-all","hover:border-primary/50 hover:shadow-sm",a&&"border-primary ring-2 ring-primary/30"),children:[(0,t.jsxs)("div",{className:"relative flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-lg border",style:{background:s,color:i},children:[(0,t.jsx)("span",{className:"text-xl font-semibold leading-none",children:e.preview.glyph??"Aa"}),(0,t.jsxs)("div",{className:"absolute bottom-1 left-1 right-1 flex h-1.5 gap-0.5",children:[(0,t.jsx)("div",{className:"flex-1 rounded-sm",style:{background:i}}),(0,t.jsx)("div",{className:"flex-1 rounded-sm",style:{background:n}}),(0,t.jsx)("div",{className:"flex-1 rounded-sm",style:{background:o}})]})]}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:e.label}),(0,t.jsx)("span",{className:(0,x.cn)("rounded-full border px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide","cool"===e.flair?"border-primary/30 bg-primary/10 text-primary":"border-border bg-muted text-muted-foreground"),children:e.flair})]}),(0,t.jsx)("p",{className:"mt-1 line-clamp-2 text-xs text-muted-foreground",children:e.description})]}),a&&(0,t.jsx)(y.Check,{className:"absolute right-2 top-2 h-4 w-4 text-primary"})]})}function _({value:e,onChange:a}){return(0,t.jsx)("div",{className:"inline-flex rounded-md border bg-muted/30 p-0.5",children:[{value:"light",label:"Light",icon:g},{value:"dark",label:"Dark",icon:v},{value:"system",label:"System",icon:b}].map(r=>{let s=r.icon,i=e===r.value;return(0,t.jsxs)("button",{type:"button",onClick:()=>a(r.value),className:(0,x.cn)("inline-flex items-center gap-1.5 rounded px-3 py-1.5 text-xs transition-colors",i?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:[(0,t.jsx)(s,{className:"h-3.5 w-3.5"}),r.label]},r.value)})})}function E({value:e,options:a,onChange:r}){return(0,t.jsx)("div",{className:"inline-flex w-full rounded-md border bg-muted/30 p-0.5 sm:w-auto",children:a.map(a=>{let s=e===a.value;return(0,t.jsx)("button",{type:"button",onClick:()=>r(a.value),className:(0,x.cn)("flex-1 rounded px-3 py-1.5 text-xs transition-colors sm:flex-initial",s?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:a.label},a.value)})})}var z=e.i(319036),A=e.i(184762),O=e.i(733467);let H=["👤","😀","😎","🤖","🦊","🐱","🐶","🦁","🐼","🐨","🐸","🦄","🌟","💫","🎯","🚀"];function I(){let{data:e}=m.preferences.useGet(),a=e??p.defaultUserPreferences,r=m.preferences.useUpdate(),s=e=>r.mutate(e,{onError:e=>u.toast.error(e.message||"Failed to save")});return(0,t.jsxs)(P,{icon:d.User,title:"User Profile",description:"The display name and avatar shown across the app.",children:[(0,t.jsx)(T,{label:"Display Name",description:"Shown in the header, chat messages, and conversation list.",children:(0,t.jsx)(N.Input,{value:a.user_name,onChange:e=>s({user_name:e.target.value}),placeholder:"Your name"})}),(0,t.jsx)(T,{label:"Avatar",description:"Pick an emoji avatar.",stacked:!0,children:(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:H.map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>s({user_avatar:e}),className:(0,x.cn)("flex h-9 w-9 items-center justify-center rounded-lg border text-lg transition-all hover:bg-muted",a.user_avatar===e?"border-primary bg-primary/10 ring-2 ring-primary/20":"border-transparent"),children:e},e))})})]})}var L=e.i(107233),F=e.i(585381),U=e.i(57559),B=e.i(531278),q=e.i(630374),K=e.i(10708);let V=`{
8
+ "type": "object",
9
+ "properties": {},
10
+ "required": []
11
+ }`;function $({open:e,onOpenChange:r,mode:s,tool:i}){let[n,o]=a.useState(""),[l,d]=a.useState(""),[c,m]=a.useState(V),[p,h]=a.useState(""),[x,g]=a.useState(!0),[v,b]=a.useState(null);a.useEffect(()=>{e&&(i?(o(i.name),d(i.description??""),m(JSON.stringify(i.parameters??{},null,2)),h(i.webhook_url??""),g(!1!==i.enabled)):(o(""),d(""),m(V),h(""),g(!0)),b(null))},[e,i]);let y=F.tools.useCreate({onSuccess:()=>{u.toast.success("Saved"),r(!1)},onError:e=>u.toast.error(e.message||"Save failed")}),j=F.tools.useUpdate({onSuccess:()=>{u.toast.success("Saved"),r(!1)},onError:e=>u.toast.error(e.message||"Save failed")}),w=y.isPending||j.isPending;return(0,t.jsx)(q.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(q.DialogContent,{className:"sm:max-w-[640px] max-h-[90vh] overflow-y-auto",onOpenAutoFocus:"edit"===s?e=>e.preventDefault():void 0,children:[(0,t.jsx)(q.DialogHeader,{children:(0,t.jsx)(q.DialogTitle,{children:"create"===s?"Add tool":"Edit"})}),(0,t.jsxs)("form",{onSubmit:e=>{if(e.preventDefault(),!n.trim())return u.toast.error("Name required");let t={};try{t=c.trim()?JSON.parse(c):{},b(null)}catch(e){b(e instanceof Error?e.message:"Invalid JSON");return}let a={name:n.trim(),description:l.trim(),parameters:t,webhook_url:p.trim()||null,enabled:x};"create"===s?y.mutate(a):i&&j.mutate({id:i.id,data:a})},className:"space-y-4",children:[(0,t.jsxs)("div",{className:"grid sm:grid-cols-2 gap-3",children:[(0,t.jsx)(Q,{label:"Name",htmlFor:"t-name",children:(0,t.jsx)(N.Input,{id:"t-name",value:n,onChange:e=>o(e.target.value),placeholder:"get_weather",className:"h-9 text-sm font-mono"})}),(0,t.jsx)(Q,{label:"Webhook URL",htmlFor:"t-webhook",children:(0,t.jsx)(N.Input,{id:"t-webhook",value:p,onChange:e=>h(e.target.value),placeholder:"https://…",className:"h-9 text-sm font-mono"})})]}),(0,t.jsx)(Q,{label:"Description",htmlFor:"t-desc",children:(0,t.jsx)(N.Input,{id:"t-desc",value:l,onChange:e=>d(e.target.value),className:"h-9 text-sm"})}),(0,t.jsxs)(Q,{label:"Parameters (JSON Schema)",htmlFor:"t-params",children:[(0,t.jsx)(A.Textarea,{id:"t-params",value:c,onChange:e=>m(e.target.value),rows:10,className:"text-xs font-mono"}),v&&(0,t.jsx)("span",{className:"text-xs text-destructive",children:v})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(K.Label,{htmlFor:"t-enabled",className:"text-xs",children:"Enabled"}),(0,t.jsx)(z.Switch,{id:"t-enabled",checked:x,onCheckedChange:g})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-2",children:[(0,t.jsx)(f.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>r(!1),disabled:w,children:"Cancel"}),(0,t.jsxs)(f.Button,{type:"submit",size:"sm",disabled:w,children:[w&&(0,t.jsx)(B.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),"Save"]})]})]})]})})}function Q({label:e,htmlFor:a,children:r}){return(0,t.jsxs)("div",{className:"grid gap-1.5 min-w-0",children:[(0,t.jsx)(K.Label,{htmlFor:a,className:"text-xs",children:e}),r]})}var J=e.i(788699),W=e.i(727612),X=e.i(994179),Y=e.i(137309),G=e.i(117089);function Z({tools:e,onEdit:a,onDelete:r}){let s=!!a||!!r;return(0,t.jsxs)(Y.DataTableShell,{children:[(0,t.jsx)(Y.DataTableHeader,{children:(0,t.jsxs)(Y.DataTableHeaderRow,{children:[(0,t.jsx)(Y.DataTableHead,{children:"Name"}),(0,t.jsx)(Y.DataTableHead,{children:"Description"}),(0,t.jsx)(Y.DataTableHead,{children:"Webhook"}),(0,t.jsx)(Y.DataTableHead,{children:"Status"}),s&&(0,t.jsx)(Y.DataTableHead,{className:"w-[88px] text-right",children:"Actions"})]})}),(0,t.jsx)(G.DataTableBody,{children:0===e.length?(0,t.jsx)(Y.DataTableEmpty,{colSpan:s?5:4,children:"No tools registered yet."}):e.map(e=>(0,t.jsxs)(Y.DataTableRow,{children:[(0,t.jsx)(Y.DataTableCell,{className:"font-mono text-xs max-w-[200px] truncate",title:e.name,children:e.name}),(0,t.jsx)(Y.DataTableCell,{className:"text-xs text-muted-foreground max-w-[320px] truncate",title:e.description,children:e.description||"—"}),(0,t.jsx)(Y.DataTableCell,{className:"text-xs font-mono text-muted-foreground max-w-[260px] truncate",title:e.webhook_url??void 0,children:e.webhook_url??(0,t.jsx)("span",{className:"italic",children:"none"})}),(0,t.jsx)(Y.DataTableCell,{children:(0,t.jsx)(X.Badge,{variant:e.enabled?"default":"secondary",className:"text-[10px] uppercase",children:e.enabled?"on":"off"})}),s&&(0,t.jsx)(Y.DataTableCell,{className:"text-right",children:(0,t.jsxs)("div",{className:"flex items-center justify-end gap-1",children:[a&&(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>a(e),title:"Edit",children:(0,t.jsx)(J.Pencil,{className:"h-3.5 w-3.5"})}),r&&(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-destructive hover:text-destructive",onClick:()=>r(e),title:"Delete",children:(0,t.jsx)(W.Trash2,{className:"h-3.5 w-3.5"})})]})})]},e.id))})]})}let ee=[{id:"profile",label:"Profile",icon:d.User,Component:I},{id:"appearance",label:"Appearance",icon:n,Component:function(){let{data:e}=m.preferences.useGet(),r=e??p.defaultUserPreferences,s=m.preferences.useUpdate(),i=a.useMemo(()=>(0,j.getAllThemes)(),[]),o=e=>s.mutate(e,{onError:e=>u.toast.error(e.message||"Failed to save")});return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)(P,{icon:n,title:"Theme",description:"Pick a visual preset for the whole app.",children:[(0,t.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:i.map(e=>(0,t.jsx)(M,{theme:e,active:r.theme_id===e.id,onSelect:()=>o({theme_id:e.id})},e.id))}),(0,t.jsx)(T,{label:"Color Scheme",description:"Light, dark, or follow the OS preference.",children:(0,t.jsx)(_,{value:r.theme_scheme,onChange:e=>o({theme_scheme:e})})})]}),(0,t.jsxs)(P,{icon:n,title:"Chat Rendering",description:"How streamed assistant messages animate and lay out.",children:[(0,t.jsx)(T,{label:"Render Mode",description:"Instant: no cursor. Stream: live + blinking cursor. Typewriter: smooth char-by-char.",stacked:!0,children:(0,t.jsx)(E,{value:r.chat_render_mode,options:[{value:"instant",label:"Instant"},{value:"stream",label:"Stream"},{value:"typewriter",label:"Typewriter"}],onChange:e=>o({chat_render_mode:e})})}),"typewriter"===r.chat_render_mode&&(0,t.jsx)(T,{label:"Typewriter Speed",description:`${r.typewriter_cps} characters per second.`,stacked:!0,children:(0,t.jsx)(w.Slider,{value:[r.typewriter_cps],min:20,max:400,step:10,onValueChange:([e])=>o({typewriter_cps:e})})}),(0,t.jsx)(T,{label:"Message Layout",description:"Plain: feed style. Bubble: aligned chat bubbles. Minimal: text only.",stacked:!0,children:(0,t.jsx)(E,{value:r.chat_bubble_style,options:[{value:"plain",label:"Plain"},{value:"bubble",label:"Bubble"},{value:"minimal",label:"Minimal"}],onChange:e=>o({chat_bubble_style:e})})})]})]})}},{id:"models",label:"Models",icon:r.Bot,Component:function(){let{data:e}=m.preferences.useGet(),s=e??p.defaultUserPreferences,i=m.preferences.useUpdate(),{data:n,isLoading:o}=O.models.useList(),l=a.useMemo(()=>Array.isArray(n)?n.map(e=>({name:e.name,provider:e.provider??void 0})):[],[n]),d=e=>i.mutate(e,{onError:e=>u.toast.error(e.message||"Failed to save")});return(0,t.jsxs)(P,{icon:r.Bot,title:"Default Models",description:"Models used when a conversation does not override them.",children:[(0,t.jsx)(T,{label:"Chat Model",description:"Default model for new conversations.",children:(0,t.jsx)(R,{value:s.default_model,onValueChange:e=>d({default_model:e}),models:l,isLoading:o,placeholder:o?"Loading...":"Select model"})}),(0,t.jsx)(T,{label:"Summary Model",description:"Model for titles and summaries.",children:(0,t.jsx)(R,{value:s.default_summary_model,onValueChange:e=>d({default_summary_model:e}),models:l,isLoading:o,placeholder:o?"Loading...":"Select model"})})]})}},{id:"chat",label:"Chat",icon:s.MessageSquare,Component:function(){let{data:e}=m.preferences.useGet(),a=e??p.defaultUserPreferences,r=m.preferences.useUpdate(),i=e=>r.mutate(e,{onError:e=>u.toast.error(e.message||"Failed to save")});return(0,t.jsxs)(P,{icon:s.MessageSquare,title:"Chat Defaults",children:[(0,t.jsx)(T,{label:"System Prompt",stacked:!0,children:(0,t.jsx)(A.Textarea,{value:a.default_system_prompt,onChange:e=>i({default_system_prompt:e.target.value}),rows:3,className:"resize-none"})}),(0,t.jsx)(T,{label:"History Limit",children:(0,t.jsx)(N.Input,{type:"number",value:a.default_history_limit,onChange:e=>i({default_history_limit:Number(e.target.value)}),min:1,max:50})})]})}},{id:"behavior",label:"Behavior",icon:l,Component:function(){let e=(0,h.useDeviceSettingsStore)(e=>e.sendOnEnter),a=(0,h.useDeviceSettingsStore)(e=>e.showTimestamps),r=(0,h.useDeviceSettingsStore)(e=>e.compactMode),s=(0,h.useDeviceSettingsStore)(e=>e.updateDeviceSettings);return(0,t.jsxs)(P,{icon:l,title:"Device Behavior",description:"Local-only switches — stored in this browser, never synced.",children:[(0,t.jsx)(T,{label:"Send on Enter",description:"Press Enter to send messages.",children:(0,t.jsx)(z.Switch,{checked:e,onCheckedChange:e=>s({sendOnEnter:e})})}),(0,t.jsx)(T,{label:"Show Timestamps",description:"Display message timestamps.",children:(0,t.jsx)(z.Switch,{checked:a,onCheckedChange:e=>s({showTimestamps:e})})}),(0,t.jsx)(T,{label:"Compact Mode",description:"Reduce spacing in chat view.",children:(0,t.jsx)(z.Switch,{checked:r,onCheckedChange:e=>s({compactMode:e})})})]})}},{id:"tools",label:"Tools",icon:c.Wrench,Component:function(){let{data:e}=F.tools.useList(),[r,s]=a.useState({open:!1,mode:"create"}),[i,n]=a.useState(null),o=F.tools.useDelete({onSuccess:()=>{u.toast.success("Tool deleted"),n(null)},onError:e=>u.toast.error(e.message||"Delete failed")});return(0,t.jsxs)(P,{icon:c.Wrench,title:"Custom tools",action:(0,t.jsxs)(f.Button,{size:"sm",variant:"secondary",onClick:()=>s({open:!0,mode:"create"}),children:[(0,t.jsx)(L.Plus,{className:"h-3.5 w-3.5 mr-1"}),"Add tool"]}),children:[(0,t.jsx)("div",{className:"border rounded-lg overflow-hidden",children:(0,t.jsx)(Z,{tools:e??[],onEdit:e=>s({open:!0,mode:"edit",tool:e}),onDelete:n})}),(0,t.jsx)($,{open:r.open,onOpenChange:e=>s(t=>({...t,open:e})),mode:r.mode,tool:r.tool}),(0,t.jsx)(U.ConfirmDialog,{open:!!i,onOpenChange:e=>!e&&n(null),title:"Delete tool?",description:(0,t.jsxs)(t.Fragment,{children:["This will delete ",(0,t.jsx)("b",{children:i?.name}),"."]}),confirmLabel:"Delete",destructive:!0,isLoading:o.isPending,onConfirm:()=>i&&o.mutate(i.id)})]})}}],et="appearance";function ea({active:e,onSelect:a}){return(0,t.jsx)("nav",{"aria-label":"Settings sections",className:(0,x.cn)("shrink-0 md:w-44","scrollbar-none -mx-4 flex gap-1 overflow-x-auto px-4 md:mx-0 md:flex-col md:gap-0.5 md:overflow-visible md:px-0"),children:ee.map(r=>{let s=r.icon,i=e===r.id;return(0,t.jsxs)("button",{type:"button",onClick:()=>a(r.id),className:(0,x.cn)("inline-flex shrink-0 items-center gap-2 rounded-md px-3 py-2 text-sm transition-colors","md:w-full md:justify-start",i?"bg-muted font-medium text-foreground":"text-muted-foreground hover:bg-muted/50 hover:text-foreground"),children:[(0,t.jsx)(s,{className:"h-4 w-4 shrink-0"}),r.label]},r.id)})})}e.s(["default",0,function(){let[e,r]=function(){let[e,t]=a.useState(et);return a.useEffect(()=>{let e=()=>{let e;return t((e=window.location.hash.replace(/^#/,""),ee.some(t=>t.id===e)?e:et))};return e(),window.addEventListener("hashchange",e),()=>window.removeEventListener("hashchange",e)},[]),[e,a.useCallback(e=>{window.location.hash=e},[])]}(),s=m.preferences.useUpdate(),i=(0,h.useDeviceSettingsStore)(e=>e.resetDeviceSettings),n=ee.find(t=>t.id===e)?.Component??I,l=ee.find(t=>t.id===e)?.label??"Settings";return(0,t.jsx)("div",{className:"h-full overflow-y-auto scrollbar-thin",children:(0,t.jsxs)("div",{className:"mx-auto max-w-5xl space-y-6 p-4 md:p-6",children:[(0,t.jsxs)("header",{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-lg font-semibold leading-none",children:"Settings"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:l})]}),(0,t.jsxs)(f.Button,{variant:"outline",size:"sm",onClick:()=>{s.mutate(p.defaultUserPreferences,{onSuccess:()=>{i(),u.toast.success("Settings reset")},onError:e=>u.toast.error(e.message||"Failed to reset")})},disabled:s.isPending,children:[(0,t.jsx)(o.RotateCcw,{className:"mr-2 h-4 w-4"}),"Reset"]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-4 md:flex-row md:gap-6",children:[(0,t.jsx)(ea,{active:e,onSelect:r}),(0,t.jsx)("div",{className:"min-w-0 flex-1",children:(0,t.jsx)(n,{})})]})]})})}],888501)}]);
@@ -0,0 +1,7 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,531278,e=>{"use strict";var t=e.i(717521);e.s(["Loader2",()=>t.default])},23750,e=>{"use strict";var t=e.i(843476),s=e.i(647163);e.s(["Input",0,function({className:e,type:a,...r}){return(0,t.jsx)("input",{type:a,"data-slot":"input",className:(0,s.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}])},10708,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(248425),r=s.forwardRef((e,s)=>(0,t.jsx)(a.Primitive.label,{...e,ref:s,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));r.displayName="Label";var n=e.i(647163);e.s(["Label",0,function({className:e,...s}){return(0,t.jsx)(r,{"data-slot":"label",className:(0,n.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...s})}],10708)},999682,e=>{"use strict";var t=e.i(271645);e.s(["usePrevious",0,function(e){let s=t.useRef({value:e,previous:e});return t.useMemo(()=>(s.current.value!==e&&(s.current.previous=s.current.value,s.current.value=e),s.current.previous),[e])}])},733467,e=>{"use strict";let t=(0,e.i(718512).defineResource)({path:"/models",key:"models",listShape:"array",staleTime:6e4,invalidates:["providers"]});e.s(["models",0,t])},63209,e=>{"use strict";let t=(0,e.i(475254).default)("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"}]]);e.s(["AlertCircle",0,t],63209)},283086,e=>{"use strict";let t=(0,e.i(475254).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,t],283086)},790092,e=>{"use strict";let t=(0,e.i(475254).default)("refresh-ccw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]]);e.s(["RefreshCcw",0,t],790092)},281601,e=>{"use strict";var t=e.i(954616),s=e.i(266027),a=e.i(912598),r=e.i(271645),n=e.i(718512),i=e.i(715760);let l=(0,n.defineResource)({path:"/mcp/servers",key:"mcp-servers",listShape:"array",staleTime:6e4}),o={...l,listPresets:()=>(0,i.fetcher)("/mcp/presets"),usePresets:()=>(0,s.useQuery)({queryKey:["mcp-presets"],queryFn:()=>o.listPresets(),staleTime:3e5}),check:e=>(0,i.fetcher)(`/mcp/servers/${encodeURIComponent(e)}/check`,{method:"POST"}),useCheck:e=>{let s=(0,a.useQueryClient)();return(0,t.useMutation)({mutationFn:e=>o.check(e),onSuccess:t=>{s.invalidateQueries({queryKey:l.keys.all()}),e?.onSuccess?.(t)},onError:t=>e?.onError?.(t)})},checkStream:async(e,t,s)=>{let a=await (0,i.rawFetch)(`/mcp/servers/${encodeURIComponent(e)}/check`,{method:"POST",headers:{Accept:"text/event-stream"},signal:s?.signal});if(!a.body)throw Error("No response body");let r=a.body.getReader(),n=new TextDecoder,l="",o=null;try{for(;;){let{done:e,value:s}=await r.read();if(e)break;let a=(l+=n.decode(s,{stream:!0})).indexOf("\n\n");for(;-1!==a;){let e=l.slice(0,a);l=l.slice(a+2);let s=e.split("\n").find(e=>e.startsWith("data: "));if(s)try{let e=JSON.parse(s.slice(6));t(e),"result"===e.type?o=e.server:"error"===e.type&&e.server&&(o=e.server)}catch{}a=l.indexOf("\n\n")}}}finally{try{r.releaseLock()}catch{}}return o},useCheckStream:()=>{let e=(0,a.useQueryClient)(),[t,s]=r.useState(null),[n,i]=r.useState([]),[c,d]=r.useState(!1),[u,m]=r.useState(null),[p,x]=r.useState(null),h=r.useRef(null),f=r.useCallback(()=>{s(null),i([]),m(null),x(null)},[]),g=r.useCallback(()=>{h.current?.abort(),h.current=null,d(!1)},[]),v=r.useCallback(async t=>{f(),d(!0);let a=new AbortController;h.current=a;try{let r=await o.checkStream(t,e=>{"phase"===e.type?s(e.phase):"log"===e.type?i(t=>[...t,e.line]):"result"===e.type?x(e.server):"error"===e.type&&(m(e.message),e.server&&x(e.server))},{signal:a.signal});return e.invalidateQueries({queryKey:l.keys.all()}),r}catch(t){let e=t instanceof Error?t.message:String(t);return a.signal.aborted||m(e),null}finally{d(!1),h.current=null}},[f,e]);return r.useEffect(()=>()=>h.current?.abort(),[]),{run:v,cancel:g,reset:f,phase:t,logs:n,isChecking:c,error:u,result:p}}};e.s(["mcpServers",0,o])},777951,e=>{"use strict";var t=e.i(869230),s=e.i(992571),a=class extends t.QueryObserver{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type="infinite",super.setOptions(e)}getOptimisticResult(e){return e._type="infinite",super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){let{state:a}=e,r=super.createResult(e,t),{isFetching:n,isRefetching:i,isError:l,isRefetchError:o}=r,c=a.fetchMeta?.fetchMore?.direction,d=l&&"forward"===c,u=n&&"forward"===c,m=l&&"backward"===c,p=n&&"backward"===c;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,s.hasNextPage)(t,a.data),hasPreviousPage:(0,s.hasPreviousPage)(t,a.data),isFetchNextPageError:d,isFetchingNextPage:u,isFetchPreviousPageError:m,isFetchingPreviousPage:p,isRefetchError:o&&!d&&!m,isRefetching:i&&!u&&!p}}},r=e.i(469637),n=e.i(912598),i=e.i(718512),l=e.i(715760);let o=(0,i.defineResource)({path:"/conversations",key:"conversations",paramsOf:e=>({page:e.page??1,page_size:e.page_size??20,sort:e.sort??"-updated_at",keyword:e.keyword}),staleTime:6e4}),c={...o,updateTitle:(e,t)=>o.update(e,{title:t}),messagesCacheKey:function(e,t){return[...o.keys.one(e),"messages-cache",t]},useInvalidateList:()=>{let e=(0,n.useQueryClient)();return()=>e.invalidateQueries({queryKey:o.keys.all(),predicate:e=>{let t=e.queryKey;return t.length>=2&&("list"===t[1]||"infinite"===t[1])}})},useInfinite:e=>{var t;let s=e?.pageSize??20,n=e?.keyword?.trim()||void 0;return t={queryKey:[...o.keys.all(),"infinite",e?.scope??"default",s,n??""],initialPageParam:1,queryFn:({pageParam:e=1})=>o.list({page:e,page_size:s,keyword:n}),getNextPageParam:e=>{if(e)return e.page*e.page_size<e.total?e.page+1:void 0}},(0,r.useBaseQuery)(t,a,void 0)},listMessages:(e,t)=>(0,l.fetcher)(`/conversations/${encodeURIComponent(e)}/messages?`+new URLSearchParams({page:String(t?.page??1),page_size:String(t?.page_size??50),sort:t?.sort??"-created_at"}).toString())},d=["messages"];e.s(["conversations",0,c,"messages",0,{keys:{all:()=>d},rate:(e,t,s)=>(0,l.fetcher)(`/messages/${encodeURIComponent(e)}/rate`,{method:"POST",body:JSON.stringify({rating:t,feedback:s})})}],777951)},788699,e=>{"use strict";let t=(0,e.i(475254).default)("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"}]]);e.s(["Pencil",0,t],788699)},319036,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(981140),r=e.i(820783),n=e.i(30030),i=e.i(369340),l=e.i(999682),o=e.i(635804),c=e.i(248425),d="Switch",[u,m]=(0,n.createContextScope)(d),[p,x]=u(d);function h(e){let{__scopeSwitch:a,checked:r,children:n,defaultChecked:l,disabled:o,form:c,name:u,onCheckedChange:m,required:x,value:h="on",internal_do_not_use_render:f}=e,[g,v]=(0,i.useControllableState)({prop:r,defaultProp:l??!1,onChange:m,caller:d}),[b,j]=s.useState(null),[y,N]=s.useState(null),w=s.useRef(!1),k=!b||!!c||!!b.closest("form"),C={checked:g,setChecked:v,disabled:o,control:b,setControl:j,name:u,form:c,value:h,hasConsumerStoppedPropagationRef:w,required:x,defaultChecked:l,isFormControl:k,bubbleInput:y,setBubbleInput:N};return(0,t.jsx)(p,{scope:a,...C,children:"function"==typeof f?f(C):n})}var f="SwitchTrigger",g=s.forwardRef(({__scopeSwitch:e,onClick:s,...n},i)=>{let{value:l,disabled:o,checked:d,required:u,setControl:m,setChecked:p,hasConsumerStoppedPropagationRef:h,isFormControl:g,bubbleInput:v}=x(f,e),b=(0,r.useComposedRefs)(i,m);return(0,t.jsx)(c.Primitive.button,{type:"button",role:"switch","aria-checked":d,"aria-required":u,"data-state":w(d),"data-disabled":o?"":void 0,disabled:o,value:l,...n,ref:b,onClick:(0,a.composeEventHandlers)(s,e=>{p(e=>!e),v&&g&&(h.current=e.isPropagationStopped(),h.current||e.stopPropagation())})})});g.displayName=f;var v=s.forwardRef((e,s)=>{let{__scopeSwitch:a,name:r,checked:n,defaultChecked:i,required:l,disabled:o,value:c,onCheckedChange:d,form:u,...m}=e;return(0,t.jsx)(h,{__scopeSwitch:a,checked:n,defaultChecked:i,disabled:o,required:l,onCheckedChange:d,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(g,{...m,ref:s,__scopeSwitch:a}),e&&(0,t.jsx)(N,{__scopeSwitch:a})]})})});v.displayName=d;var b="SwitchThumb",j=s.forwardRef((e,s)=>{let{__scopeSwitch:a,...r}=e,n=x(b,a);return(0,t.jsx)(c.Primitive.span,{"data-state":w(n.checked),"data-disabled":n.disabled?"":void 0,...r,ref:s})});j.displayName=b;var y="SwitchBubbleInput",N=s.forwardRef(({__scopeSwitch:e,...a},n)=>{let{control:i,hasConsumerStoppedPropagationRef:d,checked:u,defaultChecked:m,required:p,disabled:h,name:f,value:g,form:v,bubbleInput:b,setBubbleInput:j}=x(y,e),N=(0,r.useComposedRefs)(n,j),w=(0,l.usePrevious)(u),k=(0,o.useSize)(i);s.useEffect(()=>{if(!b)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!d.current;if(w!==u&&e){let s=new Event("click",{bubbles:t});e.call(b,u),b.dispatchEvent(s)}},[b,w,u,d]);let C=s.useRef(u);return(0,t.jsx)(c.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:m??C.current,required:p,disabled:h,name:f,value:g,form:v,...a,tabIndex:-1,ref:N,style:{...a.style,...k,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function w(e){return e?"checked":"unchecked"}N.displayName=y;var k=e.i(647163);e.s(["Switch",0,function({className:e,...s}){return(0,t.jsx)(v,{"data-slot":"switch",className:(0,k.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...s,children:(0,t.jsx)(j,{"data-slot":"switch-thumb",className:(0,k.cn)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}],319036)},184762,e=>{"use strict";var t=e.i(843476),s=e.i(647163);e.s(["Textarea",0,function({className:e,...a}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,s.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),...a})}])},137309,117089,e=>{"use strict";var t=e.i(843476);let s=(0,e.i(475254).default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);var a=e.i(947627),r=e.i(647163);e.s(["DataTableCell",0,function({className:e,...s}){return(0,t.jsx)(a.TableCell,{className:(0,r.cn)("py-2 first:pl-4 last:pr-4",e),...s})},"DataTableEmpty",0,function({colSpan:e,children:r}){return(0,t.jsx)(a.TableRow,{className:"hover:bg-transparent",children:(0,t.jsx)(a.TableCell,{colSpan:e,className:"h-48 text-center align-middle text-muted-foreground/40",children:(0,t.jsx)("div",{className:"flex items-center justify-center",children:(0,t.jsx)(s,{className:"h-8 w-8","aria-label":"empty"})})})})},"DataTableHead",0,function({className:e,...s}){return(0,t.jsx)(a.TableHead,{className:(0,r.cn)("h-10 text-xs font-semibold uppercase tracking-wide text-muted-foreground/80 first:pl-4 last:pr-4",e),...s})},"DataTableHeader",0,function({className:e,...s}){return(0,t.jsx)(a.TableHeader,{className:(0,r.cn)("bg-muted/40 sticky top-0 z-10",e),...s})},"DataTableHeaderRow",0,function({className:e,...s}){return(0,t.jsx)(a.TableRow,{className:(0,r.cn)("hover:bg-transparent border-b-muted/60 shadow-sm",e),...s})},"DataTableRow",0,function({className:e,interactive:s=!0,...n}){return(0,t.jsx)(a.TableRow,{className:(0,r.cn)("h-10 border-b-muted/20 even:bg-muted/50 group",s&&"cursor-pointer hover:bg-muted/90",e),...n})},"DataTableShell",0,function({className:e,...s}){return(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsx)(a.Table,{className:e,...s})})}],137309),e.s(["DataTableBody",()=>a.TableBody],117089)},630374,e=>{"use strict";var t=e.i(843476),s=e.i(326999),a=e.i(995926),r=e.i(647163);function n({...e}){return(0,t.jsx)(s.Portal,{"data-slot":"dialog-portal",...e})}function i({className:e,...a}){return(0,t.jsx)(s.Overlay,{"data-slot":"dialog-overlay",className:(0,r.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...a})}e.s(["Dialog",0,function({...e}){return(0,t.jsx)(s.Root,{"data-slot":"dialog",...e})},"DialogContent",0,function({className:e,children:l,showCloseButton:o=!0,...c}){return(0,t.jsxs)(n,{"data-slot":"dialog-portal",children:[(0,t.jsx)(i,{}),(0,t.jsxs)(s.Content,{"data-slot":"dialog-content",className:(0,r.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",e),...c,children:[l,o&&(0,t.jsxs)(s.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,t.jsx)(a.XIcon,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"DialogDescription",0,function({className:e,...a}){return(0,t.jsx)(s.Description,{"data-slot":"dialog-description",className:(0,r.cn)("text-muted-foreground text-sm",e),...a})},"DialogFooter",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"dialog-footer",className:(0,r.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...s})},"DialogHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"dialog-header",className:(0,r.cn)("flex flex-col gap-2 text-center sm:text-left",e),...s})},"DialogTitle",0,function({className:e,...a}){return(0,t.jsx)(s.Title,{"data-slot":"dialog-title",className:(0,r.cn)("text-lg leading-none font-semibold",e),...a})}])},994179,e=>{"use strict";var t=e.i(843476),s=e.i(991918),a=e.i(225913),r=e.i(647163);let n=(0,a.cva)("inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:a,asChild:i=!1,...l}){let o=i?s.Slot:"span";return(0,t.jsx)(o,{"data-slot":"badge",className:(0,r.cn)(n({variant:a}),e),...l})}])},282022,e=>{"use strict";let t=(0,e.i(718512).defineResource)({path:"/logs/generations",key:"logs",staleTime:3e4});e.s(["logs",0,t])},511169,e=>{"use strict";let t=(0,e.i(718512).defineResource)({path:"/users",key:"users",staleTime:6e4});e.s(["users",0,t])},32506,e=>{"use strict";var t=e.i(954616),s=e.i(266027),a=e.i(718512),r=e.i(715760);let n=(0,a.defineResource)({path:"/providers",key:"providers",listShape:"array",staleTime:6e4,invalidates:["models"]}),i={...n,listModels:e=>(0,r.fetcher)(`/providers/${encodeURIComponent(e)}/models`),reload:()=>(0,r.fetcher)("/providers/reload",{method:"POST"}),check:e=>(0,r.fetcher)(`/providers/${encodeURIComponent(e)}/check`,{method:"POST"}),probe:e=>(0,r.fetcher)("/providers/probe",{method:"POST",body:JSON.stringify({health_check_url:e}),headers:{"Content-Type":"application/json"}}),useModels:e=>(0,s.useQuery)({queryKey:[...n.keys.one(e??""),"models"],queryFn:()=>i.listModels(e),enabled:!!e}),useReload:e=>{let s=n.useInvalidate();return(0,t.useMutation)({mutationFn:i.reload,...e,onSuccess:(t,a,r,n)=>{s(),e?.onSuccess?.(t,a,r,n)}})},useCheck:(e,s)=>{let a=n.useInvalidate();return(0,t.useMutation)({mutationFn:()=>i.check(e),...s,onSuccess:(e,t,r,n)=>{a(),s?.onSuccess?.(e,t,r,n)}})}};e.s(["providers",0,i])},251383,402487,581445,778296,585381,e=>{"use strict";e.i(511169),e.i(32506),e.i(733467),e.i(518874),e.i(282022),e.i(777951);var t=e.i(718512);let s=(0,t.defineResource)({path:"/capabilities",key:"capabilities",listShape:"array",staleTime:6e4});e.s(["capabilities",0,s],402487);let a=(0,t.defineResource)({path:"/adapters",key:"adapters",listShape:"array",staleTime:6e4});e.s(["adapters",0,a],581445);let r=(0,t.defineResource)({path:"/variants",key:"variants",listShape:"array",staleTime:6e4});e.s(["variants",0,r],778296);let n=(0,t.defineResource)({path:"/tools",key:"tools",listShape:"array",staleTime:6e4});e.s(["tools",0,n],585381),e.i(281601),e.s([],251383)},727612,e=>{"use strict";let t=(0,e.i(475254).default)("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"}]]);e.s(["Trash2",0,t],727612)},878894,e=>{"use strict";var t=e.i(582458);e.s(["AlertTriangle",()=>t.default])},57559,e=>{"use strict";var t=e.i(843476),s=e.i(878894),a=e.i(531278),r=e.i(271645),n=e.i(30030),i=e.i(820783),l=e.i(326999),o=e.i(981140),c=e.i(991918),d="AlertDialog",[u,m]=(0,n.createContextScope)(d,[l.createDialogScope]),p=(0,l.createDialogScope)(),x=e=>{let{__scopeAlertDialog:s,...a}=e,r=p(s);return(0,t.jsx)(l.Root,{...r,...a,modal:!0})};x.displayName=d,r.forwardRef((e,s)=>{let{__scopeAlertDialog:a,...r}=e,n=p(a);return(0,t.jsx)(l.Trigger,{...n,...r,ref:s})}).displayName="AlertDialogTrigger";var h=e=>{let{__scopeAlertDialog:s,...a}=e,r=p(s);return(0,t.jsx)(l.Portal,{...r,...a})};h.displayName="AlertDialogPortal";var f=r.forwardRef((e,s)=>{let{__scopeAlertDialog:a,...r}=e,n=p(a);return(0,t.jsx)(l.Overlay,{...n,...r,ref:s})});f.displayName="AlertDialogOverlay";var g="AlertDialogContent",[v,b]=u(g),j=(0,c.createSlottable)("AlertDialogContent"),y=r.forwardRef((e,s)=>{let{__scopeAlertDialog:a,children:n,...c}=e,d=p(a),u=r.useRef(null),m=(0,i.useComposedRefs)(s,u),x=r.useRef(null);return(0,t.jsx)(l.WarningProvider,{contentName:g,titleName:N,docsSlug:"alert-dialog",children:(0,t.jsx)(v,{scope:a,cancelRef:x,children:(0,t.jsxs)(l.Content,{role:"alertdialog",...d,...c,ref:m,onOpenAutoFocus:(0,o.composeEventHandlers)(c.onOpenAutoFocus,e=>{e.preventDefault(),x.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,t.jsx)(j,{children:n}),(0,t.jsx)(R,{contentRef:u})]})})})});y.displayName=g;var N="AlertDialogTitle",w=r.forwardRef((e,s)=>{let{__scopeAlertDialog:a,...r}=e,n=p(a);return(0,t.jsx)(l.Title,{...n,...r,ref:s})});w.displayName=N;var k="AlertDialogDescription",C=r.forwardRef((e,s)=>{let{__scopeAlertDialog:a,...r}=e,n=p(a);return(0,t.jsx)(l.Description,{...n,...r,ref:s})});C.displayName=k;var S=r.forwardRef((e,s)=>{let{__scopeAlertDialog:a,...r}=e,n=p(a);return(0,t.jsx)(l.Close,{...n,...r,ref:s})});S.displayName="AlertDialogAction";var T="AlertDialogCancel",D=r.forwardRef((e,s)=>{let{__scopeAlertDialog:a,...r}=e,{cancelRef:n}=b(T,a),o=p(a),c=(0,i.useComposedRefs)(s,n);return(0,t.jsx)(l.Close,{...o,...r,ref:c})});D.displayName=T;var R=({contentRef:e})=>{let t=`\`${g}\` requires a description for the component to be accessible for screen reader users.
2
+
3
+ You can add a description to the \`${g}\` by passing a \`${k}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
4
+
5
+ Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${g}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
6
+
7
+ For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return r.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},P=e.i(647163),_=e.i(167881);let M=r.forwardRef(({className:e,...s},a)=>(0,t.jsx)(f,{className:(0,P.cn)("fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...s,ref:a}));M.displayName=f.displayName;let O=r.forwardRef(({className:e,...s},a)=>(0,t.jsxs)(h,{children:[(0,t.jsx)(M,{}),(0,t.jsx)(y,{ref:a,className:(0,P.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",e),...s})]}));O.displayName=y.displayName;let A=({className:e,...s})=>(0,t.jsx)("div",{className:(0,P.cn)("flex flex-col space-y-2 text-center sm:text-left",e),...s});A.displayName="AlertDialogHeader";let E=({className:e,...s})=>(0,t.jsx)("div",{className:(0,P.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...s});E.displayName="AlertDialogFooter";let L=r.forwardRef(({className:e,...s},a)=>(0,t.jsx)(w,{ref:a,className:(0,P.cn)("text-lg font-semibold",e),...s}));L.displayName=w.displayName;let z=r.forwardRef(({className:e,...s},a)=>(0,t.jsx)(C,{ref:a,className:(0,P.cn)("text-sm text-muted-foreground",e),...s}));z.displayName=C.displayName;let F=r.forwardRef(({className:e,...s},a)=>(0,t.jsx)(S,{ref:a,className:(0,P.cn)((0,_.buttonVariants)(),e),...s}));F.displayName=S.displayName;let I=r.forwardRef(({className:e,...s},a)=>(0,t.jsx)(D,{ref:a,className:(0,P.cn)((0,_.buttonVariants)({variant:"outline"}),"mt-2 sm:mt-0",e),...s}));I.displayName=D.displayName,e.s(["ConfirmDialog",0,function({open:e,onOpenChange:r,title:n,description:i,confirmLabel:l="Confirm",cancelLabel:o="Cancel",destructive:c,isLoading:d,onConfirm:u}){return(0,t.jsx)(x,{open:e,onOpenChange:r,children:(0,t.jsxs)(O,{children:[(0,t.jsx)(A,{children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[c&&(0,t.jsx)("div",{className:"mt-0.5 flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-destructive/10 text-destructive",children:(0,t.jsx)(s.AlertTriangle,{className:"h-4 w-4"})}),(0,t.jsxs)("div",{className:"flex-1 space-y-1.5",children:[(0,t.jsx)(L,{className:(0,P.cn)(c&&"text-foreground"),children:n}),(0,t.jsx)(z,{children:i})]})]})}),(0,t.jsxs)(E,{children:[(0,t.jsx)(I,{disabled:d,children:o}),(0,t.jsxs)(F,{onClick:e=>{e.preventDefault(),u()},disabled:d,className:(0,P.cn)(c&&"bg-destructive text-white shadow-sm shadow-destructive/30 hover:bg-destructive/90 focus-visible:ring-destructive/40"),children:[d&&(0,t.jsx)(a.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),l]})]})]})})}],57559)},947627,e=>{"use strict";var t=e.i(843476),s=e.i(647163);e.s(["Table",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,t.jsx)("table",{"data-slot":"table",className:(0,s.cn)("w-full caption-bottom text-sm",e),...a})})},"TableBody",0,function({className:e,...a}){return(0,t.jsx)("tbody",{"data-slot":"table-body",className:(0,s.cn)("[&_tr:last-child]:border-0",e),...a})},"TableCell",0,function({className:e,...a}){return(0,t.jsx)("td",{"data-slot":"table-cell",className:(0,s.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...a})},"TableHead",0,function({className:e,...a}){return(0,t.jsx)("th",{"data-slot":"table-head",className:(0,s.cn)("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...a})},"TableHeader",0,function({className:e,...a}){return(0,t.jsx)("thead",{"data-slot":"table-header",className:(0,s.cn)("[&_tr]:border-b",e),...a})},"TableRow",0,function({className:e,...a}){return(0,t.jsx)("tr",{"data-slot":"table-row",className:(0,s.cn)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",e),...a})}])},107233,e=>{"use strict";let t=(0,e.i(475254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],107233)},373264,e=>{"use strict";let t=(0,e.i(475254).default)("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"}]]);e.s(["LayoutGrid",0,t],373264)},710924,e=>{"use strict";var t=e.i(843476),s=e.i(531278),a=e.i(647163);let r={sm:"h-3.5 w-3.5",md:"h-5 w-5",lg:"h-8 w-8"};e.s(["LoadingState",0,function({label:e="Loading…",size:n="md",variant:i="centered",className:l}){return"inline"===i?(0,t.jsxs)("div",{className:(0,a.cn)("flex items-center gap-2 text-sm text-muted-foreground",l),children:[(0,t.jsx)(s.Loader2,{className:(0,a.cn)(r[n],"animate-spin")}),e&&(0,t.jsx)("span",{children:e})]}):(0,t.jsxs)("div",{className:(0,a.cn)("flex flex-col items-center justify-center gap-3 py-12 text-muted-foreground",l),children:[(0,t.jsx)(s.Loader2,{className:(0,a.cn)(r[n],"animate-spin")}),e&&(0,t.jsx)("p",{className:"text-sm",children:e})]})}])},127341,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(981140),r=e.i(30030),n=e.i(842727),i=e.i(296626),l=e.i(248425),o=e.i(586318),c=e.i(369340),d=e.i(610772),u="Tabs",[m,p]=(0,r.createContextScope)(u,[n.createRovingFocusGroupScope]),x=(0,n.createRovingFocusGroupScope)(),[h,f]=m(u),g=s.forwardRef((e,s)=>{let{__scopeTabs:a,value:r,onValueChange:n,defaultValue:i,orientation:m="horizontal",dir:p,activationMode:x="automatic",...f}=e,g=(0,o.useDirection)(p),[v,b]=(0,c.useControllableState)({prop:r,onChange:n,defaultProp:i??"",caller:u});return(0,t.jsx)(h,{scope:a,baseId:(0,d.useId)(),value:v,onValueChange:b,orientation:m,dir:g,activationMode:x,children:(0,t.jsx)(l.Primitive.div,{dir:g,"data-orientation":m,...f,ref:s})})});g.displayName=u;var v="TabsList",b=s.forwardRef((e,s)=>{let{__scopeTabs:a,loop:r=!0,...i}=e,o=f(v,a),c=x(a);return(0,t.jsx)(n.Root,{asChild:!0,...c,orientation:o.orientation,dir:o.dir,loop:r,children:(0,t.jsx)(l.Primitive.div,{role:"tablist","aria-orientation":o.orientation,...i,ref:s})})});b.displayName=v;var j="TabsTrigger",y=s.forwardRef((e,s)=>{let{__scopeTabs:r,value:i,disabled:o=!1,...c}=e,d=f(j,r),u=x(r),m=k(d.baseId,i),p=C(d.baseId,i),h=i===d.value;return(0,t.jsx)(n.Item,{asChild:!0,...u,focusable:!o,active:h,children:(0,t.jsx)(l.Primitive.button,{type:"button",role:"tab","aria-selected":h,"aria-controls":p,"data-state":h?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:m,...c,ref:s,onMouseDown:(0,a.composeEventHandlers)(e.onMouseDown,e=>{o||0!==e.button||!1!==e.ctrlKey?e.preventDefault():d.onValueChange(i)}),onKeyDown:(0,a.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&d.onValueChange(i)}),onFocus:(0,a.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==d.activationMode;h||o||!e||d.onValueChange(i)})})})});y.displayName=j;var N="TabsContent",w=s.forwardRef((e,a)=>{let{__scopeTabs:r,value:n,forceMount:o,children:c,...d}=e,u=f(N,r),m=k(u.baseId,n),p=C(u.baseId,n),x=n===u.value,h=s.useRef(x);return s.useEffect(()=>{let e=requestAnimationFrame(()=>h.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(i.Presence,{present:o||x,children:({present:s})=>(0,t.jsx)(l.Primitive.div,{"data-state":x?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":m,hidden:!s,id:p,tabIndex:0,...d,ref:a,style:{...e.style,animationDuration:h.current?"0s":void 0},children:s&&c})})});function k(e,t){return`${e}-trigger-${t}`}function C(e,t){return`${e}-content-${t}`}w.displayName=N;var S=e.i(647163);e.s(["Tabs",0,function({className:e,...s}){return(0,t.jsx)(g,{"data-slot":"tabs",className:(0,S.cn)("flex flex-col gap-2",e),...s})},"TabsContent",0,function({className:e,...s}){return(0,t.jsx)(w,{"data-slot":"tabs-content",className:(0,S.cn)("flex-1 outline-none",e),...s})},"TabsList",0,function({className:e,...s}){return(0,t.jsx)(b,{"data-slot":"tabs-list",className:(0,S.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",e),...s})},"TabsTrigger",0,function({className:e,...s}){return(0,t.jsx)(y,{"data-slot":"tabs-trigger",className:(0,S.cn)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...s})}],127341)},916399,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(846696),r=e.i(63209),n=e.i(531278);e.i(251383);var i=e.i(281601),l=e.i(630374),o=e.i(167881),c=e.i(23750),d=e.i(319036),u=e.i(184762),m=e.i(10708),p=e.i(127341),x=e.i(647163);let h={command:"",args:"",env:"{}",cwd:""},f={url:"",headers:"{}"};function g(e){let t="string"==typeof e.command?e.command:"",s=Array.isArray(e.args)?e.args.join("\n"):"";return{command:t,args:s,env:e.env&&"object"==typeof e.env?JSON.stringify(e.env,null,2):"{}",cwd:"string"==typeof e.cwd?e.cwd:""}}function v(e){return{url:"string"==typeof e.url?e.url:"",headers:e.headers&&"object"==typeof e.headers?JSON.stringify(e.headers,null,2):"{}"}}function b(e){let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);if(null===e||"object"!=typeof e||Array.isArray(e))return"Must be a JSON object";return null}catch(e){return e instanceof Error?e.message:"Invalid JSON"}}function j({label:e,htmlFor:s,children:a,required:n,error:i}){return(0,t.jsxs)("div",{className:"grid gap-1.5 min-w-0",children:[(0,t.jsxs)(m.Label,{htmlFor:s,className:"text-xs",children:[e,n&&(0,t.jsx)("span",{className:"text-destructive ml-0.5",children:"*"})]}),a,i&&(0,t.jsxs)("div",{className:"flex items-start gap-1 text-[11px] text-destructive",children:[(0,t.jsx)(r.AlertCircle,{className:"h-3 w-3 mt-0.5 shrink-0"}),(0,t.jsx)("span",{className:"font-mono break-all",children:i})]})]})}e.s(["McpFormDialog",0,function({open:e,onOpenChange:r,mode:m,server:y,preset:N,onSaved:w}){let[k,C]=s.useState(""),[S,T]=s.useState(""),[D,R]=s.useState("stdio"),[P,_]=s.useState(h),[M,O]=s.useState(f),[A,E]=s.useState(!0),L=s.useCallback(e=>{C(e.name),T(e.description??""),R(e.transport),E(!0),"stdio"===e.transport?(_(g(e.config??{})),O(f)):(O(v(e.config??{})),_(h))},[]);s.useEffect(()=>{e&&(y?(C(y.name),T(y.description??""),R(y.transport),E(!1!==y.enabled),"stdio"===y.transport?(_(g(y.config??{})),O(f)):(O(v(y.config??{})),_(h))):N?L(N):(C(""),T(""),R("stdio"),_(h),O(f),E(!0)))},[e,y,N,L]);let z=i.mcpServers.useCreate({onSuccess:e=>{a.toast.success("Saved"),r(!1),e&&w?.(e)},onError:e=>a.toast.error(e.message||"Save failed")}),F=i.mcpServers.useUpdate({onSuccess:e=>{a.toast.success("Saved"),r(!1),e&&w?.(e)},onError:e=>a.toast.error(e.message||"Save failed")}),I="stdio"===D?b(P.env):null,H="http"===D?b(M.headers):null,q=k.trim()?null:"Name is required",$="stdio"===D?P.command.trim()?null:"Command is required":M.url.trim()?null:"URL is required",B=q??$??I??H,U=z.isPending||F.isPending,K=!B&&!U,V=e=>{if(e.preventDefault(),!K)return;let t={};if("stdio"===D){let e=P.args.split("\n").map(e=>e.trim()).filter(Boolean),s=P.env.trim()?JSON.parse(P.env):{};t={command:P.command.trim(),args:e,env:s,...P.cwd.trim()?{cwd:P.cwd.trim()}:{}}}else{let e=M.headers.trim()?JSON.parse(M.headers):{};t={url:M.url.trim(),headers:e}}let s={name:k.trim(),description:S.trim(),transport:D,config:t,enabled:A};"create"===m?z.mutate(s):y&&F.mutate({id:y.id,data:s})},J="create"===m?"Add MCP server":`Edit ${y?.name??"server"}`;return(0,t.jsx)(l.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(l.DialogContent,{className:"sm:max-w-[560px] max-h-[90vh] overflow-y-auto",onOpenAutoFocus:"edit"===m?e=>e.preventDefault():void 0,children:[(0,t.jsxs)(l.DialogHeader,{children:[(0,t.jsx)(l.DialogTitle,{className:"text-base",children:J}),(0,t.jsx)(l.DialogDescription,{className:"sr-only",children:"Configure an MCP server."})]}),(0,t.jsxs)("form",{onSubmit:V,className:"space-y-4",children:[(0,t.jsx)(j,{label:"Name",htmlFor:"m-name",required:!0,children:(0,t.jsx)(c.Input,{id:"m-name",value:k,onChange:e=>C(e.target.value),placeholder:"filesystem",className:"h-9 text-sm font-mono"})}),(0,t.jsx)(j,{label:"Description",htmlFor:"m-desc",children:(0,t.jsx)(c.Input,{id:"m-desc",value:S,onChange:e=>T(e.target.value),className:"h-9 text-sm"})}),(0,t.jsxs)(p.Tabs,{value:D,onValueChange:e=>R(e),children:[(0,t.jsxs)(p.TabsList,{className:"grid w-full grid-cols-2 h-9",children:[(0,t.jsx)(p.TabsTrigger,{value:"stdio",className:"text-xs",children:"stdio"}),(0,t.jsx)(p.TabsTrigger,{value:"http",className:"text-xs",children:"http"})]}),(0,t.jsxs)(p.TabsContent,{value:"stdio",className:"space-y-3 pt-3",children:[(0,t.jsx)(j,{label:"Command",htmlFor:"m-cmd",required:!0,children:(0,t.jsx)(c.Input,{id:"m-cmd",value:P.command,onChange:e=>_(t=>({...t,command:e.target.value})),placeholder:"npx",className:"h-9 text-sm font-mono"})}),(0,t.jsx)(j,{label:"Args",htmlFor:"m-args",children:(0,t.jsx)(u.Textarea,{id:"m-args",value:P.args,onChange:e=>_(t=>({...t,args:e.target.value})),rows:3,placeholder:"-y\n@modelcontextprotocol/server-filesystem\n/path/to/dir",className:"text-xs font-mono leading-relaxed"})}),(0,t.jsx)(j,{label:"Env",htmlFor:"m-env",error:I,children:(0,t.jsx)(u.Textarea,{id:"m-env",value:P.env,onChange:e=>_(t=>({...t,env:e.target.value})),rows:3,className:(0,x.cn)("text-xs font-mono leading-relaxed",I&&"border-destructive focus-visible:ring-destructive/40"),spellCheck:!1})}),(0,t.jsx)(j,{label:"cwd",htmlFor:"m-cwd",children:(0,t.jsx)(c.Input,{id:"m-cwd",value:P.cwd,onChange:e=>_(t=>({...t,cwd:e.target.value})),className:"h-9 text-sm font-mono"})})]}),(0,t.jsxs)(p.TabsContent,{value:"http",className:"space-y-3 pt-3",children:[(0,t.jsx)(j,{label:"URL",htmlFor:"m-url",required:!0,children:(0,t.jsx)(c.Input,{id:"m-url",value:M.url,onChange:e=>O(t=>({...t,url:e.target.value})),placeholder:"https://example.com/mcp",className:"h-9 text-sm font-mono"})}),(0,t.jsx)(j,{label:"Headers",htmlFor:"m-headers",error:H,children:(0,t.jsx)(u.Textarea,{id:"m-headers",value:M.headers,onChange:e=>O(t=>({...t,headers:e.target.value})),rows:3,className:(0,x.cn)("text-xs font-mono leading-relaxed",H&&"border-destructive focus-visible:ring-destructive/40"),spellCheck:!1})})]})]})]}),(0,t.jsxs)(l.DialogFooter,{className:"flex-row items-center !justify-between",children:[(0,t.jsxs)("label",{htmlFor:"m-enabled",className:"flex items-center gap-2 cursor-pointer text-xs",children:[(0,t.jsx)(d.Switch,{id:"m-enabled",checked:A,onCheckedChange:E}),"Enabled"]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>r(!1),disabled:U,children:"Cancel"}),(0,t.jsxs)(o.Button,{type:"button",size:"sm",onClick:V,disabled:!K,title:B??void 0,children:[U&&(0,t.jsx)(n.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),"Save"]})]})]})]})})}])},778917,e=>{"use strict";let t=(0,e.i(475254).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",0,t],778917)},303169,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(522016),r=e.i(618566),n=e.i(373264),i=e.i(107233),l=e.i(283086),o=e.i(846696),c=e.i(281601),d=e.i(138938),u=e.i(167881),m=e.i(57559),p=e.i(710924),x=e.i(127341),h=e.i(916399),f=e.i(123287),f=f,g=e.i(531278),v=e.i(788699),b=e.i(790092),j=e.i(727612);let y=(0,e.i(475254).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.i(251383);var N=e.i(137309),w=e.i(117089),k=e.i(319036),C=e.i(647163);function S(e){let t=e.config??{};if("stdio"===e.transport){let e="string"==typeof t.command?t.command:"",s=Array.isArray(t.args)?t.args.join(" "):"";return`${e} ${s}`.trim()}return"string"==typeof t.url?t.url:""}function T({s:e}){if("ok"===e.last_check_status){let s=e.tools_cache?.length??0;return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[11px] text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)(f.default,{className:"h-3.5 w-3.5"}),s," tool",1===s?"":"s"]})}return"error"===e.last_check_status?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[11px] text-destructive",title:e.last_check_error??void 0,children:[(0,t.jsx)(y,{className:"h-3.5 w-3.5"}),"Failed"]}):(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[11px] text-muted-foreground",children:[(0,t.jsx)(g.Loader2,{className:"h-3.5 w-3.5 animate-spin"}),"Checking…"]})}function D({servers:e,onSelect:s,onEdit:a,onDelete:r,selectedId:n}){let i=!!a||!!r,l=c.mcpServers.useUpdate({onError:e=>o.toast.error(e.message||"Update failed")}),d=c.mcpServers.useCheck({onSuccess:e=>{if("ok"===e.last_check_status)o.toast.success(`${e.name}: ${e.tools_cache?.length??0} tools`);else{let t=(e.last_check_error??"check failed").split("\n",1)[0];o.toast.error(`${e.name}: ${t}`)}},onError:e=>o.toast.error(e.message||"Check failed")});return(0,t.jsxs)(N.DataTableShell,{children:[(0,t.jsx)(N.DataTableHeader,{children:(0,t.jsxs)(N.DataTableHeaderRow,{children:[(0,t.jsx)(N.DataTableHead,{children:"Name"}),(0,t.jsx)(N.DataTableHead,{children:"Transport"}),(0,t.jsx)(N.DataTableHead,{children:"Endpoint / Command"}),(0,t.jsx)(N.DataTableHead,{children:"Health"}),(0,t.jsx)(N.DataTableHead,{className:"w-[80px] text-center",children:"Enabled"}),i&&(0,t.jsx)(N.DataTableHead,{className:"w-[124px] text-right",children:"Actions"})]})}),(0,t.jsx)(w.DataTableBody,{children:0===e.length?(0,t.jsx)(N.DataTableEmpty,{colSpan:i?6:5}):e.map(e=>(0,t.jsxs)(N.DataTableRow,{className:(0,C.cn)("transition-colors",s&&"cursor-pointer hover:bg-muted/40",n===e.id&&"bg-muted/60",!e.enabled&&"opacity-60"),onClick:s?()=>s(e):void 0,children:[(0,t.jsx)(N.DataTableCell,{className:"font-mono text-xs max-w-[200px] truncate",title:e.name,children:e.name}),(0,t.jsx)(N.DataTableCell,{children:(0,t.jsx)("span",{className:"inline-flex items-center rounded border border-border bg-muted/40 px-1.5 py-0.5 font-mono text-[10px] uppercase tracking-wider text-muted-foreground",children:e.transport})}),(0,t.jsx)(N.DataTableCell,{className:"font-mono text-xs text-muted-foreground max-w-[360px] truncate",title:S(e),children:S(e)||(0,t.jsx)("span",{className:"italic",children:"—"})}),(0,t.jsx)(N.DataTableCell,{children:(0,t.jsx)(T,{s:e})}),(0,t.jsx)(N.DataTableCell,{className:"text-center",children:(0,t.jsx)(k.Switch,{checked:e.enabled,disabled:!a||l.isPending,onCheckedChange:t=>{l.mutate({id:e.id,data:{enabled:t}})},onClick:e=>e.stopPropagation(),title:e.enabled?"Disable":"Enable"})}),i&&(0,t.jsx)(N.DataTableCell,{className:"text-right",children:(0,t.jsxs)("div",{className:"flex items-center justify-end gap-0.5",children:[a&&(0,t.jsx)(u.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:t=>{t.stopPropagation(),d.mutate(e.id)},disabled:d.isPending&&d.variables===e.id,title:"Re-check connection",children:(0,t.jsx)(b.RefreshCcw,{className:(0,C.cn)("h-3.5 w-3.5",d.isPending&&d.variables===e.id&&"animate-spin")})}),a&&(0,t.jsx)(u.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:t=>{t.stopPropagation(),a(e)},title:"Edit",children:(0,t.jsx)(v.Pencil,{className:"h-3.5 w-3.5"})}),r&&(0,t.jsx)(u.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground hover:text-destructive hover:bg-destructive/10",onClick:t=>{t.stopPropagation(),r(e)},title:"Delete",children:(0,t.jsx)(j.Trash2,{className:"h-3.5 w-3.5"})})]})})]},e.id))})]})}var R=e.i(195116),P=e.i(994179),_=e.i(852917),f=f,M=e.i(778917);function O(e){return/token|secret|key|password|auth/i.test(e)}function A({status:e}){return"ok"===e?(0,t.jsx)(f.default,{className:"h-4 w-4 text-emerald-500"}):"error"===e?(0,t.jsx)(y,{className:"h-4 w-4 text-destructive"}):(0,t.jsx)(g.Loader2,{className:"h-4 w-4 text-muted-foreground animate-spin"})}function E({children:e}){return(0,t.jsx)("div",{className:"rounded-md border border-dashed p-3 text-xs text-muted-foreground italic",children:e})}function L({children:e}){return(0,t.jsx)("span",{className:"not-italic inline-flex items-center rounded border border-border bg-muted/40 px-1 font-mono text-[10px] uppercase tracking-wider text-muted-foreground mx-0.5",children:e})}function z({server:e,onCheck:s,isChecking:a,isAdmin:r,streaming:n}){let i=e.last_check_status,l=e.last_check_at?(0,C.formatToLocal)(e.last_check_at):"never",o=n?.phase?F[n.phase]:null,c=!!n&&(a||n.logs.length>0);return(0,t.jsxs)("section",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Health"}),r&&(0,t.jsxs)(u.Button,{size:"sm",variant:"outline",onClick:s,disabled:a,className:"h-7 text-xs",children:[a?(0,t.jsx)(g.Loader2,{className:"h-3 w-3 mr-1.5 animate-spin"}):(0,t.jsx)(b.RefreshCcw,{className:"h-3 w-3 mr-1.5"}),"Re-check"]})]}),(0,t.jsxs)("div",{className:"rounded-md border p-3 text-sm space-y-1.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(A,{status:a?null:i}),(0,t.jsxs)("span",{className:"font-medium",children:[a&&(o??"Checking…"),!a&&"ok"===i&&"Connected",!a&&"error"===i&&"Failed",!a&&null===i&&"Never checked"]}),a&&o&&(0,t.jsx)(P.Badge,{variant:"outline",className:"ml-auto text-[10px] uppercase tracking-wider",children:n?.phase})]}),(0,t.jsxs)("div",{className:"text-[11px] text-muted-foreground",children:["Last check: ",l]}),c&&(0,t.jsx)(I,{logs:n.logs,isStreaming:a}),!a&&"error"===i&&e.last_check_error&&(0,t.jsx)("pre",{className:"mt-1.5 font-mono text-[11px] leading-snug whitespace-pre-wrap break-words bg-destructive/10 text-destructive rounded p-2 max-h-72 overflow-auto",children:e.last_check_error})]})]})}let F={spawning:"Spawning…",starting:"Installing / starting…",connecting:"Connecting…",listing:"Fetching tools…",ready:"Ready"};function I({logs:e,isStreaming:a}){let r=s.useRef(null);return s.useEffect(()=>{let e=r.current;e&&(e.scrollTop=e.scrollHeight)},[e.length]),(0,t.jsxs)("div",{className:"mt-2 rounded border border-border bg-muted/30",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-2 py-1 text-[10px] uppercase tracking-wider text-muted-foreground",children:[(0,t.jsx)("span",{children:"Install / startup logs"}),(0,t.jsxs)("span",{children:[e.length," line",1===e.length?"":"s"]})]}),(0,t.jsx)("div",{ref:r,className:"max-h-56 overflow-auto scrollbar-thin px-2 py-1.5 font-mono text-[11px] leading-snug whitespace-pre-wrap break-words",children:0===e.length?(0,t.jsx)("span",{className:"italic text-muted-foreground",children:a?"Waiting for output…":"No output captured."}):e.map((e,s)=>(0,t.jsx)("div",{children:e||" "},s))})]})}function H({info:e}){let s=!!(e.name||e.version),a=!!e.instructions?.trim(),r=e.capabilities?Object.keys(e.capabilities):[];return s||a||0!==r.length?(0,t.jsxs)("section",{className:"space-y-2",children:[(0,t.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Server"}),(0,t.jsxs)("div",{className:"rounded-md border p-3 space-y-2 text-sm",children:[s&&(0,t.jsxs)("div",{className:"font-mono text-xs",children:[e.name??"<unnamed>",e.version&&(0,t.jsxs)("span",{className:"text-muted-foreground",children:[" @ ",e.version]})]}),r.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:r.map(e=>(0,t.jsx)("span",{className:"inline-flex items-center rounded border border-border bg-muted/40 px-1.5 py-0.5 font-mono text-[10px] uppercase tracking-wider text-muted-foreground",title:`Server advertises the "${e}" capability`,children:e},e))}),a&&(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground mb-1",children:"Instructions"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed whitespace-pre-wrap",children:e.instructions})]})]})]}):null}function q({server:e,isAdmin:s}){let a=e.config??{};return(0,t.jsxs)("section",{className:"space-y-2",children:[(0,t.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"stdio"===e.transport?"Command":"Endpoint"}),(0,t.jsx)("div",{className:"rounded-md border p-3 space-y-2",children:"stdio"===e.transport?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"font-mono text-xs break-all",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"$ "}),String(a.command??"")," ",Array.isArray(a.args)?a.args.join(" "):""]}),a.env&&s&&Object.keys(a.env).length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground mb-1",children:"Env"}),(0,t.jsx)("ul",{className:"font-mono text-[11px] space-y-0.5",children:Object.entries(a.env).map(([e,s])=>(0,t.jsxs)("li",{className:"truncate",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:e}),"=",O(e)?"•••":s]},e))})]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"font-mono text-xs break-all",children:String(a.url??"")}),a.headers&&s&&Object.keys(a.headers).length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground mb-1",children:"Headers"}),(0,t.jsx)("ul",{className:"font-mono text-[11px] space-y-0.5",children:Object.entries(a.headers).map(([e,s])=>(0,t.jsxs)("li",{className:"truncate",children:[(0,t.jsxs)("span",{className:"text-muted-foreground",children:[e,":"]})," ",O(e)?"•••":s]},e))})]})]})})]})}function $({tools:e,status:s}){return(0,t.jsxs)("section",{className:"space-y-2",children:[(0,t.jsx)("div",{className:"flex items-center justify-between",children:(0,t.jsxs)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Tools ",e.length>0&&(0,t.jsxs)("span",{className:"ml-1 text-foreground",children:["(",e.length,")"]})]})}),0===e.length?(0,t.jsx)("div",{className:"rounded-md border p-3 text-xs text-muted-foreground italic",children:"error"===s?"No tools cached — last check failed.":"No tools cached yet. Run a check to populate."}):(0,t.jsx)("ul",{className:"rounded-md border divide-y",children:e.map(e=>(0,t.jsx)(B,{tool:e},e.name))})]})}function B({tool:e}){let[a,r]=s.useState(!1),n=e.parameters,i=n?.properties?Object.entries(n.properties):[],l=new Set(n?.required??[]);return(0,t.jsxs)("li",{className:(0,C.cn)("p-3 text-xs space-y-1.5",a&&"bg-muted/30"),children:[(0,t.jsxs)("button",{type:"button",onClick:()=>r(e=>!e),className:"flex w-full items-center gap-2 text-left",children:[(0,t.jsx)(M.ExternalLink,{className:"h-3 w-3 text-muted-foreground rotate-90"}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.name}),i.length>0&&(0,t.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:[i.length," param",1===i.length?"":"s"]})]}),e.description&&(0,t.jsx)("p",{className:"text-muted-foreground pl-5 leading-snug",children:e.description}),a&&(0,t.jsx)("div",{className:"pl-5 pt-1",children:0===i.length?(0,t.jsx)("p",{className:"text-muted-foreground italic",children:"(no parameters)"}):(0,t.jsx)("ul",{className:"space-y-1",children:i.map(([e,s])=>(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"font-mono text-foreground",children:e}),s?.type&&(0,t.jsxs)("span",{className:"font-mono text-muted-foreground text-[10px]",children:[": ",s.type]}),l.has(e)&&(0,t.jsx)(P.Badge,{variant:"outline",className:"h-3.5 px-1 text-[9px]",children:"required"}),s?.description&&(0,t.jsxs)("span",{className:"text-muted-foreground text-[11px] truncate",children:["— ",s.description]})]},e))})})]})}function U({snapshot:e,capabilityAdvertised:s,status:a}){let r=e?e.resources.length+e.templates.length:0;return(0,t.jsxs)("section",{className:"space-y-2",children:[(0,t.jsxs)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Resources ",r>0&&(0,t.jsxs)("span",{className:"ml-1 text-foreground",children:["(",r,")"]})]}),s?null===e?(0,t.jsx)(E,{children:"error"===a?"Last check failed — run another to populate.":"Server advertises resources but the list call did not complete."}):0===r?(0,t.jsx)(E,{children:"Server advertises resources but exposes none."}):(0,t.jsxs)("ul",{className:"rounded-md border divide-y",children:[e.resources.map(e=>(0,t.jsxs)("li",{className:"p-3 text-xs space-y-0.5",children:[(0,t.jsx)("div",{className:"font-mono text-foreground break-all",children:e.uri}),(0,t.jsxs)("div",{className:"flex items-baseline gap-2",children:[e.name&&(0,t.jsx)("span",{className:"text-foreground",children:e.name}),e.mimeType&&(0,t.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:e.mimeType})]}),e.description&&(0,t.jsx)("p",{className:"text-muted-foreground leading-snug",children:e.description})]},`r-${e.uri}`)),e.templates.map(e=>(0,t.jsxs)("li",{className:"p-3 text-xs space-y-0.5 bg-muted/10",children:[(0,t.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,t.jsx)("span",{className:"inline-flex items-center rounded border border-border bg-muted/40 px-1 font-mono text-[9px] uppercase tracking-wider text-muted-foreground",children:"template"}),(0,t.jsx)("span",{className:"font-mono text-foreground break-all",children:e.uriTemplate})]}),(e.name||e.mimeType)&&(0,t.jsxs)("div",{className:"flex items-baseline gap-2 pl-[60px]",children:[e.name&&(0,t.jsx)("span",{className:"text-foreground",children:e.name}),e.mimeType&&(0,t.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:e.mimeType})]}),e.description&&(0,t.jsx)("p",{className:"text-muted-foreground leading-snug pl-[60px]",children:e.description})]},`t-${e.uriTemplate}`))]}):(0,t.jsxs)(E,{children:["This server does not advertise the ",(0,t.jsx)(L,{children:"resources"})," capability."]})]})}function K({prompts:e,capabilityAdvertised:s,status:a}){return(0,t.jsxs)("section",{className:"space-y-2",children:[(0,t.jsxs)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Prompts ",e&&e.length>0&&(0,t.jsxs)("span",{className:"ml-1 text-foreground",children:["(",e.length,")"]})]}),s?null===e?(0,t.jsx)(E,{children:"error"===a?"Last check failed — run another to populate.":"Server advertises prompts but the list call did not complete."}):0===e.length?(0,t.jsx)(E,{children:"Server advertises prompts but exposes none."}):(0,t.jsx)("ul",{className:"rounded-md border divide-y",children:e.map(e=>(0,t.jsx)(V,{prompt:e},e.name))}):(0,t.jsxs)(E,{children:["This server does not advertise the ",(0,t.jsx)(L,{children:"prompts"})," capability."]})]})}function V({prompt:e}){let[a,r]=s.useState(!1),n=e.arguments??[];return(0,t.jsxs)("li",{className:(0,C.cn)("p-3 text-xs space-y-1.5",a&&"bg-muted/30"),children:[(0,t.jsxs)("button",{type:"button",onClick:()=>r(e=>!e),className:"flex w-full items-center gap-2 text-left",children:[(0,t.jsx)(M.ExternalLink,{className:"h-3 w-3 text-muted-foreground rotate-90"}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.name}),n.length>0&&(0,t.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:[n.length," arg",1===n.length?"":"s"]})]}),e.description&&(0,t.jsx)("p",{className:"text-muted-foreground pl-5 leading-snug",children:e.description}),a&&n.length>0&&(0,t.jsx)("ul",{className:"pl-5 pt-1 space-y-1",children:n.map(e=>(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.name}),e.required&&(0,t.jsx)(P.Badge,{variant:"outline",className:"h-3.5 px-1 text-[9px]",children:"required"}),e.description&&(0,t.jsxs)("span",{className:"text-muted-foreground text-[11px] truncate",children:["— ",e.description]})]},e.name))})]})}function J({server:e,open:a,onOpenChange:r,isAdmin:n}){let i=c.mcpServers.useCheckStream();s.useEffect(()=>{if(i.result)if("ok"===i.result.last_check_status)o.toast.success(`Check passed — ${i.result.tools_cache?.length??0} tools`);else{let e=(i.result.last_check_error??"unknown error").split("\n",1)[0];o.toast.error(`Check failed: ${e}`)}},[i.result]),s.useEffect(()=>{i.error&&!i.result&&o.toast.error(i.error)},[i.error,i.result]);let l=s.useCallback(()=>{e&&i.run(e.id)},[e,i]),d=s.useRef(null);s.useEffect(()=>{a&&e&&!e.server_info&&"ok"===e.last_check_status&&d.current!==e.id&&(d.current=e.id,i.run(e.id))},[a,e,i]);let u=s.useRef(null);return(s.useEffect(()=>{if(!a)return;let t=e?.id??null;u.current&&u.current!==t&&(i.cancel(),i.reset()),u.current=t},[a,e,i]),e)?(0,t.jsx)(_.Sheet,{open:a,onOpenChange:r,children:(0,t.jsxs)(_.SheetContent,{side:"right",className:"w-full sm:max-w-[640px] overflow-y-auto scrollbar-thin p-0",children:[(0,t.jsxs)(_.SheetHeader,{className:"px-6 py-4 border-b",children:[(0,t.jsxs)(_.SheetTitle,{className:"flex items-center gap-2 text-base",children:[(0,t.jsx)(R.Wrench,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)("span",{className:"font-mono",children:e.name}),(0,t.jsx)(P.Badge,{variant:"outline",className:"text-[10px] uppercase ml-2",children:e.transport}),!e.enabled&&(0,t.jsx)(P.Badge,{variant:"secondary",className:"text-[10px] uppercase",children:"disabled"})]}),(0,t.jsx)(_.SheetDescription,{className:"text-xs text-muted-foreground pt-1",children:e.description||"MCP server connection details, health, and discovered tools."})]}),(0,t.jsxs)("div",{className:"px-6 py-4 space-y-5",children:[(0,t.jsx)(z,{server:e,onCheck:l,isChecking:i.isChecking,isAdmin:n,streaming:{phase:i.phase,logs:i.logs,error:i.error}}),e.server_info&&(0,t.jsx)(H,{info:e.server_info}),(0,t.jsx)(q,{server:e,isAdmin:n}),(0,t.jsx)($,{tools:e.tools_cache??[],status:e.last_check_status}),(0,t.jsx)(U,{snapshot:e.resources_cache,capabilityAdvertised:!!e.server_info?.capabilities?.resources,status:e.last_check_status}),(0,t.jsx)(K,{prompts:e.prompts_cache,capabilityAdvertised:!!e.server_info?.capabilities?.prompts,status:e.last_check_status})]})]})}):null}e.s(["default",0,function(){let{user:e}=(0,d.useAuth)(),f=e?.role==="admin",[g,v]=s.useState("mcp"),{data:b,isLoading:j}=c.mcpServers.useList(void 0,{enabled:"mcp"===g,refetchInterval:e=>{let t=e.state.data;return!!t&&!!t.some(e=>null===e.last_check_status)&&2e3}}),[y,N]=s.useState({open:!1,mode:"create"}),[w,k]=s.useState(null),C=(0,r.useSearchParams)(),[S,T]=s.useState(()=>C?.get("selected")??null),R=s.useMemo(()=>(b??[]).find(e=>e.id===S)??null,[b,S]),P=c.mcpServers.useDelete({onSuccess:()=>{o.toast.success("Server deleted"),k(null),S===w?.id&&T(null)},onError:e=>o.toast.error(e.message||"Delete failed")});return(0,t.jsxs)("div",{className:"h-full flex flex-col p-4 overflow-y-hidden",children:[(0,t.jsxs)(x.Tabs,{defaultValue:"mcp",className:"flex-1 flex flex-col min-h-0 w-full gap-4",onValueChange:v,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1 flex-wrap md:flex-nowrap",children:[(0,t.jsxs)(x.TabsList,{className:"h-8 p-0.5",children:[(0,t.jsx)(x.TabsTrigger,{value:"mcp",className:"h-7 px-3 text-xs",children:"MCP"}),(0,t.jsx)(x.TabsTrigger,{value:"skills",className:"h-7 px-3 text-xs",children:"Skills"})]}),"mcp"===g&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5 ml-auto",children:[(0,t.jsx)(a.default,{href:"/mcp/presets",children:(0,t.jsxs)(u.Button,{size:"sm",variant:"secondary",className:"h-8 text-xs gap-1.5",children:[(0,t.jsx)(n.LayoutGrid,{className:"h-3.5 w-3.5"}),"Catalogue"]})}),f&&(0,t.jsx)(u.Button,{size:"icon",variant:"secondary",className:"h-8 w-8 shrink-0",onClick:()=>N({open:!0,mode:"create"}),title:"Add MCP server",children:(0,t.jsx)(i.Plus,{className:"h-3.5 w-3.5"})})]})]}),(0,t.jsx)(x.TabsContent,{value:"mcp",className:"flex-1 min-h-0 flex flex-col",children:(0,t.jsxs)("div",{className:"flex-1 border rounded-xl bg-card shadow-sm flex flex-col overflow-hidden relative",children:[j&&(0,t.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-background/50 z-10",children:(0,t.jsx)(p.LoadingState,{label:"Loading MCP servers…"})}),(0,t.jsx)("div",{className:"flex-1 overflow-auto",children:(0,t.jsx)(D,{servers:b??[],onSelect:e=>T(e.id),onEdit:f?e=>N({open:!0,mode:"edit",server:e}):void 0,onDelete:f?k:void 0,selectedId:S})})]})}),(0,t.jsxs)(x.TabsContent,{value:"skills",className:"flex-1 min-h-0 flex flex-col items-center justify-center text-center",children:[(0,t.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-2xl bg-gradient-to-br from-amber-500/20 to-orange-500/20",children:(0,t.jsx)(l.Sparkles,{className:"h-6 w-6 text-amber-500"})}),(0,t.jsx)("h2",{className:"mt-3 text-base font-semibold tracking-tight",children:"Skills"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Coming soon."})]})]}),(0,t.jsx)(h.McpFormDialog,{open:y.open,onOpenChange:e=>N(t=>({...t,open:e})),mode:y.mode,server:y.server}),(0,t.jsx)(J,{server:R,open:!!R,onOpenChange:e=>!e&&T(null),isAdmin:f}),(0,t.jsx)(m.ConfirmDialog,{open:!!w,onOpenChange:e=>!e&&k(null),title:"Delete MCP server?",description:(0,t.jsxs)(t.Fragment,{children:["This will delete ",(0,t.jsx)("b",{children:w?.name}),"."]}),confirmLabel:"Delete",destructive:!0,isLoading:P.isPending,onConfirm:()=>w&&P.mutate(w.id)})]})}],303169)}]);
@@ -0,0 +1,7 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,555436,e=>{"use strict";let t=(0,e.i(475254).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",0,t],555436)},970065,e=>{"use strict";var t=e.i(843476),a=e.i(647163);e.s(["Card",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card",className:(0,a.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...s})},"CardContent",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-6",e),...s})},"CardDescription",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-muted-foreground text-sm",e),...s})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("leading-none font-semibold",e),...s})}])},531278,e=>{"use strict";var t=e.i(717521);e.s(["Loader2",()=>t.default])},23750,e=>{"use strict";var t=e.i(843476),a=e.i(647163);e.s(["Input",0,function({className:e,type:s,...r}){return(0,t.jsx)("input",{type:s,"data-slot":"input",className:(0,a.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}])},10708,e=>{"use strict";var t=e.i(843476),a=e.i(271645),s=e.i(248425),r=a.forwardRef((e,a)=>(0,t.jsx)(s.Primitive.label,{...e,ref:a,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));r.displayName="Label";var i=e.i(647163);e.s(["Label",0,function({className:e,...a}){return(0,t.jsx)(r,{"data-slot":"label",className:(0,i.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...a})}],10708)},999682,e=>{"use strict";var t=e.i(271645);e.s(["usePrevious",0,function(e){let a=t.useRef({value:e,previous:e});return t.useMemo(()=>(a.current.value!==e&&(a.current.previous=a.current.value,a.current.value=e),a.current.previous),[e])}])},733467,e=>{"use strict";let t=(0,e.i(718512).defineResource)({path:"/models",key:"models",listShape:"array",staleTime:6e4,invalidates:["providers"]});e.s(["models",0,t])},422758,e=>{"use strict";var t=e.i(843476),a=e.i(271645),s=e.i(647163);let r={openai:"/providers/openai.svg",claude:"/providers/claude.svg",anthropic:"/providers/claude.svg",gemini:"/providers/gemini.svg",google:"/providers/gemini.svg",vertexai:"/providers/vertexai.svg",vertex:"/providers/vertex.svg",deepseek:"/providers/deepseek.png",moonshot:"/providers/moonshot.png",zhipu:"/providers/zhipu.png",aliyun:"/providers/alibabacloud.png",alibabacloud:"/providers/alibabacloud.png",siliconflow:"/providers/siliconflow.svg",tei:"/providers/tei.svg",transformers:"/providers/transformers.svg",baichuan:"/providers/baichuan.png",volcengine:"/providers/volcengine.png",stepfun:"/providers/stepfun.png"},i=new Set(["openai","vertex","vertexai","siliconflow"]),n=(0,a.memo)(function({providerName:e,className:n,width:o=24,height:l=24}){let[d,c]=(0,a.useState)(!1),u=e.toLowerCase().replace(/[^a-z0-9_]/g,""),m=r[u],p=i.has(u);return m&&!d?(0,t.jsx)("img",{src:m,alt:"",width:o,height:l,loading:"lazy",className:(0,s.cn)("object-contain shrink-0",p&&"dark:invert",n),onError:()=>c(!0)}):(0,t.jsx)("span",{className:(0,s.cn)("rounded bg-muted flex items-center justify-center text-[8px] font-bold shrink-0",n),style:{width:o,height:l},children:e.substring(0,2).toUpperCase()})});e.s(["ProviderIcon",0,n])},777951,e=>{"use strict";var t=e.i(869230),a=e.i(992571),s=class extends t.QueryObserver{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type="infinite",super.setOptions(e)}getOptimisticResult(e){return e._type="infinite",super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){let{state:s}=e,r=super.createResult(e,t),{isFetching:i,isRefetching:n,isError:o,isRefetchError:l}=r,d=s.fetchMeta?.fetchMore?.direction,c=o&&"forward"===d,u=i&&"forward"===d,m=o&&"backward"===d,p=i&&"backward"===d;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,a.hasNextPage)(t,s.data),hasPreviousPage:(0,a.hasPreviousPage)(t,s.data),isFetchNextPageError:c,isFetchingNextPage:u,isFetchPreviousPageError:m,isFetchingPreviousPage:p,isRefetchError:l&&!c&&!m,isRefetching:n&&!u&&!p}}},r=e.i(469637),i=e.i(912598),n=e.i(718512),o=e.i(715760);let l=(0,n.defineResource)({path:"/conversations",key:"conversations",paramsOf:e=>({page:e.page??1,page_size:e.page_size??20,sort:e.sort??"-updated_at",keyword:e.keyword}),staleTime:6e4}),d={...l,updateTitle:(e,t)=>l.update(e,{title:t}),messagesCacheKey:function(e,t){return[...l.keys.one(e),"messages-cache",t]},useInvalidateList:()=>{let e=(0,i.useQueryClient)();return()=>e.invalidateQueries({queryKey:l.keys.all(),predicate:e=>{let t=e.queryKey;return t.length>=2&&("list"===t[1]||"infinite"===t[1])}})},useInfinite:e=>{var t;let a=e?.pageSize??20,i=e?.keyword?.trim()||void 0;return t={queryKey:[...l.keys.all(),"infinite",e?.scope??"default",a,i??""],initialPageParam:1,queryFn:({pageParam:e=1})=>l.list({page:e,page_size:a,keyword:i}),getNextPageParam:e=>{if(e)return e.page*e.page_size<e.total?e.page+1:void 0}},(0,r.useBaseQuery)(t,s,void 0)},listMessages:(e,t)=>(0,o.fetcher)(`/conversations/${encodeURIComponent(e)}/messages?`+new URLSearchParams({page:String(t?.page??1),page_size:String(t?.page_size??50),sort:t?.sort??"-created_at"}).toString())},c=["messages"];e.s(["conversations",0,d,"messages",0,{keys:{all:()=>c},rate:(e,t,a)=>(0,o.fetcher)(`/messages/${encodeURIComponent(e)}/rate`,{method:"POST",body:JSON.stringify({rating:t,feedback:a})})}],777951)},281601,e=>{"use strict";var t=e.i(954616),a=e.i(266027),s=e.i(912598),r=e.i(271645),i=e.i(718512),n=e.i(715760);let o=(0,i.defineResource)({path:"/mcp/servers",key:"mcp-servers",listShape:"array",staleTime:6e4}),l={...o,listPresets:()=>(0,n.fetcher)("/mcp/presets"),usePresets:()=>(0,a.useQuery)({queryKey:["mcp-presets"],queryFn:()=>l.listPresets(),staleTime:3e5}),check:e=>(0,n.fetcher)(`/mcp/servers/${encodeURIComponent(e)}/check`,{method:"POST"}),useCheck:e=>{let a=(0,s.useQueryClient)();return(0,t.useMutation)({mutationFn:e=>l.check(e),onSuccess:t=>{a.invalidateQueries({queryKey:o.keys.all()}),e?.onSuccess?.(t)},onError:t=>e?.onError?.(t)})},checkStream:async(e,t,a)=>{let s=await (0,n.rawFetch)(`/mcp/servers/${encodeURIComponent(e)}/check`,{method:"POST",headers:{Accept:"text/event-stream"},signal:a?.signal});if(!s.body)throw Error("No response body");let r=s.body.getReader(),i=new TextDecoder,o="",l=null;try{for(;;){let{done:e,value:a}=await r.read();if(e)break;let s=(o+=i.decode(a,{stream:!0})).indexOf("\n\n");for(;-1!==s;){let e=o.slice(0,s);o=o.slice(s+2);let a=e.split("\n").find(e=>e.startsWith("data: "));if(a)try{let e=JSON.parse(a.slice(6));t(e),"result"===e.type?l=e.server:"error"===e.type&&e.server&&(l=e.server)}catch{}s=o.indexOf("\n\n")}}}finally{try{r.releaseLock()}catch{}}return l},useCheckStream:()=>{let e=(0,s.useQueryClient)(),[t,a]=r.useState(null),[i,n]=r.useState([]),[d,c]=r.useState(!1),[u,m]=r.useState(null),[p,h]=r.useState(null),x=r.useRef(null),f=r.useCallback(()=>{a(null),n([]),m(null),h(null)},[]),g=r.useCallback(()=>{x.current?.abort(),x.current=null,c(!1)},[]),v=r.useCallback(async t=>{f(),c(!0);let s=new AbortController;x.current=s;try{let r=await l.checkStream(t,e=>{"phase"===e.type?a(e.phase):"log"===e.type?n(t=>[...t,e.line]):"result"===e.type?h(e.server):"error"===e.type&&(m(e.message),e.server&&h(e.server))},{signal:s.signal});return e.invalidateQueries({queryKey:o.keys.all()}),r}catch(t){let e=t instanceof Error?t.message:String(t);return s.signal.aborted||m(e),null}finally{c(!1),x.current=null}},[f,e]);return r.useEffect(()=>()=>x.current?.abort(),[]),{run:v,cancel:g,reset:f,phase:t,logs:i,isChecking:d,error:u,result:p}}};e.s(["mcpServers",0,l])},788699,e=>{"use strict";let t=(0,e.i(475254).default)("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"}]]);e.s(["Pencil",0,t],788699)},184762,e=>{"use strict";var t=e.i(843476),a=e.i(647163);e.s(["Textarea",0,function({className:e,...s}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,a.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),...s})}])},319036,e=>{"use strict";var t=e.i(843476),a=e.i(271645),s=e.i(981140),r=e.i(820783),i=e.i(30030),n=e.i(369340),o=e.i(999682),l=e.i(635804),d=e.i(248425),c="Switch",[u,m]=(0,i.createContextScope)(c),[p,h]=u(c);function x(e){let{__scopeSwitch:s,checked:r,children:i,defaultChecked:o,disabled:l,form:d,name:u,onCheckedChange:m,required:h,value:x="on",internal_do_not_use_render:f}=e,[g,v]=(0,n.useControllableState)({prop:r,defaultProp:o??!1,onChange:m,caller:c}),[b,j]=a.useState(null),[y,w]=a.useState(null),N=a.useRef(!1),k=!b||!!d||!!b.closest("form"),C={checked:g,setChecked:v,disabled:l,control:b,setControl:j,name:u,form:d,value:x,hasConsumerStoppedPropagationRef:N,required:h,defaultChecked:o,isFormControl:k,bubbleInput:y,setBubbleInput:w};return(0,t.jsx)(p,{scope:s,...C,children:"function"==typeof f?f(C):i})}var f="SwitchTrigger",g=a.forwardRef(({__scopeSwitch:e,onClick:a,...i},n)=>{let{value:o,disabled:l,checked:c,required:u,setControl:m,setChecked:p,hasConsumerStoppedPropagationRef:x,isFormControl:g,bubbleInput:v}=h(f,e),b=(0,r.useComposedRefs)(n,m);return(0,t.jsx)(d.Primitive.button,{type:"button",role:"switch","aria-checked":c,"aria-required":u,"data-state":N(c),"data-disabled":l?"":void 0,disabled:l,value:o,...i,ref:b,onClick:(0,s.composeEventHandlers)(a,e=>{p(e=>!e),v&&g&&(x.current=e.isPropagationStopped(),x.current||e.stopPropagation())})})});g.displayName=f;var v=a.forwardRef((e,a)=>{let{__scopeSwitch:s,name:r,checked:i,defaultChecked:n,required:o,disabled:l,value:d,onCheckedChange:c,form:u,...m}=e;return(0,t.jsx)(x,{__scopeSwitch:s,checked:i,defaultChecked:n,disabled:l,required:o,onCheckedChange:c,name:r,form:u,value:d,internal_do_not_use_render:({isFormControl:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(g,{...m,ref:a,__scopeSwitch:s}),e&&(0,t.jsx)(w,{__scopeSwitch:s})]})})});v.displayName=c;var b="SwitchThumb",j=a.forwardRef((e,a)=>{let{__scopeSwitch:s,...r}=e,i=h(b,s);return(0,t.jsx)(d.Primitive.span,{"data-state":N(i.checked),"data-disabled":i.disabled?"":void 0,...r,ref:a})});j.displayName=b;var y="SwitchBubbleInput",w=a.forwardRef(({__scopeSwitch:e,...s},i)=>{let{control:n,hasConsumerStoppedPropagationRef:c,checked:u,defaultChecked:m,required:p,disabled:x,name:f,value:g,form:v,bubbleInput:b,setBubbleInput:j}=h(y,e),w=(0,r.useComposedRefs)(i,j),N=(0,o.usePrevious)(u),k=(0,l.useSize)(n);a.useEffect(()=>{if(!b)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!c.current;if(N!==u&&e){let a=new Event("click",{bubbles:t});e.call(b,u),b.dispatchEvent(a)}},[b,N,u,c]);let C=a.useRef(u);return(0,t.jsx)(d.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:m??C.current,required:p,disabled:x,name:f,value:g,form:v,...s,tabIndex:-1,ref:w,style:{...s.style,...k,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function N(e){return e?"checked":"unchecked"}w.displayName=y;var k=e.i(647163);e.s(["Switch",0,function({className:e,...a}){return(0,t.jsx)(v,{"data-slot":"switch",className:(0,k.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...a,children:(0,t.jsx)(j,{"data-slot":"switch-thumb",className:(0,k.cn)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}],319036)},137309,117089,e=>{"use strict";var t=e.i(843476);let a=(0,e.i(475254).default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);var s=e.i(947627),r=e.i(647163);e.s(["DataTableCell",0,function({className:e,...a}){return(0,t.jsx)(s.TableCell,{className:(0,r.cn)("py-2 first:pl-4 last:pr-4",e),...a})},"DataTableEmpty",0,function({colSpan:e,children:r}){return(0,t.jsx)(s.TableRow,{className:"hover:bg-transparent",children:(0,t.jsx)(s.TableCell,{colSpan:e,className:"h-48 text-center align-middle text-muted-foreground/40",children:(0,t.jsx)("div",{className:"flex items-center justify-center",children:(0,t.jsx)(a,{className:"h-8 w-8","aria-label":"empty"})})})})},"DataTableHead",0,function({className:e,...a}){return(0,t.jsx)(s.TableHead,{className:(0,r.cn)("h-10 text-xs font-semibold uppercase tracking-wide text-muted-foreground/80 first:pl-4 last:pr-4",e),...a})},"DataTableHeader",0,function({className:e,...a}){return(0,t.jsx)(s.TableHeader,{className:(0,r.cn)("bg-muted/40 sticky top-0 z-10",e),...a})},"DataTableHeaderRow",0,function({className:e,...a}){return(0,t.jsx)(s.TableRow,{className:(0,r.cn)("hover:bg-transparent border-b-muted/60 shadow-sm",e),...a})},"DataTableRow",0,function({className:e,interactive:a=!0,...i}){return(0,t.jsx)(s.TableRow,{className:(0,r.cn)("h-10 border-b-muted/20 even:bg-muted/50 group",a&&"cursor-pointer hover:bg-muted/90",e),...i})},"DataTableShell",0,function({className:e,...a}){return(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsx)(s.Table,{className:e,...a})})}],137309),e.s(["DataTableBody",()=>s.TableBody],117089)},630374,e=>{"use strict";var t=e.i(843476),a=e.i(326999),s=e.i(995926),r=e.i(647163);function i({...e}){return(0,t.jsx)(a.Portal,{"data-slot":"dialog-portal",...e})}function n({className:e,...s}){return(0,t.jsx)(a.Overlay,{"data-slot":"dialog-overlay",className:(0,r.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...s})}e.s(["Dialog",0,function({...e}){return(0,t.jsx)(a.Root,{"data-slot":"dialog",...e})},"DialogContent",0,function({className:e,children:o,showCloseButton:l=!0,...d}){return(0,t.jsxs)(i,{"data-slot":"dialog-portal",children:[(0,t.jsx)(n,{}),(0,t.jsxs)(a.Content,{"data-slot":"dialog-content",className:(0,r.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",e),...d,children:[o,l&&(0,t.jsxs)(a.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,t.jsx)(s.XIcon,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"DialogDescription",0,function({className:e,...s}){return(0,t.jsx)(a.Description,{"data-slot":"dialog-description",className:(0,r.cn)("text-muted-foreground text-sm",e),...s})},"DialogFooter",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"dialog-footer",className:(0,r.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...a})},"DialogHeader",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"dialog-header",className:(0,r.cn)("flex flex-col gap-2 text-center sm:text-left",e),...a})},"DialogTitle",0,function({className:e,...s}){return(0,t.jsx)(a.Title,{"data-slot":"dialog-title",className:(0,r.cn)("text-lg leading-none font-semibold",e),...s})}])},994179,e=>{"use strict";var t=e.i(843476),a=e.i(991918),s=e.i(225913),r=e.i(647163);let i=(0,s.cva)("inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:s,asChild:n=!1,...o}){let l=n?a.Slot:"span";return(0,t.jsx)(l,{"data-slot":"badge",className:(0,r.cn)(i({variant:s}),e),...o})}])},282022,e=>{"use strict";let t=(0,e.i(718512).defineResource)({path:"/logs/generations",key:"logs",staleTime:3e4});e.s(["logs",0,t])},32506,e=>{"use strict";var t=e.i(954616),a=e.i(266027),s=e.i(718512),r=e.i(715760);let i=(0,s.defineResource)({path:"/providers",key:"providers",listShape:"array",staleTime:6e4,invalidates:["models"]}),n={...i,listModels:e=>(0,r.fetcher)(`/providers/${encodeURIComponent(e)}/models`),reload:()=>(0,r.fetcher)("/providers/reload",{method:"POST"}),check:e=>(0,r.fetcher)(`/providers/${encodeURIComponent(e)}/check`,{method:"POST"}),probe:e=>(0,r.fetcher)("/providers/probe",{method:"POST",body:JSON.stringify({health_check_url:e}),headers:{"Content-Type":"application/json"}}),useModels:e=>(0,a.useQuery)({queryKey:[...i.keys.one(e??""),"models"],queryFn:()=>n.listModels(e),enabled:!!e}),useReload:e=>{let a=i.useInvalidate();return(0,t.useMutation)({mutationFn:n.reload,...e,onSuccess:(t,s,r,i)=>{a(),e?.onSuccess?.(t,s,r,i)}})},useCheck:(e,a)=>{let s=i.useInvalidate();return(0,t.useMutation)({mutationFn:()=>n.check(e),...a,onSuccess:(e,t,r,i)=>{s(),a?.onSuccess?.(e,t,r,i)}})}};e.s(["providers",0,n])},511169,e=>{"use strict";let t=(0,e.i(718512).defineResource)({path:"/users",key:"users",staleTime:6e4});e.s(["users",0,t])},251383,402487,581445,778296,585381,e=>{"use strict";e.i(511169),e.i(32506),e.i(733467),e.i(518874),e.i(282022),e.i(777951);var t=e.i(718512);let a=(0,t.defineResource)({path:"/capabilities",key:"capabilities",listShape:"array",staleTime:6e4});e.s(["capabilities",0,a],402487);let s=(0,t.defineResource)({path:"/adapters",key:"adapters",listShape:"array",staleTime:6e4});e.s(["adapters",0,s],581445);let r=(0,t.defineResource)({path:"/variants",key:"variants",listShape:"array",staleTime:6e4});e.s(["variants",0,r],778296);let i=(0,t.defineResource)({path:"/tools",key:"tools",listShape:"array",staleTime:6e4});e.s(["tools",0,i],585381),e.i(281601),e.s([],251383)},727612,e=>{"use strict";let t=(0,e.i(475254).default)("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"}]]);e.s(["Trash2",0,t],727612)},878894,e=>{"use strict";var t=e.i(582458);e.s(["AlertTriangle",()=>t.default])},57559,e=>{"use strict";var t=e.i(843476),a=e.i(878894),s=e.i(531278),r=e.i(271645),i=e.i(30030),n=e.i(820783),o=e.i(326999),l=e.i(981140),d=e.i(991918),c="AlertDialog",[u,m]=(0,i.createContextScope)(c,[o.createDialogScope]),p=(0,o.createDialogScope)(),h=e=>{let{__scopeAlertDialog:a,...s}=e,r=p(a);return(0,t.jsx)(o.Root,{...r,...s,modal:!0})};h.displayName=c,r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,...r}=e,i=p(s);return(0,t.jsx)(o.Trigger,{...i,...r,ref:a})}).displayName="AlertDialogTrigger";var x=e=>{let{__scopeAlertDialog:a,...s}=e,r=p(a);return(0,t.jsx)(o.Portal,{...r,...s})};x.displayName="AlertDialogPortal";var f=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,...r}=e,i=p(s);return(0,t.jsx)(o.Overlay,{...i,...r,ref:a})});f.displayName="AlertDialogOverlay";var g="AlertDialogContent",[v,b]=u(g),j=(0,d.createSlottable)("AlertDialogContent"),y=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,children:i,...d}=e,c=p(s),u=r.useRef(null),m=(0,n.useComposedRefs)(a,u),h=r.useRef(null);return(0,t.jsx)(o.WarningProvider,{contentName:g,titleName:w,docsSlug:"alert-dialog",children:(0,t.jsx)(v,{scope:s,cancelRef:h,children:(0,t.jsxs)(o.Content,{role:"alertdialog",...c,...d,ref:m,onOpenAutoFocus:(0,l.composeEventHandlers)(d.onOpenAutoFocus,e=>{e.preventDefault(),h.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,t.jsx)(j,{children:i}),(0,t.jsx)(P,{contentRef:u})]})})})});y.displayName=g;var w="AlertDialogTitle",N=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,...r}=e,i=p(s);return(0,t.jsx)(o.Title,{...i,...r,ref:a})});N.displayName=w;var k="AlertDialogDescription",C=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,...r}=e,i=p(s);return(0,t.jsx)(o.Description,{...i,...r,ref:a})});C.displayName=k;var S=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,...r}=e,i=p(s);return(0,t.jsx)(o.Close,{...i,...r,ref:a})});S.displayName="AlertDialogAction";var T="AlertDialogCancel",_=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,...r}=e,{cancelRef:i}=b(T,s),l=p(s),d=(0,n.useComposedRefs)(a,i);return(0,t.jsx)(o.Close,{...l,...r,ref:d})});_.displayName=T;var P=({contentRef:e})=>{let t=`\`${g}\` requires a description for the component to be accessible for screen reader users.
2
+
3
+ You can add a description to the \`${g}\` by passing a \`${k}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
4
+
5
+ Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${g}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
6
+
7
+ For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return r.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},D=e.i(647163),R=e.i(167881);let L=r.forwardRef(({className:e,...a},s)=>(0,t.jsx)(f,{className:(0,D.cn)("fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...a,ref:s}));L.displayName=f.displayName;let E=r.forwardRef(({className:e,...a},s)=>(0,t.jsxs)(x,{children:[(0,t.jsx)(L,{}),(0,t.jsx)(y,{ref:s,className:(0,D.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",e),...a})]}));E.displayName=y.displayName;let M=({className:e,...a})=>(0,t.jsx)("div",{className:(0,D.cn)("flex flex-col space-y-2 text-center sm:text-left",e),...a});M.displayName="AlertDialogHeader";let I=({className:e,...a})=>(0,t.jsx)("div",{className:(0,D.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...a});I.displayName="AlertDialogFooter";let z=r.forwardRef(({className:e,...a},s)=>(0,t.jsx)(N,{ref:s,className:(0,D.cn)("text-lg font-semibold",e),...a}));z.displayName=N.displayName;let O=r.forwardRef(({className:e,...a},s)=>(0,t.jsx)(C,{ref:s,className:(0,D.cn)("text-sm text-muted-foreground",e),...a}));O.displayName=C.displayName;let A=r.forwardRef(({className:e,...a},s)=>(0,t.jsx)(S,{ref:s,className:(0,D.cn)((0,R.buttonVariants)(),e),...a}));A.displayName=S.displayName;let F=r.forwardRef(({className:e,...a},s)=>(0,t.jsx)(_,{ref:s,className:(0,D.cn)((0,R.buttonVariants)({variant:"outline"}),"mt-2 sm:mt-0",e),...a}));F.displayName=_.displayName,e.s(["ConfirmDialog",0,function({open:e,onOpenChange:r,title:i,description:n,confirmLabel:o="Confirm",cancelLabel:l="Cancel",destructive:d,isLoading:c,onConfirm:u}){return(0,t.jsx)(h,{open:e,onOpenChange:r,children:(0,t.jsxs)(E,{children:[(0,t.jsx)(M,{children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[d&&(0,t.jsx)("div",{className:"mt-0.5 flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-destructive/10 text-destructive",children:(0,t.jsx)(a.AlertTriangle,{className:"h-4 w-4"})}),(0,t.jsxs)("div",{className:"flex-1 space-y-1.5",children:[(0,t.jsx)(z,{className:(0,D.cn)(d&&"text-foreground"),children:i}),(0,t.jsx)(O,{children:n})]})]})}),(0,t.jsxs)(I,{children:[(0,t.jsx)(F,{disabled:c,children:l}),(0,t.jsxs)(A,{onClick:e=>{e.preventDefault(),u()},disabled:c,className:(0,D.cn)(d&&"bg-destructive text-white shadow-sm shadow-destructive/30 hover:bg-destructive/90 focus-visible:ring-destructive/40"),children:[c&&(0,t.jsx)(s.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),o]})]})]})})}],57559)},947627,e=>{"use strict";var t=e.i(843476),a=e.i(647163);e.s(["Table",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,t.jsx)("table",{"data-slot":"table",className:(0,a.cn)("w-full caption-bottom text-sm",e),...s})})},"TableBody",0,function({className:e,...s}){return(0,t.jsx)("tbody",{"data-slot":"table-body",className:(0,a.cn)("[&_tr:last-child]:border-0",e),...s})},"TableCell",0,function({className:e,...s}){return(0,t.jsx)("td",{"data-slot":"table-cell",className:(0,a.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...s})},"TableHead",0,function({className:e,...s}){return(0,t.jsx)("th",{"data-slot":"table-head",className:(0,a.cn)("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...s})},"TableHeader",0,function({className:e,...s}){return(0,t.jsx)("thead",{"data-slot":"table-header",className:(0,a.cn)("[&_tr]:border-b",e),...s})},"TableRow",0,function({className:e,...s}){return(0,t.jsx)("tr",{"data-slot":"table-row",className:(0,a.cn)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",e),...s})}])},107233,e=>{"use strict";let t=(0,e.i(475254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],107233)},710924,e=>{"use strict";var t=e.i(843476),a=e.i(531278),s=e.i(647163);let r={sm:"h-3.5 w-3.5",md:"h-5 w-5",lg:"h-8 w-8"};e.s(["LoadingState",0,function({label:e="Loading…",size:i="md",variant:n="centered",className:o}){return"inline"===n?(0,t.jsxs)("div",{className:(0,s.cn)("flex items-center gap-2 text-sm text-muted-foreground",o),children:[(0,t.jsx)(a.Loader2,{className:(0,s.cn)(r[i],"animate-spin")}),e&&(0,t.jsx)("span",{children:e})]}):(0,t.jsxs)("div",{className:(0,s.cn)("flex flex-col items-center justify-center gap-3 py-12 text-muted-foreground",o),children:[(0,t.jsx)(a.Loader2,{className:(0,s.cn)(r[i],"animate-spin")}),e&&(0,t.jsx)("p",{className:"text-sm",children:e})]})}])},127341,e=>{"use strict";var t=e.i(843476),a=e.i(271645),s=e.i(981140),r=e.i(30030),i=e.i(842727),n=e.i(296626),o=e.i(248425),l=e.i(586318),d=e.i(369340),c=e.i(610772),u="Tabs",[m,p]=(0,r.createContextScope)(u,[i.createRovingFocusGroupScope]),h=(0,i.createRovingFocusGroupScope)(),[x,f]=m(u),g=a.forwardRef((e,a)=>{let{__scopeTabs:s,value:r,onValueChange:i,defaultValue:n,orientation:m="horizontal",dir:p,activationMode:h="automatic",...f}=e,g=(0,l.useDirection)(p),[v,b]=(0,d.useControllableState)({prop:r,onChange:i,defaultProp:n??"",caller:u});return(0,t.jsx)(x,{scope:s,baseId:(0,c.useId)(),value:v,onValueChange:b,orientation:m,dir:g,activationMode:h,children:(0,t.jsx)(o.Primitive.div,{dir:g,"data-orientation":m,...f,ref:a})})});g.displayName=u;var v="TabsList",b=a.forwardRef((e,a)=>{let{__scopeTabs:s,loop:r=!0,...n}=e,l=f(v,s),d=h(s);return(0,t.jsx)(i.Root,{asChild:!0,...d,orientation:l.orientation,dir:l.dir,loop:r,children:(0,t.jsx)(o.Primitive.div,{role:"tablist","aria-orientation":l.orientation,...n,ref:a})})});b.displayName=v;var j="TabsTrigger",y=a.forwardRef((e,a)=>{let{__scopeTabs:r,value:n,disabled:l=!1,...d}=e,c=f(j,r),u=h(r),m=k(c.baseId,n),p=C(c.baseId,n),x=n===c.value;return(0,t.jsx)(i.Item,{asChild:!0,...u,focusable:!l,active:x,children:(0,t.jsx)(o.Primitive.button,{type:"button",role:"tab","aria-selected":x,"aria-controls":p,"data-state":x?"active":"inactive","data-disabled":l?"":void 0,disabled:l,id:m,...d,ref:a,onMouseDown:(0,s.composeEventHandlers)(e.onMouseDown,e=>{l||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(n)}),onKeyDown:(0,s.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(n)}),onFocus:(0,s.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==c.activationMode;x||l||!e||c.onValueChange(n)})})})});y.displayName=j;var w="TabsContent",N=a.forwardRef((e,s)=>{let{__scopeTabs:r,value:i,forceMount:l,children:d,...c}=e,u=f(w,r),m=k(u.baseId,i),p=C(u.baseId,i),h=i===u.value,x=a.useRef(h);return a.useEffect(()=>{let e=requestAnimationFrame(()=>x.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(n.Presence,{present:l||h,children:({present:a})=>(0,t.jsx)(o.Primitive.div,{"data-state":h?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":m,hidden:!a,id:p,tabIndex:0,...c,ref:s,style:{...e.style,animationDuration:x.current?"0s":void 0},children:a&&d})})});function k(e,t){return`${e}-trigger-${t}`}function C(e,t){return`${e}-content-${t}`}N.displayName=w;var S=e.i(647163);e.s(["Tabs",0,function({className:e,...a}){return(0,t.jsx)(g,{"data-slot":"tabs",className:(0,S.cn)("flex flex-col gap-2",e),...a})},"TabsContent",0,function({className:e,...a}){return(0,t.jsx)(N,{"data-slot":"tabs-content",className:(0,S.cn)("flex-1 outline-none",e),...a})},"TabsList",0,function({className:e,...a}){return(0,t.jsx)(b,{"data-slot":"tabs-list",className:(0,S.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",e),...a})},"TabsTrigger",0,function({className:e,...a}){return(0,t.jsx)(y,{"data-slot":"tabs-trigger",className:(0,S.cn)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...a})}],127341)},790092,e=>{"use strict";let t=(0,e.i(475254).default)("refresh-ccw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]]);e.s(["RefreshCcw",0,t],790092)},463059,e=>{"use strict";var t=e.i(246349);e.s(["ChevronRight",()=>t.default])},728231,e=>{"use strict";var t=e.i(843476),a=e.i(271645),s=e.i(981140),r=e.i(820783),i=e.i(30030),n=e.i(726330),o=e.i(610772),l=e.i(853660),d=(e.i(774606),e.i(296626)),c=e.i(248425),u=e.i(991918),m=e.i(369340),p=e.i(959411),[h,x]=(0,i.createContextScope)("Tooltip",[l.createPopperScope]),f=(0,l.createPopperScope)(),g="TooltipProvider",v="tooltip.open",[b,j]=h(g),y=e=>{let{__scopeTooltip:s,delayDuration:r=700,skipDelayDuration:i=300,disableHoverableContent:n=!1,children:o}=e,l=a.useRef(!0),d=a.useRef(!1),c=a.useRef(0);return a.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,t.jsx)(b,{scope:s,isOpenDelayedRef:l,delayDuration:r,onOpen:a.useCallback(()=>{i<=0||(window.clearTimeout(c.current),l.current=!1)},[i]),onClose:a.useCallback(()=>{i<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>l.current=!0,i))},[i]),isPointerInTransitRef:d,onPointerInTransitChange:a.useCallback(e=>{d.current=e},[]),disableHoverableContent:n,children:o})};y.displayName=g;var w="Tooltip",[N,k]=h(w),C=e=>{let{__scopeTooltip:s,children:r,open:i,defaultOpen:n,onOpenChange:d,disableHoverableContent:c,delayDuration:u}=e,p=j(w,e.__scopeTooltip),h=f(s),[x,g]=a.useState(null),b=(0,o.useId)(),y=a.useRef(0),k=c??p.disableHoverableContent,C=u??p.delayDuration,S=a.useRef(!1),[T,_]=(0,m.useControllableState)({prop:i,defaultProp:n??!1,onChange:e=>{e?(p.onOpen(),document.dispatchEvent(new CustomEvent(v))):p.onClose(),d?.(e)},caller:w}),P=a.useMemo(()=>T?S.current?"delayed-open":"instant-open":"closed",[T]),D=a.useCallback(()=>{window.clearTimeout(y.current),y.current=0,S.current=!1,_(!0)},[_]),R=a.useCallback(()=>{window.clearTimeout(y.current),y.current=0,_(!1)},[_]),L=a.useCallback(()=>{window.clearTimeout(y.current),y.current=window.setTimeout(()=>{S.current=!0,_(!0),y.current=0},C)},[C,_]);return a.useEffect(()=>()=>{y.current&&(window.clearTimeout(y.current),y.current=0)},[]),(0,t.jsx)(l.Root,{...h,children:(0,t.jsx)(N,{scope:s,contentId:b,open:T,stateAttribute:P,trigger:x,onTriggerChange:g,onTriggerEnter:a.useCallback(()=>{p.isOpenDelayedRef.current?L():D()},[p.isOpenDelayedRef,L,D]),onTriggerLeave:a.useCallback(()=>{k?R():(window.clearTimeout(y.current),y.current=0)},[R,k]),onOpen:D,onClose:R,disableHoverableContent:k,children:r})})};C.displayName=w;var S="TooltipTrigger",T=a.forwardRef((e,i)=>{let{__scopeTooltip:n,...o}=e,d=k(S,n),u=j(S,n),m=f(n),p=a.useRef(null),h=(0,r.useComposedRefs)(i,p,d.onTriggerChange),x=a.useRef(!1),g=a.useRef(!1),v=a.useCallback(()=>x.current=!1,[]);return a.useEffect(()=>()=>document.removeEventListener("pointerup",v),[v]),(0,t.jsx)(l.Anchor,{asChild:!0,...m,children:(0,t.jsx)(c.Primitive.button,{"aria-describedby":d.open?d.contentId:void 0,"data-state":d.stateAttribute,...o,ref:h,onPointerMove:(0,s.composeEventHandlers)(e.onPointerMove,e=>{"touch"!==e.pointerType&&(g.current||u.isPointerInTransitRef.current||(d.onTriggerEnter(),g.current=!0))}),onPointerLeave:(0,s.composeEventHandlers)(e.onPointerLeave,()=>{d.onTriggerLeave(),g.current=!1}),onPointerDown:(0,s.composeEventHandlers)(e.onPointerDown,()=>{d.open&&d.onClose(),x.current=!0,document.addEventListener("pointerup",v,{once:!0})}),onFocus:(0,s.composeEventHandlers)(e.onFocus,()=>{x.current||d.onOpen()}),onBlur:(0,s.composeEventHandlers)(e.onBlur,d.onClose),onClick:(0,s.composeEventHandlers)(e.onClick,d.onClose)})})});T.displayName=S;var[_,P]=h("TooltipPortal",{forceMount:void 0}),D="TooltipContent",R=a.forwardRef((e,a)=>{let s=P(D,e.__scopeTooltip),{forceMount:r=s.forceMount,side:i="top",...n}=e,o=k(D,e.__scopeTooltip);return(0,t.jsx)(d.Presence,{present:r||o.open,children:o.disableHoverableContent?(0,t.jsx)(z,{side:i,...n,ref:a}):(0,t.jsx)(L,{side:i,...n,ref:a})})}),L=a.forwardRef((e,s)=>{let i=k(D,e.__scopeTooltip),n=j(D,e.__scopeTooltip),o=a.useRef(null),l=(0,r.useComposedRefs)(s,o),[d,c]=a.useState(null),{trigger:u,onClose:m}=i,p=o.current,{onPointerInTransitChange:h}=n,x=a.useCallback(()=>{c(null),h(!1)},[h]),f=a.useCallback((e,t)=>{let a,s=e.currentTarget,r={x:e.clientX,y:e.clientY},i=function(e,t){let a=Math.abs(t.top-e.y),s=Math.abs(t.bottom-e.y),r=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(a,s,r,i)){case i:return"left";case r:return"right";case a:return"top";case s:return"bottom";default:throw Error("unreachable")}}(r,s.getBoundingClientRect());c(((a=[...function(e,t,a=5){let s=[];switch(t){case"top":s.push({x:e.x-a,y:e.y+a},{x:e.x+a,y:e.y+a});break;case"bottom":s.push({x:e.x-a,y:e.y-a},{x:e.x+a,y:e.y-a});break;case"left":s.push({x:e.x+a,y:e.y-a},{x:e.x+a,y:e.y+a});break;case"right":s.push({x:e.x-a,y:e.y-a},{x:e.x-a,y:e.y+a})}return s}(r,i),...function(e){let{top:t,right:a,bottom:s,left:r}=e;return[{x:r,y:t},{x:a,y:t},{x:a,y:s},{x:r,y:s}]}(t.getBoundingClientRect())].slice()).sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:1*!!(e.y>t.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let a=0;a<e.length;a++){let s=e[a];for(;t.length>=2;){let e=t[t.length-1],a=t[t.length-2];if((e.x-a.x)*(s.y-a.y)>=(e.y-a.y)*(s.x-a.x))t.pop();else break}t.push(s)}t.pop();let a=[];for(let t=e.length-1;t>=0;t--){let s=e[t];for(;a.length>=2;){let e=a[a.length-1],t=a[a.length-2];if((e.x-t.x)*(s.y-t.y)>=(e.y-t.y)*(s.x-t.x))a.pop();else break}a.push(s)}return(a.pop(),1===t.length&&1===a.length&&t[0].x===a[0].x&&t[0].y===a[0].y)?t:t.concat(a)}(a))),h(!0)},[h]);return a.useEffect(()=>()=>x(),[x]),a.useEffect(()=>{if(u&&p){let e=e=>f(e,p),t=e=>f(e,u);return u.addEventListener("pointerleave",e),p.addEventListener("pointerleave",t),()=>{u.removeEventListener("pointerleave",e),p.removeEventListener("pointerleave",t)}}},[u,p,f,x]),a.useEffect(()=>{if(d){let e=e=>{let t=e.target,a={x:e.clientX,y:e.clientY},s=u?.contains(t)||p?.contains(t),r=!function(e,t){let{x:a,y:s}=e,r=!1;for(let e=0,i=t.length-1;e<t.length;i=e++){let n=t[e],o=t[i],l=n.x,d=n.y,c=o.x,u=o.y;d>s!=u>s&&a<(c-l)*(s-d)/(u-d)+l&&(r=!r)}return r}(a,d);s?x():r&&(x(),m())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[u,p,d,m,x]),(0,t.jsx)(z,{...e,ref:l})}),[E,M]=h(w,{isInside:!1}),I=(0,u.createSlottable)("TooltipContent"),z=a.forwardRef((e,s)=>{let{__scopeTooltip:r,children:i,"aria-label":o,onEscapeKeyDown:d,onPointerDownOutside:c,...u}=e,m=k(D,r),h=f(r),{onClose:x}=m;return a.useEffect(()=>(document.addEventListener(v,x),()=>document.removeEventListener(v,x)),[x]),a.useEffect(()=>{if(m.trigger){let e=e=>{e.target instanceof Node&&e.target.contains(m.trigger)&&x()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[m.trigger,x]),(0,t.jsx)(n.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:d,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:x,children:(0,t.jsxs)(l.Content,{"data-state":m.stateAttribute,...h,...u,ref:s,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,t.jsx)(I,{children:i}),(0,t.jsx)(E,{scope:r,isInside:!0,children:(0,t.jsx)(p.Root,{id:m.contentId,role:"tooltip",children:o||i})})]})})});R.displayName=D;var O="TooltipArrow";a.forwardRef((e,a)=>{let{__scopeTooltip:s,...r}=e,i=f(s);return M(O,s).isInside?null:(0,t.jsx)(l.Arrow,{...i,...r,ref:a})}).displayName=O;var A=e.i(647163);let F=a.forwardRef(({className:e,sideOffset:a=4,...s},r)=>(0,t.jsx)(R,{ref:r,sideOffset:a,className:(0,A.cn)("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...s}));F.displayName=R.displayName,e.s(["Tooltip",0,C,"TooltipContent",0,F,"TooltipProvider",0,y,"TooltipTrigger",0,T],728231)},899602,e=>{"use strict";let t=(0,e.i(475254).default)("arrow-up-down",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);e.s(["ArrowUpDown",0,t],899602)},768307,e=>{"use strict";var t=e.i(843476),a=e.i(167881),s=e.i(728231),r=e.i(790092),i=e.i(531278);e.s(["RefreshButton",0,function({onClick:e,isLoading:n,tooltip:o="Refresh",className:l}){return(0,t.jsx)(s.TooltipProvider,{delayDuration:300,children:(0,t.jsxs)(s.Tooltip,{children:[(0,t.jsx)(s.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(a.Button,{variant:"ghost",size:"icon",onClick:e,disabled:n,className:`h-8 w-8 text-muted-foreground hover:text-foreground hover:bg-muted/80 transition-colors ${l||""}`,children:n?(0,t.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(r.RefreshCcw,{className:"h-4 w-4"})})}),(0,t.jsx)(s.TooltipContent,{side:"bottom",className:"text-xs",children:o})]})})}])},286536,77705,e=>{"use strict";var t=e.i(475254);let a=(0,t.default)("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"}]]);e.s(["Eye",0,a],286536);let s=(0,t.default)("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"}]]);e.s(["EyeOff",0,s],77705)},21218,e=>{"use strict";let t=(0,e.i(475254).default)("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"}]]);e.s(["Activity",0,t],21218)},535437,e=>{"use strict";var t=e.i(843476),a=e.i(630374),s=e.i(271645),r=e.i(846696),i=e.i(531278);e.i(251383);var n=e.i(402487),o=e.i(733467),l=e.i(32506),d=e.i(778296),c=e.i(167881),u=e.i(23750),m=e.i(10708),p=e.i(319036),h=e.i(184762),x=e.i(62870);function f({mode:e,model:a,defaultProviderId:v,onSaved:b,onCancel:j}){let{data:y}=l.providers.useList(),{data:w}=n.capabilities.useList(),{data:N}=d.variants.useList(),[k,C]=(0,s.useState)(""),[S,T]=(0,s.useState)(""),[_,P]=(0,s.useState)(""),[D,R]=(0,s.useState)("chat"),[L,E]=(0,s.useState)(""),[M,I]=(0,s.useState)(""),[z,O]=(0,s.useState)(""),[A,F]=(0,s.useState)(""),[H,B]=(0,s.useState)(""),[U,V]=(0,s.useState)("{}"),[$,q]=(0,s.useState)(!0),[K,J]=(0,s.useState)(null),Q=(0,s.useMemo)(()=>"create"===e&&!!a?.is_discovered,[e,a?.is_discovered]),W="edit"===e||Q;(0,s.useEffect)(()=>{a?(C(a.name),T(a.provider_id??""),P(a.model_id??a.name),R(a.type??"chat"),E(a.api_variant_id??a.resolved_variant_id??""),I(a.context_window?.toString()??""),O(a.max_tokens?.toString()??""),F(a.output_dimension?.toString()??""),B(a.description??""),V(JSON.stringify(a.default_params??{},null,2)),q(!1!==a.enabled)):(C(""),T(v??""),P(""),R("chat"),E(""),I(""),O(""),F(""),B(""),V("{}"),q(!0)),J(null)},[e,a,v]);let X=o.models.useCreate({onSuccess:e=>{r.toast.success("Saved"),b?.(e)},onError:e=>r.toast.error(e.message||"Save failed")}),Y=o.models.useUpdate({onSuccess:e=>{r.toast.success("Saved"),b?.(e??null)},onError:e=>r.toast.error(e.message||"Save failed")}),G=X.isPending||Y.isPending,Z=a||"edit"===e?"Save":"Create",ee=(0,s.useMemo)(()=>(N??[]).filter(e=>e.capability===D),[N,D]),et=(0,s.useMemo)(()=>(y??[]).find(e=>e.id===S),[y,S]);return(0,t.jsxs)("form",{onSubmit:t=>{if(t.preventDefault(),!k.trim())return r.toast.error("Name required");if(!S)return r.toast.error("Provider required");if(!_.trim())return r.toast.error("Upstream model id required");let s={};try{s=U.trim()?JSON.parse(U):{},J(null)}catch(e){J(e instanceof Error?e.message:"Invalid JSON");return}let i={name:k.trim(),provider_id:S,upstream_model_id:_.trim(),type:D,api_variant_id:L||null,default_params:s,context_window:M?Number(M):null,max_tokens:z?Number(z):null,output_dimension:A?Number(A):null,description:H||null,enabled:$};Q&&a?.meta?.raw!=null&&(i.discovered_metadata=a.meta.raw),"create"===e?X.mutate(i):a&&Y.mutate({id:a.id,data:i})},className:"space-y-4",children:[(0,t.jsxs)("div",{className:"grid sm:grid-cols-2 gap-3",children:[(0,t.jsx)(g,{label:"Display name",htmlFor:"m-name",children:(0,t.jsx)(u.Input,{id:"m-name",value:k,onChange:e=>C(e.target.value),placeholder:"gpt-4o-mini",className:"h-9 text-sm font-mono"})}),(0,t.jsx)(g,{label:"Upstream model ID",htmlFor:"m-up",children:(0,t.jsx)(u.Input,{id:"m-up",value:_,onChange:e=>P(e.target.value),placeholder:"gpt-4o-mini",className:"h-9 text-sm font-mono"})})]}),(0,t.jsxs)("div",{className:"grid sm:grid-cols-2 gap-3",children:[(0,t.jsx)(g,{label:"Provider",children:W?(0,t.jsx)(u.Input,{value:et?.name??S,readOnly:!0,disabled:!0,className:"h-9 text-sm font-mono bg-muted/40"}):(0,t.jsxs)(x.Select,{value:S,onValueChange:T,children:[(0,t.jsx)(x.SelectTrigger,{className:"h-9 text-sm",children:(0,t.jsx)(x.SelectValue,{placeholder:"Select provider"})}),(0,t.jsx)(x.SelectContent,{children:(y??[]).map(e=>(0,t.jsx)(x.SelectItem,{value:e.id,children:e.name},e.id))})]})}),(0,t.jsx)(g,{label:"Capability",children:(0,t.jsxs)(x.Select,{value:D,onValueChange:R,children:[(0,t.jsx)(x.SelectTrigger,{className:"h-9 text-sm",children:(0,t.jsx)(x.SelectValue,{})}),(0,t.jsxs)(x.SelectContent,{children:[(w??[]).map(e=>(0,t.jsx)(x.SelectItem,{value:e.id,children:e.label},e.id)),D&&!(w??[]).some(e=>e.id===D)&&(0,t.jsx)(x.SelectItem,{value:D,children:D})]})]})})]}),ee.length>1&&L&&(0,t.jsx)(g,{label:"Upstream API",children:(0,t.jsxs)(x.Select,{value:L,onValueChange:E,children:[(0,t.jsx)(x.SelectTrigger,{className:"h-9 text-sm",children:(0,t.jsx)(x.SelectValue,{})}),(0,t.jsxs)(x.SelectContent,{children:[ee.map(e=>(0,t.jsx)(x.SelectItem,{value:e.id,children:(0,t.jsx)("span",{className:"font-mono text-xs",children:e.id})},e.id)),!ee.some(e=>e.id===L)&&(0,t.jsx)(x.SelectItem,{value:L,children:(0,t.jsx)("span",{className:"font-mono text-xs",children:L})})]})]})}),(0,t.jsxs)("div",{className:"grid sm:grid-cols-3 gap-3",children:[(0,t.jsx)(g,{label:"Context window",htmlFor:"m-ctx",children:(0,t.jsx)(u.Input,{id:"m-ctx",type:"number",value:M,onChange:e=>I(e.target.value),className:"h-9 text-sm"})}),(0,t.jsx)(g,{label:"Max tokens",htmlFor:"m-max",children:(0,t.jsx)(u.Input,{id:"m-max",type:"number",value:z,onChange:e=>O(e.target.value),className:"h-9 text-sm"})}),(0,t.jsx)(g,{label:"Output dim",htmlFor:"m-dim",children:(0,t.jsx)(u.Input,{id:"m-dim",type:"number",value:A,onChange:e=>F(e.target.value),className:"h-9 text-sm"})})]}),(0,t.jsx)(g,{label:"Description",htmlFor:"m-desc",children:(0,t.jsx)(u.Input,{id:"m-desc",value:H,onChange:e=>B(e.target.value),className:"h-9 text-sm"})}),(0,t.jsxs)(g,{label:"Default params (JSON)",htmlFor:"m-params",children:[(0,t.jsx)(h.Textarea,{id:"m-params",value:U,onChange:e=>V(e.target.value),rows:5,className:"text-xs font-mono"}),K&&(0,t.jsx)("span",{className:"text-xs text-destructive",children:K})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(m.Label,{htmlFor:"m-enabled",className:"text-xs",children:"Enabled"}),(0,t.jsx)(p.Switch,{id:"m-enabled",checked:$,onCheckedChange:q})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-2",children:[(0,t.jsx)(c.Button,{type:"button",variant:"outline",size:"sm",onClick:j,disabled:G,children:"Cancel"}),(0,t.jsxs)(c.Button,{type:"submit",size:"sm",disabled:G,children:[G&&(0,t.jsx)(i.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),Z]})]})]})}function g({label:e,htmlFor:a,children:s}){return(0,t.jsxs)("div",{className:"grid gap-1.5 min-w-0",children:[(0,t.jsx)(m.Label,{htmlFor:a,className:"text-xs",children:e}),s]})}e.s(["ModelFormDialog",0,function({open:e,onOpenChange:s,mode:r,model:i,defaultProviderId:n}){let o=i||"edit"===r?"Edit":"Add model";return(0,t.jsx)(a.Dialog,{open:e,onOpenChange:s,children:(0,t.jsxs)(a.DialogContent,{className:"sm:max-w-[640px] max-h-[90vh] overflow-y-auto",onOpenAutoFocus:i?e=>e.preventDefault():void 0,children:[(0,t.jsx)(a.DialogHeader,{children:(0,t.jsx)(a.DialogTitle,{children:o})}),e&&(0,t.jsx)(f,{mode:r,model:i,defaultProviderId:n,onSaved:()=>s(!1),onCancel:()=>s(!1)})]})})}],535437)},421502,e=>{"use strict";let t={chat:"Chat",embedding:"Embedding",image:"Image","audio.speech":"Speech","audio.transcription":"Transcription",rerank:"Rerank"};e.s(["capabilityLabel",0,function(e){return e?t[e]?t[e]:(e.includes(".")?e.split(".").pop():e).replace(/[-_]/g," ").replace(/\b\w/g,e=>e.toUpperCase()):"—"}])},174886,e=>{"use strict";let t=(0,e.i(475254).default)("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"}]]);e.s(["Copy",0,t],174886)},178583,e=>{"use strict";let t=(0,e.i(475254).default)("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"}]]);e.s(["FileText",0,t],178583)},264319,e=>{"use strict";var t=e.i(843476),a=e.i(728231),s=e.i(647163);let r={ok:{label:"Operational",dot:"bg-green-500 ring-green-200",text:"text-green-600 dark:text-green-400"},down:{label:"Down",dot:"bg-red-500 ring-red-200",text:"text-red-600 dark:text-red-400"},unchecked:{label:"Unchecked",dot:"bg-muted-foreground/40 ring-muted-foreground/10",text:"text-muted-foreground"}};e.s(["ProviderHealthPill",0,function({provider:e,size:i="sm"}){var n;let o;if(!e.health_check_url)return null;let l=r[e.last_health_status??"unchecked"],d=(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:(0,s.cn)("rounded-full ring-1 ring-offset-1 transition-colors duration-300","sm"===i?"h-1 w-1":"h-1.5 w-1.5",l.dot)}),(0,t.jsx)("span",{className:(0,s.cn)("font-medium uppercase tracking-wide","sm"===i?"text-[10px]":"text-xs",l.text),children:l.label})]}),c=(o=(n=e).last_health_checked_at,"down"===n.last_health_status?(0,t.jsxs)("div",{className:"space-y-1 text-xs",children:[(0,t.jsx)("div",{className:"font-semibold",children:"Health check failed"}),n.last_health_error&&(0,t.jsx)("div",{className:"font-mono text-[11px] opacity-80",children:n.last_health_error}),o&&(0,t.jsxs)("div",{className:"opacity-60",children:["Last checked: ",new Date(o).toLocaleString()]})]}):"ok"===n.last_health_status&&o?(0,t.jsxs)("div",{className:"text-xs",children:["Last checked: ",new Date(o).toLocaleString()]}):n.last_health_status?null:(0,t.jsx)("div",{className:"text-xs",children:"Provider has a health-check URL but has not been probed yet."}));return c?(0,t.jsx)(a.TooltipProvider,{children:(0,t.jsxs)(a.Tooltip,{children:[(0,t.jsx)(a.TooltipTrigger,{asChild:!0,children:d}),(0,t.jsx)(a.TooltipContent,{side:"top",className:"max-w-[280px] break-words",children:c})]})}):d}])},70878,e=>{"use strict";var t=e.i(843476),a=e.i(618566),s=e.i(846696),r=e.i(174886),i=e.i(788699),n=e.i(727612),o=e.i(994179),l=e.i(167881),d=e.i(137309),c=e.i(117089),u=e.i(728231),m=e.i(421502);e.s(["ModelsTable",0,function({models:e,onEdit:p,onDelete:h}){let x=(0,a.useRouter)(),f=!!p||!!h;return(0,t.jsxs)(d.DataTableShell,{children:[(0,t.jsx)(d.DataTableHeader,{children:(0,t.jsxs)(d.DataTableHeaderRow,{children:[(0,t.jsx)(d.DataTableHead,{children:"Model Name"}),(0,t.jsx)(d.DataTableHead,{children:"ID"}),(0,t.jsx)(d.DataTableHead,{children:"Provider"}),(0,t.jsx)(d.DataTableHead,{children:"Type"}),(0,t.jsx)(d.DataTableHead,{children:"Context"}),(0,t.jsx)(d.DataTableHead,{children:"Source"}),f&&(0,t.jsx)(d.DataTableHead,{className:"w-[88px] text-right",children:"Actions"})]})}),(0,t.jsx)(c.DataTableBody,{children:0===e.length?(0,t.jsx)(d.DataTableEmpty,{colSpan:f?7:6,children:"No models found."}):e.map(e=>(0,t.jsxs)(d.DataTableRow,{onClick:()=>x.push(`/models/${encodeURIComponent(e.name)}`),title:"Open model dashboard",children:[(0,t.jsx)(d.DataTableCell,{className:"font-mono max-w-[300px]",children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2 w-full",children:[(0,t.jsx)("span",{className:"truncate text-xs",title:e.name,children:e.name}),(0,t.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity shrink-0",onClick:t=>{t.stopPropagation(),navigator.clipboard.writeText(e.name),s.toast.success("Model name copied to clipboard")},children:(0,t.jsx)(r.Copy,{className:"h-3 w-3 text-muted-foreground"})})]})}),(0,t.jsx)(d.DataTableCell,{className:"font-mono text-xs text-muted-foreground max-w-[260px]",children:(0,t.jsx)(u.TooltipProvider,{children:(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"truncate block cursor-default",children:e.model_id})}),(0,t.jsx)(u.TooltipContent,{side:"top",children:(0,t.jsx)("p",{className:"font-mono text-xs",children:e.model_id})})]})})}),(0,t.jsx)(d.DataTableCell,{children:(0,t.jsx)(o.Badge,{variant:"outline",className:"font-normal text-[10px]",children:e.provider})}),(0,t.jsx)(d.DataTableCell,{children:(0,t.jsx)(o.Badge,{variant:"secondary",className:"font-normal text-[10px]",children:(0,m.capabilityLabel)(e.type)})}),(0,t.jsx)(d.DataTableCell,{children:(0,t.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:e.context_window?e.context_window>=1e3?`${Math.round(e.context_window/1e3)}k`:e.context_window.toLocaleString():"—"})}),(0,t.jsx)(d.DataTableCell,{children:(0,t.jsx)(o.Badge,{variant:e.is_discovered?"secondary":"default",className:"text-[10px] uppercase",children:e.is_discovered?"discovered":"override"})}),f&&(0,t.jsx)(d.DataTableCell,{className:"text-right",onClick:e=>e.stopPropagation(),children:(0,t.jsxs)("div",{className:"flex items-center justify-end gap-1",children:[p&&(0,t.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",title:e.is_discovered?"Promote to override":"Edit",onClick:t=>{t.stopPropagation(),p(e)},children:(0,t.jsx)(i.Pencil,{className:"h-3.5 w-3.5"})}),h&&!e.is_discovered&&(0,t.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-destructive hover:text-destructive",title:"Delete",onClick:t=>{t.stopPropagation(),h(e)},children:(0,t.jsx)(n.Trash2,{className:"h-3.5 w-3.5"})})]})})]},e.id||e.name))})]})}])},800532,e=>{"use strict";var t=e.i(843476),a=e.i(271645),s=e.i(733467),r=e.i(32506),i=e.i(167881),n=e.i(127341),o=e.i(846696),l=e.i(555436),d=e.i(899602),c=e.i(107233),u=e.i(788699),m=e.i(727612),p=e.i(23750),h=e.i(618566),x=e.i(62870),f=e.i(57559),g=e.i(710924),v=e.i(768307),b=e.i(970065),j=e.i(422758),y=e.i(178583);let w=(0,e.i(475254).default)("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"}]]);var N=e.i(463059),k=e.i(994179),C=e.i(264319);function S({provider:e,onClick:a,hoverActions:s}){return(0,t.jsx)(b.Card,{className:"group relative transition-all duration-300 hover:shadow-lg border-muted/60 hover:border-primary/20 cursor-pointer bg-card flex flex-col justify-between",onClick:a,children:(0,t.jsxs)(b.CardContent,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-start mb-2 gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4 min-w-0",children:[(0,t.jsx)("div",{className:"h-10 w-10 shrink-0 flex items-center justify-center",children:(0,t.jsx)(j.ProviderIcon,{providerName:e.provider_name,className:"h-10 w-10 text-lg",width:30,height:30})}),(0,t.jsxs)("div",{className:"space-y-1 min-w-0",children:[(0,t.jsx)("h3",{className:"font-bold text-base leading-none tracking-tight truncate",title:e.provider_name,children:e.provider_name}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(C.ProviderHealthPill,{provider:e,size:"sm"}),e.adapter_id&&"openai"!==e.adapter_id&&(0,t.jsx)(k.Badge,{variant:"secondary",className:"text-[9px] uppercase font-semibold h-4 px-1.5 tracking-wider",children:e.adapter_id.replace(/^azure-/,"Azure ")})]})]})]}),(0,t.jsxs)("div",{className:"shrink-0 relative h-10 min-w-[64px] flex items-start justify-end",children:[(0,t.jsxs)("div",{className:`text-right transition-opacity duration-200 ${s?"group-hover:opacity-0":""}`,children:[(0,t.jsx)("div",{className:"text-2xl font-bold tracking-tight text-foreground leading-none",children:e.n_models??0}),(0,t.jsx)("div",{className:"text-[9px] font-bold text-muted-foreground uppercase tracking-widest mt-1",children:"Models"})]}),s&&(0,t.jsx)("div",{className:"absolute right-0 top-0 flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:s})]})]}),(0,t.jsxs)("div",{className:"flex items-end justify-between",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex gap-3",children:[e.model_page?(0,t.jsx)("a",{href:e.model_page,target:"_blank",rel:"noreferrer",className:"text-muted-foreground/60 hover:text-primary transition-colors p-0.5",onClick:e=>e.stopPropagation(),title:"View Models",children:(0,t.jsx)(y.FileText,{className:"h-4 w-4",strokeWidth:1.5})}):(0,t.jsx)(y.FileText,{className:"h-4 w-4 text-muted-foreground/20 cursor-not-allowed",strokeWidth:1.5}),e.document_page?(0,t.jsx)("a",{href:e.document_page,target:"_blank",rel:"noreferrer",className:"text-muted-foreground/60 hover:text-primary transition-colors p-0.5",onClick:e=>e.stopPropagation(),title:"Documentation",children:(0,t.jsx)(w,{className:"h-4 w-4",strokeWidth:1.5})}):(0,t.jsx)(w,{className:"h-4 w-4 text-muted-foreground/20 cursor-not-allowed",strokeWidth:1.5})]}),(0,t.jsx)(k.Badge,{variant:"outline",className:"font-mono font-normal text-[10px] text-foreground/90 cursor-default transition-colors h-5 px-1.5 max-w-[180px] truncate block w-fit",title:`Endpoint: ${e.proxy}`,onClick:e=>e.stopPropagation(),children:e.proxy})]}),(0,t.jsx)("div",{className:"opacity-0 group-hover:opacity-100 transition-all duration-300 transform -translate-x-2 group-hover:translate-x-0 pb-0.5",children:(0,t.jsx)(N.ChevronRight,{className:"h-4 w-4 text-muted-foreground/80"})})]})]})})}var T=e.i(70878);e.i(251383);var _=e.i(581445),P=e.i(630374),D=e.i(10708),R=e.i(184762),L=e.i(319036),E=e.i(531278),M=e.i(286536),I=e.i(77705),z=e.i(21218);let O="__auto__";function A({open:e,onOpenChange:s,mode:n,provider:l}){let{data:d}=_.adapters.useList(void 0,{enabled:e}),[c,u]=(0,a.useState)(""),[m,h]=(0,a.useState)(O),[f,g]=(0,a.useState)(""),[v,b]=(0,a.useState)(""),[j,y]=(0,a.useState)(""),[w,N]=(0,a.useState)(!1),[k,C]=(0,a.useState)("{}"),[S,T]=(0,a.useState)(""),[F,H]=(0,a.useState)(""),[B,U]=(0,a.useState)(""),[V,$]=(0,a.useState)(!0),[q,K]=(0,a.useState)(null),[J,Q]=(0,a.useState)(!1);(0,a.useEffect)(()=>{e&&("edit"===n&&l?(u(l.name),h(l.adapter_id??"openai"),g(l.base_url),b(l.api_version??""),y(""),C(JSON.stringify(l.default_params??{},null,2)),T(l.document_page??""),H(l.model_page??""),U(l.health_check_url??""),$(l.enabled)):(u(""),h(O),g(""),b(""),y(""),C("{}"),T(""),H(""),U(""),$(!0)),N(!1),K(null))},[e,n,l]);let W=r.providers.useCreate({onSuccess:()=>{o.toast.success("Provider created"),s(!1)},onError:e=>o.toast.error(e.message||"Create failed")}),X=r.providers.useUpdate({onSuccess:()=>{o.toast.success("Provider updated"),s(!1)},onError:e=>o.toast.error(e.message||"Update failed")}),Y=async()=>{let e=B.trim();if(e){Q(!0);try{let t=await r.providers.probe(e);t.ok?o.toast.success(`Healthy${null!=t.latency_ms?` (${t.latency_ms}ms)`:""}`):o.toast.error(`Down: ${t.error??"unknown"}`)}catch(e){o.toast.error(e instanceof Error?e.message:"Health check failed")}finally{Q(!1)}}},G=W.isPending||X.isPending,Z="azure-openai"===m||"azure-foundry"===m;return(0,t.jsx)(P.Dialog,{open:e,onOpenChange:s,children:(0,t.jsxs)(P.DialogContent,{className:"sm:max-w-[640px] max-h-[90vh] overflow-y-auto",children:[(0,t.jsx)(P.DialogHeader,{children:(0,t.jsx)(P.DialogTitle,{children:"create"===n?"Add Provider":"Edit Provider"})}),(0,t.jsxs)("form",{onSubmit:e=>{if(e.preventDefault(),!c.trim())return o.toast.error("Name required");if(!f.trim())return o.toast.error("base_url required");let t={};try{t=k.trim()?JSON.parse(k):{},K(null)}catch(e){K(e instanceof Error?e.message:"Invalid JSON");return}let a={name:c.trim(),adapter_id:m===O?void 0:m,base_url:f.trim(),api_version:v.trim()||null,default_params:t,document_page:S||void 0,model_page:F||void 0,health_check_url:B.trim()||null,enabled:V};if(j&&(a.api_key=j),"create"===n)W.mutate(a);else if(l){let e={...a};j||delete e.api_key,X.mutate({id:l.id,data:e})}},children:[(0,t.jsxs)("div",{className:"grid gap-4 py-4",children:[(0,t.jsxs)("div",{className:"grid sm:grid-cols-[1fr_220px] gap-3",children:[(0,t.jsxs)("div",{className:"grid gap-2 min-w-0",children:[(0,t.jsx)(D.Label,{htmlFor:"p-name",className:"text-xs",children:"Name"}),(0,t.jsx)(p.Input,{id:"p-name",value:c,onChange:e=>u(e.target.value),placeholder:"openai",className:"h-9 text-sm"})]}),(0,t.jsxs)("div",{className:"grid gap-2 min-w-0",children:[(0,t.jsx)(D.Label,{className:"text-xs",children:"Adapter"}),(0,t.jsxs)(x.Select,{value:m,onValueChange:h,children:[(0,t.jsx)(x.SelectTrigger,{className:"h-9 text-sm",children:(0,t.jsx)(x.SelectValue,{placeholder:"Auto-detect"})}),(0,t.jsxs)(x.SelectContent,{children:[(0,t.jsx)(x.SelectItem,{value:O,children:"Auto-detect"}),(d??[]).map(e=>(0,t.jsx)(x.SelectItem,{value:e.id,children:e.label},e.id))]})]})]})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)(D.Label,{htmlFor:"p-url",className:"text-xs",children:"Base URL"}),(0,t.jsx)(p.Input,{id:"p-url",value:f,onChange:e=>g(e.target.value),placeholder:Z?"https://my-resource.openai.azure.com":"https://api.openai.com/v1",className:"h-9 text-sm font-mono"})]}),Z&&(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)(D.Label,{htmlFor:"p-apiversion",className:"text-xs",children:"API Version"}),(0,t.jsx)(p.Input,{id:"p-apiversion",value:v,onChange:e=>b(e.target.value),placeholder:"2024-10-21",className:"h-9 text-sm font-mono"})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)(D.Label,{htmlFor:"p-key",className:"text-xs",children:"API Key"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(p.Input,{id:"p-key",type:w?"text":"password",value:j,onChange:e=>y(e.target.value),placeholder:"edit"===n?"Leave empty to keep existing key":"sk-...",className:"h-9 text-sm pr-10 font-mono",autoComplete:"off"}),(0,t.jsx)(i.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>N(e=>!e),className:"absolute right-0 top-0 h-9 w-9 text-muted-foreground",children:w?(0,t.jsx)(I.EyeOff,{className:"h-4 w-4"}):(0,t.jsx)(M.Eye,{className:"h-4 w-4"})})]})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)(D.Label,{htmlFor:"p-health",className:"text-xs",children:"Health check URL"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(p.Input,{id:"p-health",value:B,onChange:e=>U(e.target.value),placeholder:'Optional — must return {"status":"ok"}',className:"h-9 text-sm font-mono flex-1 min-w-0"}),(0,t.jsxs)(i.Button,{type:"button",variant:"outline",size:"sm",className:"h-9 shrink-0",onClick:Y,disabled:!B.trim()||J,title:"Run the health probe now",children:[J?(0,t.jsx)(E.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(z.Activity,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ml-1",children:"Test"})]})]})]}),(0,t.jsxs)("div",{className:"grid sm:grid-cols-2 gap-3",children:[(0,t.jsxs)("div",{className:"grid gap-2 min-w-0",children:[(0,t.jsx)(D.Label,{htmlFor:"p-doc",className:"text-xs",children:"Docs URL"}),(0,t.jsx)(p.Input,{id:"p-doc",value:S,onChange:e=>T(e.target.value),className:"h-9 text-sm"})]}),(0,t.jsxs)("div",{className:"grid gap-2 min-w-0",children:[(0,t.jsx)(D.Label,{htmlFor:"p-models",className:"text-xs",children:"Models page URL"}),(0,t.jsx)(p.Input,{id:"p-models",value:F,onChange:e=>H(e.target.value),className:"h-9 text-sm"})]})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)(D.Label,{htmlFor:"p-params",className:"text-xs",children:"Default params (JSON)"}),(0,t.jsx)(R.Textarea,{id:"p-params",value:k,onChange:e=>C(e.target.value),rows:4,className:"text-xs font-mono"}),q&&(0,t.jsx)("span",{className:"text-xs text-destructive",children:q})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(D.Label,{htmlFor:"p-enabled",className:"text-xs",children:"Enabled"}),(0,t.jsx)(L.Switch,{id:"p-enabled",checked:V,onCheckedChange:$})]})]}),(0,t.jsxs)(P.DialogFooter,{children:[(0,t.jsx)(i.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>s(!1),disabled:G,children:"Cancel"}),(0,t.jsxs)(i.Button,{type:"submit",size:"sm",disabled:G,children:[G&&(0,t.jsx)(E.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),"create"===n?"Create":"Save"]})]})]})]})})}var F=e.i(535437),H=e.i(138938);e.s(["default",0,function(){let e=(0,h.useRouter)(),{user:b}=(0,H.useAuth)(),j=b?.role==="admin",[y,w]=(0,a.useState)(""),[N,k]=(0,a.useState)("providers"),[C,_]=(0,a.useState)("default"),[P,D]=(0,a.useState)({open:!1,mode:"create"}),[R,L]=(0,a.useState)({open:!1,mode:"create"}),[E,M]=(0,a.useState)(null),[I,z]=(0,a.useState)(null),{data:O,isLoading:B}=r.providers.useList(),{data:U,isLoading:V}=s.models.useList(void 0,{enabled:"models"===N}),$=a.useMemo(()=>{if(!O)return[];let e=y.toLowerCase(),t=O.filter(t=>t.provider_name.toLowerCase().includes(e)||(t.proxy||"").toLowerCase().includes(e));return"name"===C?t.sort((e,t)=>e.provider_name.localeCompare(t.provider_name)):"models"===C&&t.sort((e,t)=>(t.n_models||0)-(e.n_models||0)),t},[O,y,C]),q=a.useMemo(()=>{if(!U)return[];let e=y.toLowerCase(),t=U.filter(t=>t.name.toLowerCase().includes(e)||(t.model_id||"").toLowerCase().includes(e)||(t.provider||"").toLowerCase().includes(e));return"name"===C?t.sort((e,t)=>e.name.localeCompare(t.name)):"type"===C?t.sort((e,t)=>e.type.localeCompare(t.type)):"provider"===C?t.sort((e,t)=>(e.provider||"").localeCompare(t.provider||"")):"context"===C&&t.sort((e,t)=>(t.context_window||0)-(e.context_window||0)),t},[U,y,C]),K=r.providers.useReload({onSuccess:()=>o.toast.success("Refreshed"),onError:e=>o.toast.error(`Refresh failed: ${e.message}`)}),J=r.providers.useDelete({onSuccess:()=>{o.toast.success("Provider deleted"),M(null)},onError:e=>o.toast.error(e.message||"Delete failed")}),Q=s.models.useDelete({onSuccess:()=>{o.toast.success("Model deleted"),z(null)},onError:e=>o.toast.error(e.message||"Delete failed")});return(0,t.jsxs)("div",{className:"h-full flex flex-col p-4 overflow-y-hidden",children:[(0,t.jsxs)(n.Tabs,{defaultValue:"providers",className:"flex-1 flex flex-col min-h-0 w-full gap-4",onValueChange:k,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1 flex-wrap md:flex-nowrap",children:[(0,t.jsxs)(n.TabsList,{className:"h-8 p-0.5",children:[(0,t.jsx)(n.TabsTrigger,{value:"providers",className:"h-7 px-3 text-xs",children:"Providers"}),(0,t.jsx)(n.TabsTrigger,{value:"models",className:"h-7 px-3 text-xs",children:"Models"})]}),(0,t.jsx)("div",{className:"h-4 w-px bg-border mx-1 hidden md:block shrink-0"}),(0,t.jsxs)("div",{className:"relative w-[160px] md:w-[220px] shrink-0",children:[(0,t.jsx)(l.Search,{className:"absolute left-2 top-2 h-3.5 w-3.5 text-muted-foreground"}),(0,t.jsx)(p.Input,{placeholder:"Search...",value:y,onChange:e=>w(e.target.value),className:"pl-7 h-8 text-xs"})]}),(0,t.jsxs)(x.Select,{value:C,onValueChange:_,children:[(0,t.jsxs)(x.SelectTrigger,{className:"w-[140px] h-8 text-xs shrink-0",children:[(0,t.jsx)(d.ArrowUpDown,{className:"mr-1.5 h-3.5 w-3.5 text-muted-foreground"}),(0,t.jsx)(x.SelectValue,{placeholder:"Sort"})]}),(0,t.jsxs)(x.SelectContent,{children:[(0,t.jsx)(x.SelectItem,{value:"default",children:"Default"}),"providers"===N?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(x.SelectItem,{value:"name",children:"Name"}),(0,t.jsx)(x.SelectItem,{value:"models",children:"Total Models"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(x.SelectItem,{value:"name",children:"Name"}),(0,t.jsx)(x.SelectItem,{value:"type",children:"Type"}),(0,t.jsx)(x.SelectItem,{value:"provider",children:"Provider"}),(0,t.jsx)(x.SelectItem,{value:"context",children:"Context Window"})]})]})]}),j&&"providers"===N&&(0,t.jsx)(i.Button,{size:"icon",variant:"secondary",className:"h-8 w-8 shrink-0",onClick:()=>D({open:!0,mode:"create"}),title:"Add provider","aria-label":"Add provider",children:(0,t.jsx)(c.Plus,{className:"h-3.5 w-3.5"})}),j&&"models"===N&&(0,t.jsx)(i.Button,{size:"icon",variant:"secondary",className:"h-8 w-8 shrink-0",onClick:()=>L({open:!0,mode:"create"}),title:"Add model","aria-label":"Add model",children:(0,t.jsx)(c.Plus,{className:"h-3.5 w-3.5"})}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2 shrink-0",children:[(0,t.jsx)("span",{className:"text-xs text-muted-foreground tabular-nums hidden sm:inline",children:"providers"===N?`${$.length} providers`:`${q.length} models`}),(0,t.jsx)("div",{className:"shrink-0 pl-2 border-l border-border/50",children:(0,t.jsx)(v.RefreshButton,{onClick:()=>K.mutate(),isLoading:K.isPending,tooltip:"Reload providers and models"})})]})]}),(0,t.jsx)(n.TabsContent,{value:"providers",className:"flex-1 min-h-0 overflow-y-auto scrollbar-thin",children:(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3 p-1",children:[B?(0,t.jsx)("div",{className:"col-span-full",children:(0,t.jsx)(g.LoadingState,{label:"Loading providers…"})}):$.map(a=>(0,t.jsx)(S,{provider:a,onClick:()=>e.push(`/providers/${encodeURIComponent(a.name)}`),hoverActions:j?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.Button,{variant:"secondary",size:"icon",className:"h-7 w-7",onClick:e=>{e.stopPropagation(),D({open:!0,mode:"edit",provider:a})},title:"Edit",children:(0,t.jsx)(u.Pencil,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(i.Button,{variant:"secondary",size:"icon",className:"h-7 w-7 text-destructive hover:text-destructive",onClick:e=>{e.stopPropagation(),M(a)},title:"Delete",children:(0,t.jsx)(m.Trash2,{className:"h-3.5 w-3.5"})})]}):null},a.id||a.name)),!B&&0===$.length&&(0,t.jsxs)("div",{className:"col-span-full flex flex-col items-center justify-center border-2 border-dashed rounded-lg min-h-[300px] text-muted-foreground",children:[(0,t.jsx)(l.Search,{className:"h-8 w-8 mb-4 opacity-50"}),(0,t.jsx)("p",{className:"text-lg font-medium",children:"No providers found."}),j&&(0,t.jsxs)(i.Button,{size:"sm",className:"mt-4",onClick:()=>D({open:!0,mode:"create"}),children:[(0,t.jsx)(c.Plus,{className:"h-4 w-4 mr-1"})," Add your first provider"]})]})]})}),(0,t.jsx)(n.TabsContent,{value:"models",className:"flex-1 min-h-0 flex flex-col",children:(0,t.jsxs)("div",{className:"flex-1 border rounded-xl bg-card shadow-sm flex flex-col overflow-hidden relative",children:[V&&(0,t.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-background/50 z-10",children:(0,t.jsx)(g.LoadingState,{label:"Loading models…"})}),(0,t.jsx)("div",{className:"flex-1 overflow-auto",children:(0,t.jsx)(T.ModelsTable,{models:q,onEdit:j?e=>{L({open:!0,mode:e.is_discovered?"create":"edit",model:e})}:void 0,onDelete:j?e=>z(e):void 0})})]})})]}),(0,t.jsx)(A,{open:P.open,onOpenChange:e=>D(t=>({...t,open:e})),mode:P.mode,provider:P.provider}),(0,t.jsx)(F.ModelFormDialog,{open:R.open,onOpenChange:e=>L(t=>({...t,open:e})),mode:R.mode,model:R.model}),(0,t.jsx)(f.ConfirmDialog,{open:!!E,onOpenChange:e=>!e&&M(null),title:"Delete provider?",description:(0,t.jsxs)(t.Fragment,{children:["This will permanently delete ",(0,t.jsx)("b",{children:E?.name})," and all of its models. This cannot be undone."]}),confirmLabel:"Delete",destructive:!0,isLoading:J.isPending,onConfirm:()=>E&&J.mutate(E.id)}),(0,t.jsx)(f.ConfirmDialog,{open:!!I,onOpenChange:e=>!e&&z(null),title:"Delete model?",description:(0,t.jsxs)(t.Fragment,{children:["This will permanently delete model ",(0,t.jsx)("b",{children:I?.name}),". This cannot be undone."]}),confirmLabel:"Delete",destructive:!0,isLoading:Q.isPending,onConfirm:()=>I&&Q.mutate(I.id)})]})}],800532)}]);