larkup 0.4.12 → 0.4.14

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 (959) hide show
  1. package/.next/standalone/apps/web/.next/BUILD_ID +1 -0
  2. package/.next/standalone/apps/web/.next/app-path-routes-manifest.json +94 -0
  3. package/.next/standalone/apps/web/.next/build-manifest.json +20 -0
  4. package/.next/standalone/apps/web/.next/diagnostics/build-diagnostics.json +6 -0
  5. package/.next/standalone/apps/web/.next/diagnostics/framework.json +1 -0
  6. package/.next/standalone/apps/web/.next/lock +0 -0
  7. package/.next/standalone/apps/web/.next/package.json +1 -0
  8. package/.next/standalone/apps/web/.next/prerender-manifest.json +241 -0
  9. package/.next/standalone/apps/web/.next/react-loadable-manifest.json +31 -0
  10. package/.next/standalone/apps/web/.next/required-server-files.json +399 -0
  11. package/.next/standalone/apps/web/.next/routes-manifest.json +644 -0
  12. package/.next/standalone/apps/web/.next/server/app/_global-error/page.js +31 -0
  13. package/.next/standalone/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -0
  14. package/.next/standalone/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
  15. package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -0
  16. package/.next/standalone/apps/web/.next/server/app/_global-error.meta +35 -0
  17. package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +15 -0
  18. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
  19. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +21 -0
  20. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  21. package/.next/standalone/apps/web/.next/server/app/_not-found/page.js +1 -0
  22. package/.next/standalone/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -0
  23. package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  24. package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -0
  25. package/.next/standalone/apps/web/.next/server/app/_not-found.meta +35 -0
  26. package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +26 -0
  27. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +26 -0
  28. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +32 -0
  29. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
  30. package/.next/standalone/apps/web/.next/server/app/add/page.js +1 -0
  31. package/.next/standalone/apps/web/.next/server/app/add/page.js.nft.json +1 -0
  32. package/.next/standalone/apps/web/.next/server/app/add/page_client-reference-manifest.js +1 -0
  33. package/.next/standalone/apps/web/.next/server/app/add.html +1 -0
  34. package/.next/standalone/apps/web/.next/server/app/add.meta +34 -0
  35. package/.next/standalone/apps/web/.next/server/app/add.rsc +27 -0
  36. package/.next/standalone/apps/web/.next/server/app/add.segments/_full.segment.rsc +27 -0
  37. package/.next/standalone/apps/web/.next/server/app/add.segments/_tree.segment.rsc +2 -0
  38. package/.next/standalone/apps/web/.next/server/app/add.segments/add/__PAGE__.segment.rsc +33 -0
  39. package/.next/standalone/apps/web/.next/server/app/api/analytics/route.js +1 -0
  40. package/.next/standalone/apps/web/.next/server/app/api/analytics/route.js.nft.json +1 -0
  41. package/.next/standalone/apps/web/.next/server/app/api/analytics/route_client-reference-manifest.js +1 -0
  42. package/.next/standalone/apps/web/.next/server/app/api/chat/feedback/route.js +1 -0
  43. package/.next/standalone/apps/web/.next/server/app/api/chat/feedback/route.js.nft.json +1 -0
  44. package/.next/standalone/apps/web/.next/server/app/api/chat/feedback/route_client-reference-manifest.js +1 -0
  45. package/.next/standalone/apps/web/.next/server/app/api/chat/route.js +111 -0
  46. package/.next/standalone/apps/web/.next/server/app/api/chat/route.js.nft.json +1 -0
  47. package/.next/standalone/apps/web/.next/server/app/api/chat/route_client-reference-manifest.js +1 -0
  48. package/.next/standalone/apps/web/.next/server/app/api/chat/status/route.js +1 -0
  49. package/.next/standalone/apps/web/.next/server/app/api/chat/status/route.js.nft.json +1 -0
  50. package/.next/standalone/apps/web/.next/server/app/api/chat/status/route_client-reference-manifest.js +1 -0
  51. package/.next/standalone/apps/web/.next/server/app/api/config/route.js +1 -0
  52. package/.next/standalone/apps/web/.next/server/app/api/config/route.js.nft.json +1 -0
  53. package/.next/standalone/apps/web/.next/server/app/api/config/route_client-reference-manifest.js +1 -0
  54. package/.next/standalone/apps/web/.next/server/app/api/config/test/route.js +1 -0
  55. package/.next/standalone/apps/web/.next/server/app/api/config/test/route.js.nft.json +1 -0
  56. package/.next/standalone/apps/web/.next/server/app/api/config/test/route_client-reference-manifest.js +1 -0
  57. package/.next/standalone/apps/web/.next/server/app/api/config/test-embedding/route.js +10 -0
  58. package/.next/standalone/apps/web/.next/server/app/api/config/test-embedding/route.js.nft.json +1 -0
  59. package/.next/standalone/apps/web/.next/server/app/api/config/test-embedding/route_client-reference-manifest.js +1 -0
  60. package/.next/standalone/apps/web/.next/server/app/api/config/test-llm/route.js +10 -0
  61. package/.next/standalone/apps/web/.next/server/app/api/config/test-llm/route.js.nft.json +1 -0
  62. package/.next/standalone/apps/web/.next/server/app/api/config/test-llm/route_client-reference-manifest.js +1 -0
  63. package/.next/standalone/apps/web/.next/server/app/api/config/test-provider/route.js +1 -0
  64. package/.next/standalone/apps/web/.next/server/app/api/config/test-provider/route.js.nft.json +1 -0
  65. package/.next/standalone/apps/web/.next/server/app/api/config/test-provider/route_client-reference-manifest.js +1 -0
  66. package/.next/standalone/apps/web/.next/server/app/api/config/verify/route.js +1 -0
  67. package/.next/standalone/apps/web/.next/server/app/api/config/verify/route.js.nft.json +1 -0
  68. package/.next/standalone/apps/web/.next/server/app/api/config/verify/route_client-reference-manifest.js +1 -0
  69. package/.next/standalone/apps/web/.next/server/app/api/connections/[channelId]/oauth/callback/route.js +1 -0
  70. package/.next/standalone/apps/web/.next/server/app/api/connections/[channelId]/oauth/callback/route.js.nft.json +1 -0
  71. package/.next/standalone/apps/web/.next/server/app/api/connections/[channelId]/oauth/callback/route_client-reference-manifest.js +1 -0
  72. package/.next/standalone/apps/web/.next/server/app/api/connections/[channelId]/oauth/start/route.js +1 -0
  73. package/.next/standalone/apps/web/.next/server/app/api/connections/[channelId]/oauth/start/route.js.nft.json +1 -0
  74. package/.next/standalone/apps/web/.next/server/app/api/connections/[channelId]/oauth/start/route_client-reference-manifest.js +1 -0
  75. package/.next/standalone/apps/web/.next/server/app/api/connections/[channelId]/route.js +1 -0
  76. package/.next/standalone/apps/web/.next/server/app/api/connections/[channelId]/route.js.nft.json +1 -0
  77. package/.next/standalone/apps/web/.next/server/app/api/connections/[channelId]/route_client-reference-manifest.js +1 -0
  78. package/.next/standalone/apps/web/.next/server/app/api/connections/route.js +1 -0
  79. package/.next/standalone/apps/web/.next/server/app/api/connections/route.js.nft.json +1 -0
  80. package/.next/standalone/apps/web/.next/server/app/api/connections/route_client-reference-manifest.js +1 -0
  81. package/.next/standalone/apps/web/.next/server/app/api/connections/tunnel/route.js +1 -0
  82. package/.next/standalone/apps/web/.next/server/app/api/connections/tunnel/route.js.nft.json +1 -0
  83. package/.next/standalone/apps/web/.next/server/app/api/connections/tunnel/route_client-reference-manifest.js +1 -0
  84. package/.next/standalone/apps/web/.next/server/app/api/demo/route.js +1 -0
  85. package/.next/standalone/apps/web/.next/server/app/api/demo/route.js.nft.json +1 -0
  86. package/.next/standalone/apps/web/.next/server/app/api/demo/route_client-reference-manifest.js +1 -0
  87. package/.next/standalone/apps/web/.next/server/app/api/deploy/ssh/route.js +5 -0
  88. package/.next/standalone/apps/web/.next/server/app/api/deploy/ssh/route.js.nft.json +1 -0
  89. package/.next/standalone/apps/web/.next/server/app/api/deploy/ssh/route_client-reference-manifest.js +1 -0
  90. package/.next/standalone/apps/web/.next/server/app/api/deploy/verify/route.js +1 -0
  91. package/.next/standalone/apps/web/.next/server/app/api/deploy/verify/route.js.nft.json +1 -0
  92. package/.next/standalone/apps/web/.next/server/app/api/deploy/verify/route_client-reference-manifest.js +1 -0
  93. package/.next/standalone/apps/web/.next/server/app/api/describe-image/route.js +1 -0
  94. package/.next/standalone/apps/web/.next/server/app/api/describe-image/route.js.nft.json +1 -0
  95. package/.next/standalone/apps/web/.next/server/app/api/describe-image/route_client-reference-manifest.js +1 -0
  96. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/edit/route.js +1 -0
  97. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/edit/route.js.nft.json +1 -0
  98. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/edit/route_client-reference-manifest.js +1 -0
  99. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/export/route.js +1 -0
  100. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/export/route.js.nft.json +1 -0
  101. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/export/route_client-reference-manifest.js +1 -0
  102. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/extract-text/route.js +1 -0
  103. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/extract-text/route.js.nft.json +1 -0
  104. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/extract-text/route_client-reference-manifest.js +1 -0
  105. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/parse/route.js +1 -0
  106. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/parse/route.js.nft.json +1 -0
  107. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/parse/route_client-reference-manifest.js +1 -0
  108. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/restore/route.js +1 -0
  109. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/restore/route.js.nft.json +1 -0
  110. package/.next/standalone/apps/web/.next/server/app/api/doc-editor/restore/route_client-reference-manifest.js +1 -0
  111. package/.next/standalone/apps/web/.next/server/app/api/document/sign/route.js +1 -0
  112. package/.next/standalone/apps/web/.next/server/app/api/document/sign/route.js.nft.json +1 -0
  113. package/.next/standalone/apps/web/.next/server/app/api/document/sign/route_client-reference-manifest.js +1 -0
  114. package/.next/standalone/apps/web/.next/server/app/api/documents/move/route.js +1 -0
  115. package/.next/standalone/apps/web/.next/server/app/api/documents/move/route.js.nft.json +1 -0
  116. package/.next/standalone/apps/web/.next/server/app/api/documents/move/route_client-reference-manifest.js +1 -0
  117. package/.next/standalone/apps/web/.next/server/app/api/documents/route.js +1 -0
  118. package/.next/standalone/apps/web/.next/server/app/api/documents/route.js.nft.json +1 -0
  119. package/.next/standalone/apps/web/.next/server/app/api/documents/route_client-reference-manifest.js +1 -0
  120. package/.next/standalone/apps/web/.next/server/app/api/files/remote/route.js +1 -0
  121. package/.next/standalone/apps/web/.next/server/app/api/files/remote/route.js.nft.json +1 -0
  122. package/.next/standalone/apps/web/.next/server/app/api/files/remote/route_client-reference-manifest.js +1 -0
  123. package/.next/standalone/apps/web/.next/server/app/api/firecrawl/local/route.js +1 -0
  124. package/.next/standalone/apps/web/.next/server/app/api/firecrawl/local/route.js.nft.json +1 -0
  125. package/.next/standalone/apps/web/.next/server/app/api/firecrawl/local/route_client-reference-manifest.js +1 -0
  126. package/.next/standalone/apps/web/.next/server/app/api/gpu-activity/route.js +1 -0
  127. package/.next/standalone/apps/web/.next/server/app/api/gpu-activity/route.js.nft.json +1 -0
  128. package/.next/standalone/apps/web/.next/server/app/api/gpu-activity/route_client-reference-manifest.js +1 -0
  129. package/.next/standalone/apps/web/.next/server/app/api/groups/route.js +1 -0
  130. package/.next/standalone/apps/web/.next/server/app/api/groups/route.js.nft.json +1 -0
  131. package/.next/standalone/apps/web/.next/server/app/api/groups/route_client-reference-manifest.js +1 -0
  132. package/.next/standalone/apps/web/.next/server/app/api/index/route.js +1 -0
  133. package/.next/standalone/apps/web/.next/server/app/api/index/route.js.nft.json +1 -0
  134. package/.next/standalone/apps/web/.next/server/app/api/index/route_client-reference-manifest.js +1 -0
  135. package/.next/standalone/apps/web/.next/server/app/api/integrations/[integration]/callback/route.js +4 -0
  136. package/.next/standalone/apps/web/.next/server/app/api/integrations/[integration]/callback/route.js.nft.json +1 -0
  137. package/.next/standalone/apps/web/.next/server/app/api/integrations/[integration]/callback/route_client-reference-manifest.js +1 -0
  138. package/.next/standalone/apps/web/.next/server/app/api/integrations/[integration]/route.js +1 -0
  139. package/.next/standalone/apps/web/.next/server/app/api/integrations/[integration]/route.js.nft.json +1 -0
  140. package/.next/standalone/apps/web/.next/server/app/api/integrations/[integration]/route_client-reference-manifest.js +1 -0
  141. package/.next/standalone/apps/web/.next/server/app/api/integrations/notion/callback/route.js +19 -0
  142. package/.next/standalone/apps/web/.next/server/app/api/integrations/notion/callback/route.js.nft.json +1 -0
  143. package/.next/standalone/apps/web/.next/server/app/api/integrations/notion/callback/route_client-reference-manifest.js +1 -0
  144. package/.next/standalone/apps/web/.next/server/app/api/integrations/notion/route.js +11 -0
  145. package/.next/standalone/apps/web/.next/server/app/api/integrations/notion/route.js.nft.json +1 -0
  146. package/.next/standalone/apps/web/.next/server/app/api/integrations/notion/route_client-reference-manifest.js +1 -0
  147. package/.next/standalone/apps/web/.next/server/app/api/integrations/route.js +1 -0
  148. package/.next/standalone/apps/web/.next/server/app/api/integrations/route.js.nft.json +1 -0
  149. package/.next/standalone/apps/web/.next/server/app/api/integrations/route_client-reference-manifest.js +1 -0
  150. package/.next/standalone/apps/web/.next/server/app/api/jobs/[id]/route.js +1 -0
  151. package/.next/standalone/apps/web/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -0
  152. package/.next/standalone/apps/web/.next/server/app/api/jobs/[id]/route_client-reference-manifest.js +1 -0
  153. package/.next/standalone/apps/web/.next/server/app/api/jobs/route.js +1 -0
  154. package/.next/standalone/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -0
  155. package/.next/standalone/apps/web/.next/server/app/api/jobs/route_client-reference-manifest.js +1 -0
  156. package/.next/standalone/apps/web/.next/server/app/api/marketplace/[toolId]/route.js +1 -0
  157. package/.next/standalone/apps/web/.next/server/app/api/marketplace/[toolId]/route.js.nft.json +1 -0
  158. package/.next/standalone/apps/web/.next/server/app/api/marketplace/[toolId]/route_client-reference-manifest.js +1 -0
  159. package/.next/standalone/apps/web/.next/server/app/api/marketplace/route.js +1 -0
  160. package/.next/standalone/apps/web/.next/server/app/api/marketplace/route.js.nft.json +1 -0
  161. package/.next/standalone/apps/web/.next/server/app/api/marketplace/route_client-reference-manifest.js +1 -0
  162. package/.next/standalone/apps/web/.next/server/app/api/mcp/[connectionId]/route.js +1 -0
  163. package/.next/standalone/apps/web/.next/server/app/api/mcp/[connectionId]/route.js.nft.json +1 -0
  164. package/.next/standalone/apps/web/.next/server/app/api/mcp/[connectionId]/route_client-reference-manifest.js +1 -0
  165. package/.next/standalone/apps/web/.next/server/app/api/mcp/[connectionId]/test/route.js +1 -0
  166. package/.next/standalone/apps/web/.next/server/app/api/mcp/[connectionId]/test/route.js.nft.json +1 -0
  167. package/.next/standalone/apps/web/.next/server/app/api/mcp/[connectionId]/test/route_client-reference-manifest.js +1 -0
  168. package/.next/standalone/apps/web/.next/server/app/api/mcp/route.js +1 -0
  169. package/.next/standalone/apps/web/.next/server/app/api/mcp/route.js.nft.json +1 -0
  170. package/.next/standalone/apps/web/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -0
  171. package/.next/standalone/apps/web/.next/server/app/api/media/[id]/frame/route.js +1 -0
  172. package/.next/standalone/apps/web/.next/server/app/api/media/[id]/frame/route.js.nft.json +1 -0
  173. package/.next/standalone/apps/web/.next/server/app/api/media/[id]/frame/route_client-reference-manifest.js +1 -0
  174. package/.next/standalone/apps/web/.next/server/app/api/media/[id]/route.js +1 -0
  175. package/.next/standalone/apps/web/.next/server/app/api/media/[id]/route.js.nft.json +1 -0
  176. package/.next/standalone/apps/web/.next/server/app/api/media/[id]/route_client-reference-manifest.js +1 -0
  177. package/.next/standalone/apps/web/.next/server/app/api/media/inspect/route.js +1 -0
  178. package/.next/standalone/apps/web/.next/server/app/api/media/inspect/route.js.nft.json +1 -0
  179. package/.next/standalone/apps/web/.next/server/app/api/media/inspect/route_client-reference-manifest.js +1 -0
  180. package/.next/standalone/apps/web/.next/server/app/api/media/jobs/[id]/approval/route.js +1 -0
  181. package/.next/standalone/apps/web/.next/server/app/api/media/jobs/[id]/approval/route.js.nft.json +1 -0
  182. package/.next/standalone/apps/web/.next/server/app/api/media/jobs/[id]/approval/route_client-reference-manifest.js +1 -0
  183. package/.next/standalone/apps/web/.next/server/app/api/media/jobs/[id]/route.js +1 -0
  184. package/.next/standalone/apps/web/.next/server/app/api/media/jobs/[id]/route.js.nft.json +1 -0
  185. package/.next/standalone/apps/web/.next/server/app/api/media/jobs/[id]/route_client-reference-manifest.js +1 -0
  186. package/.next/standalone/apps/web/.next/server/app/api/media/process/route.js +2 -0
  187. package/.next/standalone/apps/web/.next/server/app/api/media/process/route.js.nft.json +1 -0
  188. package/.next/standalone/apps/web/.next/server/app/api/media/process/route_client-reference-manifest.js +1 -0
  189. package/.next/standalone/apps/web/.next/server/app/api/media/route.js +1 -0
  190. package/.next/standalone/apps/web/.next/server/app/api/media/route.js.nft.json +1 -0
  191. package/.next/standalone/apps/web/.next/server/app/api/media/route_client-reference-manifest.js +1 -0
  192. package/.next/standalone/apps/web/.next/server/app/api/media/stream/route.js +5 -0
  193. package/.next/standalone/apps/web/.next/server/app/api/media/stream/route.js.nft.json +1 -0
  194. package/.next/standalone/apps/web/.next/server/app/api/media/stream/route_client-reference-manifest.js +1 -0
  195. package/.next/standalone/apps/web/.next/server/app/api/models/route.js +1 -0
  196. package/.next/standalone/apps/web/.next/server/app/api/models/route.js.nft.json +1 -0
  197. package/.next/standalone/apps/web/.next/server/app/api/models/route_client-reference-manifest.js +1 -0
  198. package/.next/standalone/apps/web/.next/server/app/api/parse-file/route.js +1 -0
  199. package/.next/standalone/apps/web/.next/server/app/api/parse-file/route.js.nft.json +1 -0
  200. package/.next/standalone/apps/web/.next/server/app/api/parse-file/route_client-reference-manifest.js +1 -0
  201. package/.next/standalone/apps/web/.next/server/app/api/pdf-page/route.js +1 -0
  202. package/.next/standalone/apps/web/.next/server/app/api/pdf-page/route.js.nft.json +1 -0
  203. package/.next/standalone/apps/web/.next/server/app/api/pdf-page/route_client-reference-manifest.js +1 -0
  204. package/.next/standalone/apps/web/.next/server/app/api/projects/deployments/route.js +1 -0
  205. package/.next/standalone/apps/web/.next/server/app/api/projects/deployments/route.js.nft.json +1 -0
  206. package/.next/standalone/apps/web/.next/server/app/api/projects/deployments/route_client-reference-manifest.js +1 -0
  207. package/.next/standalone/apps/web/.next/server/app/api/projects/route.js +1 -0
  208. package/.next/standalone/apps/web/.next/server/app/api/projects/route.js.nft.json +1 -0
  209. package/.next/standalone/apps/web/.next/server/app/api/projects/route_client-reference-manifest.js +1 -0
  210. package/.next/standalone/apps/web/.next/server/app/api/projects/runtime/route.js +1 -0
  211. package/.next/standalone/apps/web/.next/server/app/api/projects/runtime/route.js.nft.json +1 -0
  212. package/.next/standalone/apps/web/.next/server/app/api/projects/runtime/route_client-reference-manifest.js +1 -0
  213. package/.next/standalone/apps/web/.next/server/app/api/proxy/verify/route.js +1 -0
  214. package/.next/standalone/apps/web/.next/server/app/api/proxy/verify/route.js.nft.json +1 -0
  215. package/.next/standalone/apps/web/.next/server/app/api/proxy/verify/route_client-reference-manifest.js +1 -0
  216. package/.next/standalone/apps/web/.next/server/app/api/sandbox/route.js +1 -0
  217. package/.next/standalone/apps/web/.next/server/app/api/sandbox/route.js.nft.json +1 -0
  218. package/.next/standalone/apps/web/.next/server/app/api/sandbox/route_client-reference-manifest.js +1 -0
  219. package/.next/standalone/apps/web/.next/server/app/api/sandbox/verify/route.js +1 -0
  220. package/.next/standalone/apps/web/.next/server/app/api/sandbox/verify/route.js.nft.json +1 -0
  221. package/.next/standalone/apps/web/.next/server/app/api/sandbox/verify/route_client-reference-manifest.js +1 -0
  222. package/.next/standalone/apps/web/.next/server/app/api/search/bing/route.js +1 -0
  223. package/.next/standalone/apps/web/.next/server/app/api/search/bing/route.js.nft.json +1 -0
  224. package/.next/standalone/apps/web/.next/server/app/api/search/bing/route_client-reference-manifest.js +1 -0
  225. package/.next/standalone/apps/web/.next/server/app/api/search/brave/route.js +1 -0
  226. package/.next/standalone/apps/web/.next/server/app/api/search/brave/route.js.nft.json +1 -0
  227. package/.next/standalone/apps/web/.next/server/app/api/search/brave/route_client-reference-manifest.js +1 -0
  228. package/.next/standalone/apps/web/.next/server/app/api/search/exa/route.js +1 -0
  229. package/.next/standalone/apps/web/.next/server/app/api/search/exa/route.js.nft.json +1 -0
  230. package/.next/standalone/apps/web/.next/server/app/api/search/exa/route_client-reference-manifest.js +1 -0
  231. package/.next/standalone/apps/web/.next/server/app/api/search/google/route.js +1 -0
  232. package/.next/standalone/apps/web/.next/server/app/api/search/google/route.js.nft.json +1 -0
  233. package/.next/standalone/apps/web/.next/server/app/api/search/google/route_client-reference-manifest.js +1 -0
  234. package/.next/standalone/apps/web/.next/server/app/api/search/route.js +1 -0
  235. package/.next/standalone/apps/web/.next/server/app/api/search/route.js.nft.json +1 -0
  236. package/.next/standalone/apps/web/.next/server/app/api/search/route_client-reference-manifest.js +1 -0
  237. package/.next/standalone/apps/web/.next/server/app/api/search/tavily/route.js +1 -0
  238. package/.next/standalone/apps/web/.next/server/app/api/search/tavily/route.js.nft.json +1 -0
  239. package/.next/standalone/apps/web/.next/server/app/api/search/tavily/route_client-reference-manifest.js +1 -0
  240. package/.next/standalone/apps/web/.next/server/app/api/search/verify/route.js +1 -0
  241. package/.next/standalone/apps/web/.next/server/app/api/search/verify/route.js.nft.json +1 -0
  242. package/.next/standalone/apps/web/.next/server/app/api/search/verify/route_client-reference-manifest.js +1 -0
  243. package/.next/standalone/apps/web/.next/server/app/api/system/cache/route.js +2 -0
  244. package/.next/standalone/apps/web/.next/server/app/api/system/cache/route.js.nft.json +1 -0
  245. package/.next/standalone/apps/web/.next/server/app/api/system/cache/route_client-reference-manifest.js +1 -0
  246. package/.next/standalone/apps/web/.next/server/app/api/tabular/query/route.js +1 -0
  247. package/.next/standalone/apps/web/.next/server/app/api/tabular/query/route.js.nft.json +1 -0
  248. package/.next/standalone/apps/web/.next/server/app/api/tabular/query/route_client-reference-manifest.js +1 -0
  249. package/.next/standalone/apps/web/.next/server/app/api/tabular/route.js +1 -0
  250. package/.next/standalone/apps/web/.next/server/app/api/tabular/route.js.nft.json +1 -0
  251. package/.next/standalone/apps/web/.next/server/app/api/tabular/route_client-reference-manifest.js +1 -0
  252. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/host/route.js +1 -0
  253. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/host/route.js.nft.json +1 -0
  254. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/host/route_client-reference-manifest.js +1 -0
  255. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/runtime/route.js +1 -0
  256. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/runtime/route.js.nft.json +1 -0
  257. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/runtime/route_client-reference-manifest.js +1 -0
  258. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/usage/route.js +1 -0
  259. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/usage/route.js.nft.json +1 -0
  260. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/usage/route_client-reference-manifest.js +1 -0
  261. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/usage-request/route.js +1 -0
  262. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/usage-request/route.js.nft.json +1 -0
  263. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/usage-request/route_client-reference-manifest.js +1 -0
  264. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/verify/route.js +1 -0
  265. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/verify/route.js.nft.json +1 -0
  266. package/.next/standalone/apps/web/.next/server/app/api/tools/[toolId]/verify/route_client-reference-manifest.js +1 -0
  267. package/.next/standalone/apps/web/.next/server/app/api/tools/video-intelligence/connection/route.js +1 -0
  268. package/.next/standalone/apps/web/.next/server/app/api/tools/video-intelligence/connection/route.js.nft.json +1 -0
  269. package/.next/standalone/apps/web/.next/server/app/api/tools/video-intelligence/connection/route_client-reference-manifest.js +1 -0
  270. package/.next/standalone/apps/web/.next/server/app/api/tools/video-intelligence/usage/route.js +1 -0
  271. package/.next/standalone/apps/web/.next/server/app/api/tools/video-intelligence/usage/route.js.nft.json +1 -0
  272. package/.next/standalone/apps/web/.next/server/app/api/tools/video-intelligence/usage/route_client-reference-manifest.js +1 -0
  273. package/.next/standalone/apps/web/.next/server/app/api/tools/video-intelligence/usage-request/route.js +1 -0
  274. package/.next/standalone/apps/web/.next/server/app/api/tools/video-intelligence/usage-request/route.js.nft.json +1 -0
  275. package/.next/standalone/apps/web/.next/server/app/api/tools/video-intelligence/usage-request/route_client-reference-manifest.js +1 -0
  276. package/.next/standalone/apps/web/.next/server/app/api/upload-file/route.js +1 -0
  277. package/.next/standalone/apps/web/.next/server/app/api/upload-file/route.js.nft.json +1 -0
  278. package/.next/standalone/apps/web/.next/server/app/api/upload-file/route_client-reference-manifest.js +1 -0
  279. package/.next/standalone/apps/web/.next/server/app/api/uploads/[...slug]/route.js +1 -0
  280. package/.next/standalone/apps/web/.next/server/app/api/uploads/[...slug]/route.js.nft.json +1 -0
  281. package/.next/standalone/apps/web/.next/server/app/api/uploads/[...slug]/route_client-reference-manifest.js +1 -0
  282. package/.next/standalone/apps/web/.next/server/app/api/vector-stores/install/route.js +1 -0
  283. package/.next/standalone/apps/web/.next/server/app/api/vector-stores/install/route.js.nft.json +1 -0
  284. package/.next/standalone/apps/web/.next/server/app/api/vector-stores/install/route_client-reference-manifest.js +1 -0
  285. package/.next/standalone/apps/web/.next/server/app/api/vector-stores/status/route.js +1 -0
  286. package/.next/standalone/apps/web/.next/server/app/api/vector-stores/status/route.js.nft.json +1 -0
  287. package/.next/standalone/apps/web/.next/server/app/api/vector-stores/status/route_client-reference-manifest.js +1 -0
  288. package/.next/standalone/apps/web/.next/server/app/chat/[id]/page.js +1 -0
  289. package/.next/standalone/apps/web/.next/server/app/chat/[id]/page.js.nft.json +1 -0
  290. package/.next/standalone/apps/web/.next/server/app/chat/[id]/page_client-reference-manifest.js +1 -0
  291. package/.next/standalone/apps/web/.next/server/app/chat/page.js +1 -0
  292. package/.next/standalone/apps/web/.next/server/app/chat/page.js.nft.json +1 -0
  293. package/.next/standalone/apps/web/.next/server/app/chat/page_client-reference-manifest.js +1 -0
  294. package/.next/standalone/apps/web/.next/server/app/chat.html +1 -0
  295. package/.next/standalone/apps/web/.next/server/app/chat.meta +34 -0
  296. package/.next/standalone/apps/web/.next/server/app/chat.rsc +28 -0
  297. package/.next/standalone/apps/web/.next/server/app/chat.segments/_full.segment.rsc +28 -0
  298. package/.next/standalone/apps/web/.next/server/app/chat.segments/_tree.segment.rsc +3 -0
  299. package/.next/standalone/apps/web/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +34 -0
  300. package/.next/standalone/apps/web/.next/server/app/data/page.js +1 -0
  301. package/.next/standalone/apps/web/.next/server/app/data/page.js.nft.json +1 -0
  302. package/.next/standalone/apps/web/.next/server/app/data/page_client-reference-manifest.js +1 -0
  303. package/.next/standalone/apps/web/.next/server/app/data.html +1 -0
  304. package/.next/standalone/apps/web/.next/server/app/data.meta +34 -0
  305. package/.next/standalone/apps/web/.next/server/app/data.rsc +27 -0
  306. package/.next/standalone/apps/web/.next/server/app/data.segments/_full.segment.rsc +27 -0
  307. package/.next/standalone/apps/web/.next/server/app/data.segments/_tree.segment.rsc +2 -0
  308. package/.next/standalone/apps/web/.next/server/app/data.segments/data/__PAGE__.segment.rsc +33 -0
  309. package/.next/standalone/apps/web/.next/server/app/favicon.ico/route.js +1 -0
  310. package/.next/standalone/apps/web/.next/server/app/favicon.ico/route.js.nft.json +1 -0
  311. package/.next/standalone/apps/web/.next/server/app/favicon.ico.body +0 -0
  312. package/.next/standalone/apps/web/.next/server/app/favicon.ico.meta +1 -0
  313. package/.next/standalone/apps/web/.next/server/app/index.html +1 -0
  314. package/.next/standalone/apps/web/.next/server/app/index.meta +29 -0
  315. package/.next/standalone/apps/web/.next/server/app/index.rsc +25 -0
  316. package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +30 -0
  317. package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +25 -0
  318. package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -0
  319. package/.next/standalone/apps/web/.next/server/app/page.js +1 -0
  320. package/.next/standalone/apps/web/.next/server/app/page.js.nft.json +1 -0
  321. package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -0
  322. package/.next/standalone/apps/web/.next/server/app/settings/page.js +216 -0
  323. package/.next/standalone/apps/web/.next/server/app/settings/page.js.nft.json +1 -0
  324. package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -0
  325. package/.next/standalone/apps/web/.next/server/app/settings.html +1 -0
  326. package/.next/standalone/apps/web/.next/server/app/settings.meta +34 -0
  327. package/.next/standalone/apps/web/.next/server/app/settings.rsc +30 -0
  328. package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +30 -0
  329. package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -0
  330. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +36 -0
  331. package/.next/standalone/apps/web/.next/server/app-paths-manifest.json +94 -0
  332. package/.next/standalone/apps/web/.next/server/chunks/101.js +24 -0
  333. package/.next/standalone/apps/web/.next/server/chunks/1149.js +1 -0
  334. package/.next/standalone/apps/web/.next/server/chunks/1309.js +1 -0
  335. package/.next/standalone/apps/web/.next/server/chunks/1389.js +5 -0
  336. package/.next/standalone/apps/web/.next/server/chunks/1479.js +1 -0
  337. package/.next/standalone/apps/web/.next/server/chunks/1602.js +1 -0
  338. package/.next/standalone/apps/web/.next/server/chunks/1778.js +1 -0
  339. package/.next/standalone/apps/web/.next/server/chunks/1810.js +1 -0
  340. package/.next/standalone/apps/web/.next/server/chunks/1953.js +1 -0
  341. package/.next/standalone/apps/web/.next/server/chunks/1999.js +6 -0
  342. package/.next/standalone/apps/web/.next/server/chunks/2097.js +1 -0
  343. package/.next/standalone/apps/web/.next/server/chunks/2129.js +47 -0
  344. package/.next/standalone/apps/web/.next/server/chunks/2411.js +193 -0
  345. package/.next/standalone/apps/web/.next/server/chunks/2500.js +1 -0
  346. package/.next/standalone/apps/web/.next/server/chunks/2552.js +1 -0
  347. package/.next/standalone/apps/web/.next/server/chunks/2595.js +45 -0
  348. package/.next/standalone/apps/web/.next/server/chunks/2883.js +1 -0
  349. package/.next/standalone/apps/web/.next/server/chunks/2918.js +212 -0
  350. package/.next/standalone/apps/web/.next/server/chunks/309.js +2 -0
  351. package/.next/standalone/apps/web/.next/server/chunks/3122.js +1 -0
  352. package/.next/standalone/apps/web/.next/server/chunks/3257.js +1 -0
  353. package/.next/standalone/apps/web/.next/server/chunks/3287.js +1 -0
  354. package/.next/standalone/apps/web/.next/server/chunks/3304.js +1 -0
  355. package/.next/standalone/apps/web/.next/server/chunks/340.js +1 -0
  356. package/.next/standalone/apps/web/.next/server/chunks/3545.js +6 -0
  357. package/.next/standalone/apps/web/.next/server/chunks/3577.js +27 -0
  358. package/.next/standalone/apps/web/.next/server/chunks/3609.js +1 -0
  359. package/.next/standalone/apps/web/.next/server/chunks/364.js +36 -0
  360. package/.next/standalone/apps/web/.next/server/chunks/3642.js +1 -0
  361. package/.next/standalone/apps/web/.next/server/chunks/365.js +1 -0
  362. package/.next/standalone/apps/web/.next/server/chunks/4292.js +1 -0
  363. package/.next/standalone/apps/web/.next/server/chunks/4327.js +1 -0
  364. package/.next/standalone/apps/web/.next/server/chunks/4375.js +1 -0
  365. package/.next/standalone/apps/web/.next/server/chunks/4441.js +1 -0
  366. package/.next/standalone/apps/web/.next/server/chunks/4915.js +1 -0
  367. package/.next/standalone/apps/web/.next/server/chunks/5072.js +47 -0
  368. package/.next/standalone/apps/web/.next/server/chunks/5078.js +1 -0
  369. package/.next/standalone/apps/web/.next/server/chunks/5523.js +10 -0
  370. package/.next/standalone/apps/web/.next/server/chunks/5701.js +1 -0
  371. package/.next/standalone/apps/web/.next/server/chunks/5760.js +11 -0
  372. package/.next/standalone/apps/web/.next/server/chunks/5770.js +1 -0
  373. package/.next/standalone/apps/web/.next/server/chunks/588.js +1 -0
  374. package/.next/standalone/apps/web/.next/server/chunks/5884.js +1 -0
  375. package/.next/standalone/apps/web/.next/server/chunks/5937.js +1 -0
  376. package/.next/standalone/apps/web/.next/server/chunks/5995.js +1 -0
  377. package/.next/standalone/apps/web/.next/server/chunks/600.js +1 -0
  378. package/.next/standalone/apps/web/.next/server/chunks/6014.js +1 -0
  379. package/.next/standalone/apps/web/.next/server/chunks/6066.js +1 -0
  380. package/.next/standalone/apps/web/.next/server/chunks/6149.js +1 -0
  381. package/.next/standalone/apps/web/.next/server/chunks/6199.js +1 -0
  382. package/.next/standalone/apps/web/.next/server/chunks/620.js +78 -0
  383. package/.next/standalone/apps/web/.next/server/chunks/6207.js +14 -0
  384. package/.next/standalone/apps/web/.next/server/chunks/63.js +1 -0
  385. package/.next/standalone/apps/web/.next/server/chunks/6457.js +2 -0
  386. package/.next/standalone/apps/web/.next/server/chunks/6479.js +35 -0
  387. package/.next/standalone/apps/web/.next/server/chunks/657.js +84 -0
  388. package/.next/standalone/apps/web/.next/server/chunks/6573.js +1 -0
  389. package/.next/standalone/apps/web/.next/server/chunks/6814.js +18 -0
  390. package/.next/standalone/apps/web/.next/server/chunks/6909.js +1 -0
  391. package/.next/standalone/apps/web/.next/server/chunks/7010.js +1 -0
  392. package/.next/standalone/apps/web/.next/server/chunks/7289.js +1 -0
  393. package/.next/standalone/apps/web/.next/server/chunks/7324.js +1 -0
  394. package/.next/standalone/apps/web/.next/server/chunks/741.js +1 -0
  395. package/.next/standalone/apps/web/.next/server/chunks/7448.js +165 -0
  396. package/.next/standalone/apps/web/.next/server/chunks/7459.js +1 -0
  397. package/.next/standalone/apps/web/.next/server/chunks/7613.js +1 -0
  398. package/.next/standalone/apps/web/.next/server/chunks/7945.js +1 -0
  399. package/.next/standalone/apps/web/.next/server/chunks/7974.js +20 -0
  400. package/.next/standalone/apps/web/.next/server/chunks/8005.js +41 -0
  401. package/.next/standalone/apps/web/.next/server/chunks/8052.js +55 -0
  402. package/.next/standalone/apps/web/.next/server/chunks/8169.js +1 -0
  403. package/.next/standalone/apps/web/.next/server/chunks/8299.js +2 -0
  404. package/.next/standalone/apps/web/.next/server/chunks/8358.js +1 -0
  405. package/.next/standalone/apps/web/.next/server/chunks/843.js +1 -0
  406. package/.next/standalone/apps/web/.next/server/chunks/8437.js +12 -0
  407. package/.next/standalone/apps/web/.next/server/chunks/8840.js +1 -0
  408. package/.next/standalone/apps/web/.next/server/chunks/8952.js +1859 -0
  409. package/.next/standalone/apps/web/.next/server/chunks/9016.js +1 -0
  410. package/.next/standalone/apps/web/.next/server/chunks/9028.js +1 -0
  411. package/.next/standalone/apps/web/.next/server/chunks/9077.js +1 -0
  412. package/.next/standalone/apps/web/.next/server/chunks/915.js +1 -0
  413. package/.next/standalone/apps/web/.next/server/chunks/9248.js +256 -0
  414. package/.next/standalone/apps/web/.next/server/chunks/9301.js +1 -0
  415. package/.next/standalone/apps/web/.next/server/chunks/9319.js +1 -0
  416. package/.next/standalone/apps/web/.next/server/chunks/9439.js +24 -0
  417. package/.next/standalone/apps/web/.next/server/chunks/9480.js +1 -0
  418. package/.next/standalone/apps/web/.next/server/chunks/9579.js +1 -0
  419. package/.next/standalone/apps/web/.next/server/chunks/9768.js +4 -0
  420. package/.next/standalone/apps/web/.next/server/chunks/9837.js +121 -0
  421. package/.next/standalone/apps/web/.next/server/chunks/9851.js +1 -0
  422. package/.next/standalone/apps/web/.next/server/chunks/static/media/pdf.worker.min.63b810cd.mjs +6 -0
  423. package/.next/standalone/apps/web/.next/server/functions-config-manifest.json +82 -0
  424. package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +1 -0
  425. package/.next/standalone/apps/web/.next/server/middleware-manifest.json +6 -0
  426. package/.next/standalone/apps/web/.next/server/middleware-react-loadable-manifest.js +1 -0
  427. package/.next/standalone/apps/web/.next/server/next-font-manifest.js +1 -0
  428. package/.next/standalone/apps/web/.next/server/next-font-manifest.json +1 -0
  429. package/.next/standalone/apps/web/.next/server/pages/404.html +1 -0
  430. package/.next/standalone/apps/web/.next/server/pages/500.html +1 -0
  431. package/.next/standalone/apps/web/.next/server/pages-manifest.json +4 -0
  432. package/.next/standalone/apps/web/.next/server/prefetch-hints.json +95 -0
  433. package/.next/standalone/apps/web/.next/server/server-reference-manifest.js +1 -0
  434. package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -0
  435. package/.next/standalone/apps/web/.next/server/webpack-runtime.js +1 -0
  436. package/.next/standalone/apps/web/.next/static/chunks/0ed6b8a9-7f39ffa51cd4d7d3.js +1 -0
  437. package/.next/standalone/apps/web/.next/static/chunks/1788-3ec11e3d6d6986e9.js +1 -0
  438. package/.next/standalone/apps/web/.next/static/chunks/1986-2eb6c09f2f556e84.js +1 -0
  439. package/.next/standalone/apps/web/.next/static/chunks/2038-1dc8a3028545edab.js +1 -0
  440. package/.next/standalone/apps/web/.next/static/chunks/217c94bb-b2b832568a17950f.js +1 -0
  441. package/.next/standalone/apps/web/.next/static/chunks/227-7f3dac471f0eb3b0.js +1 -0
  442. package/.next/standalone/apps/web/.next/static/chunks/2634.803b324122bd1d49.js +1 -0
  443. package/.next/standalone/apps/web/.next/static/chunks/2928-8a2d9ed34f45623a.js +1 -0
  444. package/.next/standalone/apps/web/.next/static/chunks/3182.74de4aadefc6e951.js +1 -0
  445. package/.next/standalone/apps/web/.next/static/chunks/3259.41d1a9e21c751dca.js +1 -0
  446. package/.next/standalone/apps/web/.next/static/chunks/3853-f4d7f7a9e7afd752.js +1 -0
  447. package/.next/standalone/apps/web/.next/static/chunks/4112ad79.b782044759df4bc8.js +45 -0
  448. package/.next/standalone/apps/web/.next/static/chunks/4765-48a3b66331719b80.js +1 -0
  449. package/.next/standalone/apps/web/.next/static/chunks/4975-4de53a9574e52468.js +1 -0
  450. package/.next/standalone/apps/web/.next/static/chunks/5833-f7b1cb2153cd52ab.js +1 -0
  451. package/.next/standalone/apps/web/.next/static/chunks/6462-9d67b69d990b1234.js +1 -0
  452. package/.next/standalone/apps/web/.next/static/chunks/6837-67b91a5109edf8a8.js +1 -0
  453. package/.next/standalone/apps/web/.next/static/chunks/6880.4300fd5c0fd7f17a.js +1 -0
  454. package/.next/standalone/apps/web/.next/static/chunks/6904-f77e06e821ecae13.js +52 -0
  455. package/.next/standalone/apps/web/.next/static/chunks/7534-8b910687515b8403.js +6 -0
  456. package/.next/standalone/apps/web/.next/static/chunks/7857.ce5356f660fb54a1.js +1 -0
  457. package/.next/standalone/apps/web/.next/static/chunks/8226-c6f5131375b6df6a.js +3 -0
  458. package/.next/standalone/apps/web/.next/static/chunks/9734-c7b94c9bf40c9b2e.js +1 -0
  459. package/.next/standalone/apps/web/.next/static/chunks/9779-5dc3db110e05c070.js +1 -0
  460. package/.next/standalone/apps/web/.next/static/chunks/9987-45c7dfa599210f7e.js +78 -0
  461. package/.next/standalone/apps/web/.next/static/chunks/app/_global-error/page-0d4f12c4c9cbf85f.js +1 -0
  462. package/.next/standalone/apps/web/.next/static/chunks/app/_not-found/page-7007da1b6a809c3d.js +1 -0
  463. package/.next/standalone/apps/web/.next/static/chunks/app/add/page-d423813ec2556ef0.js +1 -0
  464. package/.next/standalone/apps/web/.next/static/chunks/app/api/analytics/route-0d4f12c4c9cbf85f.js +1 -0
  465. package/.next/standalone/apps/web/.next/static/chunks/app/api/chat/feedback/route-0d4f12c4c9cbf85f.js +1 -0
  466. package/.next/standalone/apps/web/.next/static/chunks/app/api/chat/route-0d4f12c4c9cbf85f.js +1 -0
  467. package/.next/standalone/apps/web/.next/static/chunks/app/api/chat/status/route-0d4f12c4c9cbf85f.js +1 -0
  468. package/.next/standalone/apps/web/.next/static/chunks/app/api/config/route-0d4f12c4c9cbf85f.js +1 -0
  469. package/.next/standalone/apps/web/.next/static/chunks/app/api/config/test/route-0d4f12c4c9cbf85f.js +1 -0
  470. package/.next/standalone/apps/web/.next/static/chunks/app/api/config/test-embedding/route-0d4f12c4c9cbf85f.js +1 -0
  471. package/.next/standalone/apps/web/.next/static/chunks/app/api/config/test-llm/route-0d4f12c4c9cbf85f.js +1 -0
  472. package/.next/standalone/apps/web/.next/static/chunks/app/api/config/test-provider/route-0d4f12c4c9cbf85f.js +1 -0
  473. package/.next/standalone/apps/web/.next/static/chunks/app/api/config/verify/route-0d4f12c4c9cbf85f.js +1 -0
  474. package/.next/standalone/apps/web/.next/static/chunks/app/api/connections/[channelId]/oauth/callback/route-0d4f12c4c9cbf85f.js +1 -0
  475. package/.next/standalone/apps/web/.next/static/chunks/app/api/connections/[channelId]/oauth/start/route-0d4f12c4c9cbf85f.js +1 -0
  476. package/.next/standalone/apps/web/.next/static/chunks/app/api/connections/[channelId]/route-0d4f12c4c9cbf85f.js +1 -0
  477. package/.next/standalone/apps/web/.next/static/chunks/app/api/connections/route-0d4f12c4c9cbf85f.js +1 -0
  478. package/.next/standalone/apps/web/.next/static/chunks/app/api/connections/tunnel/route-0d4f12c4c9cbf85f.js +1 -0
  479. package/.next/standalone/apps/web/.next/static/chunks/app/api/demo/route-0d4f12c4c9cbf85f.js +1 -0
  480. package/.next/standalone/apps/web/.next/static/chunks/app/api/deploy/ssh/route-0d4f12c4c9cbf85f.js +1 -0
  481. package/.next/standalone/apps/web/.next/static/chunks/app/api/deploy/verify/route-0d4f12c4c9cbf85f.js +1 -0
  482. package/.next/standalone/apps/web/.next/static/chunks/app/api/describe-image/route-0d4f12c4c9cbf85f.js +1 -0
  483. package/.next/standalone/apps/web/.next/static/chunks/app/api/doc-editor/edit/route-0d4f12c4c9cbf85f.js +1 -0
  484. package/.next/standalone/apps/web/.next/static/chunks/app/api/doc-editor/export/route-0d4f12c4c9cbf85f.js +1 -0
  485. package/.next/standalone/apps/web/.next/static/chunks/app/api/doc-editor/extract-text/route-0d4f12c4c9cbf85f.js +1 -0
  486. package/.next/standalone/apps/web/.next/static/chunks/app/api/doc-editor/parse/route-0d4f12c4c9cbf85f.js +1 -0
  487. package/.next/standalone/apps/web/.next/static/chunks/app/api/doc-editor/restore/route-0d4f12c4c9cbf85f.js +1 -0
  488. package/.next/standalone/apps/web/.next/static/chunks/app/api/document/sign/route-0d4f12c4c9cbf85f.js +1 -0
  489. package/.next/standalone/apps/web/.next/static/chunks/app/api/documents/move/route-0d4f12c4c9cbf85f.js +1 -0
  490. package/.next/standalone/apps/web/.next/static/chunks/app/api/documents/route-0d4f12c4c9cbf85f.js +1 -0
  491. package/.next/standalone/apps/web/.next/static/chunks/app/api/files/remote/route-0d4f12c4c9cbf85f.js +1 -0
  492. package/.next/standalone/apps/web/.next/static/chunks/app/api/firecrawl/local/route-0d4f12c4c9cbf85f.js +1 -0
  493. package/.next/standalone/apps/web/.next/static/chunks/app/api/gpu-activity/route-0d4f12c4c9cbf85f.js +1 -0
  494. package/.next/standalone/apps/web/.next/static/chunks/app/api/groups/route-0d4f12c4c9cbf85f.js +1 -0
  495. package/.next/standalone/apps/web/.next/static/chunks/app/api/index/route-0d4f12c4c9cbf85f.js +1 -0
  496. package/.next/standalone/apps/web/.next/static/chunks/app/api/integrations/[integration]/callback/route-0d4f12c4c9cbf85f.js +1 -0
  497. package/.next/standalone/apps/web/.next/static/chunks/app/api/integrations/[integration]/route-0d4f12c4c9cbf85f.js +1 -0
  498. package/.next/standalone/apps/web/.next/static/chunks/app/api/integrations/notion/callback/route-0d4f12c4c9cbf85f.js +1 -0
  499. package/.next/standalone/apps/web/.next/static/chunks/app/api/integrations/notion/route-0d4f12c4c9cbf85f.js +1 -0
  500. package/.next/standalone/apps/web/.next/static/chunks/app/api/integrations/route-0d4f12c4c9cbf85f.js +1 -0
  501. package/.next/standalone/apps/web/.next/static/chunks/app/api/jobs/[id]/route-0d4f12c4c9cbf85f.js +1 -0
  502. package/.next/standalone/apps/web/.next/static/chunks/app/api/jobs/route-0d4f12c4c9cbf85f.js +1 -0
  503. package/.next/standalone/apps/web/.next/static/chunks/app/api/marketplace/[toolId]/route-0d4f12c4c9cbf85f.js +1 -0
  504. package/.next/standalone/apps/web/.next/static/chunks/app/api/marketplace/route-0d4f12c4c9cbf85f.js +1 -0
  505. package/.next/standalone/apps/web/.next/static/chunks/app/api/mcp/[connectionId]/route-0d4f12c4c9cbf85f.js +1 -0
  506. package/.next/standalone/apps/web/.next/static/chunks/app/api/mcp/[connectionId]/test/route-0d4f12c4c9cbf85f.js +1 -0
  507. package/.next/standalone/apps/web/.next/static/chunks/app/api/mcp/route-0d4f12c4c9cbf85f.js +1 -0
  508. package/.next/standalone/apps/web/.next/static/chunks/app/api/media/[id]/frame/route-0d4f12c4c9cbf85f.js +1 -0
  509. package/.next/standalone/apps/web/.next/static/chunks/app/api/media/[id]/route-0d4f12c4c9cbf85f.js +1 -0
  510. package/.next/standalone/apps/web/.next/static/chunks/app/api/media/inspect/route-0d4f12c4c9cbf85f.js +1 -0
  511. package/.next/standalone/apps/web/.next/static/chunks/app/api/media/jobs/[id]/approval/route-0d4f12c4c9cbf85f.js +1 -0
  512. package/.next/standalone/apps/web/.next/static/chunks/app/api/media/jobs/[id]/route-0d4f12c4c9cbf85f.js +1 -0
  513. package/.next/standalone/apps/web/.next/static/chunks/app/api/media/process/route-0d4f12c4c9cbf85f.js +1 -0
  514. package/.next/standalone/apps/web/.next/static/chunks/app/api/media/route-0d4f12c4c9cbf85f.js +1 -0
  515. package/.next/standalone/apps/web/.next/static/chunks/app/api/media/stream/route-0d4f12c4c9cbf85f.js +1 -0
  516. package/.next/standalone/apps/web/.next/static/chunks/app/api/models/route-0d4f12c4c9cbf85f.js +1 -0
  517. package/.next/standalone/apps/web/.next/static/chunks/app/api/parse-file/route-0d4f12c4c9cbf85f.js +1 -0
  518. package/.next/standalone/apps/web/.next/static/chunks/app/api/pdf-page/route-0d4f12c4c9cbf85f.js +1 -0
  519. package/.next/standalone/apps/web/.next/static/chunks/app/api/projects/deployments/route-0d4f12c4c9cbf85f.js +1 -0
  520. package/.next/standalone/apps/web/.next/static/chunks/app/api/projects/route-0d4f12c4c9cbf85f.js +1 -0
  521. package/.next/standalone/apps/web/.next/static/chunks/app/api/projects/runtime/route-0d4f12c4c9cbf85f.js +1 -0
  522. package/.next/standalone/apps/web/.next/static/chunks/app/api/proxy/verify/route-0d4f12c4c9cbf85f.js +1 -0
  523. package/.next/standalone/apps/web/.next/static/chunks/app/api/sandbox/route-0d4f12c4c9cbf85f.js +1 -0
  524. package/.next/standalone/apps/web/.next/static/chunks/app/api/sandbox/verify/route-0d4f12c4c9cbf85f.js +1 -0
  525. package/.next/standalone/apps/web/.next/static/chunks/app/api/search/bing/route-0d4f12c4c9cbf85f.js +1 -0
  526. package/.next/standalone/apps/web/.next/static/chunks/app/api/search/brave/route-0d4f12c4c9cbf85f.js +1 -0
  527. package/.next/standalone/apps/web/.next/static/chunks/app/api/search/exa/route-0d4f12c4c9cbf85f.js +1 -0
  528. package/.next/standalone/apps/web/.next/static/chunks/app/api/search/google/route-0d4f12c4c9cbf85f.js +1 -0
  529. package/.next/standalone/apps/web/.next/static/chunks/app/api/search/route-0d4f12c4c9cbf85f.js +1 -0
  530. package/.next/standalone/apps/web/.next/static/chunks/app/api/search/tavily/route-0d4f12c4c9cbf85f.js +1 -0
  531. package/.next/standalone/apps/web/.next/static/chunks/app/api/search/verify/route-0d4f12c4c9cbf85f.js +1 -0
  532. package/.next/standalone/apps/web/.next/static/chunks/app/api/system/cache/route-0d4f12c4c9cbf85f.js +1 -0
  533. package/.next/standalone/apps/web/.next/static/chunks/app/api/tabular/query/route-0d4f12c4c9cbf85f.js +1 -0
  534. package/.next/standalone/apps/web/.next/static/chunks/app/api/tabular/route-0d4f12c4c9cbf85f.js +1 -0
  535. package/.next/standalone/apps/web/.next/static/chunks/app/api/tools/[toolId]/host/route-0d4f12c4c9cbf85f.js +1 -0
  536. package/.next/standalone/apps/web/.next/static/chunks/app/api/tools/[toolId]/runtime/route-0d4f12c4c9cbf85f.js +1 -0
  537. package/.next/standalone/apps/web/.next/static/chunks/app/api/tools/[toolId]/usage/route-0d4f12c4c9cbf85f.js +1 -0
  538. package/.next/standalone/apps/web/.next/static/chunks/app/api/tools/[toolId]/usage-request/route-0d4f12c4c9cbf85f.js +1 -0
  539. package/.next/standalone/apps/web/.next/static/chunks/app/api/tools/[toolId]/verify/route-0d4f12c4c9cbf85f.js +1 -0
  540. package/.next/standalone/apps/web/.next/static/chunks/app/api/tools/video-intelligence/connection/route-0d4f12c4c9cbf85f.js +1 -0
  541. package/.next/standalone/apps/web/.next/static/chunks/app/api/tools/video-intelligence/usage/route-0d4f12c4c9cbf85f.js +1 -0
  542. package/.next/standalone/apps/web/.next/static/chunks/app/api/tools/video-intelligence/usage-request/route-0d4f12c4c9cbf85f.js +1 -0
  543. package/.next/standalone/apps/web/.next/static/chunks/app/api/upload-file/route-0d4f12c4c9cbf85f.js +1 -0
  544. package/.next/standalone/apps/web/.next/static/chunks/app/api/uploads/[...slug]/route-0d4f12c4c9cbf85f.js +1 -0
  545. package/.next/standalone/apps/web/.next/static/chunks/app/api/vector-stores/install/route-0d4f12c4c9cbf85f.js +1 -0
  546. package/.next/standalone/apps/web/.next/static/chunks/app/api/vector-stores/status/route-0d4f12c4c9cbf85f.js +1 -0
  547. package/.next/standalone/apps/web/.next/static/chunks/app/chat/[id]/page-579d3515fee9f89a.js +1 -0
  548. package/.next/standalone/apps/web/.next/static/chunks/app/chat/page-bec03ef7408245b1.js +1 -0
  549. package/.next/standalone/apps/web/.next/static/chunks/app/data/page-02e56e093071379d.js +1 -0
  550. package/.next/standalone/apps/web/.next/static/chunks/app/layout-4b8ce98cb78f7113.js +1 -0
  551. package/.next/standalone/apps/web/.next/static/chunks/app/page-0d4f12c4c9cbf85f.js +1 -0
  552. package/.next/standalone/apps/web/.next/static/chunks/app/settings/page-485ea820c1111580.js +214 -0
  553. package/.next/standalone/apps/web/.next/static/chunks/app/template-6c3f1e7c9216df6c.js +1 -0
  554. package/.next/standalone/apps/web/.next/static/chunks/ca017448-ac5fddb4e8d1ca39.js +1 -0
  555. package/.next/standalone/apps/web/.next/static/chunks/db534642-baa98c214832026c.js +1 -0
  556. package/.next/standalone/apps/web/.next/static/chunks/framework-ae648e3ae9d64766.js +1 -0
  557. package/.next/standalone/apps/web/.next/static/chunks/main-25c6b3b10ba0a4a3.js +5 -0
  558. package/.next/standalone/apps/web/.next/static/chunks/main-app-ecde5d6ff9b76409.js +1 -0
  559. package/.next/standalone/apps/web/.next/static/chunks/next/dist/client/components/builtin/app-error-0d4f12c4c9cbf85f.js +1 -0
  560. package/.next/standalone/apps/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-0d4f12c4c9cbf85f.js +1 -0
  561. package/.next/standalone/apps/web/.next/static/chunks/next/dist/client/components/builtin/global-error-ab826e81c411f616.js +1 -0
  562. package/.next/standalone/apps/web/.next/static/chunks/next/dist/client/components/builtin/not-found-0d4f12c4c9cbf85f.js +1 -0
  563. package/.next/standalone/apps/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-0d4f12c4c9cbf85f.js +1 -0
  564. package/.next/standalone/apps/web/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  565. package/.next/standalone/apps/web/.next/static/chunks/webpack-8c15908ca85a5a46.js +1 -0
  566. package/.next/standalone/apps/web/.next/static/css/063aaab22a52e4b4.css +1 -0
  567. package/.next/standalone/apps/web/.next/static/css/a2d2ae3b76e6a5b6.css +1 -0
  568. package/.next/standalone/apps/web/.next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
  569. package/.next/standalone/apps/web/.next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
  570. package/.next/standalone/apps/web/.next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
  571. package/.next/standalone/apps/web/.next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
  572. package/.next/standalone/apps/web/.next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
  573. package/.next/standalone/apps/web/.next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
  574. package/.next/standalone/apps/web/.next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
  575. package/.next/standalone/apps/web/.next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
  576. package/.next/standalone/apps/web/.next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
  577. package/.next/standalone/apps/web/.next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
  578. package/.next/standalone/apps/web/.next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
  579. package/.next/standalone/apps/web/.next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
  580. package/.next/standalone/apps/web/.next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
  581. package/.next/standalone/apps/web/.next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
  582. package/.next/standalone/apps/web/.next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
  583. package/.next/standalone/apps/web/.next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
  584. package/.next/standalone/apps/web/.next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
  585. package/.next/standalone/apps/web/.next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
  586. package/.next/standalone/apps/web/.next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
  587. package/.next/standalone/apps/web/.next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
  588. package/.next/standalone/apps/web/.next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
  589. package/.next/standalone/apps/web/.next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
  590. package/.next/standalone/apps/web/.next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
  591. package/.next/standalone/apps/web/.next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
  592. package/.next/standalone/apps/web/.next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
  593. package/.next/standalone/apps/web/.next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
  594. package/.next/standalone/apps/web/.next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
  595. package/.next/standalone/apps/web/.next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
  596. package/.next/standalone/apps/web/.next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
  597. package/.next/standalone/apps/web/.next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
  598. package/.next/standalone/apps/web/.next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
  599. package/.next/standalone/apps/web/.next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
  600. package/.next/standalone/apps/web/.next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
  601. package/.next/standalone/apps/web/.next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
  602. package/.next/standalone/apps/web/.next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
  603. package/.next/standalone/apps/web/.next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
  604. package/.next/standalone/apps/web/.next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
  605. package/.next/standalone/apps/web/.next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
  606. package/.next/standalone/apps/web/.next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
  607. package/.next/standalone/apps/web/.next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
  608. package/.next/standalone/apps/web/.next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
  609. package/.next/standalone/apps/web/.next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
  610. package/.next/standalone/apps/web/.next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
  611. package/.next/standalone/apps/web/.next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
  612. package/.next/standalone/apps/web/.next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
  613. package/.next/standalone/apps/web/.next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
  614. package/.next/standalone/apps/web/.next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
  615. package/.next/standalone/apps/web/.next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
  616. package/.next/standalone/apps/web/.next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
  617. package/.next/standalone/apps/web/.next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
  618. package/.next/standalone/apps/web/.next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
  619. package/.next/standalone/apps/web/.next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
  620. package/.next/standalone/apps/web/.next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
  621. package/.next/standalone/apps/web/.next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
  622. package/.next/standalone/apps/web/.next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
  623. package/.next/standalone/apps/web/.next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
  624. package/.next/standalone/apps/web/.next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
  625. package/.next/standalone/apps/web/.next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
  626. package/.next/standalone/apps/web/.next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
  627. package/.next/standalone/apps/web/.next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
  628. package/.next/standalone/apps/web/.next/static/media/pdf.worker.min.b6d469c6.mjs +6 -0
  629. package/.next/standalone/apps/web/.next/static/omDbbCzcQ9kxlZ8Gz0yln/_buildManifest.js +1 -0
  630. package/.next/standalone/apps/web/.next/static/omDbbCzcQ9kxlZ8Gz0yln/_ssgManifest.js +1 -0
  631. package/.next/standalone/apps/web/.next/types/cache-life.d.ts +146 -0
  632. package/.next/standalone/apps/web/.next/types/root-params.d.ts +3 -0
  633. package/.next/standalone/apps/web/.next/types/routes.d.ts +161 -0
  634. package/.next/standalone/apps/web/.next/types/validator.ts +862 -0
  635. package/.next/standalone/apps/web/AGENTS.md +9 -0
  636. package/.next/standalone/apps/web/CLAUDE.md +1 -0
  637. package/.next/standalone/apps/web/app/api/groups/route.test.ts +86 -0
  638. package/.next/standalone/apps/web/app/api/index/route.test.ts +55 -0
  639. package/.next/standalone/apps/web/app/api/marketplace/[toolId]/route.test.ts +83 -0
  640. package/.next/standalone/apps/web/app/api/marketplace/route.test.ts +117 -0
  641. package/.next/standalone/apps/web/app/api/tools/[toolId]/verify/route.test.ts +66 -0
  642. package/.next/standalone/apps/web/app/favicon.ico +0 -0
  643. package/.next/standalone/apps/web/app/globals.css +406 -0
  644. package/.next/standalone/apps/web/app/themes.css +234 -0
  645. package/.next/standalone/apps/web/bin/larkup.js +528 -0
  646. package/.next/standalone/apps/web/components/alerts/generic-alert.tsx +76 -0
  647. package/.next/standalone/apps/web/components/analytics/analytics-dashboard.tsx +517 -0
  648. package/.next/standalone/apps/web/components/chat/canvas/doc-editor-provider.tsx +331 -0
  649. package/.next/standalone/apps/web/components/chat/canvas/document-canvas.tsx +98 -0
  650. package/.next/standalone/apps/web/components/chat/canvas/document-field.tsx +167 -0
  651. package/.next/standalone/apps/web/components/chat/canvas/document-viewer.tsx +446 -0
  652. package/.next/standalone/apps/web/components/chat/canvas/file-attachment-button.tsx +88 -0
  653. package/.next/standalone/apps/web/components/chat/canvas/file-chip.tsx +147 -0
  654. package/.next/standalone/apps/web/components/chat/message-actions.tsx +96 -0
  655. package/.next/standalone/apps/web/components/chat/message-item.tsx +1404 -0
  656. package/.next/standalone/apps/web/components/chat/message-queue.tsx +86 -0
  657. package/.next/standalone/apps/web/components/chat/reasoning.tsx +182 -0
  658. package/.next/standalone/apps/web/components/chat/tools/chat-card.tsx +97 -0
  659. package/.next/standalone/apps/web/components/chat/tools/chat-chart.tsx +554 -0
  660. package/.next/standalone/apps/web/components/chat/tools/chat-citations.tsx +152 -0
  661. package/.next/standalone/apps/web/components/chat/tools/chat-data-table.tsx +377 -0
  662. package/.next/standalone/apps/web/components/chat/tools/chat-file-export.tsx +49 -0
  663. package/.next/standalone/apps/web/components/chat/tools/chat-grid.tsx +99 -0
  664. package/.next/standalone/apps/web/components/chat/tools/chat-media-preview.tsx +465 -0
  665. package/.next/standalone/apps/web/components/chat/tools/chat-metrics.tsx +76 -0
  666. package/.next/standalone/apps/web/components/chat/tools/chat-sandbox-result.tsx +130 -0
  667. package/.next/standalone/apps/web/components/chat/tools/chat-signature-request.tsx +809 -0
  668. package/.next/standalone/apps/web/components/chat/tools/chat-tabs.tsx +59 -0
  669. package/.next/standalone/apps/web/components/chat/tools/corpus-data-result.tsx +194 -0
  670. package/.next/standalone/apps/web/components/chat/tools/knowledge-base-result.tsx +345 -0
  671. package/.next/standalone/apps/web/components/chat/tools/visual-placement-modal.tsx +314 -0
  672. package/.next/standalone/apps/web/components/chat/tools/visualization-tabs.tsx +37 -0
  673. package/.next/standalone/apps/web/components/configure/custom-model-modal.tsx +214 -0
  674. package/.next/standalone/apps/web/components/configure/store-fields.tsx +129 -0
  675. package/.next/standalone/apps/web/components/data/corpus-panel.tsx +1124 -0
  676. package/.next/standalone/apps/web/components/data/data-entry-mode-switch.tsx +53 -0
  677. package/.next/standalone/apps/web/components/data/data-primary-action.ts +6 -0
  678. package/.next/standalone/apps/web/components/data/groups-panel.tsx +526 -0
  679. package/.next/standalone/apps/web/components/data/integration-resources-panel.tsx +281 -0
  680. package/.next/standalone/apps/web/components/data/integrations-panel.tsx +397 -0
  681. package/.next/standalone/apps/web/components/data/jobs-panel.tsx +487 -0
  682. package/.next/standalone/apps/web/components/data/jobs-tracking-button.tsx +221 -0
  683. package/.next/standalone/apps/web/components/data/live-media-progress.tsx +79 -0
  684. package/.next/standalone/apps/web/components/data/media-indexing-jobs-panel.tsx +190 -0
  685. package/.next/standalone/apps/web/components/data/media-panel.tsx +2883 -0
  686. package/.next/standalone/apps/web/components/data/notion-panel.tsx +405 -0
  687. package/.next/standalone/apps/web/components/data/paste-panel.tsx +100 -0
  688. package/.next/standalone/apps/web/components/data/scrape-panel.tsx +1275 -0
  689. package/.next/standalone/apps/web/components/data/tabular-preview.tsx +205 -0
  690. package/.next/standalone/apps/web/components/data/tool-indexing-dialog.tsx +210 -0
  691. package/.next/standalone/apps/web/components/data/upload-panel.tsx +1306 -0
  692. package/.next/standalone/apps/web/components/data/web-crawler-status.tsx +131 -0
  693. package/.next/standalone/apps/web/components/index/index-action-dialog.tsx +545 -0
  694. package/.next/standalone/apps/web/components/index/index-workspace.tsx +406 -0
  695. package/.next/standalone/apps/web/components/onboarding/welcome-screen.tsx +596 -0
  696. package/.next/standalone/apps/web/components/projects/delete-project-dialog.tsx +63 -0
  697. package/.next/standalone/apps/web/components/projects/project-form-dialog.tsx +97 -0
  698. package/.next/standalone/apps/web/components/projects/project-switcher.tsx +136 -0
  699. package/.next/standalone/apps/web/components/settings/general/agent-customization-section.tsx +619 -0
  700. package/.next/standalone/apps/web/components/settings/general/cache-management-card.tsx +176 -0
  701. package/.next/standalone/apps/web/components/settings/general/general-section.tsx +333 -0
  702. package/.next/standalone/apps/web/components/settings/general/mcp-connections-section.tsx +893 -0
  703. package/.next/standalone/apps/web/components/settings/general/model-combobox.tsx +235 -0
  704. package/.next/standalone/apps/web/components/settings/general/models-section.tsx +918 -0
  705. package/.next/standalone/apps/web/components/settings/general/sandbox-section.tsx +382 -0
  706. package/.next/standalone/apps/web/components/settings/general/search-scraping-section.tsx +749 -0
  707. package/.next/standalone/apps/web/components/settings/general/storage-indexing-section.tsx +389 -0
  708. package/.next/standalone/apps/web/components/settings/hub/marketplace-section.tsx +574 -0
  709. package/.next/standalone/apps/web/components/settings/hub/marketplace-tools-settings.tsx +1247 -0
  710. package/.next/standalone/apps/web/components/settings/runtime/connections-tab.tsx +1045 -0
  711. package/.next/standalone/apps/web/components/settings/runtime/deploy/index.ts +4 -0
  712. package/.next/standalone/apps/web/components/settings/runtime/deploy/project-deploy-button.tsx +245 -0
  713. package/.next/standalone/apps/web/components/settings/runtime/deploy/project-deploy-view.tsx +1592 -0
  714. package/.next/standalone/apps/web/components/settings/runtime/deploy/use-vps-deploy.ts +114 -0
  715. package/.next/standalone/apps/web/components/settings/runtime/deploy/vps-terminal-dialog.tsx +391 -0
  716. package/.next/standalone/apps/web/components/settings/runtime/playground-tab.tsx +359 -0
  717. package/.next/standalone/apps/web/components/settings/runtime/runtime-section.tsx +1001 -0
  718. package/.next/standalone/apps/web/components/settings/runtime/widget-snippets.ts +15 -0
  719. package/.next/standalone/apps/web/components/settings/runtime/widget-tab.tsx +426 -0
  720. package/.next/standalone/apps/web/components/settings/settings-layout.tsx +123 -0
  721. package/.next/standalone/apps/web/components/sidebar.tsx +208 -0
  722. package/.next/standalone/apps/web/components/topnav.tsx +92 -0
  723. package/.next/standalone/apps/web/components/ui/alert-dialog.tsx +187 -0
  724. package/.next/standalone/apps/web/components/ui/alert.tsx +76 -0
  725. package/.next/standalone/apps/web/components/ui/badge.tsx +52 -0
  726. package/.next/standalone/apps/web/components/ui/button.tsx +58 -0
  727. package/.next/standalone/apps/web/components/ui/card.tsx +92 -0
  728. package/.next/standalone/apps/web/components/ui/checkbox.tsx +28 -0
  729. package/.next/standalone/apps/web/components/ui/collapsible.tsx +21 -0
  730. package/.next/standalone/apps/web/components/ui/command.tsx +181 -0
  731. package/.next/standalone/apps/web/components/ui/dialog.tsx +138 -0
  732. package/.next/standalone/apps/web/components/ui/dropdown-menu.tsx +267 -0
  733. package/.next/standalone/apps/web/components/ui/input-group.tsx +146 -0
  734. package/.next/standalone/apps/web/components/ui/input.tsx +20 -0
  735. package/.next/standalone/apps/web/components/ui/label.tsx +20 -0
  736. package/.next/standalone/apps/web/components/ui/line-tabs.tsx +59 -0
  737. package/.next/standalone/apps/web/components/ui/popover.tsx +77 -0
  738. package/.next/standalone/apps/web/components/ui/progress.tsx +83 -0
  739. package/.next/standalone/apps/web/components/ui/provider-icon.tsx +165 -0
  740. package/.next/standalone/apps/web/components/ui/scroll-area.tsx +55 -0
  741. package/.next/standalone/apps/web/components/ui/select.tsx +231 -0
  742. package/.next/standalone/apps/web/components/ui/separator.tsx +25 -0
  743. package/.next/standalone/apps/web/components/ui/sheet.tsx +125 -0
  744. package/.next/standalone/apps/web/components/ui/skeleton.tsx +14 -0
  745. package/.next/standalone/apps/web/components/ui/slider.tsx +52 -0
  746. package/.next/standalone/apps/web/components/ui/switch.tsx +32 -0
  747. package/.next/standalone/apps/web/components/ui/table.tsx +116 -0
  748. package/.next/standalone/apps/web/components/ui/tabs.tsx +77 -0
  749. package/.next/standalone/apps/web/components/ui/textarea.tsx +18 -0
  750. package/.next/standalone/apps/web/components/ui/tooltip.tsx +54 -0
  751. package/.next/standalone/apps/web/components.json +21 -0
  752. package/.next/standalone/apps/web/hooks/use-channel-oauth.ts +42 -0
  753. package/.next/standalone/apps/web/hooks/use-copy-to-clipboard.ts +25 -0
  754. package/.next/standalone/apps/web/hooks/use-integration-auth.ts +37 -0
  755. package/.next/standalone/apps/web/hooks/use-live-media-progress.ts +71 -0
  756. package/.next/standalone/apps/web/hooks/use-notion-auth.ts +63 -0
  757. package/.next/standalone/apps/web/lib/browser-cache.test.ts +32 -0
  758. package/.next/standalone/apps/web/lib/browser-cache.ts +17 -0
  759. package/.next/standalone/apps/web/lib/cache-size.test.ts +15 -0
  760. package/.next/standalone/apps/web/lib/cache-size.ts +11 -0
  761. package/.next/standalone/apps/web/lib/chat/assistant-source-scope.test.ts +43 -0
  762. package/.next/standalone/apps/web/lib/chat/chart-config.test.ts +144 -0
  763. package/.next/standalone/apps/web/lib/chat/chat-media-preview.test.ts +31 -0
  764. package/.next/standalone/apps/web/lib/chat/conversation-memory.test.ts +390 -0
  765. package/.next/standalone/apps/web/lib/chat/data-export.test.ts +224 -0
  766. package/.next/standalone/apps/web/lib/chat/live-tool-progress.test.ts +76 -0
  767. package/.next/standalone/apps/web/lib/chat/live-tool-progress.ts +69 -0
  768. package/.next/standalone/apps/web/lib/chat/media-retrieval-routing.test.ts +42 -0
  769. package/.next/standalone/apps/web/lib/chat/media-source-routing.test.ts +118 -0
  770. package/.next/standalone/apps/web/lib/chat/message-feedback.test.ts +102 -0
  771. package/.next/standalone/apps/web/lib/chat/message-input.test.ts +30 -0
  772. package/.next/standalone/apps/web/lib/chat/retrieval-ranking.test.ts +62 -0
  773. package/.next/standalone/apps/web/lib/chat/retrieval-routing.test.ts +80 -0
  774. package/.next/standalone/apps/web/lib/chat/tabular-dataset-routing.test.ts +83 -0
  775. package/.next/standalone/apps/web/lib/chat/tabular-query-plan.test.ts +148 -0
  776. package/.next/standalone/apps/web/lib/chat/tabular-routing.test.ts +109 -0
  777. package/.next/standalone/apps/web/lib/chat/tabular-sandbox-files.test.ts +100 -0
  778. package/.next/standalone/apps/web/lib/chat/tabular-visualization.test.ts +89 -0
  779. package/.next/standalone/apps/web/lib/chat/tool-call-repair.test.ts +64 -0
  780. package/.next/standalone/apps/web/lib/chat/tool-context.test.ts +978 -0
  781. package/.next/standalone/apps/web/lib/chat/tool-output.test.ts +23 -0
  782. package/.next/standalone/apps/web/lib/chat/tool-output.ts +14 -0
  783. package/.next/standalone/apps/web/lib/chat/tool-registry.test.ts +19 -0
  784. package/.next/standalone/apps/web/lib/chat/video-rag-routing.test.ts +158 -0
  785. package/.next/standalone/apps/web/lib/chat/visual-routing.test.ts +140 -0
  786. package/.next/standalone/apps/web/lib/chat-supporting-clip.test.ts +16 -0
  787. package/.next/standalone/apps/web/lib/chat-supporting-clip.ts +16 -0
  788. package/.next/standalone/apps/web/lib/constants/stores.ts +12 -0
  789. package/.next/standalone/apps/web/lib/constants/tools.test.ts +26 -0
  790. package/.next/standalone/apps/web/lib/constants/tools.ts +178 -0
  791. package/.next/standalone/apps/web/lib/error-formatter.ts +30 -0
  792. package/.next/standalone/apps/web/lib/jobs-client.ts +25 -0
  793. package/.next/standalone/apps/web/lib/marketplace/tool-runtime-config.test.ts +217 -0
  794. package/.next/standalone/apps/web/lib/media/knowledge.test.ts +36 -0
  795. package/.next/standalone/apps/web/lib/media/pdf-inspection.test.ts +63 -0
  796. package/.next/standalone/apps/web/lib/media/pdf.ts +57 -0
  797. package/.next/standalone/apps/web/lib/media/progress.test.ts +208 -0
  798. package/.next/standalone/apps/web/lib/media/progress.ts +209 -0
  799. package/.next/standalone/apps/web/lib/media/source-identity.test.ts +33 -0
  800. package/.next/standalone/apps/web/lib/media/source-selection.test.ts +36 -0
  801. package/.next/standalone/apps/web/lib/media/source-selection.ts +47 -0
  802. package/.next/standalone/apps/web/lib/media/source-utils.test.ts +231 -0
  803. package/.next/standalone/apps/web/lib/media/tool-indexing-estimate.test.ts +28 -0
  804. package/.next/standalone/apps/web/lib/media/tool-indexing-estimate.ts +39 -0
  805. package/.next/standalone/apps/web/lib/media/video/quick-look.test.ts +81 -0
  806. package/.next/standalone/apps/web/lib/media/video-intelligence-adapter.test.ts +739 -0
  807. package/.next/standalone/apps/web/lib/media/video-intelligence-capacity.test.ts +104 -0
  808. package/.next/standalone/apps/web/lib/media/video-runtime-scope.test.ts +43 -0
  809. package/.next/standalone/apps/web/lib/release-metadata.test.ts +118 -0
  810. package/.next/standalone/apps/web/lib/remote-files.test.ts +53 -0
  811. package/.next/standalone/apps/web/lib/system-cache.test.ts +173 -0
  812. package/.next/standalone/apps/web/lib/utils.ts +6 -0
  813. package/.next/standalone/apps/web/next-env.d.ts +7 -0
  814. package/.next/standalone/apps/web/next.config.mjs +82 -0
  815. package/.next/standalone/apps/web/package.json +96 -0
  816. package/.next/standalone/apps/web/parse_log.mjs +67 -0
  817. package/.next/standalone/apps/web/postcss.config.mjs +8 -0
  818. package/.next/standalone/apps/web/public/docker.png +0 -0
  819. package/.next/standalone/apps/web/public/favicon.ico +0 -0
  820. package/.next/standalone/apps/web/public/github.svg +3 -0
  821. package/.next/standalone/apps/web/public/hetzner.svg +1 -0
  822. package/.next/standalone/apps/web/public/icons/Confluence.png +0 -0
  823. package/.next/standalone/apps/web/public/icons/Instagram.png +0 -0
  824. package/.next/standalone/apps/web/public/icons/Northflank.png +0 -0
  825. package/.next/standalone/apps/web/public/icons/Salesforce.png +0 -0
  826. package/.next/standalone/apps/web/public/icons/agentskills.png +0 -0
  827. package/.next/standalone/apps/web/public/icons/airtable.png +0 -0
  828. package/.next/standalone/apps/web/public/icons/asana.png +0 -0
  829. package/.next/standalone/apps/web/public/icons/ashby.png +0 -0
  830. package/.next/standalone/apps/web/public/icons/audio.png +0 -0
  831. package/.next/standalone/apps/web/public/icons/aws-kendra.png +0 -0
  832. package/.next/standalone/apps/web/public/icons/aws.svg +38 -0
  833. package/.next/standalone/apps/web/public/icons/azure-ai-search.png +0 -0
  834. package/.next/standalone/apps/web/public/icons/azure.svg +1 -0
  835. package/.next/standalone/apps/web/public/icons/bigquery.png +0 -0
  836. package/.next/standalone/apps/web/public/icons/bing.png +0 -0
  837. package/.next/standalone/apps/web/public/icons/bitbucket.png +0 -0
  838. package/.next/standalone/apps/web/public/icons/brave.png +0 -0
  839. package/.next/standalone/apps/web/public/icons/browserbase.png +0 -0
  840. package/.next/standalone/apps/web/public/icons/calendly.png +0 -0
  841. package/.next/standalone/apps/web/public/icons/chroma.png +0 -0
  842. package/.next/standalone/apps/web/public/icons/cloudflare.png +0 -0
  843. package/.next/standalone/apps/web/public/icons/cohere.svg +30 -0
  844. package/.next/standalone/apps/web/public/icons/databricks.png +0 -0
  845. package/.next/standalone/apps/web/public/icons/daytonaio.png +0 -0
  846. package/.next/standalone/apps/web/public/icons/daytonaio2.png +0 -0
  847. package/.next/standalone/apps/web/public/icons/deepgram.png +0 -0
  848. package/.next/standalone/apps/web/public/icons/deepl.png +0 -0
  849. package/.next/standalone/apps/web/public/icons/digital-ocean.webp +0 -0
  850. package/.next/standalone/apps/web/public/icons/discord.png +0 -0
  851. package/.next/standalone/apps/web/public/icons/e2b-2.png +0 -0
  852. package/.next/standalone/apps/web/public/icons/e2b.png +0 -0
  853. package/.next/standalone/apps/web/public/icons/elevenlabs.png +0 -0
  854. package/.next/standalone/apps/web/public/icons/email.png +0 -0
  855. package/.next/standalone/apps/web/public/icons/exa.png +0 -0
  856. package/.next/standalone/apps/web/public/icons/excel.png +0 -0
  857. package/.next/standalone/apps/web/public/icons/fal.png +0 -0
  858. package/.next/standalone/apps/web/public/icons/firecrawl.png +0 -0
  859. package/.next/standalone/apps/web/public/icons/firecrawl2.png +0 -0
  860. package/.next/standalone/apps/web/public/icons/flyio.jpeg +0 -0
  861. package/.next/standalone/apps/web/public/icons/gcp.svg +1 -0
  862. package/.next/standalone/apps/web/public/icons/gemini.svg +1 -0
  863. package/.next/standalone/apps/web/public/icons/gmail.png +0 -0
  864. package/.next/standalone/apps/web/public/icons/google-analytics.png +0 -0
  865. package/.next/standalone/apps/web/public/icons/google-calender.png +0 -0
  866. package/.next/standalone/apps/web/public/icons/google-docs.png +0 -0
  867. package/.next/standalone/apps/web/public/icons/google-drive.png +0 -0
  868. package/.next/standalone/apps/web/public/icons/google-maps.png +0 -0
  869. package/.next/standalone/apps/web/public/icons/google-meet.png +0 -0
  870. package/.next/standalone/apps/web/public/icons/google-sheets.png +0 -0
  871. package/.next/standalone/apps/web/public/icons/google-slides.png +0 -0
  872. package/.next/standalone/apps/web/public/icons/google-tasks.png +0 -0
  873. package/.next/standalone/apps/web/public/icons/google.png +0 -0
  874. package/.next/standalone/apps/web/public/icons/grok.png +0 -0
  875. package/.next/standalone/apps/web/public/icons/hubspot.png +0 -0
  876. package/.next/standalone/apps/web/public/icons/image.png +0 -0
  877. package/.next/standalone/apps/web/public/icons/jina.svg +1 -0
  878. package/.next/standalone/apps/web/public/icons/jira.png +0 -0
  879. package/.next/standalone/apps/web/public/icons/lancedb2.png +0 -0
  880. package/.next/standalone/apps/web/public/icons/linear.png +0 -0
  881. package/.next/standalone/apps/web/public/icons/linux.png +0 -0
  882. package/.next/standalone/apps/web/public/icons/looker.png +0 -0
  883. package/.next/standalone/apps/web/public/icons/luma.png +0 -0
  884. package/.next/standalone/apps/web/public/icons/mac.png +0 -0
  885. package/.next/standalone/apps/web/public/icons/markdown.png +0 -0
  886. package/.next/standalone/apps/web/public/icons/mcp.png +0 -0
  887. package/.next/standalone/apps/web/public/icons/mcp.svg +1 -0
  888. package/.next/standalone/apps/web/public/icons/messenger.svg +1 -0
  889. package/.next/standalone/apps/web/public/icons/microsoft-intra.png +0 -0
  890. package/.next/standalone/apps/web/public/icons/microsoft-onenote.png +0 -0
  891. package/.next/standalone/apps/web/public/icons/microsoft-planner.png +0 -0
  892. package/.next/standalone/apps/web/public/icons/microsoft-teams.png +0 -0
  893. package/.next/standalone/apps/web/public/icons/miro.png +0 -0
  894. package/.next/standalone/apps/web/public/icons/mistral.svg +469 -0
  895. package/.next/standalone/apps/web/public/icons/modal.png +0 -0
  896. package/.next/standalone/apps/web/public/icons/ngrok.png +0 -0
  897. package/.next/standalone/apps/web/public/icons/nomic.png +0 -0
  898. package/.next/standalone/apps/web/public/icons/onedrive.png +0 -0
  899. package/.next/standalone/apps/web/public/icons/openai.svg +1 -0
  900. package/.next/standalone/apps/web/public/icons/outlook-calendar.png +0 -0
  901. package/.next/standalone/apps/web/public/icons/outlook-email.png +0 -0
  902. package/.next/standalone/apps/web/public/icons/outlook.png +0 -0
  903. package/.next/standalone/apps/web/public/icons/pdf.png +0 -0
  904. package/.next/standalone/apps/web/public/icons/personio.png +0 -0
  905. package/.next/standalone/apps/web/public/icons/pgvector2.png +0 -0
  906. package/.next/standalone/apps/web/public/icons/phone.png +0 -0
  907. package/.next/standalone/apps/web/public/icons/pinecone.png +0 -0
  908. package/.next/standalone/apps/web/public/icons/pipedrive.png +0 -0
  909. package/.next/standalone/apps/web/public/icons/power-pi.png +0 -0
  910. package/.next/standalone/apps/web/public/icons/pylon.png +0 -0
  911. package/.next/standalone/apps/web/public/icons/python.png +0 -0
  912. package/.next/standalone/apps/web/public/icons/qdrant.svg +35 -0
  913. package/.next/standalone/apps/web/public/icons/revai.png +0 -0
  914. package/.next/standalone/apps/web/public/icons/revai.svg +1 -0
  915. package/.next/standalone/apps/web/public/icons/sap.png +0 -0
  916. package/.next/standalone/apps/web/public/icons/serpapi.svg +34 -0
  917. package/.next/standalone/apps/web/public/icons/serper.png +0 -0
  918. package/.next/standalone/apps/web/public/icons/servicenow.png +0 -0
  919. package/.next/standalone/apps/web/public/icons/sharepoint.png +0 -0
  920. package/.next/standalone/apps/web/public/icons/slack.png +0 -0
  921. package/.next/standalone/apps/web/public/icons/snowflake.png +0 -0
  922. package/.next/standalone/apps/web/public/icons/statistia.png +0 -0
  923. package/.next/standalone/apps/web/public/icons/stripe.png +0 -0
  924. package/.next/standalone/apps/web/public/icons/supabase.png +0 -0
  925. package/.next/standalone/apps/web/public/icons/tableau.png +0 -0
  926. package/.next/standalone/apps/web/public/icons/tavily.png +0 -0
  927. package/.next/standalone/apps/web/public/icons/telegram.png +0 -0
  928. package/.next/standalone/apps/web/public/icons/typescript.png +0 -0
  929. package/.next/standalone/apps/web/public/icons/vercel copy.svg +1 -0
  930. package/.next/standalone/apps/web/public/icons/vercel.svg +1 -0
  931. package/.next/standalone/apps/web/public/icons/vertex-ai.png +0 -0
  932. package/.next/standalone/apps/web/public/icons/video.png +0 -0
  933. package/.next/standalone/apps/web/public/icons/voyage-light.png +0 -0
  934. package/.next/standalone/apps/web/public/icons/weaviate.webp +0 -0
  935. package/.next/standalone/apps/web/public/icons/webcontainers.svg +11 -0
  936. package/.next/standalone/apps/web/public/icons/webhook.png +0 -0
  937. package/.next/standalone/apps/web/public/icons/whatsapp copy.png +0 -0
  938. package/.next/standalone/apps/web/public/icons/whatsapp.png +0 -0
  939. package/.next/standalone/apps/web/public/icons/windows.png +0 -0
  940. package/.next/standalone/apps/web/public/icons/word.png +0 -0
  941. package/.next/standalone/apps/web/public/icons/zendesk.png +0 -0
  942. package/.next/standalone/apps/web/public/icons/zoom.png +0 -0
  943. package/.next/standalone/apps/web/public/logo-light.png +0 -0
  944. package/.next/standalone/apps/web/public/logo-light2.png +0 -0
  945. package/.next/standalone/apps/web/public/logo.png +0 -0
  946. package/.next/standalone/apps/web/public/logo9.png +0 -0
  947. package/.next/standalone/apps/web/public/notion-white.png +0 -0
  948. package/.next/standalone/apps/web/public/notion.png +0 -0
  949. package/.next/standalone/apps/web/public/vercel.svg +1 -0
  950. package/.next/standalone/apps/web/scripts/prepare-standalone.mjs +153 -0
  951. package/.next/standalone/apps/web/server.js +44 -0
  952. package/.next/standalone/apps/web/store/chat-store.ts +19 -0
  953. package/.next/standalone/apps/web/store/connections-store.ts +276 -0
  954. package/.next/standalone/apps/web/store/deploy-store.ts +90 -0
  955. package/.next/standalone/apps/web/store/scrape-store.ts +76 -0
  956. package/.next/standalone/apps/web/tsconfig.json +41 -0
  957. package/.next/standalone/apps/web/verify-models.mjs +133 -0
  958. package/.next/standalone/apps/web/vitest.config.ts +15 -0
  959. package/package.json +1 -1
@@ -0,0 +1,6 @@
1
+ "use strict";exports.id=3545,exports.ids=[3545],exports.modules={3545:(a,b,c)=>{c.d(b,{DataWorkspace:()=>b$});var d=c(32108),e=c(21621),f=c(20866),g=c(93631),h=c.n(g),i=c(55218),j=c(7835),k=c(50665),l=c(3989),m=c(26371),n=c(12893),o=c(77956),p=c(90308),q=c(16177),r=c(1563),s=c(93921),t=c(53429),u=c(57505),v=c(60403);function w(a){let b=a instanceof Error?a.message:String(a),c=b.toLowerCase();return c.includes("authentication failed")||c.includes("invalid api key")||c.includes("invalid api_key")||c.includes("invalid token")||c.includes("unauthorized")||c.includes("status code 401")?"Authentication failed. Check the API key for the selected provider.":b.includes("Is the docker daemon running?")?"Docker is not running. Please make sure the Docker daemon is started.":b.includes("fetch failed")||b.includes("Failed to fetch")?"Network error. Please check your connection and try again.":b}var x=c(98785),y=c(58869),z=c(94171),A=c(93965),B=c(45911),C=c(27254),D=c(63774),E=c(10501),F=c(52592),G=c(53343);let H=(0,c(83615).v)()(a=>({query:"",searchState:null,selected:{},scope:"domain",pageLimit:25,searchLimit:15,showAdvanced:!1,serperTotalForQuery:null,setQuery:b=>a({query:b}),setSearchState:b=>a(a=>({searchState:"function"==typeof b?b(a.searchState):b})),setSelected:b=>a(a=>({selected:"function"==typeof b?b(a.selected):b})),setScope:b=>a({scope:b}),setPageLimit:b=>a({pageLimit:b}),setSearchLimit:b=>a({searchLimit:b}),setShowAdvanced:b=>a({showAdvanced:b}),setSerperTotalForQuery:b=>a(a=>({serperTotalForQuery:"function"==typeof b?b(a.serperTotalForQuery):b})),flush:()=>a({query:"",searchState:null,selected:{},serperTotalForQuery:null})}));var I=c(3962),J=c(7368),K=c(80586),L=c(8665),M=c(94082),N=c(30130),O=c(91017);function P({value:a,onValueChange:b,options:c,label:e}){return(0,d.jsx)("div",{role:"group","aria-label":e,className:"inline-flex h-10 w-fit items-center gap-1 rounded-lg border border-border/90 bg-muted/60 p-1 text-muted-foreground",children:c.map(c=>{let e=c.icon,f=a===c.value;return(0,d.jsxs)("button",{type:"button","aria-pressed":f,"data-state":f?"active":"inactive",onClick:()=>b(c.value),className:(0,l.cn)("inline-flex h-8 items-center justify-center gap-1.5 whitespace-nowrap rounded-md px-3 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",f?"bg-background text-foreground ring-1 ring-border":"text-muted-foreground hover:bg-background/60 hover:text-foreground"),children:[(0,d.jsx)(e,{className:"size-3.5",strokeWidth:f?2:1.75,"aria-hidden":"true"}),c.label]},c.value)})})}let Q=a=>fetch(a).then(a=>a.json());function R({disabled:a,onStarted:b,onActionChange:c,groupId:g}){(0,e.useRef)(g??"default").current=g??"default";let h=(0,f.useRouter)(),{query:j,setQuery:m,searchState:n,setSearchState:p,selected:q,setSelected:r,scope:u,setScope:S,pageLimit:T,setPageLimit:U,searchLimit:V,setSearchLimit:W,showAdvanced:X,setShowAdvanced:Y,serperTotalForQuery:Z,setSerperTotalForQuery:$,flush:_}=H(),[aa,ab]=(0,e.useState)(!1),[ac,ad]=(0,e.useState)(!1),[ae,af]=(0,e.useState)(!1),[ag,ah]=(0,e.useState)(0),[ai,aj]=(0,e.useState)(""),[ak,al]=(0,e.useState)([]),[am,an]=(0,e.useState)(!1),[ao,ap]=(0,e.useState)(!1),[aq,ar]=(0,e.useState)(null),[as,at]=(0,e.useState)(null),[au,av]=(0,e.useState)(!1),aw=(0,e.useRef)(null),{data:ax}=(0,i.u)("/api/config",Q),ay=ax?.config?.webSearchProvider||"tavily",az=ax?.config?.webCrawlerProvider||"local",[aA,aB]=(0,e.useState)([]),[aC,aD]=(0,e.useState)(!1),[aE,aF]=(0,e.useState)(1),aG=(0,e.useRef)(null),aH=(0,e.useRef)(null);async function aI(){let a=await fetch("/api/firecrawl/local",{cache:"no-store"}),b=await a.json();if(!a.ok)throw Error(b.error||"Could not read crawler status.");return at(b.state),av(!!b.starting),b}function aJ(){return aw.current||(aw.current=(async()=>{for(let a=0;a<45;a++){await new Promise(a=>setTimeout(a,2e3));let a=await aI();if(a.state.running)return!0;if(!a.starting)return!1}return av(!1),at(a=>({...a??{running:!1},lastError:"The website crawler is still starting. Try again in a moment."})),!1})().finally(()=>{aw.current=null})),aw.current}async function aK(){if("cloud"===az)return null;try{let a=await fetch("/api/firecrawl/local",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"start"})}),b=await a.json();if(!a.ok)throw Error(b.error||"Could not prepare the crawler.");return at(b.state),av(!!b.starting),b.starting&&aJ(),b}catch(a){return av(!1),at(b=>({...b??{running:!1},lastError:w(a)})),null}}async function aL(){if("cloud"===az||as?.running)return!0;let a=await aK();if(!a)return!1;if(a.state.running)return!0;let b=!!a.starting&&await Promise.race([aJ(),new Promise(a=>setTimeout(()=>a(!1),8e3))]);return!b&&!!a.starting||(b||k.oR.error(a.state.lastError||"The website crawler is not ready yet."),b)}let aM=(0,e.useMemo)(()=>Object.keys(q).filter(a=>q[a]),[q]);async function aN(a,b){try{let c=await fetch("/api/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:a,limit:V})}),d=await c.json();if(!c.ok)throw Error(d.error??"Search failed");let e=d.results??[];p(c=>{let d=c?c.results:[],f=new Set(d.map(a=>a.url)),g=e.filter(a=>!f.has(a.url));return{results:[...d,...g],totalResults:b?(c?.totalResults??0)+g.length:g.length,totalResultsIsEstimate:!1,currentPage:1,totalPages:1,hasMore:!1,query:b?"Multiple queries":a,searchProvider:"firecrawl"}});let f=Object.fromEntries(e.map(a=>[a.url,!0]));r(a=>({...a,...f})),0!==e.length||b||k.oR.message("No results. Try different keywords."),ay&&!b&&aP(a,ay)}catch(b){let a=w(b);/crawler|firecrawl|not running|api key/i.test(a)?k.oR.error("Web crawler is not available. Choose a crawler provider in Settings.",{action:{label:"Open settings",onClick:()=>h.push("/settings?section=general#web-crawler")}}):k.oR.error(a)}}async function aO(a,b,c,d,e=!1){e&&ad(!0);let f="serper"===b||"google"===b?"/api/search/google":"brave"===b?"/api/search/brave":"bing"===b?"/api/search/bing":"tavily"===b?"/api/search/tavily":"exa"===b?"/api/search/exa":null;if(!f){k.oR.error("Invalid search provider"),e&&ad(!1);return}try{let e=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:a,page:c})}),g=await e.json();if(!e.ok)throw Error(g.error??"Search failed");let h=(g.items??[]).map(a=>({url:a.url,title:a.title||a.url,description:a.description}));p(d=>{let e=d?d.results:[],f=new Set(e.map(a=>a.url)),i=h.filter(a=>!f.has(a.url));return{results:[...e,...i],totalResults:(d?.totalResults??0)+(g.totalResults??0),totalResultsIsEstimate:g.totalResultsIsEstimate??!0,currentPage:g.currentPage??c,totalPages:g.totalPages??1,hasMore:g.hasMore??!1,query:g.query??a,searchProvider:b}});let i=Object.fromEntries(h.map(a=>[a.url,!0]));r(a=>({...a,...i})),d||$({query:a,total:g.totalResults??0,totalPages:g.totalPages??1}),1!==c||0!==h.length||d||k.oR.message("No results. Try different keywords.")}catch(a){if(1===c)throw a;k.oR.error(w(a))}finally{e&&ad(!1)}}async function aP(a,b){let c="serper"===b||"google"===b?"/api/search/google":"brave"===b?"/api/search/brave":"bing"===b?"/api/search/bing":"tavily"===b?"/api/search/tavily":"exa"===b?"/api/search/exa":null;if(c)try{let b=await fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:a,page:1})}),d=await b.json();b.ok&&$({query:a,total:d.totalResults??0,totalPages:d.totalPages??1})}catch{}}async function aQ(){let a;if(aD(!1),!j.trim())return void k.oR.error("Enter one or more keywords to search.");$(null),(a=j.trim())&&aB(b=>{let c=[a,...b.filter(b=>b!==a)].slice(0,10);try{localStorage.setItem(v.y8,JSON.stringify(c))}catch{}return c});let b=j.split(",").map(a=>a.trim()).filter(Boolean);if(0!==b.length){ab(!0),aF(1);try{if("local"!==ay&&ay)try{await Promise.all(b.map(a=>aO(a,ay,1,b.length>1,!1)))}catch(a){if(k.oR.info("Using local crawler…"),!await aL())return;await Promise.all(b.map(a=>aN(a,b.length>1)))}else{if(!await aL())return;await Promise.all(b.map(a=>aN(a,b.length>1)))}}finally{ab(!1)}}}async function aR(){n?.hasMore&&!ac&&"firecrawl"!==n.searchProvider&&await aO(n.query,n.searchProvider,n.currentPage+1,!1,!0)}async function aS(){if(!n||"firecrawl"===n.searchProvider)return;af(!0),ah(n.currentPage);let a=n.currentPage+1,b=n.totalPages,c=n.searchProvider,d="serper"===c||"google"===c?"/api/search/google":"brave"===c?"/api/search/brave":"bing"===c?"/api/search/bing":"tavily"===c?"/api/search/tavily":"exa"===c?"/api/search/exa":null;try{for(;a<=b&&(ah(a),d);){let b=await fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:j.trim(),page:a})}),c=await b.json();if(!b.ok)throw Error(c.error??"Search failed");let e=(c.items??[]).map(a=>({url:a.url,title:a.title||a.url,description:a.description}));p(b=>{if(!b)return b;let d=new Set(b.results.map(a=>a.url)),f=e.filter(a=>!d.has(a.url));return{...b,results:[...b.results,...f],totalResultsIsEstimate:c.totalResultsIsEstimate??b.totalResultsIsEstimate,currentPage:c.currentPage??a,totalPages:c.totalPages??b.totalPages,hasMore:c.hasMore??!1}});let f=Object.fromEntries(e.map(a=>[a.url,!0]));if(r(a=>({...a,...f})),!c.hasMore)break;a++,await new Promise(a=>setTimeout(a,300))}k.oR.success("All available results gathered!")}catch(a){k.oR.error(w(a))}finally{af(!1),ah(0)}}function aT(){let a=ai.split(/[\s,]+/).map(a=>a.trim()).filter(a=>/^https?:\/\//i.test(a));a.length>0?(al(b=>Array.from(new Set([...b,...a]))),aj("")):k.oR.error("Enter at least one full URL starting with http(s)://")}let aU=n?.results??[],aV=n?.searchProvider!=="firecrawl"&&n?.hasMore&&!ae,aW=Math.max(1,Math.ceil(aU.length/5)),aX=aU.slice((aE-1)*5,5*aE),[aY,aZ]=(0,e.useState)(1),a$=Math.max(1,Math.ceil(ak.length/10)),a_=ak.slice((aY-1)*10,10*aY),a0=ao?"page":u,a1=(0,e.useMemo)(()=>{var a,b;let c;return a=aM.length,b=ao?1:T,{totalPages:c=a*("domain"===a0?b:1),estimatedSeconds:c*("domain"===a0?5:3)}},[aM.length,a0,ao,T]),[a2,a3]=(0,e.useState)("url");return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"space-y-3",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(P,{label:"Website source",value:a2,onValueChange:a=>a3(a),options:[{value:"url",label:"Direct URL",icon:o.A},{value:"search",label:"Search",icon:x.A}]}),(0,d.jsx)("div",{className:"relative flex-1 flex items-center gap-2",children:"search"===a2?(0,d.jsxs)("div",{className:"relative flex-1",children:[(0,d.jsx)(x.A,{className:"absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground z-10 pointer-events-none"}),(0,d.jsx)(J.p,{ref:aG,id:"kw",autoComplete:"off",placeholder:'Search for websites, e.g. "Who is the best player in the world?"',value:j,disabled:a,className:"pl-9 h-11 pr-22 bg-white",onChange:a=>{m(a.target.value),aD(!0)},onFocus:()=>{aD(!0),aK()},onKeyDown:a=>{"Enter"===a.key&&(aD(!1),aQ())}}),aC&&aA.length>0&&(0,d.jsx)("div",{ref:aH,className:"absolute z-10 top-full left-0 mt-1 w-full rounded-md border border-border bg-popover overflow-hidden",children:(0,d.jsx)("div",{className:"py-1",children:aA.map(a=>(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-1.5 text-sm hover:bg-muted cursor-pointer group",onClick:()=>{m(a),aD(!1)},children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 truncate mr-2",children:[(0,d.jsx)(y.A,{className:"size-3 text-muted-foreground shrink-0"}),(0,d.jsx)("span",{className:"truncate text-xs",children:a})]}),(0,d.jsx)("button",{className:"text-muted-foreground hover:text-foreground opacity-0 group-hover:opacity-100 transition-opacity p-0.5",onClick:b=>{b.stopPropagation(),aB(b=>{let c=b.filter(b=>b!==a);try{localStorage.setItem(v.y8,JSON.stringify(c))}catch{}return c})},children:(0,d.jsx)(z.A,{className:"size-3"})})]},a))})})]}):(0,d.jsx)(d.Fragment,{children:(0,d.jsx)("div",{className:"relative flex-1 flex flex-col gap-2",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("div",{className:"relative flex-1",children:[(0,d.jsx)(o.A,{className:"absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground z-10 pointer-events-none"}),(0,d.jsx)(J.p,{placeholder:"Paste URLs (comma or space separated)",value:ai,disabled:a,className:"pl-9 h-11 pr-16 bg-white",onChange:a=>aj(a.target.value),onFocus:()=>void aK(),onKeyDown:a=>"Enter"===a.key&&aT()})]}),(0,d.jsx)(I.$,{size:"icon",className:"h-11 w-11 shrink-0",variant:"outline",onClick:()=>aT(),disabled:a||!ai.trim(),children:(0,d.jsx)(t.A,{className:"size-4"})})]})})})})]})}),!1===aq&&!ay&&(0,d.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-border bg-muted/30 px-3 py-2.5 text-xs text-muted-foreground",children:[(0,d.jsx)(A.A,{className:"mt-0.5 size-3.5 shrink-0"}),(0,d.jsxs)("span",{children:[(0,d.jsx)("strong",{className:"text-foreground",children:"No search provider configured."})," Set up Use Larkup’s built-in crawler or configure a Web Search provider in Settings."]})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between mt-2",children:[(0,d.jsx)("div",{className:"flex items-center gap-2",children:(0,d.jsxs)("button",{type:"button",onClick:()=>Y(!X),className:"flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[X?(0,d.jsx)(B.A,{className:"size-3.5"}):(0,d.jsx)(C.A,{className:"size-3.5"}),X?"Hide advanced settings":"Advanced settings"]})}),aM.length>0&&(0,d.jsxs)("span",{className:"text-xs text-muted-foreground flex items-center gap-1.5 ml-auto",children:[(0,d.jsx)(y.A,{className:"size-3"}),ao?`${aM.length} URL${1!==aM.length?"s":""}`:`~${a1.totalPages.toLocaleString()} pages \xb7 ${function(a){if(a<60)return`~${Math.ceil(a)}s`;if(a<3600)return`~${Math.ceil(a/60)}min`;let b=Math.floor(a/3600),c=Math.ceil(a%3600/60);return`~${b}h ${c}min`}(a1.estimatedSeconds)}`]})]}),X&&(0,d.jsx)("div",{className:"flex flex-col gap-4 w-full rounded-lg border border-border bg-muted/30 p-3 mt-2 animate-in slide-in-from-top-2 fade-in duration-200",children:(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[(0,d.jsxs)("div",{className:"flex ",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(K.J,{className:"text-xs text-muted-foreground",children:"Scope"}),(0,d.jsxs)(N.l6,{defaultValue:u,value:u,onValueChange:a=>S(a),disabled:ao||a,children:[(0,d.jsx)(N.bq,{className:"w-52 bg-white h-8 text-xs",children:(0,d.jsx)(N.yv,{})}),(0,d.jsxs)(N.gC,{children:[(0,d.jsx)(N.eb,{value:"page",children:"Scrape pages only"}),(0,d.jsx)(N.eb,{value:"domain",children:"Crawl whole domain"})]})]})]}),"domain"===u&&!ao&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(K.J,{htmlFor:"limit",className:"text-xs text-muted-foreground ml-4",children:"Max pages"}),(0,d.jsx)(J.p,{id:"limit",type:"number",min:1,max:500,value:T,disabled:ao||a,onChange:a=>U(Number(a.target.value)||1),className:"w-20 h-8 tabular-nums text-xs ml-2"})]}),"search"===a2&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(K.J,{htmlFor:"search-limit",className:"text-xs text-muted-foreground ml-4",children:"Max results"}),(0,d.jsx)(J.p,{id:"search-limit",type:"number",min:1,max:100,value:V,disabled:a,onChange:a=>W(Number(a.target.value)||1),className:"w-20 h-8 tabular-nums text-xs ml-2"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 ml-4",children:[(0,d.jsx)(M.d,{id:"specific-urls-inline",checked:ao,onCheckedChange:ap,disabled:a,size:"sm"}),(0,d.jsxs)(K.J,{htmlFor:"specific-urls-inline",className:"text-xs font-medium cursor-pointer flex items-center gap-1",children:["Exact URLs only",(0,d.jsx)(O.Bc,{delay:0,children:(0,d.jsxs)(O.m_,{children:[(0,d.jsx)(O.k$,{type:"button",className:"text-muted-foreground hover:text-foreground",onClick:a=>a.preventDefault(),children:(0,d.jsx)(A.A,{className:"size-3"})}),(0,d.jsx)(O.ZI,{children:(0,d.jsx)("p",{className:"max-w-50 text-center",children:"Scrape exact URLs only — no deep crawl or pagination."})})]})})]})]})]}),(0,d.jsx)(O.Bc,{delay:0,children:(0,d.jsxs)(O.m_,{children:[(0,d.jsx)(O.k$,{type:"button",className:"text-muted-foreground hover:text-foreground p-1 rounded-md hover:bg-muted transition-colors",onClick:()=>h.push("/settings?section=search-web"),children:(0,d.jsx)(D.A,{className:"size-3.5"})}),(0,d.jsx)(O.ZI,{className:"max-w-xs text-xs",children:(0,d.jsx)("p",{children:"Customize your web search provider, or set up a custom proxy to help bypass scraping blocks."})})]})})]})}),ak.length>0&&"url"===a2&&(0,d.jsxs)("div",{className:"rounded-md border border-border bg-card overflow-hidden mt-2 animate-in slide-in-from-top-2 fade-in duration-200",children:[(0,d.jsxs)("table",{className:"w-full text-xs",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border bg-muted/50",children:[(0,d.jsx)("th",{className:"py-2 pl-3 text-left font-medium text-muted-foreground",children:"URL"}),(0,d.jsx)("th",{className:"py-2 pr-3 text-right font-medium text-muted-foreground w-12",children:"Action"})]})}),(0,d.jsx)("tbody",{children:a_.map(a=>(0,d.jsxs)("tr",{className:"border-b border-border/50 last:border-0 hover:bg-muted/30 transition-colors",children:[(0,d.jsx)("td",{className:"py-2 pl-3",children:(0,d.jsx)("span",{className:"truncate max-w-100 inline-block",children:a})}),(0,d.jsx)("td",{className:"py-2 pr-3 text-right",children:(0,d.jsx)("button",{type:"button",onClick:()=>al(b=>b.filter(b=>b!==a)),className:"text-muted-foreground hover:text-destructive transition-colors rounded p-1",title:"Remove URL",children:(0,d.jsx)(E.A,{className:"size-3.5"})})})]},a))})]}),a$>1&&(0,d.jsxs)("div",{className:"flex items-center justify-between border-t border-border px-3 py-2 text-xs text-muted-foreground bg-muted/20",children:[(0,d.jsxs)("span",{children:[(aY-1)*10+1,"–",Math.min(10*aY,ak.length)," of"," ",ak.length]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)("button",{disabled:1===aY,onClick:()=>aZ(a=>Math.max(1,a-1)),className:"rounded p-1 hover:bg-muted disabled:opacity-40 transition-colors cursor-pointer",children:(0,d.jsx)(F.A,{className:"size-3.5"})}),(0,d.jsxs)("span",{className:"tabular-nums font-medium mx-1",children:[aY," / ",a$]}),(0,d.jsx)("button",{disabled:aY>=a$,onClick:()=>aZ(a=>Math.min(a$,a+1)),className:"rounded p-1 hover:bg-muted disabled:opacity-40 transition-colors cursor-pointer",children:(0,d.jsx)(G.A,{className:"size-3.5"})})]})]})]}),aU.length>0&&(0,d.jsxs)("div",{className:"rounded-lg border border-border mb-9",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-3 py-2",children:[(0,d.jsxs)("span",{className:"text-xs font-medium text-muted-foreground",children:[aU.length," source",1===aU.length?"":"s"," \xb7 ",aM.length," ","selected"]}),(0,d.jsxs)("div",{className:"flex items-center gap-4",children:[(0,d.jsx)("button",{type:"button",className:"text-xs text-primary hover:underline",onClick:()=>{r(aM.length!==aU.length?Object.fromEntries(aU.map(a=>[a.url,!0])):{})},children:aM.length===aU.length?"Deselect all":"Select all"}),(0,d.jsxs)("button",{type:"button",className:"flex items-center gap-1 text-xs text-destructive hover:underline",onClick:_,children:[(0,d.jsx)(E.A,{className:"size-3.5"}),"Clear"]})]})]}),(0,d.jsx)("ul",{className:"divide-y divide-border overflow-y-auto",children:aX.map(a=>{let b=!!q[a.url];return(0,d.jsx)("li",{children:(0,d.jsxs)("label",{className:(0,l.cn)("flex cursor-pointer items-start gap-3 px-3 py-2.5 transition-colors hover:bg-muted/50","bg-white",b&&"bg-accent/50"),children:[(0,d.jsx)(L.S,{checked:b,onCheckedChange:b=>r(c=>({...c,[a.url]:!!b})),className:"mt-0.5"}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block truncate text-sm font-medium",children:a.title}),(0,d.jsxs)("span",{className:"flex items-center gap-1 truncate text-xs text-muted-foreground",children:[(0,d.jsx)(o.A,{className:"size-3 shrink-0"}),function(a){try{return new URL(a).hostname}catch{return a}}(a.url)]}),a.description&&(0,d.jsx)("span",{className:"mt-0.5 line-clamp-1 block text-xs text-muted-foreground/80",children:a.description})]})]})},a.url)})}),aU.length>5&&(0,d.jsxs)("div",{className:"flex items-center justify-between border-t border-border px-3 py-2 bg-muted/20",children:[(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["Showing ",(aE-1)*5+1," to"," ",Math.min(5*aE,aU.length)," of ",aU.length," sources"]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)(I.$,{variant:"outline",size:"sm",className:"h-7 px-2 text-xs",disabled:1===aE,onClick:()=>aF(a=>Math.max(1,a-1)),children:"Previous"}),(0,d.jsxs)("div",{className:"flex items-center gap-2 px-2 text-xs font-medium",children:[aE," / ",aW]}),(0,d.jsx)(I.$,{variant:"outline",size:"sm",className:"h-7 px-2 text-xs",disabled:aE===aW,onClick:()=>aF(a=>Math.min(aW,a+1)),children:"Next"})]})]}),n?.searchProvider==="serper"&&(n.hasMore||ac||ae)&&(0,d.jsxs)("div",{className:"flex items-center justify-between border-t border-border px-3 py-2",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:ae?`Gathering page ${ag} of ${n.totalPages}…`:`Page ${n.currentPage} of ${n.totalPages}`}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[aV&&(0,d.jsxs)(I.$,{size:"sm",variant:"ghost",className:"h-7 gap-1 text-xs",onClick:aS,children:[(0,d.jsx)(C.A,{className:"size-3.5"}),"Gather all (",n.totalPages-n.currentPage," more pages)"]}),(0,d.jsxs)(I.$,{size:"sm",variant:"outline",className:"h-7 gap-1 text-xs",onClick:aR,disabled:!n?.hasMore||ac||ae,children:[ac?(0,d.jsx)(s.A,{className:"size-3.5 animate-spin"}):(0,d.jsx)(B.A,{className:"size-3.5"}),"Load next page"]})]})]})]})]})}function S(){let[a,b]=(0,e.useState)("starting"),[c,f]=(0,e.useState)(""),g=(0,e.useRef)(!1),h=(0,e.useRef)(!1);function i(a){if(h.current){if(a.state.running){b("ready"),f("");return}if(a.starting){b("starting"),f("");return}b("unavailable"),f(a.state.lastError||"")}}async function j(a){let b=await fetch("/api/firecrawl/local",a?{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"start"})}:{cache:"no-store"}),c=await b.json();if(!b.ok)throw Error("Crawler status failed");return c}async function k(a=!1){if(!g.current){g.current=!0;try{if(a){h.current&&b("starting"),i(await j(!0));return}i(await j(!1))}catch{h.current&&(b("unavailable"),f("The crawler status could not be reached. Larkup will retry automatically."))}finally{g.current=!1}}}return(0,d.jsx)(O.Bc,{delay:0,children:(0,d.jsxs)(O.m_,{children:[(0,d.jsx)(O.k$,{render:(0,d.jsx)("button",{type:"button","aria-label":"Website crawler status","data-status":a,className:"relative flex size-7 items-center justify-center rounded-md outline-none transition-colors hover:bg-muted focus-visible:ring-2 focus-visible:ring-ring",onClick:()=>void k(!0),children:(0,d.jsx)("span",{className:(0,l.cn)("relative block size-2 rounded-full","ready"===a?"bg-emerald-500":"starting"===a?"bg-blue-500":"bg-red-500"),children:"starting"===a&&(0,d.jsx)("span",{className:"absolute inset-0 animate-ping rounded-full bg-blue-400/80"})})})}),(0,d.jsx)(O.ZI,{className:"max-w-60 text-xs",children:(0,d.jsx)("p",{children:"ready"===a?"Website crawler is ready":"starting"===a?"Preparing website crawler…":c||"Website crawler is temporarily unavailable. Larkup will retry automatically."})})]})})}var T=c(36908);function U({onAdded:a,onActionChange:b,groupId:c}){let[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(""),[j,l]=(0,e.useState)(!1),m=(0,e.useRef)(c??"default");async function n(){if(!h.trim())return void k.oR.error("Nothing to add — paste some text first.");l(!0);try{let b=await fetch("/api/documents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:f.trim()||"Pasted text",content:h,source:"text",groupId:m.current})});if(!b.ok)throw Error((await b.json()).error??"Failed");k.oR.success("Added to corpus"),g(""),i(""),a()}catch(a){k.oR.error(w(a))}finally{l(!1)}}return m.current=c??"default",(0,d.jsxs)("div",{className:"space-y-4 w-full",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(K.J,{htmlFor:"paste-title",children:"Title"}),(0,d.jsx)(J.p,{id:"paste-title",placeholder:"Demo Title",className:"w-full h-10 bg-white",value:f,onChange:a=>g(a.target.value)})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(K.J,{htmlFor:"paste-content",children:"Content"}),(0,d.jsx)(T.T,{id:"paste-content",placeholder:"Paste any text, markdown, or notes here…",className:"min-h-48 bg-white placeholder:text-muted-foreground/50 placeholder:text-xs font-mono text-xs leading-relaxed ",value:h,onChange:a=>i(a.target.value)}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground tabular-nums",children:[h.length.toLocaleString()," characters"]})]}),!b&&(0,d.jsxs)(I.$,{onClick:n,disabled:j,children:[j?(0,d.jsx)(s.A,{className:"size-4 animate-spin"}):(0,d.jsx)(t.A,{className:"size-4"}),"Add text"]})]})}var V=c(36396),W=c(72024),X=c(79278),Y=c(9692),Z=c(78467),$=c(49652);let _={number:{icon:"\uD83D\uDD22",label:"Number",color:"bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-300"},string:{icon:"\uD83D\uDCDD",label:"Text",color:"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300"},date:{icon:"\uD83D\uDCC5",label:"Date",color:"bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-300"},boolean:{icon:"✓",label:"Boolean",color:"bg-violet-100 text-violet-700 dark:bg-violet-900/30 dark:text-violet-300"},mixed:{icon:"◆",label:"Mixed",color:"bg-gray-100 text-gray-700 dark:bg-gray-800/50 dark:text-gray-300"}};function aa({type:a}){let b=_[a]??_.mixed;return(0,d.jsxs)("span",{className:`inline-flex items-center gap-0.5 rounded-full px-1.5 py-0.5 text-[9px] font-medium ${b.color}`,children:[(0,d.jsx)("span",{children:b.icon}),(0,d.jsx)("span",{children:b.label})]})}function ab({label:a,value:b}){return(0,d.jsxs)("div",{className:"flex flex-col rounded-md bg-secondary/50 px-2.5 py-1.5",children:[(0,d.jsx)("span",{className:"text-[9px] font-medium uppercase tracking-wider text-muted-foreground",children:a}),(0,d.jsx)("span",{className:"text-sm font-semibold tabular-nums text-foreground",children:"number"==typeof b?b.toLocaleString(void 0,{maximumFractionDigits:2}):b})]})}function ac({rows:a,columns:b,maxPreviewRows:c=8,maxPreviewColumns:f=10}){let g=(0,e.useMemo)(()=>b?b.map(a=>a.name):a.length>0?Object.keys(a[0]):[],[b,a]),h=(0,e.useMemo)(()=>b||g.map(b=>{let c=a.slice(0,20).map(a=>a[b]),d=c.filter(a=>null!=a&&""!==a);return{name:b,type:d.length>0&&d.every(a=>!isNaN(Number(a)))?"number":"string",nullCount:c.length-d.length,uniqueCount:new Set(d.map(String)).size}}),[b,g,a]),i=(0,e.useMemo)(()=>h.filter(a=>"number"===a.type&&a.stats).slice(0,4),[h]),j=a.slice(0,c),k=g.slice(0,f),l=h.slice(0,f),m=g.length>f;return 0===a.length||0===g.length?(0,d.jsx)("div",{className:"rounded-lg border border-border/60 bg-card px-4 py-6 text-center text-xs text-muted-foreground",children:"No data to preview"}):(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[l.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-1 rounded-md border border-border/40 bg-card px-2 py-1 text-xs",children:[(0,d.jsx)("span",{className:"font-medium text-foreground",children:a.name}),(0,d.jsx)(aa,{type:a.type})]},a.name)),m&&(0,d.jsx)("div",{className:"flex items-center gap-1 rounded-md border border-border/40 bg-card px-2 py-1 text-xs",children:(0,d.jsxs)("span",{className:"font-medium text-muted-foreground",children:["... (+ ",g.length-f," more)"]})})]}),i.length>0&&(0,d.jsx)("div",{className:"space-y-2",children:i.map(a=>(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1 text-[10px] font-medium text-muted-foreground",children:a.name}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.stats&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(ab,{label:"Min",value:a.stats.min}),(0,d.jsx)(ab,{label:"Max",value:a.stats.max}),(0,d.jsx)(ab,{label:"Mean",value:a.stats.mean}),(0,d.jsx)(ab,{label:"Median",value:a.stats.median})]})})]},a.name))}),(0,d.jsxs)("div",{className:"overflow-hidden rounded-lg border border-border/60",children:[(0,d.jsx)("div",{className:"overflow-x-auto [&::-webkit-scrollbar]:hidden",children:(0,d.jsxs)("table",{className:"w-full text-left text-xs",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border/40 bg-secondary/30",children:[k.map(a=>(0,d.jsx)("th",{className:"whitespace-nowrap px-2.5 py-2 font-medium text-muted-foreground",children:a},a)),m&&(0,d.jsx)("th",{className:"whitespace-nowrap px-2.5 py-2 font-medium text-muted-foreground",children:"..."})]})}),(0,d.jsx)("tbody",{children:j.map((a,b)=>(0,d.jsxs)("tr",{className:"border-b border-border/20 last:border-0",children:[k.map(b=>(0,d.jsx)("td",{className:"max-w-37.5 truncate whitespace-nowrap px-2.5 py-1.5 tabular-nums text-foreground",title:String(a[b]??""),children:null===a[b]||void 0===a[b]?"—":String(a[b])},b)),m&&(0,d.jsx)("td",{className:"px-2.5 py-1.5 text-muted-foreground",children:"..."})]},b))})]})}),a.length>c&&(0,d.jsxs)("div",{className:"border-t border-border/40 px-3 py-1.5 text-center text-[10px] text-muted-foreground",children:["Showing ",c," of ",a.length," rows"]})]})]})}var ad=c(93314),ae=c.n(ad),af=c(533),ag=c(5326),ah=c(45491),ai=c(18806);let aj=".txt,.md,.markdown,.toml,.json,.csv,.html,.htm,.log,.xlsx,.xls,.pdf,.doc,.docx",ak=[],al="larkup.upload-queue.v1";function am({onAdded:a,onActionChange:b,groupId:f}){let g=(0,e.useRef)(null),h=ak.length?ak:[],[i,j]=(0,e.useState)(h),n=(0,e.useRef)(h),o=(0,e.useRef)(!1),q=(0,e.useRef)(f??"default");q.current=f??"default";let[r,u]=(0,e.useState)(!1),[v,x]=(0,e.useState)(null),y=a=>{let b="function"==typeof a?a(n.current):a;n.current=b,ak=b;try{let a=b.map(({fileObject:a,...b})=>b);sessionStorage.setItem(al,JSON.stringify(a))}catch{}j(b)},A=v?.available===!0,[B,C]=(0,e.useState)(!1),[D,E]=(0,e.useState)("upload"),[F,G]=(0,e.useState)(""),[H,Q]=(0,e.useState)(!1),[R,S]=(0,e.useState)(!1),[T,U]=(0,e.useState)(null),[_,aa]=(0,e.useState)(null),[ab,ad]=(0,e.useState)(null),an=i.find(a=>a.id===_),ao=i.find(a=>a.id===ab),ap="url"===D;async function aq(a,b){let c=o.current,d=[],e=a=>d.push({...a,sourceUrl:b});for(let c of Array.from(a)){let a=c.name.split(".").pop()?.toLowerCase(),d=!!(b&&c.type.startsWith("text/"));if(a&&!aj.includes(`.${a}`)&&!d){k.oR.error(`Unsupported file type: ${c.name}. Please upload media files in the Media tab.`);continue}let f=Math.random().toString(36).slice(2);try{if("csv"===a){let a=await c.text(),b=ae().parse(a,{header:!0,skipEmptyLines:!0});if(b.data.length>0){let a=Object.keys(b.data[0]);e({id:f,name:c.name,size:c.size,format:"structured",rows:b.data,keys:a,titleKey:a[0],contentKeys:a,contentSeparator:", ",metadataKeys:a.slice(1),globalMetadata:[],indexAsTabular:!0})}}else if("xlsx"===a||"xls"===a){let a=await c.arrayBuffer(),b=af.LF(a,{type:"array",cellDates:!0}),d=b.SheetNames.length>1,g=0;for(let a of b.SheetNames){let h=b.Sheets[a],i=af.Wp.sheet_to_json(h,{defval:null}).map(a=>{let b={};for(let[c,d]of Object.entries(a))b[c]=d instanceof Date?d.toISOString().split("T")[0]:d;return b});if(0===i.length)continue;let j=Object.keys(i[0]);e({id:`${f}-${g}`,name:d?`${c.name} — ${a}`:c.name,size:c.size,format:"structured",rows:i,keys:j,titleKey:j[0],contentKeys:j,contentSeparator:", ",metadataKeys:j.slice(1),globalMetadata:[],indexAsTabular:!0}),g++}0===g&&k.oR.error(`Could not find tabular rows in ${c.name}.`)}else if("json"===a){let a=await c.text();try{let b=JSON.parse(a);if(Array.isArray(b)&&b.length>0&&"object"==typeof b[0]){let a=Object.keys(b[0]);e({id:f,name:c.name,size:c.size,format:"structured",rows:b,keys:a,titleKey:a[0],contentKeys:a,contentSeparator:", ",metadataKeys:a.slice(1),globalMetadata:[],indexAsTabular:!0})}else e({id:f,name:c.name,size:c.size,format:"plain",rawContent:a})}catch{e({id:f,name:c.name,size:c.size,format:"plain",rawContent:a})}}else if("pdf"===a||"doc"===a||"docx"===a){let a=new FormData;a.append("file",c);let b=await fetch("/api/parse-file",{method:"POST",body:a}),d=await b.json().catch(()=>({}));if(!b.ok)throw Error(d.error||`Could not extract text from ${c.name}`);let{text:g}=d;if(!g?.trim())throw Error("This PDF does not contain selectable text. Try another copy of the file.");e({id:f,name:c.name,size:c.size,format:"plain",rawContent:g,fileObject:c,indexImages:r})}else{let a=await c.text();e({id:f,name:c.name,size:c.size,format:"plain",rawContent:a})}}catch(a){k.oR.error(`Could not read ${c.name}. ${w(a)}`)}}return y(a=>[...a,...d]),c&&d.length>0&&(k.oR.message(`${d.length} file${1===d.length?"":"s"} added to the queue`),window.setTimeout(()=>void as(),0)),d}async function ar(){let a=F.trim();if(!a)return void k.oR.error("Paste a public link to a file first.");Q(!0);try{let b=await fetch("/api/files/remote",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:a})});if(!b.ok){let a=await b.json().catch(()=>({}));throw Error(a.error||"Could not load this remote file.")}let c=decodeURIComponent(b.headers.get("X-Larkup-File-Name")||"remote-file"),d=decodeURIComponent(b.headers.get("X-Larkup-Source-Url")||a),e=await b.arrayBuffer();if(!e.byteLength)throw Error("This remote file is empty.");let f=await aq([new File([e],c,{type:b.headers.get("content-type")||""})],d);if(0===f.length)return;G(""),E("upload"),await as(f)}catch(a){k.oR.error(w(a))}finally{Q(!1)}}async function as(b){if(o.current||(b?.length??n.current.length)===0)return;o.current=!0,S(!0);let d=0,e=b?[...b]:[...n.current],f=[],h=q.current,i=new Map;for(let a of e)if("structured"===a.format&&a.rows&&a.indexAsTabular)try{let b=await fetch("/api/tabular",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileName:a.name,rows:a.rows,groupId:h})});if(b.ok){let c=await b.json();"string"==typeof c.id&&i.set(a.id,c.id),k.oR.success(`Saved "${a.name}" as tabular dataset (${c.rowCount} rows, ${c.columns.length} columns)`)}}catch{}for(let a of e)if("plain"===a.format&&(a.rawContent||a.name.toLowerCase().endsWith(".pdf"))){let b;if(a.fileObject)try{let c=new FormData;c.append("file",a.fileObject);let d=await fetch("/api/upload-file",{method:"POST",body:c});if(d.ok){let{url:a}=await d.json();b=a}}catch(a){console.error("Failed to upload file for citation link",a)}let d=a.rawContent&&a.rawContent.trim().length>0,e=[],g=0;if(a.indexImages&&A&&a.fileObject&&a.name.toLowerCase().endsWith(".pdf"))try{U({message:`Extracting images from ${a.name}...`,current:0,total:100});let{extractImagesFromPDF:b}=await Promise.all([c.e(2595),c.e(1149)]).then(c.bind(c,21149)),d=await b(a.fileObject);for(let b=0;b<d.length;b+=5){let c=d.slice(b,b+5);await Promise.all(c.map(async(c,f)=>{let h=b+f;U({message:`Analyzing image ${h+1} of ${d.length} from ${a.name}...`,current:h,total:d.length||1});let i=await fetch(c.base64),j=await i.blob(),k=new File([j],`image-${c.index}.jpg`,{type:"image/jpeg"}),l=new FormData;l.append("file",k);let m=await fetch("/api/upload-file",{method:"POST",body:l});if(m.ok){let{url:a}=await m.json(),b="";try{let a=await fetch("/api/describe-image",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({base64:c.base64,prompt:"Create accurate retrieval notes for this rendered document page. Preserve captions, figure and table identifiers, equations and their grouping, readable labels, legends, headings, row/column relationships, and diagram connections. Do not invent unreadable text; say when text is unclear. Use concise labeled bullets so later questions can retrieve the correct page without re-reading the visual."})});if(a.ok){let c=await a.json();c.description&&(b=c.description)}}catch(a){console.error("Failed to describe image:",a)}b.trim()?e.push({imageUrl:a,pageNumber:c.pageNumber,index:c.index,description:b}):g++}}))}e.sort((a,b)=>a.index-b.index),g>0&&k.oR.warning(`${g} image${1===g?"":"s"} from ${a.name} could not be analyzed and were not indexed.`)}catch(a){console.error("Failed to extract images from PDF:",a)}if(d||e.length>0){let c=d?a.rawContent:`Images extracted from ${a.name}`;if(e.length>0){let a=e.map(a=>`Image ${a.index+1} (Page ${a.pageNumber}): ${a.description||"No description"}`).join("\n");c+=`
2
+
3
+ Image Descriptions:
4
+ ${a}`}f.push({title:a.name,content:c,source:"files",url:b??a.sourceUrl,metadata:{...a.name.toLowerCase().endsWith(".pdf")?{mimeType:"application/pdf",fileKind:"pdf"}:{},...a.sourceUrl?{originalUrl:a.sourceUrl}:{},...e.length>0?{images:e.map(a=>({imageUrl:a.imageUrl,pageNumber:a.pageNumber,index:a.index,description:a.description}))}:{}}})}}else if("lines"===a.format&&a.rawContent)f.push({title:a.name,content:a.rawContent,source:"files",metadata:{fileName:a.name,format:"lines",...a.sourceUrl?{originalUrl:a.sourceUrl}:{}}});else if("structured"===a.format&&a.rows){let b=a.rows.map(b=>(a.contentKeys?.length?a.contentKeys.map(a=>`${a}: ${String(b[a]??"")}`):Object.entries(b).map(([a,b])=>`${a}: ${String(b??"")}`)).join(a.contentSeparator||" | ")).filter(Boolean),c={fileName:a.name,rowCount:a.rows.length,...i.get(a.id)?{tabularDatasetId:i.get(a.id)}:{},...a.sourceUrl?{originalUrl:a.sourceUrl}:{}};for(let b of a.globalMetadata??[])b.key.trim()&&(c[b.key.trim()]=b.value);b.length&&f.push({title:a.name,content:b.join("\n"),metadata:c,source:"files"})}for(let[a,b]of(U({message:"Uploading documents...",current:0,total:f.length||1}),f.entries())){try{(await fetch("/api/documents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...b,groupId:h})})).ok&&d++}catch{}U({message:"Uploading documents...",current:a+1,total:f.length||1})}let j=e.length;o.current=!1,S(!1),U(null);let l=n.current.filter(a=>!e.some(b=>b.id===a.id));y(l),0===l.length&&sessionStorage.removeItem(al),g.current&&(g.current.value=""),d>0?(k.oR.success(`Added ${d} document${d>1?"s":""} from ${j} file${j>1?"s":""}`),a()):k.oR.error("No text or images could be extracted from the uploaded files."),!b&&l.length>0&&window.setTimeout(()=>void as(),0)}function at(a){y(b=>b.map(b=>b.id===_?{...b,...a}:b))}return(0,d.jsxs)("div",{className:"space-y-4 cursor-pointer",children:[(0,d.jsx)(P,{label:"File source",value:D,onValueChange:a=>E(a),options:[{value:"upload",label:"Upload",icon:m.A},{value:"url",label:"From URL",icon:V.A}]}),"upload"===D?(0,d.jsxs)("button",{type:"button",onClick:()=>g.current?.click(),onDragOver:a=>{a.preventDefault(),C(!0)},onDragLeave:()=>C(!1),onDrop:a=>{a.preventDefault(),C(!1),a.dataTransfer.files?.length&&aq(a.dataTransfer.files)},className:(0,l.cn)("flex w-full flex-col cursor-pointer items-center justify-center gap-2 rounded-lg border border-dashed border-border bg-muted/40 px-6 py-10 text-center transition-colors hover:bg-muted/70",B&&"border-primary bg-accent"),children:[(0,d.jsx)(m.A,{className:"size-6 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"Drop files here or click to browse"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Text, JSON, CSV, Excel, PDF, and Word files"})]}):(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)(J.p,{"aria-label":"Remote file URL",type:"url",value:F,onChange:a=>G(a.target.value),onKeyDown:a=>{"Enter"===a.key&&ar()},placeholder:"https://example.com/my-report.pdf",disabled:H,className:"bg-white"}),(0,d.jsx)("p",{className:"text-[11px] pl-1 leading-relaxed text-muted-foreground",children:"Paste a public file URL, GitHub file link, or Hugging Face file link. PDF, Word, CSV, JSON, Excel, and text files up to 50 MB are supported."}),!b&&(0,d.jsxs)(I.$,{type:"button",onClick:()=>void ar(),disabled:!F.trim()||H,children:[H?(0,d.jsx)(s.A,{className:"size-4 animate-spin"}):(0,d.jsx)(V.A,{className:"size-4"}),"Add file"]})]}),(0,d.jsx)("input",{ref:g,type:"file",multiple:!0,accept:aj,className:"sr-only",onChange:a=>{a.target.files?.length&&aq(a.target.files),a.target.value=""}}),i.length>0&&(0,d.jsxs)("div",{className:"space-y-2 pb-5",children:[i.some(a=>a.name.toLowerCase().endsWith(".pdf"))&&v&&!A&&(0,d.jsxs)(ai.Fc,{className:"border-amber-500/30 bg-amber-500/5",children:[(0,d.jsx)(W.A,{className:"size-4 text-amber-600 dark:text-amber-400"}),(0,d.jsx)(ai.XL,{children:"PDF image indexing is unavailable"}),(0,d.jsxs)(ai.TN,{children:[v.message," Configure a vision model in Settings → AI Models to index PDF visuals."]})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between px-1 ",children:[(0,d.jsxs)("span",{className:"text-[13px] font-medium text-foreground",children:[i.length," file",1!==i.length?"s":""," staged"]}),(0,d.jsxs)("div",{className:"flex items-center gap-4 mt-5",children:[i.some(a=>a.name.toLowerCase().endsWith(".pdf"))&&(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(M.d,{checked:r,disabled:!A,onCheckedChange:a=>{A&&(u(a),y(b=>b.map(b=>b.name.toLowerCase().endsWith(".pdf")?{...b,indexImages:a}:b)))},id:"global-index-images",className:"scale-75 origin-right"}),(0,d.jsx)(K.J,{htmlFor:"global-index-images",className:"text-[11px] text-muted-foreground cursor-pointer",children:"Index all PDF images"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>y([]),className:"text-[11px] text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:"Clear All"})]})]}),(0,d.jsx)("ul",{className:"space-y-1.5",children:i.map(a=>(0,d.jsxs)("li",{className:"flex flex-col gap-2 rounded-md border border-border bg-card px-3 py-2 text-sm",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-0.5",children:[(0,d.jsx)("span",{className:"truncate font-mono text-xs",children:a.name}),(0,d.jsxs)("span",{className:"text-[10px] text-muted-foreground uppercase tracking-wider",children:["structured"===a.format?"STRUCTURED":"lines"===a.format?"SPLIT BY LINE":"PLAIN TEXT","structured"===a.format&&` • ${a.rows?.length} ROWS`,a.indexAsTabular&&" • TABULAR"]}),a.sourceUrl&&(0,d.jsxs)("span",{className:"truncate text-[10px] text-muted-foreground",title:a.sourceUrl,children:["Imported from ",new URL(a.sourceUrl).hostname.replace(/^www\./,"")]})]}),(0,d.jsxs)("span",{className:"shrink-0 text-xs text-muted-foreground tabular-nums",children:[(a.size/1024).toFixed(1)," KB"]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:["structured"===a.format&&(0,d.jsx)("button",{type:"button","aria-label":"Toggle tabular indexing",title:a.indexAsTabular?"Tabular indexing ON":"Enable tabular indexing for data analysis",onClick:()=>y(b=>b.map(b=>b.id===a.id?{...b,indexAsTabular:!b.indexAsTabular}:b)),className:(0,l.cn)("p-1.5 border rounded-md transition-colors cursor-pointer",a.indexAsTabular?"bg-primary/10 border-primary/30 text-primary":"bg-secondary text-muted-foreground hover:bg-muted/50 hover:text-foreground"),children:(0,d.jsx)(X.A,{className:"size-3.5"})}),a.name.toLowerCase().endsWith(".pdf")&&(0,d.jsx)(O.Bc,{delay:0,children:(0,d.jsxs)(O.m_,{children:[(0,d.jsx)(O.k$,{type:"button","aria-label":"Toggle image indexing","aria-pressed":!!a.indexImages,disabled:!A,onClick:()=>{A&&y(b=>b.map(b=>b.id===a.id?{...b,indexImages:!b.indexImages}:b))},className:(0,l.cn)("p-1.5 border rounded-md transition-colors cursor-pointer disabled:cursor-not-allowed disabled:opacity-50",a.indexImages?"bg-blue-100 border-blue-300 text-blue-600 dark:bg-blue-900/30 dark:border-blue-700 dark:text-blue-400":"bg-secondary text-muted-foreground hover:bg-muted/50 hover:text-foreground"),children:(0,d.jsx)(p.A,{className:"size-3.5"})}),(0,d.jsx)(O.ZI,{side:"top",children:(0,d.jsx)("p",{className:"text-xs",children:a.indexImages?"Image indexing ON":"Extract and index images from PDF"})})]})}),a.rawContent&&(0,d.jsx)("button",{type:"button","aria-label":`Preview ${a.name}`,title:"Preview extracted content",onClick:()=>ad(a.id),className:"rounded-md border bg-secondary p-1.5 text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground",children:(0,d.jsx)(Y.A,{className:"size-3.5"})}),(0,d.jsx)("button",{type:"button","aria-label":`Configure ${a.name}`,onClick:()=>aa(a.id),className:"p-1.5 bg-secondary cursor-pointer border text-muted-foreground hover:bg-muted/50 hover:text-foreground rounded-md transition-colors",children:(0,d.jsx)(Z.A,{className:"size-3.5"})}),(0,d.jsx)("button",{type:"button","aria-label":`Remove ${a.name}`,onClick:()=>y(b=>b.filter(b=>b.id!==a.id)),className:"p-1.5 border bg-muted hover:bg-muted/50 cursor-pointer text-muted-foreground hover:text-foreground rounded-md transition-colors",children:(0,d.jsx)(z.A,{className:"size-3.5 text-red-500"})})]})]}),"structured"===a.format&&a.indexAsTabular&&a.rows&&(0,d.jsx)("div",{className:"min-w-0 w-full mt-1",children:(0,d.jsx)(ac,{rows:a.rows,maxPreviewRows:5})})]},a.id))})]}),T&&(0,d.jsxs)("div",{className:"space-y-2 mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[(0,d.jsx)("span",{children:T.message||"Processing..."}),(0,d.jsxs)("span",{className:"tabular-nums font-mono",children:[T.current," / ",T.total]})]}),(0,d.jsx)(ah.ke,{value:T.current/T.total*100})]}),!b&&(0,d.jsxs)(I.$,{onClick:ap?()=>void ar():()=>void as(),disabled:H||R||(ap?!F.trim():0===i.length),children:[H||R?(0,d.jsx)(s.A,{className:"size-4 animate-spin"}):(0,d.jsx)(m.A,{className:"size-4"}),"Add file"]}),(0,d.jsx)(ag.lG,{open:!!an,onOpenChange:a=>!a&&aa(null),children:(0,d.jsxs)(ag.Cf,{className:"sm:max-w-xl max-h-[80%]",children:[(0,d.jsx)(ag.c7,{children:(0,d.jsxs)(ag.L3,{className:"flex items-center gap-2",children:[(0,d.jsx)($.A,{className:"size-4 text-primary"}),"Configure Ingestion"]})}),an&&(0,d.jsxs)("div",{className:"py-4 space-y-6 overflow-y-auto pr-2",style:{maxHeight:"calc(80vh - 120px)"},children:["structured"===an.format?(0,d.jsx)(d.Fragment,{children:(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(K.J,{children:"Title Column"}),(0,d.jsxs)(N.l6,{value:an.titleKey,onValueChange:a=>at({titleKey:a||void 0}),children:[(0,d.jsx)(N.bq,{children:(0,d.jsx)(N.yv,{placeholder:"Select column"})}),(0,d.jsx)(N.gC,{children:an.keys?.map(a=>(0,d.jsx)(N.eb,{value:a,children:a},a))})]}),(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Used as the document name."})]}),(0,d.jsxs)("div",{className:"space-y-3 pt-2 border-t border-border",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)(K.J,{children:"Content Columns"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{type:"button",className:"text-[10px] uppercase font-medium text-primary hover:underline cursor-pointer",onClick:()=>{at({contentKeys:an.keys||[]})},children:"Select All"}),(0,d.jsx)("span",{className:"text-muted-foreground text-[10px]",children:"|"}),(0,d.jsx)("button",{type:"button",className:"text-[10px] uppercase font-medium text-muted-foreground hover:underline cursor-pointer",onClick:()=>{at({contentKeys:[]})},children:"Clear"})]})]}),(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground mb-2 -mt-1",children:"Selected columns will be combined to form the searchable content."}),(0,d.jsx)("div",{className:"max-h-30 overflow-y-auto space-y-2 pr-2",children:an.keys?.map(a=>{let b=an.contentKeys?.includes(a);return(0,d.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,d.jsx)(L.S,{id:`content-${a}`,checked:b,onCheckedChange:b=>{let c=an.contentKeys||[];b?at({contentKeys:[...c,a]}):at({contentKeys:c.filter(b=>b!==a)})}}),(0,d.jsx)("label",{htmlFor:`content-${a}`,className:"text-sm font-medium leading-none",children:a})]},a)})}),an.contentKeys&&an.contentKeys.length>1&&(0,d.jsxs)("div",{className:"pt-2",children:[(0,d.jsx)(K.J,{className:"mb-2 block",children:"Separator"}),(0,d.jsxs)(N.l6,{value:an.contentSeparator||" ",onValueChange:a=>at({contentSeparator:a||void 0}),children:[(0,d.jsx)(N.bq,{children:(0,d.jsx)(N.yv,{placeholder:"Select separator"})}),(0,d.jsxs)(N.gC,{children:[(0,d.jsx)(N.eb,{value:" ",children:"Space"}),(0,d.jsx)(N.eb,{value:", ",children:"Comma"}),(0,d.jsx)(N.eb,{value:"\\n",children:"Newline"}),(0,d.jsx)(N.eb,{value:" - ",children:"Hyphen"})]})]})]})]}),(0,d.jsxs)("div",{className:"space-y-3 pt-2 border-t border-border",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)(K.J,{children:"Metadata Columns"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{type:"button",className:"text-[10px] uppercase font-medium text-primary hover:underline cursor-pointer",onClick:()=>{at({metadataKeys:an.keys?.filter(a=>a!==an.titleKey)||[]})},children:"Select All"}),(0,d.jsx)("span",{className:"text-muted-foreground text-[10px]",children:"|"}),(0,d.jsx)("button",{type:"button",className:"text-[10px] uppercase font-medium text-muted-foreground hover:underline cursor-pointer",onClick:()=>{at({metadataKeys:[]})},children:"Clear"})]})]}),(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground mb-2 -mt-1",children:"These columns will be stored as searchable metadata."}),(0,d.jsx)("div",{className:"max-h-30 overflow-y-auto space-y-2 pr-2",children:an.keys?.map(a=>{let b=an.metadataKeys?.includes(a),c=a===an.titleKey;return(0,d.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,d.jsx)(L.S,{id:`meta-${a}`,checked:b,disabled:c,onCheckedChange:b=>{let c=an.metadataKeys||[];b?at({metadataKeys:[...c,a]}):at({metadataKeys:c.filter(b=>b!==a)})}}),(0,d.jsxs)("label",{htmlFor:`meta-${a}`,className:(0,l.cn)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",c&&"text-muted-foreground"),children:[a," ",c&&"(used)"]})]},a)})})]})]})}):(0,d.jsx)("div",{className:"space-y-4",children:(0,d.jsxs)("div",{className:"flex items-center justify-between rounded-lg border border-border p-3",children:[(0,d.jsxs)("div",{className:"space-y-0.5",children:[(0,d.jsx)(K.J,{children:"Split by Line"}),(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Treat each line as a completely separate document."})]}),(0,d.jsx)(M.d,{checked:"lines"===an.format,onCheckedChange:a=>at({format:a?"lines":"plain"})})]})}),(0,d.jsxs)("div",{className:"space-y-3 pt-4 border-t border-border",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)(K.J,{children:"Global Custom Metadata"}),(0,d.jsxs)(I.$,{variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",onClick:()=>{at({globalMetadata:[...an.globalMetadata||[],{key:"",value:""}]})},children:[(0,d.jsx)(t.A,{className:"size-3 mr-1"})," Add Field"]})]}),(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground mb-2",children:"Apply custom key-value pairs to every document generated from this file."}),(0,d.jsxs)("div",{className:"space-y-2",children:[(an.globalMetadata||[]).map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(J.p,{placeholder:"Key",value:a.key,className:"h-8 text-xs font-mono",onChange:a=>{let c=[...an.globalMetadata||[]];c[b].key=a.target.value,at({globalMetadata:c})}}),(0,d.jsx)(J.p,{placeholder:"Value",value:a.value,className:"h-8 text-xs font-mono",onChange:a=>{let c=[...an.globalMetadata||[]];c[b].value=a.target.value,at({globalMetadata:c})}}),(0,d.jsx)(I.$,{variant:"ghost",size:"icon",className:"h-8 w-8 text-muted-foreground shrink-0",onClick:()=>{let a=[...an.globalMetadata||[]];a.splice(b,1),at({globalMetadata:a})},children:(0,d.jsx)(z.A,{className:"size-3.5"})})]},b)),(!an.globalMetadata||0===an.globalMetadata.length)&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground italic text-center py-2",children:"No custom metadata."})]})]})]}),(0,d.jsx)(ag.Es,{className:"pb-2! bg-muted ",children:(0,d.jsx)(I.$,{onClick:()=>aa(null),children:"Done"})})]})}),(0,d.jsx)(ag.lG,{open:!!ao,onOpenChange:a=>!a&&ad(null),children:(0,d.jsxs)(ag.Cf,{className:"max-w-7xl! ",children:[(0,d.jsx)(ag.c7,{children:(0,d.jsxs)(ag.L3,{className:"truncate",children:["Preview: ",ao?.name]})}),(0,d.jsx)("div",{className:"max-h-[65vh] overflow-auto rounded-md border bg-muted/30",children:(0,d.jsx)("pre",{className:"min-w-max p-4 font-mono text-xs leading-relaxed whitespace-pre-wrap wrap-break-word",children:ao?.rawContent?.slice(0,1e5)})}),(ao?.rawContent?.length??0)>1e5&&(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Preview is limited to the first ",1e5.toLocaleString()," characters."]})]})})]})}var an=c(28763),ao=c(23360),ap=c(75138),aq=c(49073),ar=c(19315),as=c(43386),at=c(92676),au=c(97704),av=c(60812),aw=c(79891),ax=c(19847),ay=c(56757),az=c(93037),aA=c(51372),aB=c(54853),aC=c(28245),aD=c(49857);function aE({surface:a,open:b,values:c,submitting:e,sourceDurationSecs:f,onOpenChange:g,onChange:h,onConfirm:i}){if(!a)return null;let j=a.estimate?.variants.find(b=>c[a.estimate?.modeField??""]===b.value),k=function(a,b){if(!a)return null;let c=Math.max(0,(b??0)/60),d=c>0?Math.max(c,.1):1,e=Math.max(1,Math.ceil(((a.fixedOverheadSeconds??0)+a.processingSecondsPerSourceMinute*d)/60)),f=Math.max(e,Math.ceil(((a.maxFixedOverheadSeconds??a.fixedOverheadSeconds??0)+(a.maxProcessingSecondsPerSourceMinute??a.processingSecondsPerSourceMinute)*d)/60));return{minimumMinutes:e,maximumMinutes:f,credits:Math.max(1,Math.ceil(a.creditsPerSourceMinute*d))}}(j,f),l=a.form.fields.some(a=>!!a.requiredWhen&&c[a.requiredWhen.field]===a.requiredWhen.equals&&!0!==c[a.key]);return(0,d.jsx)(ag.lG,{open:b,onOpenChange:g,children:(0,d.jsxs)(ag.Cf,{className:"sm:max-w-xl",children:[(0,d.jsx)(ag.c7,{children:(0,d.jsx)(ag.L3,{children:a.title})}),a.description&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:a.description}),j&&(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-px overflow-hidden rounded-lg border bg-border text-xs",children:[(0,d.jsx)(aF,{label:"Typical range",value:`~${k?.minimumMinutes}${k?.maximumMinutes!==k?.minimumMinutes?`–${k?.maximumMinutes}`:""} min`}),(0,d.jsx)(aF,{label:"Estimated credits",value:`~${k?.credits}`})]}),j?.fixedOverheadSeconds&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Includes typical cloud startup. Worker progress replaces this range after the job starts; queued capacity or provider retries can take longer."}),(0,d.jsx)("div",{className:"space-y-4 py-1",children:a.form.fields.map(b=>{let e=c[b.key],f=b.options?.find(a=>a.value===e);return"checkbox"===b.type?(0,d.jsxs)("div",{className:"flex items-start justify-between gap-4 rounded-lg border p-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:b.label}),b.description&&(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:b.description})]}),(0,d.jsx)(M.d,{checked:!0===e,onCheckedChange:a=>h(b.key,a),"aria-label":b.label})]},b.key):(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)("label",{className:"text-xs font-medium",htmlFor:`${a.id}-${b.key}`,children:b.label}),b.description&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b.description}),"select"===b.type?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("select",{id:`${a.id}-${b.key}`,value:String(e??""),onChange:a=>{let c=a.target.value,d=b.options?.find(a=>a.value===c);for(let[a,e]of(h(b.key,c),Object.entries(d?.setValues??{})))h(a,e)},className:"h-9 w-full rounded-md border border-input bg-background px-3 text-sm",children:b.options?.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))}),f?.description&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:f.description})]}):(0,d.jsx)(T.T,{id:`${a.id}-${b.key}`,value:String(e??""),onChange:a=>h(b.key,a.target.value),placeholder:b.placeholder,rows:5,className:"min-h-28 resize-y bg-white dark:bg-background"})]},b.key)})}),(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)(I.$,{variant:"outline",onClick:()=>g(!1),children:"Cancel"}),(0,d.jsx)(I.$,{onClick:i,disabled:e||l,children:a.form.submitLabel??"Index media"})]})]})})}function aF({label:a,value:b}){return(0,d.jsxs)("div",{className:"bg-muted/20 px-3 py-2.5",children:[(0,d.jsx)("p",{className:"text-[10px] font-medium uppercase tracking-wide text-muted-foreground",children:a}),(0,d.jsx)("p",{className:"mt-1 font-medium tabular-nums text-foreground",children:b})]})}function aG(a,b){return a?.reduce((a,c)=>a+(b?c.singleItemDurationSecs??((c.entryCount??1)<=1?c.durationSecs:0)??0:c.durationSecs??0),0)??0}let aH={image:[],video:[],audio:[]};function aI(a){return a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:a<0x40000000?`${(a/1048576).toFixed(1)} MB`:`${(a/0x40000000).toFixed(2)} GB`}function aJ(a,b,c=!1){let d=new URLSearchParams;c&&d.set("thumb","true"),b&&d.set("serverId",b);let e=d.toString();return`/api/media/${a}${e?`?${e}`:""}`}function aK(a){return a.type.startsWith("image/")?"image":a.type.startsWith("video/")?"video":a.type.startsWith("audio/")?"audio":null}function aL({estimate:a}){let[b,c]=(0,e.useState)(!1),f=function(a){try{let b=new URL(a),c=b.hostname.replace(/^www\./,"").toLowerCase();if("youtu.be"===c)return b.pathname.split("/").filter(Boolean)[0]??null;if("youtube.com"!==c&&!c.endsWith(".youtube.com"))return null;return b.searchParams.get("v")??b.pathname.match(/^\/(?:embed|shorts|live)\/([^/?#]+)/)?.[1]??null}catch{return null}}(a.originalUrl),g=f?`https://i.ytimg.com/vi/${f}/hqdefault.jpg`:null;return(0,d.jsxs)("div",{className:"overflow-hidden rounded-xl border border-border/70 bg-muted/20",children:[(0,d.jsxs)("div",{className:"relative flex aspect-video items-center justify-center overflow-hidden bg-black/90",children:[g&&!b?(0,d.jsx)("img",{src:g,alt:"YouTube video thumbnail",className:"size-full object-cover opacity-90",onError:()=>c(!0)}):(0,d.jsx)(ap.A,{className:"size-8 text-white/70","aria-hidden":"true"}),(0,d.jsx)("div",{className:"absolute inset-0 bg-linear-to-t from-black/60 via-transparent to-transparent"}),(0,d.jsx)("span",{className:"absolute bottom-3 left-3 rounded-md bg-black/70 px-2 py-1 text-[11px] font-medium text-white",children:"YouTube video"})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 p-3",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("p",{className:"truncate text-[13px] font-medium text-foreground",children:a.title||"Preview this video on YouTube"}),(0,d.jsx)("p",{className:"mt-0.5 text-[11px] text-muted-foreground",children:"YouTube may block embedded playback. Open the source to preview it reliably."})]}),(0,d.jsx)(I.$,{variant:"outline",size:"sm",className:"shrink-0 gap-1.5 text-xs",nativeButton:!1,render:(0,d.jsxs)("a",{href:a.originalUrl,target:"_blank",rel:"noreferrer",role:"link",children:["Open on YouTube",(0,d.jsx)(aq.A,{className:"size-3"})]})})]})]})}function aM(a,b,c="balanced"){let d=a/60,e=Math.max(1,Math.ceil((60+4*d)/60)),f=Math.max(e,Math.ceil((60+5*d)/60)),g=Math.max(1,Math.ceil(d*(b?.35:.2)));return{transcriptionCost:.006*d,processingMinutes:b&&"fast"===c?Math.ceil((e+f)/2):g,minimumProcessingMinutes:b&&"fast"===c?e:g,maximumProcessingMinutes:b&&"fast"===c?f:g,visualScenes:b?Math.max(1,Math.ceil(a/(a>=14400?900:a>3600?300:60))):0}}function aN(a){return a.minimumProcessingMinutes===a.maximumProcessingMinutes?`${a.minimumProcessingMinutes} min`:`${a.minimumProcessingMinutes}–${a.maximumProcessingMinutes} min`}let aO=[{id:"images",label:"Images",icon:p.A,accept:"image/*"},{id:"video",label:"Video",icon:ap.A,accept:"video/*"},{id:"audio",label:"Audio",icon:ar.A,accept:"audio/*"}],aP={images:"image",video:"video",audio:"audio"},aQ=a=>fetch(a).then(a=>a.json()),aR=a=>fetch(a).then(a=>a.json());function aS(a){return"video"===a.type&&("processing"===a.processingStatus||"pending"===a.processingStatus&&!!a.processingMessage)}let aT="[&_[data-slot=progress-indicator]]:bg-emerald-500 dark:[&_[data-slot=progress-indicator]]:bg-emerald-400";function aU({onAdded:a,onIndexed:b,onProcessingStarted:c,onActionChange:g,groupId:h="default"}){let[j,l]=(0,e.useState)("images"),[m,n]=(0,e.useState)("upload"),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)(""),[w,x]=(0,e.useState)(!1),y=aP[j];(0,e.useRef)(null);let{activeProject:z}=(0,az.B)(),A=z?.id,B=A?`&serverId=${encodeURIComponent(A)}`:"",C=(0,f.useRouter)(),{data:D,mutate:E,isLoading:F}=(0,i.u)(`/api/media?type=all${B}`,aQ,{revalidateOnFocus:!1,keepPreviousData:!0}),{data:G,mutate:H,isLoading:K}=(0,i.u)("/api/marketplace",aR),L=A?`/api/config?serverId=${encodeURIComponent(A)}`:"/api/config",{data:M}=(0,i.u)(L,a=>fetch(a).then(a=>a.json())),N=G?.tools?.find(a=>"video-audio"===a.id),O=G?.tools?.find(a=>"video-intelligence"===a.id),Q=(0,e.useMemo)(()=>G?.tools?.filter(a=>"installed"===a.status).flatMap(a=>(a.ui?.surfaces??[]).map(b=>({...b,toolId:a.id}))).find(a=>"data-indexing"===a.slot&&a.appliesTo?.includes(y)),[y,G?.tools]),R=O?.status==="installed",S=N?.status==="installed"||o,U="video"===j?R:S,W=M?.config?.enabledTools,X=M?.config?.toolConfigs?.["video-audio"]??{},Y="string"==typeof X.audioProvider?X.audioProvider:"",Z="string"==typeof X.audioApiKey?X.audioApiKey:"",$=!W||0===W.length||W.includes("video"===j&&R?"video-intelligence":"video-audio"),_="video"===j?!R:"audio"===j&&!S,aa="images"!==j&&U&&!$,{data:ab,mutate:ac}=(0,i.u)(R?`/api/tools/video-intelligence/usage${A?`?serverId=${encodeURIComponent(A)}`:""}`:null,a=>fetch(a).then(a=>a.ok?a.json():null),{refreshInterval:3e4*!!R}),ad=ab?.sourceMinutesLimit&&ab.sourceMinutesLimit>0?ab.sourceMinutesUsed/ab.sourceMinutesLimit:0,ae=D?.assets??[],af=ae.filter(a=>"video"===a.type&&aS(a)),ag=Math.max(1,ab?.concurrentJobsLimit??1),ah=af.length>=ag,aj=D?.storage?.usedBytes??0;async function ak(a){let b="video"===a?"Video Intelligence":"Video & Audio",c=k.oR.loading(`Installing ${b}…`);try{let d=A?`?serverId=${encodeURIComponent(A)}`:"",e=await fetch(`/api/marketplace/${"video"===a?"video-intelligence":"video-audio"}${d}`,{method:"POST"}),f=await e.json();if(!e.ok)throw Error(f.error||"Install failed");"audio"===a&&p(!0),await H(),k.oR.success(`${b} installed`,{id:c,description:"video"===a?"Larkup Cloud is ready by default. No GPU or server setup is needed.":"Choose an audio provider before indexing audio.",action:{label:"Open settings",onClick:()=>C.push("/settings?section=tool-settings")}})}catch(a){k.oR.error(a instanceof Error?a.message:"Install failed",{id:c})}}async function al(){x(!0);try{let a=await fetch(`/api/tools/video-intelligence/usage-request${A?`?serverId=${encodeURIComponent(A)}`:""}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:s,note:u,usage:ab})}),b=await a.json().catch(()=>({}));if(!a.ok)throw Error(b.error||"Could not send the usage request.");k.oR.success("Usage request sent",{description:"We will contact you about additional Video Intelligence capacity."}),r(!1),v("")}catch(a){k.oR.error(a instanceof Error?a.message:"Could not send the usage request.")}finally{x(!1)}}return(0,d.jsxs)("div",{className:"space-y-5",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4 mb-2",children:[(0,d.jsx)(P,{label:"Media source",value:m,onValueChange:a=>n(a),options:[{value:"upload",label:"Upload",icon:as.A},{value:"url",label:"From URL",icon:V.A}]}),aj>0&&(0,d.jsxs)("div",{className:"text-[11px] text-muted-foreground/50 tabular-nums",children:[aI(aj)," used"]})]}),K||R||"video"===j?null:(0,d.jsx)(aW,{toolName:O?.name??"Video Intelligence",onInstall:()=>void ak("video")}),"video"===j&&ad>=.8?(0,d.jsxs)(ai.Fc,{variant:ad>=1?"destructive":"default",children:[(0,d.jsx)(at.A,{}),(0,d.jsx)(ai.XL,{children:ad>=1?"Video Intelligence allowance reached":"Video Intelligence allowance is nearly used"}),(0,d.jsxs)(ai.TN,{children:[Math.ceil(ab?.sourceMinutesUsed??0)," of ",ab?.sourceMinutesLimit," ","cloud video minutes have been used this month."]}),(0,d.jsx)(ai.T2,{children:(0,d.jsx)(I.$,{size:"sm",variant:"outline",onClick:()=>r(!0),children:"Request more usage"})})]}):null,_?(0,d.jsx)(aV,{toolId:"video"===j?"video-intelligence":"video-audio",toolName:"video"===j?O?.name??"Video Intelligence":N?.name??"Video Intelligence",toolDescription:"video"===j?O?.description??"Index video with timestamped speech, OCR, objects, and tracks.":N?.description??"Process video and audio files with transcription and frame analysis.",installSize:"video"===j?O?.installSize??"~120 KB client":N?.installSize??"~15 MB",systemDeps:"video"===j?O?.systemDeps:N?.systemDeps,successDescription:"video"===j?"Larkup Cloud is selected automatically. No GPU or server setup is needed.":"Choose an audio provider in Installed Tools before indexing audio.",serverId:A,onInstallComplete:()=>H()}):aa?(0,d.jsx)(aX,{}):(0,d.jsx)(aY,{mediaType:y,tab:j,assets:ae,isLoading:F,storageUsedBytes:D?.storage?.usedBytes??0,serverId:A,onMutate:()=>E(),onProcessingStarted:c,onUploadComplete:()=>{E(),a()},audioConfigured:!!(Y&&("local"===Y||Z)),onConfigureAudio:()=>C.push("/settings?section=tool-settings"),entryTab:m,onMediaTypeDetected:a=>l("image"===a?"images":a),videoToolInstalled:R,audioToolInstalled:S,toolLoading:K,onToolRequired:a=>void ak(a),onActionChange:g,onRefreshToolConfiguration:()=>void H(),videoIndexingAtCapacity:ah,videoConcurrencyLimit:ag,onVideoJobCancelled:()=>void ac(),groupId:h,indexingSurface:Q}),(0,d.jsx)(aD.K,{open:q,onOpenChange:r,title:"Request more video capacity",description:(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("p",{children:"Tell us where we should contact you. Your current usage summary is included automatically."}),(0,d.jsx)(J.p,{"aria-label":"Work email",type:"email",value:s,onChange:a=>t(a.target.value),placeholder:"you@company.com"}),(0,d.jsx)(T.T,{"aria-label":"Capacity request details",value:u,onChange:a=>v(a.target.value),placeholder:"How many video minutes or concurrent jobs do you need?",rows:3})]}),cancelText:"Not now",actionText:w?"Sending…":"Send request",onAction:()=>void al(),icon:(0,d.jsx)(at.A,{className:"size-5 text-amber-600"})})]})}function aV({toolId:a,toolName:b,toolDescription:c,installSize:f,systemDeps:g,successDescription:h,serverId:i,onInstallComplete:j}){let[l,m]=(0,e.useState)(!1),n=async()=>{m(!0);let c=k.oR.loading("Downloading and installing tool…",{description:"This may take a moment on first install."});try{let d=i?`?serverId=${encodeURIComponent(i)}`:"",e=await fetch(`/api/marketplace/${a}${d}`,{method:"POST"});if(!e.ok){let a=await e.json();throw Error(a.error||"Install failed")}k.oR.dismiss(c),k.oR.success(`${b} installed`,{description:h}),j()}catch(a){k.oR.dismiss(c),k.oR.error(a instanceof Error?a.message:"Failed to install tool")}finally{m(!1)}};return(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[(0,d.jsx)("div",{className:"flex size-14 items-center border border-border/90 justify-center rounded-xl bg-white",children:(0,d.jsx)(au.A,{className:"size-6 text-muted-foreground"})}),(0,d.jsx)("h3",{className:"mt-4 text-sm font-medium text-foreground",children:b}),(0,d.jsx)("p",{className:"mt-1.5 max-w-sm text-[13px] leading-relaxed text-muted-foreground",children:c}),(0,d.jsx)("div",{className:"mt-3 flex items-center gap-3 text-[11px] text-muted-foreground/90",children:(0,d.jsx)("span",{children:f})}),(0,d.jsxs)(I.$,{variant:"default",size:"sm",className:"mt-5 gap-1.5 text-[12px]",disabled:l,onClick:n,children:[l?(0,d.jsx)(s.A,{className:"size-3.5 animate-spin"}):(0,d.jsx)(au.A,{className:"size-3.5"}),l?"Installing...":"Install directly"]})]})}function aW({toolName:a,onInstall:b}){return(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-xl border border-primary/20 bg-primary/5 p-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-start gap-3",children:[(0,d.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:(0,d.jsx)(ap.A,{className:"size-4"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Want to index a video?"}),(0,d.jsxs)("p",{className:"mt-0.5 text-xs leading-relaxed text-muted-foreground",children:["Install ",a," first. It uses Larkup Cloud by default, so no local GPU is needed."]})]})]}),(0,d.jsxs)(I.$,{size:"sm",className:"shrink-0 gap-1.5",onClick:b,children:[(0,d.jsx)(au.A,{className:"size-3.5"}),"Install video tool"]})]})}function aX(){return(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[(0,d.jsx)("div",{className:"flex size-14 items-center border border-border/90 justify-center rounded-xl bg-white",children:(0,d.jsx)(at.A,{className:"size-6 text-muted-foreground"})}),(0,d.jsx)("h3",{className:"mt-4 text-sm font-medium text-foreground",children:"Video Intelligence Processing Disabled"}),(0,d.jsx)("p",{className:"mt-1.5 max-w-sm text-[13px] leading-relaxed text-muted-foreground",children:"The Video Intelligence tool is currently disabled in your agent settings. You cannot index new video or audio files until it is re-enabled."}),(0,d.jsx)(I.$,{variant:"default",size:"sm",className:"mt-5 text-[12px]",render:(0,d.jsx)(h(),{href:"/settings?tab=prompts",children:"Go to Settings"}),nativeButton:!1})]})}function aY({mediaType:a,tab:b,assets:c,isLoading:g,storageUsedBytes:h,serverId:i,onMutate:j,onProcessingStarted:n,onUploadComplete:o,audioConfigured:p,onConfigureAudio:q,entryTab:r,onMediaTypeDetected:t,videoToolInstalled:u,audioToolInstalled:A,toolLoading:B,onToolRequired:C,onActionChange:D,onRefreshToolConfiguration:E,videoIndexingAtCapacity:H,videoConcurrencyLimit:K,onVideoJobCancelled:L,groupId:M,indexingSurface:N}){var O;let P,Q,R,S=(0,e.useRef)(null),T=(0,e.useRef)(M);T.current=M;let U=(0,e.useRef)(null),V=(0,e.useRef)(null),W=(0,f.useRouter)(),[X,Y]=(0,e.useState)("images"),[Z,$]=(0,e.useState)(""),[_,aa]=(0,e.useState)(0),[ab,ac]=(0,e.useState)(aH[a]||[]),ad=b=>{ac(c=>{let d="function"==typeof b?b(c):b;return aH[a]=d,d})},[ae,af]=(0,e.useState)(!1),[ai,aj]=(0,e.useState)(!1),[ak,al]=(0,e.useState)(null),[am,an]=(0,e.useState)(""),[ao,aq]=(0,e.useState)([]),[at,au]=(0,e.useState)(!1),[aw,ax]=(0,e.useState)(null),[ay,az]=(0,e.useState)(a),[aA,aB]=(0,e.useState)(!1),[aD,aF]=(0,e.useState)(!1),[aJ,aQ]=(0,e.useState)(!1),[aR,aT]=(0,e.useState)(null),[aU,aV]=(0,e.useState)(!1),[aW,aX]=(0,e.useState)(null),[a_,a0]=(0,e.useState)(null),[a2,a3]=(0,e.useState)({});(0,e.useMemo)(()=>N?Object.fromEntries(N.form.fields.map(a=>[a.key,a.defaultValue??("checkbox"!==a.type&&"")])):{},[N]);let a4=i?`/api/media?serverId=${encodeURIComponent(i)}`:"/api/media";function a5(a){let b=a.map(a=>{let b="string"==typeof a?a:a.url,c="string"==typeof a?"":a.title?.trim()||"";return b.trim()?{url:b.trim(),...c?{title:c}:{}}:null}).filter(a=>!!a);0!==b.length&&aq(a=>{let c=new Map(a.map(a=>[a.url,a.title])),d=[...b,...a].filter((a,b,c)=>c.findIndex(b=>b.url===a.url)===b).map(a=>({...a,...a.title?{}:c.get(a.url)?{title:c.get(a.url)}:{}})).slice(0,10);try{localStorage.setItem(v.g9,JSON.stringify(d))}catch{}return d})}async function a6(b){let c=aK(Array.from(b)[0]);if(!c)return void k.oR.error("Choose an image, video, or audio file.");let d=(await Promise.all(Array.from(b).filter(a=>aK(a)===c).map(async a=>{let b=aK(a);if(!b)return null;let c=Math.random().toString(36).slice(2),d="image"===b||"audio"===b?URL.createObjectURL(a):void 0,e="image"===b?void 0:await new Promise(b=>{let c=document.createElement(a.type.startsWith("video/")?"video":"audio"),d=URL.createObjectURL(a),e=!1,f=a=>{e||(e=!0,window.clearTimeout(g),URL.revokeObjectURL(d),b(a))},g=window.setTimeout(()=>f(void 0),3e3);c.preload="metadata",c.onloadedmetadata=()=>{f(Number.isFinite(c.duration)?c.duration:void 0)},c.onerror=()=>{f(void 0)},c.src=d});return{id:c,file:a,type:b,preview:d,durationSecs:e}}))).filter(a=>null!==a);d.length>0&&(c===a?ad(a=>[...a,...d]):(aH[c]=[...aH[c]||[],...d],t(c)))}function a7(a){ad(b=>{let c=b.find(b=>b.id===a);return c?.preview&&URL.revokeObjectURL(c.preview),b.filter(b=>b.id!==a)})}function a9(a){let b=w(a),c=b.toLowerCase();c.includes("video intelligence tool needs an update")||c.includes("video intelligence tool not properly installed")||c.includes("video & audio tool needs an update")||c.includes("video & audio tool not properly installed")||c.includes("yt-dlp is required for youtube urls")?k.oR.error("Update Video Intelligence to continue.",{description:"Your installed tool is out of date. Update it, then try adding the media again.",duration:1e4,action:{label:"Update tool",onClick:()=>void ba()}}):c.includes("api key")||c.includes("configuration")||c.includes("missing provider")||c.includes("choose an audio provider")?k.oR.error(b,{duration:1e4,action:{label:"Go to Settings",onClick:()=>W.push("/settings?section=tool-settings")}}):k.oR.error(b)}async function ba(){let a=k.oR.loading("Updating Video Intelligence…");try{let b=i?`&serverId=${encodeURIComponent(i)}`:"",c=await fetch(`/api/marketplace/video-intelligence?force=true${b}`,{method:"POST"}),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error||"Could not update Video Intelligence.");k.oR.success("Video Intelligence updated",{id:a,description:"Try adding the media again."}),await E()}catch(b){k.oR.error(b instanceof Error?b.message:"Could not update Video Intelligence.",{id:a})}}function bb(b=a){return"image"===b||(B?(k.oR.message("Checking Video Intelligence…",{description:"Please wait a moment, then try again."}),!1):("video"===b?u:A)?"video"===b||!!p||(k.oR.error("Set up an audio provider to index audio.",{description:"Select a provider and add its API key in Installed Tools.",duration:1e4,action:{label:"Set up audio",onClick:q}}),!1):(C(b),!1))}function bc(a){return"video"!==a||!H||(k.oR.error("A video is already being indexed.",{description:`Your plan allows ${K} video indexing job${1===K?"":"s"} at a time. Stop the current video or wait for it to finish.`}),!1)}async function bd(a,b){for(let c=0;c<a.length;c+=4){let d=a.slice(c,c+4),e=await fetch("/api/media/process",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({assetIds:d,serverId:i,toolInputs:b})});if(!e.ok){let a;try{a=await e.json()}catch{a={error:"Media processing failed"}}throw Error(a.error??"Media processing failed")}}await j(),n?.()}function be(){return am.split(/[\n,]/).map(a=>a.trim()).filter(Boolean).slice(0,10)}async function bf(){let a,b=be();if(0===b.length)return;let c=(a=b[0].split("?")[0].toLowerCase(),/\.(png|jpe?g|webp|gif|svg|avif)$/.test(a)?"image":/\.(mp3|wav|ogg|m4a|flac|aac)$/.test(a)?"audio":"video");if(az(c),t(c),bb(c)){aB(!0);try{if("image"===c){let a=b.map(a=>({originalUrl:a,mediaType:"unknown"}));ax(a),a5(a.map(({originalUrl:a})=>({url:a})));return}let a=await fetch(a4,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({urls:b,estimateOnly:!0,mediaType:c})}),d=await a.json();if(!a.ok)throw Error(d.error??"Could not inspect media URLs");let e=d.estimates;ax(e),a5(e.map(a=>({url:a.originalUrl,title:a.title})))}catch(a){a9(a)}finally{aB(!1)}}}async function bg(a=!1,b){let c=be();if(0===c.length||!aw||!bb(ay))return!1;c=function(a,b,c){if(!c)return a;let d=new Map(b?.map(a=>[a.originalUrl,a]));return a.map(a=>{let b=d.get(a)?.singleItemUrl;if(b)return b;try{let b=new URL(a);if(b.hostname.includes("youtube.com"))return b.searchParams.delete("list"),b.searchParams.delete("index"),b.toString()}catch{}return a})}(c,aw,a),aF(!0);try{let a=N?b?.[N.toolId]:void 0,d=a&&"object"==typeof a&&"string"==typeof a.goal?a.goal.trim():void 0,e=await fetch(a4,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({urls:c,mediaType:ay,groupId:T.current,toolInputs:b,...d?{indexingInstructions:d}:{}})}),f=await e.json();if(!e.ok)throw Error(f.error??"Media import failed");let g=new Map(aw.map(a=>[a.originalUrl,a.title]));a5(c.map(a=>({url:a,title:g.get(a)})));let h=f.assets.map(a=>a.id);return k.oR.success("Media import started",{description:"Queued for download and indexing. You can safely leave in the meantime.",duration:8e3}),await bd(h),an(""),ax(null),al(null),o(),!0}catch(a){return a9(a),al(null),!1}finally{aF(!1)}}async function bh(){if(0===ab.length||!bb()||!bc(a))return;let b=T.current;aj(!0);let c=0,d=[],e=ab.length;al({message:"Starting upload...",current:0,total:e});try{for(let a=0;a<ab.length;a+=5){al({message:"Uploading files...",current:c,total:e});let f=ab.slice(a,a+5),g=new FormData;f.forEach(a=>g.append("file",a.file)),g.append("mediaDurations",JSON.stringify(f.map(a=>a.durationSecs??null)));let h="string"==typeof a2.goal?a2.goal.trim():"";h&&g.append("indexingInstructions",h),g.append("indexingQuality","50"),N&&g.append("toolInputs",JSON.stringify({[N.toolId]:a2})),g.append("groupId",b);let i=await fetch(a4,{method:"POST",body:g}),j=await i.json();if(!i.ok)throw Error(j.error??"Upload failed");d.push(...j.assets.map(a=>a.id)),c+=f.length,al({message:"Uploading files...",current:c,total:e})}d.length>0&&(al({message:"Queueing files for indexing...",current:0,total:c}),await bd(d));let f="video"===a?"Video":"audio"===a?"Audio":"Image";k.oR.success(`${f} indexing started`,{description:"image"===a?"You can safely leave while we make it searchable.":`Expected time: about ${aN(bs)}. You can safely leave while we index it.`,duration:8e3}),al(null),aV(!1),ab.forEach(a=>{a.preview&&URL.revokeObjectURL(a.preview)}),aH[a]=[],ad([]),aj(!1),o()}catch(a){a9(a),aj(!1),al(null)}}function bi(a=!1){if(bc(ay)){if("video"===ay&&!N){E(),k.oR.message("Loading video indexing options…",{description:"Wait a moment for the installed tool configuration, then try Add media again."});return}if("video"===ay&&N?.appliesTo.includes(ay)){aX(null),a0({ignorePlaylist:a}),aV(!0);return}bg(a)}}async function bj(a){try{let b=new URLSearchParams({id:a,force:"true"});i&&b.set("serverId",i);let c=await fetch(`/api/media?${b.toString()}`,{method:"DELETE"});if(!c.ok){let a=await c.json().catch(()=>null);throw Error(a?.error||"Failed to delete media.")}k.oR.success("File removed"),j(),L()}catch(a){a9(a)}}async function bk(a){try{let b=await fetch("/api/media/process",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a.processingPaused?"resume":"pause",assetId:a.id,serverId:i})}),c=await b.json();if(!b.ok)throw Error(c.error||"Could not update media indexing.");k.oR.success(a.processingPaused?"Media indexing resumed.":"Media indexing paused."),await j()}catch(a){a9(a)}}async function bl(a){if("video"===a.type&&N){aX([a.id]),aV(!0);return}al({message:"Retrying media processing...",current:0,total:1});try{await bd([a.id]),k.oR.success(`${"video"===a.type?"Video":"audio"===a.type?"Audio":"Image"} indexing started`),j()}catch(a){a9(a)}finally{al(null)}}async function bm(){if(aW?.length){aj(!0),al({message:"Queueing media for indexing...",current:0,total:aW.length});try{await bd(aW,N?{[N.toolId]:a2}:void 0),k.oR.success("Video indexing started"),aV(!1),aX(null)}catch(a){a9(a)}finally{aj(!1),al(null)}}}async function bn(){!a_||await bg(a_.ignorePlaylist,N?{[N.toolId]:a2}:void 0)&&(aV(!1),a0(null))}let bo=ab.reduce((a,b)=>a+(b.durationSecs??0),0),bp=aG(aw,!1),bq=aW?c.filter(a=>aW.includes(a.id)).reduce((a,b)=>a+(b.durationSecs??0),0):a_?aG(aw,a_.ignorePlaylist):bo,br="string"==typeof a2.indexingMode?a2.indexingMode:"balanced",bs=aM(bo,"video"===a,br);aM(bp,"video"===a,br);let bt=c.filter(aS),bu=c.filter(a=>{let b=a.type===aP[X],c=a.fileName.toLowerCase().includes(Z.trim().toLowerCase());return b&&c}),bv=Math.max(1,Math.ceil(bu.length/12)),bw=Math.min(_,bv-1),bx=bu.slice(12*bw,(bw+1)*12),by=0===bu.length?0:12*bw+1,bz=Math.min((bw+1)*12,bu.length);return be().length,(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(aE,{surface:N??null,open:aU,values:a2,submitting:ai||aD,sourceDurationSecs:bq||void 0,onOpenChange:a=>{aV(a),a||(aX(null),a0(null))},onChange:(a,b)=>a3(c=>({...c,[a]:b})),onConfirm:()=>void(aW?bm():a_?bn():bh())}),ak&&(0,d.jsxs)("div",{className:"space-y-1.5 rounded-lg border border-border bg-muted/20 px-3 py-2.5",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between text-[11px] text-muted-foreground tabular-nums",children:[(0,d.jsx)("span",{children:ak.message||`Processing ${ak.current} of ${ak.total}`}),(0,d.jsxs)("span",{children:[Math.round(ak.current/Math.max(ak.total,1)*100),"%"]})]}),(0,d.jsx)(ah.ke,{value:ak.current/Math.max(ak.total,1)*100,className:"h-1.5"})]}),bt.length>0?(0,d.jsx)(a1,{assets:bt,onPause:bk,onRemove:aT}):null,"url"===r?(0,d.jsxs)("div",{className:"w-full",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("div",{className:"relative flex-1",children:[(0,d.jsx)(J.p,{ref:U,"aria-label":"Import media URL",autoComplete:"off",value:am,onChange:a=>{an(a.target.value),ax(null),au(!0)},onFocus:()=>au(!0),placeholder:"Paste an image, video, or audio URL",className:"h-10 bg-white pr-8 text-xs"}),at&&ao.length>0&&(0,d.jsxs)("div",{ref:V,className:"absolute top-full z-20 mt-1 w-full overflow-hidden rounded-md border border-border bg-popover",children:[(0,d.jsx)("p",{className:"px-3 pb-1 pt-2 text-[10px] font-medium uppercase tracking-wide text-muted-foreground",children:"Recent URLs"}),(0,d.jsx)("div",{className:"max-h-52 overflow-y-auto py-1",children:ao.map(({url:a,title:b})=>(0,d.jsxs)("div",{className:"group flex cursor-pointer items-center gap-2 px-3 py-1.5 hover:bg-muted",onClick:()=>{an(a),ax(null),au(!1)},children:[(0,d.jsx)(y.A,{className:"size-3 shrink-0 text-muted-foreground","aria-hidden":"true"}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block truncate text-xs text-foreground",children:b||a}),b?(0,d.jsx)("span",{className:"block truncate text-[10px] text-muted-foreground",children:a}):null]}),(0,d.jsx)("button",{type:"button","aria-label":`Remove ${a} from recent URLs`,className:"rounded p-0.5 text-muted-foreground opacity-0 transition-opacity hover:text-foreground group-hover:opacity-100 focus:opacity-100",onClick:b=>{b.stopPropagation(),aq(b=>{let c=b.filter(b=>b.url!==a);try{localStorage.setItem(v.g9,JSON.stringify(c))}catch{}return c})},children:(0,d.jsx)(z.A,{className:"size-3","aria-hidden":"true"})})]},a))})]})]}),!D&&(0,d.jsxs)(I.$,{type:"button",variant:"outline",size:"sm",className:"h-9 text-xs",disabled:aA||aD||0===be().length,onClick:bf,children:[aA?(0,d.jsx)(s.A,{className:"mr-1.5 size-3 animate-spin"}):(0,d.jsx)(y.A,{className:"mr-1.5 size-3"}),"Review"]}),!D&&(0,d.jsxs)(I.$,{type:"button",size:"sm",className:"h-9 text-xs",disabled:!aw||aD,onClick:()=>{(aw?.reduce((a,b)=>a+(b.entryCount??1),0)??0)>1?aQ(!0):bi()},children:[aD?(0,d.jsx)(s.A,{className:"mr-1.5 size-3 animate-spin"}):(0,d.jsx)(av.A,{className:"mr-1.5 size-3"}),"Import"]})]}),(0,d.jsx)(aC.Lt,{open:aJ,onOpenChange:aQ,children:(0,d.jsxs)(aC.EO,{children:[(0,d.jsxs)(aC.wd,{children:[(0,d.jsx)(aC.r7,{children:"Playlist Detected"}),(0,d.jsx)(aC.$v,{children:"You entered a URL that points to a playlist. Do you want to download and index the entire playlist, or just the single video?"})]}),(0,d.jsxs)(aC.ck,{children:[(0,d.jsx)(aC.Zr,{children:"Cancel"}),(0,d.jsx)(I.$,{variant:"outline",onClick:()=>{aQ(!1),bi(!0)},children:"Single Video"}),(0,d.jsx)(aC.Rx,{onClick:()=>{aQ(!1),bi(!1)},children:"Entire Playlist"})]})]})}),(0,d.jsx)("p",{className:"mt-2 pl-1 text-[11px] leading-relaxed text-muted-foreground",children:"Direct media links, YouTube videos, or playlists. Add up to 10 URLs separated by commas."}),aw?(aw.reduce((a,b)=>a+(b.entryCount??1),0),(0,d.jsx)("div",{className:"mt-4 flex flex-col gap-4 border-t border-border/70 pt-4",children:("audio"===a?aw.slice(0,1):aw.filter(a=>"video"===a.mediaType).slice(0,1)).map((b,c)=>"audio"===a?(0,d.jsxs)("div",{className:"rounded-xl border border-border/70 bg-muted/20 p-3",children:[(0,d.jsx)("p",{className:"mb-2 truncate text-[11px] font-medium text-foreground",children:"Preview before importing"}),(0,d.jsx)("audio",{controls:!0,preload:"metadata",src:b.originalUrl,className:"h-9 w-full"})]},c):b.isYouTube?(0,d.jsx)(aL,{estimate:b},c):(0,d.jsx)("video",{src:b.originalUrl,controls:!0,className:"w-full max-w-sm rounded-md aspect-video bg-muted object-cover 35 border border-border"},c))})):null]}):(0,d.jsxs)("div",{onDragOver:a=>{a.preventDefault(),af(!0)},onDragLeave:a=>{a.preventDefault(),af(!1)},onDrop:a=>{a.preventDefault(),af(!1),a.dataTransfer.files.length>0&&a6(a.dataTransfer.files)},onClick:()=>S.current?.click(),className:(0,l.cn)("flex flex-col items-center justify-center gap-2.5 rounded-xl border-2 border-dashed px-6 py-10 cursor-pointer transition-colors",ae?"border-primary bg-primary/5":"border-border hover:border-primary/40 hover:bg-muted/20"),children:[(0,d.jsx)(as.A,{className:"size-5 text-muted-foreground"}),(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("p",{className:"text-[13px] font-medium text-foreground",children:"Drop media files here or click to browse"}),(0,d.jsx)("p",{className:"mt-0.5 text-[11px] text-muted-foreground",children:"Images, Video, Audio"})]}),(0,d.jsx)("input",{ref:S,type:"file",multiple:!0,accept:"image/*,video/*,audio/*",className:"hidden",onChange:a=>a.target.files&&a6(a.target.files)})]}),ab.length>0&&(0,d.jsxs)("div",{className:"space-y-3",children:["image"!==a&&bo>0?(0,d.jsxs)("div",{className:"grid gap-2 rounded-lg border border-border bg-muted/15 px-3 py-2.5 sm:grid-cols-3",children:[(0,d.jsx)(a8,{label:"Duration",value:(P=Math.floor((O=bo)/3600),Q=Math.floor(O%3600/60),R=Math.floor(O%60),P>0?`${P}h ${Q}m`:`${Q}:${String(R).padStart(2,"0")}`)}),(0,d.jsx)(a8,{label:"Expected time",value:`~${aN(bs)}`}),(0,d.jsx)(a8,{label:"Estimated API cost",value:`~$${bs.transcriptionCost.toFixed(2)}${"video"===a?` + up to ${bs.visualScenes} vision calls`:""}`})]}):null,N&&ab.length>0?(0,d.jsxs)("button",{type:"button",onClick:()=>aV(!0),className:"flex w-full items-center justify-between rounded-lg border border-border bg-muted/10 px-3 py-3 text-left hover:bg-muted/30",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-xs font-medium",children:N.title}),(0,d.jsx)("span",{className:"mt-0.5 block text-[11px] text-muted-foreground",children:"string"==typeof a2.goal&&a2.goal.trim()?"Custom indexing instructions are ready.":N.description??"Configure this tool before indexing."})]}),(0,d.jsx)(av.A,{className:"size-4 text-primary"})]}):null,(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("span",{className:"text-[13px] font-medium text-foreground",children:[ab.length," file",1!==ab.length?"s":""," ready"]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("button",{type:"button",onClick:()=>{ab.forEach(a=>{a.preview&&URL.revokeObjectURL(a.preview)}),ad([])},className:"text-[11px] text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:"Clear All"}),!D&&(0,d.jsxs)(I.$,{onClick:function(){if(bc(a)){if("video"===a&&!N){E(),k.oR.message("Loading video indexing options…",{description:"Wait a moment for the installed tool configuration, then try Add media again."});return}if(N){aX(null),aV(!0);return}bh()}},disabled:ai||0===ab.length,size:"sm",className:"h-7 text-xs px-3",children:[ai?(0,d.jsx)(s.A,{className:"size-3 animate-spin mr-1.5"}):(0,d.jsx)(m.A,{className:"size-3 mr-1.5"}),"Upload ",ab.length," file",1!==ab.length?"s":""]})]})]}),(0,d.jsx)("div",{className:"max-h-87.5 overflow-y-auto pr-1",children:"image"===a?(0,d.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3",children:[ab.slice(0,8).map(a=>(0,d.jsxs)("div",{className:"group relative aspect-4/3 rounded-xl overflow-hidden bg-muted/30 border border-border/50",children:[a.preview&&(0,d.jsx)("img",{src:a.preview,alt:a.file.name,className:"size-full object-cover transition-transform duration-300 group-hover:scale-105"}),(0,d.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),a7(a.id)},className:"absolute right-2 top-2 rounded-full bg-black/50 p-1.5 text-white opacity-0 group-hover:opacity-100 transition-opacity",children:(0,d.jsx)(z.A,{className:"size-3.5"})})]},a.id)),ab.length>8&&(0,d.jsxs)("div",{className:"flex items-center justify-center rounded-xl bg-muted/30 border border-border/50 text-muted-foreground text-sm font-medium aspect-4/3",children:["+",ab.length-8," more"]})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[ab.slice(0,10).map(b=>{let c="video"===a?ap.A:ar.A;return(0,d.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-border px-3 py-2 group",children:[(0,d.jsx)("div",{className:"flex size-8 items-center justify-center rounded-md bg-muted",children:(0,d.jsx)(c,{className:"size-3.5 text-muted-foreground"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"truncate text-[12px] font-medium text-foreground",children:b.file.name}),(0,d.jsx)("p",{className:"text-[10px] text-muted-foreground",children:aI(b.file.size)})]}),"audio"===a&&b.preview?(0,d.jsx)("audio",{"aria-label":`Preview ${b.file.name}`,controls:!0,preload:"metadata",src:b.preview,className:"h-8 max-w-44",onClick:a=>a.stopPropagation()}):null,(0,d.jsx)("button",{type:"button",onClick:()=>a7(b.id),className:"opacity-0 group-hover:opacity-100 p-1 text-muted-foreground hover:text-foreground transition-all",children:(0,d.jsx)(z.A,{className:"size-3"})})]},b.id)}),ab.length>10&&(0,d.jsxs)("div",{className:"flex items-center justify-center py-2 text-xs text-muted-foreground border border-dashed rounded-lg bg-muted/10",children:["+",ab.length-10," more files"]})]})})]}),g&&0===c.length?(0,d.jsx)("div",{className:"flex justify-center py-10",children:(0,d.jsx)(s.A,{className:"size-4 animate-spin text-muted-foreground"})}):c.length>0?(0,d.jsx)("div",{className:"space-y-2",children:(0,d.jsxs)("div",{className:"flex items-center justify-between py-2 px-3 rounded-lg border border-border bg-muted/20",children:[(0,d.jsxs)("h4",{className:"text-[13px] font-medium text-foreground",children:[c.length," Uploaded Media"]}),(0,d.jsxs)(ag.lG,{children:[(0,d.jsx)(ag.zM,{render:(0,d.jsx)(I.$,{variant:"outline",size:"sm",className:"h-7 text-xs px-3",children:"View Uploads"})}),(0,d.jsxs)(ag.Cf,{className:"h-[calc(100vh-2rem)] max-h-190 w-[calc(100vw-2rem)] sm:max-w-5xl lg:max-w-6xl grid-rows-[auto_minmax(0,1fr)_auto] gap-0 overflow-hidden p-0 bg-background",children:[(0,d.jsxs)(ag.c7,{className:"gap-3 px-5 py-4 sm:px-6",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)(ag.L3,{children:"Uploaded media"}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Browse, search, and manage every media upload in one place."})]}),(0,d.jsxs)("div",{className:"relative w-full",children:[(0,d.jsx)(x.A,{"aria-hidden":"true",className:"pointer-events-none absolute left-3 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground"}),(0,d.jsx)(J.p,{"aria-label":"Search uploaded media",value:Z,onChange:a=>{$(a.target.value),aa(0)},placeholder:"Search uploads",className:"h-9 w-full pl-9 text-sm bg-card/90"})]}),(0,d.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:aO.map(a=>{let b=a.icon,e=X===a.id,f=c.filter(b=>b.type===aP[a.id]).length;return(0,d.jsxs)("button",{type:"button",onClick:()=>{Y(a.id),aa(0)},className:(0,l.cn)("inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-medium transition-colors",e?"bg-muted text-foreground":"border border-border bg-transparent text-muted-foreground hover:bg-muted/50 hover:text-foreground"),children:[(0,d.jsx)(b,{className:"size-3.5",strokeWidth:e?2:1.75}),a.label,(0,d.jsx)("span",{className:"text-[10px] tabular-nums text-muted-foreground",children:f})]},a.id)})})]}),(0,d.jsx)("div",{className:"min-h-0 overflow-y-auto px-5 py-4 sm:px-6",children:0===bu.length?(0,d.jsxs)("div",{className:"flex min-h-48 flex-col items-center justify-center rounded-lg bg-muted/20 px-6 text-center",children:[(0,d.jsx)(x.A,{className:"size-4 text-muted-foreground"}),(0,d.jsx)("p",{className:"mt-3 text-sm font-medium text-foreground",children:"No uploads found"}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:Z?`No ${aO.find(a=>a.id===X)?.label.toLowerCase()} match “${Z}”.`:`There are no ${aO.find(a=>a.id===X)?.label.toLowerCase()} uploads yet.`})]}):"images"===X?(0,d.jsx)(aZ,{assets:bx,onDelete:a=>aT(c.find(b=>b.id===a)??null),serverId:i}):(0,d.jsx)(a$,{assets:bx,mediaType:aP[X],onDelete:a=>aT(c.find(b=>b.id===a)??null),onProcess:bl})}),bu.length>0?(0,d.jsxs)("div",{className:"flex items-center justify-between border-t px-5 py-3 text-xs text-muted-foreground sm:px-6",children:[(0,d.jsxs)("span",{className:"tabular-nums",children:[by,"–",bz," of ",bu.length]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(I.$,{type:"button",variant:"ghost",size:"icon-sm","aria-label":"Previous uploads page",disabled:0===bw,onClick:()=>aa(a=>Math.max(0,a-1)),children:(0,d.jsx)(F.A,{className:"size-4"})}),(0,d.jsxs)("span",{className:"min-w-12 text-center tabular-nums",children:[bw+1," / ",bv]}),(0,d.jsx)(I.$,{type:"button",variant:"ghost",size:"icon-sm","aria-label":"Next uploads page",disabled:bw>=bv-1,onClick:()=>aa(a=>Math.min(bv-1,a+1)),children:(0,d.jsx)(G.A,{className:"size-4"})})]})]}):null]})]})]})}):0===ab.length?(0,d.jsx)("div",{className:"py-10 text-center",children:(0,d.jsx)("p",{className:"text-[13px] text-muted-foreground",children:"No media files yet"})}):null,(0,d.jsx)(aC.Lt,{open:!!aR,onOpenChange:a=>!a&&aT(null),children:(0,d.jsxs)(aC.EO,{children:[(0,d.jsxs)(aC.wd,{children:[(0,d.jsxs)(aC.r7,{children:["Remove this ",aR?.type??"media"," file?"]}),(0,d.jsx)(aC.$v,{children:aR&&aS(aR)?"This will stop its indexing job and permanently remove any progress already made.":"This permanently removes the file and its searchable data from your knowledge base."})]}),(0,d.jsxs)(aC.ck,{children:[(0,d.jsx)(aC.Zr,{children:"Keep file"}),(0,d.jsx)(aC.Rx,{className:"bg-destructive text-white hover:bg-destructive/90",onClick:()=>{aR&&bj(aR.id),aT(null)},children:"Remove file"})]})]})})]})}function aZ({assets:a,onDelete:b,serverId:c}){let[f,g]=(0,e.useState)(null);return(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:a.map(a=>(0,d.jsxs)("div",{onClick:()=>g(a),className:"group relative aspect-2/1 sm:aspect-21/9 rounded-xl overflow-hidden bg-muted/30 border border-border/50 cursor-pointer",children:[(0,d.jsx)("img",{src:aJ(a.id,c,!0),alt:a.fileName,className:"size-full object-cover transition-transform duration-300 group-hover:scale-105",loading:"lazy",onError:b=>{b.target.src=aJ(a.id,c)}}),"processing"===a.processingStatus&&(0,d.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center bg-black/50 backdrop-blur-sm p-4 text-center",children:[(0,d.jsx)(s.A,{className:"size-5 animate-spin text-white mb-2"}),(0,d.jsx)("span",{className:"text-[10px] text-white/90 line-clamp-2 leading-tight",children:a.processingMessage||"Processing..."}),(0,d.jsx)(ah.ke,{value:a.processingProgress??0,className:(0,l.cn)("mt-2 h-1.5 w-4/5 bg-white/20",aT)}),(0,d.jsxs)("span",{className:"mt-1 text-[9px] tabular-nums text-white/75",children:[Math.round(a.processingProgress??0),"%"]})]}),"failed"===a.processingStatus&&(0,d.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center bg-black/50 backdrop-blur-sm p-4 text-center",children:[(0,d.jsx)(at.A,{className:"size-5 text-red-400 mb-2"}),(0,d.jsx)("span",{className:"text-[10px] text-red-200 line-clamp-2 leading-tight",children:a.processingError||"Failed"})]}),"pending"===a.processingStatus&&(0,d.jsxs)("div",{className:"absolute bottom-2 right-2 bg-black/50 backdrop-blur-sm px-2 py-1 rounded-sm flex items-center gap-1.5 max-w-[80%]",children:[(0,d.jsx)(y.A,{className:"size-3 text-white/80 shrink-0"}),(0,d.jsx)("span",{className:"text-[9px] text-white/90 truncate",children:a.processingMessage||"Pending..."})]}),"completed"===a.processingStatus&&a.activeVideoKnowledgeRevisionId?(0,d.jsx)("div",{className:"absolute bottom-2 left-2 rounded-sm bg-emerald-600/85 px-2 py-1 text-[9px] text-white",children:"Evidence revision active"}):null,(0,d.jsx)("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors pointer-events-none",children:aS(a)?null:(0,d.jsx)("button",{type:"button","aria-label":`Delete ${a.fileName}`,onClick:c=>{c.stopPropagation(),b(a.id)},className:"absolute right-2 top-2 rounded-full bg-black/50 p-1.5 text-white opacity-0 group-hover:opacity-100 transition-opacity pointer-events-auto hover:bg-black/70",children:(0,d.jsx)(E.A,{className:"size-3.5"})})})]},a.id))}),f&&(0,d.jsx)("div",{className:"fixed inset-0 z-9999 flex items-center justify-center bg-black/80 backdrop-blur-sm p-4 md:p-8 animate-in fade-in duration-200",onClick:()=>g(null),children:(0,d.jsxs)("div",{className:"relative max-w-full max-h-full",children:[(0,d.jsx)("img",{src:aJ(f.id,c),alt:f.fileName,className:"max-w-full max-h-[90vh] rounded-lg object-contain",onClick:a=>a.stopPropagation()}),(0,d.jsx)("button",{onClick:()=>g(null),className:"absolute -top-3 -right-3 md:-top-5 md:-right-5 rounded-full bg-black/50 border border-white/20 p-2 text-white hover:bg-black/80 transition-colors",children:(0,d.jsx)(z.A,{className:"size-5"})}),(0,d.jsx)("div",{className:"absolute bottom-0 inset-x-0 p-4 bg-linear-to-t from-black/80 to-transparent text-white rounded-b-lg opacity-0 hover:opacity-100 transition-opacity flex justify-between items-end",children:(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:f.fileName}),(0,d.jsx)("p",{className:"text-xs text-white/70 mt-1",children:aI(f.fileSize)})]})})]})})]})}function a$({assets:a,mediaType:b,onDelete:c,onProcess:e}){let f="video"===b?ap.A:ar.A;return(0,d.jsx)("div",{className:"flex flex-col gap-1.5",children:a.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-border px-3 py-2.5 group",children:[(0,d.jsx)("div",{className:"flex size-9 items-center justify-center rounded-md bg-muted shrink-0",children:(0,d.jsx)(f,{className:"size-4 text-muted-foreground"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"truncate text-[12px] font-medium text-foreground",children:a.fileName}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground",children:aI(a.fileSize)}),a.durationSecs?(0,d.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["\xb7 ",Math.floor(a.durationSecs/60),":",String(Math.floor(a.durationSecs%60)).padStart(2,"0")]}):null,(0,d.jsx)(a0,{asset:a}),"video"===b?(0,d.jsx)(a_,{asset:a}):null]}),aS(a)?(0,d.jsx)(ah.ke,{value:a.processingProgress??0,"aria-label":"Overall indexing progress",className:(0,l.cn)("mt-2 h-1",aT)}):null]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:["failed"===a.processingStatus?(0,d.jsx)(I.$,{type:"button",variant:"secondary",size:"sm",className:"h-7 px-2 text-[11px]",onClick:()=>e(a),children:"Retry"}):null,"completed"===a.processingStatus?(0,d.jsx)(I.$,{type:"button",variant:"ghost",size:"sm",className:"h-7 px-2 text-[11px] text-muted-foreground",onClick:()=>e(a),children:"Re-index"}):null,aS(a)?null:(0,d.jsx)("button",{type:"button","aria-label":`Delete ${a.fileName}`,onClick:()=>c(a.id),className:"text-red-500 p-1.5 rounded cursor-pointer hover:text-red-600 transition-all",children:(0,d.jsx)(E.A,{className:"size-3.5"})})]})]},a.id))})}function a_({asset:a}){let b=(0,ao.aB)(a);if(null===b)return null;let c=Math.floor(b/60),e=b%60,f=c>0?`${c}m ${e}s`:`${e}s`;return(0,d.jsxs)("span",{className:"flex items-center gap-0.5 text-[10px] text-muted-foreground",title:"Time taken to index this video",children:["\xb7 ",(0,d.jsx)(y.A,{className:"size-2.5"})," Indexed in ",f]})}function a0({asset:a}){let b=a.processingStatus;return"completed"===b?(0,d.jsxs)("span",{className:"flex items-center gap-0.5 text-[10px] text-emerald-600",children:[(0,d.jsx)(aw.A,{className:"size-2.5"}),"Indexed"]}):"processing"===b?(0,d.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-blue-600 bg-blue-50/50 px-1.5 py-0.5 rounded-sm",children:[(0,d.jsx)(s.A,{className:"size-2.5 animate-spin shrink-0"}),(0,d.jsx)("span",{className:"truncate max-w-30 sm:max-w-50",title:a.processingMessage||"Processing...",children:a.processingMessage||"Processing..."}),(0,d.jsxs)("span",{className:"tabular-nums",children:[(0,ao.IE)(a.processingProgress??0),"% overall"]})]}):"pending"===b&&a.processingMessage?(0,d.jsxs)("span",{className:"flex items-center gap-1 rounded-sm bg-blue-50/50 px-1.5 py-0.5 text-[10px] text-blue-600",children:[(0,d.jsx)(s.A,{className:"size-2.5 shrink-0 animate-spin"}),(0,d.jsx)("span",{className:"max-w-30 truncate sm:max-w-50",title:a.processingMessage,children:a.processingMessage}),(0,d.jsxs)("span",{className:"tabular-nums",children:[(0,ao.IE)(a.processingProgress??0),"%"]})]}):"failed"===b?(0,d.jsxs)("span",{className:"flex items-center gap-0.5 text-[10px] text-red-500",title:a.processingError,children:[(0,d.jsx)(at.A,{className:"size-2.5 shrink-0"}),(0,d.jsx)("span",{className:"truncate max-w-30",children:a.processingError||"Failed"})]}):(0,d.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-muted-foreground/60",children:[(0,d.jsx)(y.A,{className:"size-2.5 shrink-0"}),(0,d.jsx)("span",{className:"truncate max-w-30",title:a.processingMessage||"Pending...",children:a.processingMessage||"Pending..."})]})}function a1({assets:a,onPause:b,onRemove:c}){return(0,d.jsxs)("section",{"aria-live":"polite","aria-label":"Active media indexing jobs",className:"space-y-3 rounded-xl border border-emerald-500 bg-emerald-50/20 p-3 dark:border-emerald-700/60 dark:bg-emerald-950/20",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(s.A,{className:"size-3.5 animate-spin text-emerald-600 dark:text-emerald-400"}),(0,d.jsx)("div",{className:"min-w-0 flex-1",children:(0,d.jsxs)("p",{className:"text-[12px] font-medium text-foreground",children:["Indexing ",a.length," ",1===a.length?"file":"files"]})})]}),(0,d.jsx)("div",{className:"space-y-2",children:a.map(a=>(0,d.jsx)(a2,{asset:a,onPause:b,onRemove:c},a.id))})]})}function a2({asset:a,onPause:b,onRemove:c}){let e=(0,aA.X)(a),f=(0,ao.GZ)(a.processingSteps),g=(0,ao.gg)(f);return(0,d.jsxs)("div",{className:"group relative space-y-2 rounded-lg border border-transparent bg-background/40 p-2.5",children:[(0,d.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,d.jsx)("div",{className:"min-w-0 pr-6",children:(0,d.jsx)("p",{className:"truncate text-[11px] font-medium text-foreground",children:a.fileName})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"shrink-0 text-[10px] font-medium tabular-nums text-emerald-600 dark:text-emerald-400",children:g?"Finalizing":`${(0,ao.IE)(e)}%`}),"image"!==a.type?(0,d.jsx)("button",{type:"button",title:a.processingPaused?"Resume Indexing":"Pause Indexing","aria-label":a.processingPaused?`Resume ${a.fileName}`:`Pause ${a.fileName}`,onClick:()=>b(a),className:"rounded-full p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:a.processingPaused?(0,d.jsx)(ax.A,{className:"size-3"}):(0,d.jsx)(ay.A,{className:"size-3"})}):null,(0,d.jsx)("button",{type:"button",title:"Remove file","aria-label":`Remove ${a.fileName}`,onClick:()=>c(a),className:"-mr-1 rounded-full p-1 text-muted-foreground transition-colors hover:bg-red-100 hover:text-red-600 dark:hover:bg-red-900/30",children:(0,d.jsx)(z.A,{className:"size-3"})})]})]}),(0,d.jsx)(a4,{asset:a}),g?(0,d.jsx)(a3,{}):(0,d.jsx)(aB.o,{value:e,step:f,paused:a.processingPaused}),a.activeVideoKnowledgeJobId?(0,d.jsxs)("p",{className:"truncate text-[9px] text-muted-foreground",title:a.activeVideoKnowledgeJobId,children:["Knowledge job ",a.activeVideoKnowledgeJobId.slice(0,8)]}):null]})}function a3(){return(0,d.jsx)("div",{role:"progressbar","aria-label":"Finalizing video indexing","aria-valuetext":"Finalizing verified results",className:"relative h-2 min-h-2 w-full overflow-hidden rounded-full bg-emerald-100 dark:bg-emerald-950/60",children:(0,d.jsx)(an.P.div,{className:"absolute inset-y-0 left-0 w-2/5 rounded-full bg-emerald-500 dark:bg-emerald-400",initial:{x:"-120%"},animate:{x:["-120%","270%"]},transition:{duration:1.15,ease:"easeInOut",repeat:1/0}})})}function a4({asset:a}){let b=(0,ao.GZ)(a.processingSteps),c=(0,ao.mg)(b);return(0,d.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-1.5",children:[(0,d.jsx)(a7,{startTime:(0,ao.kP)(a)}),(0,d.jsx)("p",{className:"truncate text-[10px] text-muted-foreground animate-pulse",children:a.processingPaused?"Paused — resume when you are ready.":a.processingMessage||"Preparing media indexing..."})]}),!a.processingPaused&&c?(0,d.jsx)(a5,{step:b,description:c}):null]})}function a5({step:a,description:b}){let[c,f]=(0,e.useState)(()=>Date.now()),g=(0,ao.Df)(a,c);return(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-1.5 text-[9px] text-muted-foreground/80","aria-live":"polite",children:[(0,d.jsx)("span",{className:"truncate",children:g?"Waiting for a fresh worker update…":`Worker active \xb7 ${b}`}),g?null:(0,d.jsx)(a6,{step:a})]})}function a6({step:a}){let[b,c]=(0,e.useState)(()=>Date.now()),f=(0,ao.cE)(a,b);return null===f?null:(0,d.jsxs)("span",{className:"shrink-0 whitespace-nowrap text-muted-foreground/70",children:["~",function(a){let b=Math.round(a/60);if(b<1)return"<1 min";if(b<60)return`${b} min`;let c=Math.floor(b/60);return`${c}h ${b%60}m`}(f)," left"]})}function a7({startTime:a}){let[b,c]=(0,e.useState)(0),f=Math.floor(b/60);return(0,d.jsxs)("span",{className:"font-mono tabular-nums text-[10px] text-muted-foreground/60",children:[f,":",(b%60).toString().padStart(2,"0")]})}function a8({label:a,value:b}){return(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("p",{className:"text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70",children:a}),(0,d.jsx)("p",{className:"mt-0.5 truncate text-[11px] text-foreground",title:b,children:b})]})}function a9({onSuccess:a,onError:b}={}){return{connectToNotion:a=>{let b=process.env.NEXT_PUBLIC_NOTION_AUTHORIZATION_URL||`${process.env.NEXT_PUBLIC_INTEGRATIONS_PROXY_URL||"https://larkup-proxy.vercel.app/api/oauth"}/notion`,c=`${window.location.origin}/api/integrations/notion/callback`,d=`${b}?redirect_to=${encodeURIComponent(c)}`;window.innerWidth,window.innerWidth,window.screenX,window.innerHeight,window.innerHeight,window.screenY;let e=window.innerWidth/2-300+window.screenX,f=window.innerHeight/2-400+window.screenY,g=window.open(d,"Notion Connection",`width=600,height=800,left=${e},top=${f},toolbar=0,scrollbars=1,status=1,resizable=1`);if(g){let b=setInterval(()=>{g.closed&&(clearInterval(b),a?.())},500)}}}}var ba=c(39490),bb=c(42373),bc=c(72417);function bd({icon:a,isDatabase:b}){return a?.startsWith("http")?(0,d.jsx)("img",{src:a,alt:"",className:"size-5 rounded-sm object-contain"}):(0,d.jsx)("span",{"aria-hidden":"true",className:"block max-w-5 truncate text-base leading-none",children:a||(b?"\uD83D\uDCCA":"\uD83D\uDCC4")})}function be({onAdded:a,onClose:b,groupId:c}){let{data:f,error:g,isLoading:h,mutate:j}=(0,i.u)("/api/integrations/notion",a=>fetch(a).then(a=>{if(!a.ok)throw Error("Failed to fetch");return a.json()})),m=f||{connected:!1,configured:!1,pages:[],error:g?w(g):void 0},n=()=>j(),[o,p]=(0,e.useState)(new Set),[q,r]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),[v,x]=(0,e.useState)(""),[y,z]=(0,e.useState)("all"),{connectToNotion:A}=a9({onSuccess:()=>{j(),k.oR.success("Successfully connected to Notion")}});async function B(){if(0===o.size)return void k.oR.error("Select at least one page to import.");r(!0);try{let b=await fetch("/api/integrations/notion",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({pageIds:Array.from(o),groupId:c})}),d=await b.json();if(!b.ok)throw Error(d.error??"Import failed");k.oR.success(`${d.imported} of ${d.total} page${1!==d.total?"s":""} imported successfully`),p(new Set),a()}catch(a){k.oR.error(w(a))}finally{r(!1)}}if(h&&!f)return(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 p-4 py-16",children:[(0,d.jsx)(s.A,{className:"size-6 animate-spin text-muted-foreground"}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Checking Notion connection…"})]});if(!m?.connected)return(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center gap-4 p-4 py-12",children:[(0,d.jsx)("div",{className:"flex h-14 w-14 items-center justify-center rounded-2xl border bg-background/30",children:(0,d.jsx)("img",{src:"/notion.png",alt:"Notion",className:"size-6 opacity-100"})}),(0,d.jsxs)("div",{className:"text-center max-w-md",children:[(0,d.jsx)("h3",{className:"text-lg font-semibold text-foreground",children:"Notion Not Connected"}),(0,d.jsx)("p",{className:"mt-1.5 text-sm text-muted-foreground leading-relaxed",children:"Please connect Notion from the integrations panel."}),(0,d.jsx)("div",{className:"mt-4",children:(0,d.jsx)(I.$,{size:"sm",onClick:()=>A(),children:"Connect Notion"})}),m?.error&&(0,d.jsxs)("div",{className:"mt-3 flex items-center gap-2 rounded-lg border border-destructive/20 bg-destructive/5 px-3 py-2 text-xs text-destructive",children:[(0,d.jsx)(at.A,{className:"size-3.5 shrink-0"}),m.error]})]})]});let C=m.pages||[],D=m.databases||[],E=v.toLowerCase().trim(),F=E?C.filter(a=>a.title.toLowerCase().includes(E)):C,G=E?D.filter(a=>a.title.toLowerCase().includes(E)):D,H="pages"===y?F:"databases"===y?G:[...F,...G];return(0,d.jsxs)("div",{className:"flex w-full min-w-0 flex-col",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-4 p-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,d.jsx)(ba.A,{className:"size-4 text-green-600"}),(0,d.jsx)("span",{children:"Notion Connected"}),(0,d.jsxs)("span",{className:"text-muted-foreground",children:["\xb7 ",C.length," pages, ",D.length," databases"]})]}),(0,d.jsxs)(I.$,{variant:"ghost",size:"sm",onClick:n,className:"h-7 shrink-0 gap-1.5 text-xs",children:[(0,d.jsx)(bb.A,{className:"size-3"}),"Refresh"]})]}),(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2 px-0",children:[(0,d.jsx)(J.p,{placeholder:"Search pages…",value:v,onChange:a=>x(a.target.value),className:"flex-1 w-full"}),(0,d.jsx)("div",{className:"flex h-10 w-full min-w-0 rounded-lg border border-border p-1 sm:w-auto",children:["all","pages","databases"].map(a=>(0,d.jsx)("button",{type:"button",onClick:()=>z(a),className:(0,l.cn)("h-full flex-1 sm:flex-none rounded-md px-3 text-xs font-medium transition-colors capitalize",y===a?"bg-background text-foreground ":"text-muted-foreground hover:text-foreground"),children:a},a))})]}),H.length>0?(0,d.jsxs)("div",{className:"w-full min-w-0 overflow-hidden rounded-lg border border-border",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-3 py-2",children:[(0,d.jsxs)("span",{className:"text-xs font-medium text-muted-foreground",children:[H.length," item",1!==H.length?"s":""," \xb7 ",o.size," ","selected"]}),(0,d.jsx)("button",{type:"button",className:"text-xs text-primary hover:underline",onClick:()=>{H.every(a=>o.has(a.id))?p(a=>{let b=new Set(a);return H.forEach(a=>b.delete(a.id)),b}):p(a=>{let b=new Set(a);return H.forEach(a=>b.add(a.id)),b})},children:H.every(a=>o.has(a.id))?"Clear all":"Select all"})]}),(0,d.jsx)("ul",{"data-testid":"notion-resource-list",className:"max-h-80 divide-y divide-border overflow-x-hidden overflow-y-auto",children:H.map(a=>{let b=o.has(a.id),c="type"in a&&"database"===a.type;return(0,d.jsx)("li",{className:"min-w-0 max-w-full overflow-hidden",children:(0,d.jsxs)("label",{className:(0,l.cn)("flex w-full min-w-0 max-w-full cursor-pointer items-center gap-3 overflow-hidden px-3 py-2.5 transition-colors hover:bg-muted/50",b&&"bg-accent/50"),children:[(0,d.jsx)(L.S,{className:"shrink-0",checked:b,onCheckedChange:()=>{var b;return b=a.id,void p(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})}}),(0,d.jsx)("span",{className:"flex size-5 shrink-0 items-center justify-center overflow-hidden",children:(0,d.jsx)(bd,{icon:a.icon,isDatabase:c})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{title:a.title,className:"block max-w-full truncate text-sm font-medium text-foreground",children:a.title}),(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5 truncate text-[10px] text-muted-foreground",children:[c?(0,d.jsx)(X.A,{className:"size-2.5"}):(0,d.jsx)(bc.A,{className:"size-2.5"}),c?"Database":"Page",a.lastEdited&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{children:"\xb7"}),new Date(a.lastEdited).toLocaleDateString()]})]})]}),(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",onClick:a=>a.stopPropagation(),className:"shrink-0 text-muted-foreground transition-colors hover:text-foreground",children:(0,d.jsx)(aq.A,{className:"size-3 shrink-0"})})]})},a.id)})})]}):(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center rounded-lg py-12 text-center",children:[(0,d.jsx)(bc.A,{className:"size-8 text-muted-foreground/30 mb-3"}),(0,d.jsx)("p",{className:"text-sm font-medium text-foreground",children:v?"No pages match your search.":"No pages found."}),!v&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-1 max-w-87.5",children:"Make sure your integration has access to pages in Notion."})]})]}),(0,d.jsxs)(ag.Es,{className:"m-0! flex flex-row items-center justify-between space-x-0 gap-2 border-t border-border/70 bg-muted/50 p-4 sm:justify-between",children:[(0,d.jsxs)(I.$,{variant:"destructive",onClick:async()=>{u(!0);try{let a=await fetch("/api/integrations/notion",{method:"DELETE"});if(!a.ok){let b=await a.json();throw Error(b.error||"Failed to disconnect")}k.oR.success("Disconnected from Notion"),n()}catch(a){k.oR.error(w(a))}finally{u(!1)}},disabled:q||t,children:[t?(0,d.jsx)(s.A,{className:"size-4 mr-2 animate-spin"}):null,"Disconnect"]}),(0,d.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,d.jsx)(I.$,{variant:"outline",onClick:b,disabled:q||t,children:"Cancel"}),(0,d.jsxs)(I.$,{onClick:B,disabled:q||t||0===o.size,children:[q?(0,d.jsx)(s.A,{className:"size-4 mr-2 animate-spin"}):(0,d.jsx)("img",{src:"/notion-white.png",alt:"Notion",className:"size-4 mr-2"}),"Import ",o.size," page",1!==o.size?"s":""]})]})]})]})}var bf=c(8396);function bg({onSuccess:a,onError:b}={}){return{connect:function(a){let b=process.env.NEXT_PUBLIC_INTEGRATIONS_PROXY_URL||"https://larkup-proxy.vercel.app/api/oauth",c=`${window.location.origin}/api/integrations/${a}/callback`;window.open(`${b}/${a}?redirect_to=${encodeURIComponent(c)}`,`${a}-connection`,"width=600,height=800,toolbar=0,scrollbars=1,status=1,resizable=1")}}}function bh({integration:a,name:b,icon:c,onAdded:f,onClose:g,groupId:h}){let j=`/api/integrations/${a}`,{data:l,isLoading:m,mutate:n}=(0,i.u)(j,a=>fetch(a).then(async a=>{let b=await a.json();if(!a.ok&&!b.connected)return b;if(!a.ok)throw Error(b.error);return b})),[o,p]=(0,e.useState)(new Set),[q,r]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(""),[y,z]=(0,e.useState)("all"),A=l?.resources??[],B=(0,e.useMemo)(()=>{let a=new Set;for(let b of A)b.kind&&a.add(b.kind);return["all",...Array.from(a).sort()]},[A]),C=(0,e.useMemo)(()=>A.filter(a=>("all"===y||a.kind===y)&&(!v||!!a.title.toLowerCase().includes(v.toLowerCase()))),[A,v,y]),{connect:D}=bg({onSuccess:()=>{k.oR.success(`${b} connected`),n()},onError:a=>k.oR.error(a)}),E=(0,e.useMemo)(()=>C.length>0&&C.every(a=>o.has(a.id)),[C,o]);async function F(){u(!0);try{let a=await fetch(j,{method:"DELETE"}),c=await a.json();if(!a.ok)throw Error(c.error??"Unable to disconnect");k.oR.success(`${b} disconnected`),p(new Set),g()}catch(a){k.oR.error(a instanceof Error?a.message:`Unable to disconnect ${b}`)}finally{u(!1)}}async function G(){if(!o.size)return k.oR.error("Select at least one item to import.");r(!0);try{let a=await fetch(j,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({resourceIds:[...o],groupId:h})}),b=await a.json();if(!a.ok)throw Error(b.error);k.oR.success(`${b.imported} of ${b.total} items imported`),p(new Set),f()}catch(a){k.oR.error(a instanceof Error?a.message:"Import failed")}finally{r(!1)}}return m?(0,d.jsxs)("div",{className:"flex justify-center gap-2 p-4 py-16 text-sm text-muted-foreground",children:[(0,d.jsx)(s.A,{className:"size-4 animate-spin"}),"Checking connection…"]}):l?.connected?(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsxs)("div",{className:"space-y-4 p-4",children:[(0,d.jsx)("div",{className:"flex items-center justify-between gap-3",children:(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,d.jsx)(ba.A,{className:"size-4 text-green-600"}),b," connected"," ",(0,d.jsxs)("span",{className:"text-muted-foreground",children:["\xb7 ",A.length," items"]}),(0,d.jsx)(I.$,{variant:"ghost",size:"icon",onClick:()=>n(),className:"h-7 shrink-0 gap-1.5 text-xs",children:(0,d.jsx)(bb.A,{className:"size-3"})})]})}),(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)(x.A,{className:"absolute left-2.5 top-2.5 size-4 text-muted-foreground"}),(0,d.jsx)(J.p,{placeholder:`Search ${A.length} items...`,className:"h-9 pl-9",value:v,onChange:a=>w(a.target.value)})]}),B.length>1&&(0,d.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:B.map(a=>{let b=y===a;return(0,d.jsx)("button",{type:"button",onClick:()=>z(a),className:`rounded-full px-3 py-1 text-xs font-medium capitalize transition-colors ${b?"bg-muted text-foreground":"border border-border bg-transparent text-muted-foreground hover:bg-muted/50"}`,children:a},a)})})]}),(0,d.jsxs)("div",{className:"max-h-80 overflow-y-auto rounded-lg border",children:[(0,d.jsxs)("label",{className:"sticky top-0 z-10 flex items-center gap-3 border-b bg-background px-3 py-2 text-sm font-medium",children:[(0,d.jsx)(L.S,{checked:E,onCheckedChange:()=>p(a=>{let b=new Set(a);return E?C.forEach(a=>b.delete(a.id)):C.forEach(a=>b.add(a.id)),b})}),"Select all"]}),0===C.length?(0,d.jsx)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:"No items match your filters."}):C.map(a=>(0,d.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b px-3 py-2.5 last:border-0 hover:bg-muted/30",children:[(0,d.jsx)(L.S,{checked:o.has(a.id),onCheckedChange:()=>p(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c})}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm",children:a.title}),a.kind&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground",children:a.kind})]},a.id))]})]}),(0,d.jsxs)(ag.Es,{className:"m-0! flex flex-row items-center justify-between space-x-0 gap-2 border-t border-border/70 bg-muted/50 p-4 sm:justify-between",children:[(0,d.jsxs)(I.$,{variant:"destructive",onClick:F,disabled:q||t,children:[t?(0,d.jsx)(s.A,{className:"size-4 mr-2 animate-spin"}):(0,d.jsx)(bf.A,{className:"size-4 mr-2"}),"Disconnect"]}),(0,d.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,d.jsx)(I.$,{variant:"outline",onClick:g,disabled:q||t,children:"Cancel"}),(0,d.jsxs)(I.$,{disabled:!o.size||q||t,onClick:G,children:[q&&(0,d.jsx)(s.A,{className:"mr-2 size-4 animate-spin"}),"Import ",o.size||""," selected"]})]})]})]}):(0,d.jsxs)("div",{className:"flex w-full min-w-0 flex-col",children:[(0,d.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-4 p-4 py-12 text-center",children:[(0,d.jsx)("img",{src:c,alt:"",className:"size-9 object-contain"}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("h3",{className:"text-lg font-semibold",children:["Connect ",b]}),(0,d.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:"Read and import selected knowledge into your corpus."})]}),(0,d.jsxs)(I.$,{onClick:()=>D(a),children:["Connect ",b]})]}),l?.error&&(0,d.jsxs)(ag.Es,{className:"m-0! flex flex-row items-center justify-between space-x-0 gap-2 border-t border-border/70 bg-muted/50 p-4 sm:justify-between",children:[(0,d.jsxs)(I.$,{variant:"destructive",onClick:F,disabled:t,children:[t?(0,d.jsx)(s.A,{className:"size-4 mr-2 animate-spin"}):(0,d.jsx)(bf.A,{className:"size-4 mr-2"}),"Disconnect"]}),(0,d.jsx)(I.$,{variant:"outline",onClick:g,children:"Cancel"})]})]})}let bi=["read:jira-work","read:page:confluence","offline_access"],bj=[{id:"notion",name:"Notion",category:"Documentation",description:"Pages, docs, and knowledge bases.",icon:"/notion.png",status:"ready",oauth:{authorizationUrl:"https://api.notion.com/v1/oauth/authorize",tokenUrl:"https://api.notion.com/v1/oauth/token",scopes:[],clientIdEnv:"NOTION_CLIENT_ID",clientSecretEnv:"NOTION_CLIENT_SECRET",accessTokenEnv:"NOTION_ACCESS_TOKEN",clientAuthentication:"basic"}},{id:"google-analytics",name:"Google Analytics",category:"Analytics",description:"Traffic and content reports.",icon:"/icons/google-analytics.png",status:"ready",oauth:{authorizationUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",scopes:["https://www.googleapis.com/auth/analytics.readonly"],clientIdEnv:"GOOGLE_CLIENT_ID",clientSecretEnv:"GOOGLE_CLIENT_SECRET",accessTokenEnv:"GOOGLE_ANALYTICS_ACCESS_TOKEN",clientAuthentication:"body",authorizationParams:{access_type:"offline",prompt:"consent"}}},{id:"google-calendar",name:"Google Calendar",category:"Scheduling",description:"Calendar events and meetings.",icon:"/icons/google-calender.png",status:"ready",oauth:{authorizationUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",scopes:["https://www.googleapis.com/auth/calendar.events.readonly"],clientIdEnv:"GOOGLE_CLIENT_ID",clientSecretEnv:"GOOGLE_CLIENT_SECRET",accessTokenEnv:"GOOGLE_CALENDAR_ACCESS_TOKEN",clientAuthentication:"body",authorizationParams:{access_type:"offline",prompt:"consent"}}},{id:"google-docs",name:"Google Docs",category:"Documentation",description:"Documents and shared content.",icon:"/icons/google-docs.png",status:"ready",oauth:{authorizationUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",scopes:["https://www.googleapis.com/auth/documents.readonly","https://www.googleapis.com/auth/drive.readonly"],clientIdEnv:"GOOGLE_CLIENT_ID",clientSecretEnv:"GOOGLE_CLIENT_SECRET",accessTokenEnv:"GOOGLE_DOCS_ACCESS_TOKEN",clientAuthentication:"body",authorizationParams:{access_type:"offline",prompt:"consent"}}},{id:"google-drive",name:"Google Drive",category:"Documentation",description:"Files and shared-drive knowledge.",icon:"/icons/google-drive.png",status:"ready",oauth:{authorizationUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",scopes:["https://www.googleapis.com/auth/drive.readonly"],clientIdEnv:"GOOGLE_CLIENT_ID",clientSecretEnv:"GOOGLE_CLIENT_SECRET",accessTokenEnv:"GOOGLE_DRIVE_ACCESS_TOKEN",clientAuthentication:"body",authorizationParams:{access_type:"offline",prompt:"consent"}}},{id:"google-maps",name:"Google Maps",category:"Location",description:"Your Google My Maps and their details.",icon:"/icons/google-maps.png",status:"ready",oauth:{authorizationUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",scopes:["https://www.googleapis.com/auth/drive.readonly"],clientIdEnv:"GOOGLE_CLIENT_ID",clientSecretEnv:"GOOGLE_CLIENT_SECRET",accessTokenEnv:"GOOGLE_MAPS_ACCESS_TOKEN",clientAuthentication:"body",authorizationParams:{access_type:"offline",prompt:"consent"}}},{id:"google-meet",name:"Google Meet",category:"Communication",description:"Meeting records you organized.",icon:"/icons/google-meet.png",status:"ready",oauth:{authorizationUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",scopes:["https://www.googleapis.com/auth/meetings.space.readonly"],clientIdEnv:"GOOGLE_CLIENT_ID",clientSecretEnv:"GOOGLE_CLIENT_SECRET",accessTokenEnv:"GOOGLE_MEET_ACCESS_TOKEN",clientAuthentication:"body",authorizationParams:{access_type:"offline",prompt:"consent"}}},{id:"google-sheets",name:"Google Sheets",category:"Spreadsheets",description:"Sheets and table data.",icon:"/icons/google-sheets.png",status:"ready",oauth:{authorizationUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",scopes:["https://www.googleapis.com/auth/spreadsheets.readonly","https://www.googleapis.com/auth/drive.readonly"],clientIdEnv:"GOOGLE_CLIENT_ID",clientSecretEnv:"GOOGLE_CLIENT_SECRET",accessTokenEnv:"GOOGLE_SHEETS_ACCESS_TOKEN",clientAuthentication:"body",authorizationParams:{access_type:"offline",prompt:"consent"}}},{id:"google-slides",name:"Google Slides",category:"Documentation",description:"Presentation content.",icon:"/icons/google-slides.png",status:"ready",oauth:{authorizationUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",scopes:["https://www.googleapis.com/auth/presentations.readonly","https://www.googleapis.com/auth/drive.readonly"],clientIdEnv:"GOOGLE_CLIENT_ID",clientSecretEnv:"GOOGLE_CLIENT_SECRET",accessTokenEnv:"GOOGLE_SLIDES_ACCESS_TOKEN",clientAuthentication:"body",authorizationParams:{access_type:"offline",prompt:"consent"}}},{id:"slack",name:"Slack",category:"Communication",description:"Public channels and their messages.",icon:"/icons/slack.png",status:"ready",oauth:{authorizationUrl:"https://slack.com/oauth/v2/authorize",tokenUrl:"https://slack.com/api/oauth.v2.access",scopes:["channels:read","channels:history","groups:read","groups:history"],clientIdEnv:"SLACK_CLIENT_ID",clientSecretEnv:"SLACK_CLIENT_SECRET",accessTokenEnv:"SLACK_ACCESS_TOKEN",clientAuthentication:"body"}},{id:"github",name:"GitHub",category:"Engineering",description:"Repositories and README knowledge.",icon:"/github.svg",status:"ready",oauth:{authorizationUrl:"https://github.com/login/oauth/authorize",tokenUrl:"https://github.com/login/oauth/access_token",scopes:["read:user","repo"],clientIdEnv:"GITHUB_CLIENT_ID",clientSecretEnv:"GITHUB_CLIENT_SECRET",accessTokenEnv:"GITHUB_ACCESS_TOKEN",clientAuthentication:"body"}},{id:"jira",name:"Jira",category:"Project management",description:"Issues, projects, and releases.",icon:"/icons/jira.png",status:"ready",oauth:{authorizationUrl:"https://auth.atlassian.com/authorize",tokenUrl:"https://auth.atlassian.com/oauth/token",scopes:[...bi],clientIdEnv:"ATLASSIAN_CLIENT_ID",clientSecretEnv:"ATLASSIAN_CLIENT_SECRET",accessTokenEnv:"JIRA_ACCESS_TOKEN",clientAuthentication:"body",authorizationParams:{audience:"api.atlassian.com",prompt:"consent"}}},{id:"linear",name:"Linear",category:"Project management",description:"Issues, projects, and roadmaps.",icon:"/icons/linear.png",status:"ready",oauth:{authorizationUrl:"https://linear.app/oauth/authorize",tokenUrl:"https://api.linear.app/oauth/token",scopes:["read"],clientIdEnv:"LINEAR_CLIENT_ID",clientSecretEnv:"LINEAR_CLIENT_SECRET",accessTokenEnv:"LINEAR_ACCESS_TOKEN",clientAuthentication:"body"}},{id:"confluence",name:"Confluence",category:"Documentation",description:"Pages and team knowledge spaces.",icon:"/icons/Confluence.png",status:"ready",oauth:{authorizationUrl:"https://auth.atlassian.com/authorize",tokenUrl:"https://auth.atlassian.com/oauth/token",scopes:[...bi],clientIdEnv:"ATLASSIAN_CLIENT_ID",clientSecretEnv:"ATLASSIAN_CLIENT_SECRET",accessTokenEnv:"CONFLUENCE_ACCESS_TOKEN",clientAuthentication:"body",authorizationParams:{audience:"api.atlassian.com",prompt:"consent"}}}],bk=new Set(["google-analytics","google-calendar","google-docs","google-drive","google-maps","google-meet","google-sheets","google-slides"]),bl=[["airtable","Airtable","Databases","Bases and workspace records.","airtable.png"],["asana","Asana","Project management","Projects, tasks, and goals.","asana.png"],["ashby","Ashby","Recruiting","Candidates and interview data.","ashby.png"],["aws-kendra","AWS Kendra","Search","Enterprise knowledge-base results.","aws-kendra.png"],["azure-ai-search","Azure AI Search","Search","Indexed enterprise documents.","azure-ai-search.png"],["bigquery","BigQuery","Analytics","Datasets and query results.","bigquery.png"],["bitbucket","Bitbucket","Engineering","Repositories and pull requests.","bitbucket.png"],["calendly","Calendly","Scheduling","Events and availability.","calendly.png"],["databricks","Databricks","Analytics","Unity Catalog and SQL results.","databricks.png"],["deepl","DeepL","Language","Translated documents and glossaries.","deepl.png"],["elevenlabs","ElevenLabs","Media","Transcripts and audio content.","elevenlabs.png"],["excel","Excel","Spreadsheets","Workbook sheets and cells.","excel.png"],["gmail","Gmail","Communication","Email search and threads.","gmail.png"],["google-tasks","Google Tasks","Productivity","Task lists and tasks.","google-tasks.png"],["hubspot","HubSpot","CRM","Contacts, companies, and deals.","hubspot.png"],["looker","Looker","Analytics","Models, Looks, and dashboards.","looker.png"],["looker-api-key","Looker API-Key","Analytics","Looker API-key connection.","looker.png"],["luma","Luma","Events","Events and guest information.","luma.png"],["microsoft-entra","Microsoft Entra","Directory","Users and groups.","microsoft-intra.png"],["microsoft-onenote","Microsoft OneNote","Documentation","Notebooks and pages.","microsoft-onenote.png"],["microsoft-planner","Microsoft Planner","Productivity","Plans, buckets, and tasks.","microsoft-planner.png"],["microsoft-teams","Microsoft Teams","Communication","Chats, channels, and transcripts.","microsoft-teams.png"],["miro","Miro","Collaboration","Boards, cards, and sticky notes.","miro.png"],["onedrive","OneDrive","Documentation","Files and folders.","onedrive.png"],["outlook-calendar","Outlook Calendar","Scheduling","Calendar events and availability.","outlook-calendar.png"],["outlook-email","Outlook Email","Communication","Mailbox search and threads.","outlook-email.png"],["personio","Personio","HR","Employees and attendance.","personio.png"],["pinecone","Pinecone","Vector database","Namespaces and vector records.","pinecone.png"],["pipedrive","Pipedrive","CRM","Deals, contacts, and activities.","pipedrive.png"],["power-bi","Power BI","Analytics","Datasets, reports, and dashboards.","power-pi.png"],["pylon","Pylon","Support","Tickets and knowledge-base articles.","pylon.png"],["salesforce","Salesforce","CRM","Accounts, contacts, and opportunities.","salesforce.png"],["servicenow","ServiceNow","Support","Incidents, tasks, and configuration.","servicenow.png"],["sharepoint","SharePoint","Documentation","Sites, lists, and document libraries.","sharepoint.png"],["snowflake","Snowflake","Analytics","Data warehouse queries and schema.","snowflake.png"],["snowflake-pat","Snowflake PAT","Analytics","Token-based Snowflake access.","snowflake.png"],["statista","Statista","Research","Statistics and market data.","statistia.png"],["stripe","Stripe","Payments","Customers, invoices, and payments.","stripe.png"],["tableau","Tableau","Analytics","Workbooks and dashboards.","tableau.png"],["vertex-ai-vector-search","Vertex AI Vector Search","Vector database","Vector-index similarity search.","vertex-ai.png"],["zendesk","Zendesk","Support","Tickets and help-center articles.","zendesk.png"],["zoom","Zoom","Communication","Past meetings and meeting details.","zoom.png"]].map(([a,b,c,d,e])=>({id:a,name:b,category:c,description:d,icon:e.startsWith("/")?e:`/icons/${e}`,status:"coming-soon"})),bm=[...bj.map(a=>{if(!bk.has(a.id))return a;let{oauth:b,...c}=a;return{...c,status:"coming-soon"}}),...bl].sort(function(a,b){let c=a=>a.startsWith("google-")?0:a.startsWith("microsoft-")?1:2;return c(a.id)-c(b.id)||a.name.localeCompare(b.name)});async function bn(a,b,c={}){let d=await fetch(a,{...c,headers:{Authorization:`Bearer ${b}`,Accept:"application/json",...c.headers}});if(!d.ok)throw Error(`Integration request failed (${d.status}): ${await d.text()}`);return d.json()}function bo(a,b,c){return{async listResources(c){let d=new URLSearchParams({q:a,pageSize:"100",orderBy:"modifiedTime desc",fields:"files(id,name,modifiedTime,webViewLink)"});return((await bn(`https://www.googleapis.com/drive/v3/files?${d.toString()}`,c)).files??[]).map(a=>({id:a.id,title:a.name,url:a.webViewLink,updatedAt:a.modifiedTime,kind:b}))},getResource:async(a,b)=>({...b,content:await c(a,b)})}}bo("mimeType = 'application/vnd.google-apps.document'","document",async(a,b)=>{let c=await bn(`https://docs.googleapis.com/v1/documents/${encodeURIComponent(b.id)}`,a);return function a(b){return b.flatMap(b=>{let c=(b.paragraph?.elements??[]).map(a=>a.textRun?.content??"").join(""),d=(b.table?.tableRows??[]).flatMap(b=>(b.tableCells??[]).map(b=>a(b.content??[])));return[c,d.length?d.join(" "):""]}).filter(Boolean).join("\n").trim()}(c.body?.content??[])}),bo("mimeType = 'application/vnd.google-apps.map'","map",async(a,b)=>{let c=await bn(`https://www.googleapis.com/drive/v3/files/${encodeURIComponent(b.id)}?fields=id,name,description,createdTime,modifiedTime,webViewLink`,a);return[`Map: ${c.name??b.title}`,c.description?`Description: ${c.description}`:"",c.createdTime?`Created: ${c.createdTime}`:"",c.modifiedTime?`Updated: ${c.modifiedTime}`:"",c.webViewLink?`Open in Google My Maps: ${c.webViewLink}`:""].filter(Boolean).join("\n")}),bo("mimeType = 'application/vnd.google-apps.spreadsheet'","spreadsheet",async(a,b)=>((await bn(`https://sheets.googleapis.com/v4/spreadsheets/${encodeURIComponent(b.id)}?includeGridData=true&fields=properties(title),sheets(properties(title),data(rowData(values(formattedValue))))`,a)).sheets??[]).map(a=>{var b,c;let d=(a.data??[]).flatMap(a=>(a.rowData??[]).map(a=>(a.values??[]).map(a=>a.formattedValue??"")));return`# ${a.properties?.title??"Sheet"}
5
+ ${b=[],c=d,(b.length?[b.join(" ")]:[]).concat(c.map(a=>a.join(" "))).join("\n")}`}).join("\n\n")),bo("mimeType = 'application/vnd.google-apps.presentation'","presentation",async(a,b)=>((await bn(`https://slides.googleapis.com/v1/presentations/${encodeURIComponent(b.id)}`,a)).slides??[]).map((a,b)=>{let c=(a.pageElements??[]).flatMap(a=>a.shape?.text?.textElements??[]).flatMap(a=>a.textRun?.content??[]).join("").trim();return`# Slide ${b+1}
6
+ ${c}`}).join("\n\n"));var bp=c(50136);let bq=new Set(["google-analytics","google-calendar","google-docs","google-drive","google-maps","google-meet","google-sheets","google-slides"]),br=new Set(["jira-data-center"]),bs=new Set(["jira","linear"]),bt=bm.filter(a=>!br.has(a.id)).map(a=>bq.has(a.id)?{...a,status:"coming-soon"}:bs.has(a.id)?{...a,status:"ready"}:a);function bu({onAdded:a,groupId:b}){let c,[f,g]=(0,e.useState)(null),[h,j]=(0,e.useState)(""),{data:m,isLoading:n,mutate:o}=(0,i.u)("/api/integrations",a=>fetch(a).then(a=>a.json())),p=Object.fromEntries((m?.integrations??[]).map(a=>[a.id,a.connected])),q=(0,e.useMemo)(()=>{let a=h.trim().toLowerCase(),b=a=>"ready"===a.status&&p[a.id]?0:"ready"===a.status?1:2;return bt.filter(b=>!a||`${b.name} ${b.category}`.toLowerCase().includes(a)).sort((a,c)=>b(a)-b(c))},[p,h]),[r,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(""),[w,y]=(0,e.useState)(""),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(!1),H=async a=>{if(a.preventDefault(),z){E(!0);try{if(!(await fetch(process.env.NEXT_PUBLIC_CONNECT_API_URL||"https://www.larkup.de/api/connect",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:u,company:w,email:z,message:B})})).ok)throw Error("Failed to send request");G(!0),k.oR.success("Request sent successfully!"),setTimeout(()=>{t(!1),G(!1),v(""),y(""),A(""),C("")},2e3)}catch(a){k.oR.error("Failed to send request. Please try again later.")}finally{E(!1)}}},L=()=>{o()},{connectToNotion:M}=a9({onSuccess:()=>{L(),k.oR.success("Successfully connected to Notion")},onError:a=>{k.oR.error(a)}}),{connect:N}=bg({onSuccess:a=>{L();let b=bt.find(b=>b.id===a)?.name??"integration";k.oR.success(`Successfully connected to ${b}`)},onError:a=>k.oR.error(a)});return(0,d.jsxs)("div",{className:"space-y-6 pb-9",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-4 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"relative w-full sm:max-w-sm",children:[(0,d.jsx)(x.A,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,d.jsx)(J.p,{"aria-label":"Search integrations",placeholder:"Search integrations...",value:h,onChange:a=>j(a.target.value),className:"h-9 pl-9 bg-white"})]}),(0,d.jsxs)(I.$,{variant:"outline",size:"sm",className:"h-8 gap-2 bg-white/80 hover:bg-white",onClick:()=>t(!0),children:[(0,d.jsx)(bp.A,{className:"size-3.5"}),"Ask for integration"]})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:q.map(a=>{let b=p[a.id];return(0,d.jsxs)("div",{"data-testid":"integration-card","data-integration-id":a.id,className:(0,l.cn)("group flex items-center justify-between gap-3.5 rounded-xl border px-4 py-3.5 text-left transition-all","ready"===a.status?"border-border bg-white/80 hover:border-primary/20 hover:bg-white":"border-border/60 bg-muted/15"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-3.5 min-w-0",children:[(0,d.jsx)("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-muted/30",children:(0,d.jsx)("img",{src:a.icon,alt:a.name,className:"size-6 object-contain"})}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-foreground",children:a.name}),(0,d.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground/70",children:a.category})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 truncate max-w-50",children:a.description})]})]}),(0,d.jsx)("div",{className:"shrink-0",children:"coming-soon"===a.status?(0,d.jsx)("span",{className:"rounded-md border border-border/70 bg-background px-2 py-1 text-[10px] font-medium text-muted-foreground",children:"Coming soon"}):n?(0,d.jsx)(I.$,{variant:"outline",size:"sm",className:"h-8 w-21",disabled:!0,children:(0,d.jsx)(s.A,{className:"size-3.5 animate-spin"})}):b?(0,d.jsx)(I.$,{variant:"default",size:"sm",className:"h-8 w-21",onClick:()=>g(a.id),children:"Configure"}):(0,d.jsx)(I.$,{variant:"outline",size:"sm",className:"h-8 w-21 bg-muted/50 hover:bg-muted/80 ",onClick:()=>"notion"===a.id?M():N(a.id),children:"Connect"})})]},a.id)})}),h.trim()&&!bt.some(a=>`${a.name} ${a.category}`.toLowerCase().includes(h.trim().toLowerCase()))&&(0,d.jsxs)("p",{className:"py-10 text-center text-sm text-muted-foreground",children:["No integrations match “",h.trim(),"”."]})]}),(0,d.jsx)(ag.lG,{open:!!f,onOpenChange:a=>{a||(g(null),"notion"===f&&o())},children:(0,d.jsxs)(ag.Cf,{className:"flex flex-col gap-0 overflow-hidden p-0 sm:max-w-3xl",children:[(0,d.jsx)(ag.c7,{className:"sr-only",children:(0,d.jsx)(ag.L3,{children:"Integration Panel"})}),"notion"===f&&(0,d.jsx)(be,{onAdded:a,onClose:()=>g(null),groupId:b}),f&&"notion"!==f&&((c=bt.find(a=>a.id===f&&"ready"===a.status))?(0,d.jsx)(bh,{integration:c.id,name:c.name,icon:c.icon,onAdded:a,groupId:b,onClose:()=>{g(null),o()}}):null)]})}),(0,d.jsx)(ag.lG,{open:r,onOpenChange:t,children:(0,d.jsxs)(ag.Cf,{className:"sm:max-w-3xl",children:[(0,d.jsx)(ag.c7,{children:(0,d.jsx)(ag.L3,{children:"Ask for Integration"})}),F?(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center py-8 text-center space-y-4",children:[(0,d.jsx)("div",{className:"h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center text-primary",children:(0,d.jsx)(av.A,{className:"h-6 w-6"})}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Thank you! We've received your request and will get back to you soon."})]}):(0,d.jsxs)("form",{onSubmit:H,className:"space-y-4 mt-4",children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(K.J,{htmlFor:"name",children:"Name"}),(0,d.jsx)(J.p,{id:"name",type:"text",placeholder:"John Doe",value:u,onChange:a=>v(a.target.value)})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(K.J,{htmlFor:"company",children:"Company"}),(0,d.jsx)(J.p,{id:"company",type:"text",placeholder:"Acme Inc.",value:w,onChange:a=>y(a.target.value)})]})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)(K.J,{htmlFor:"email",children:["Your Email ",(0,d.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,d.jsx)(J.p,{id:"email",type:"email",required:!0,placeholder:"name@company.com",value:z,onChange:a=>A(a.target.value)})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(K.J,{htmlFor:"message",children:"Which integration do you need?"}),(0,d.jsx)(T.T,{id:"message",placeholder:"Tell us which tool you want to connect and how you plan to use it...",className:"resize-none min-h-30 max-h-67.5!",rows:5,value:B,onChange:a=>C(a.target.value)})]}),(0,d.jsxs)(ag.Es,{className:"bg-muted/50 border-border/70 mt-6",children:[(0,d.jsx)(I.$,{type:"button",variant:"outline",onClick:()=>t(!1),children:"Cancel"}),(0,d.jsxs)(I.$,{type:"submit",disabled:D,children:[D&&(0,d.jsx)(s.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Submit Request"]})]})]})]})})]})}var bv=c(20353),bw=c(26977);function bx(a){let b=a instanceof Error?a.message:String(a),c=b.toLowerCase();return c.includes("authentication failed")||c.includes("invalid api key")||c.includes("invalid api_key")||c.includes("invalid token")||c.includes("unauthorized")||c.includes("status code 401")?"Authentication failed. Check the API key for the selected provider.":b.includes("Is the docker daemon running?")?"Docker is not running. Please make sure the Docker daemon is started.":b.includes("fetch failed")||b.includes("Failed to fetch")?"Network error. Please check your connection and try again.":b}var by=c(54362),bz=c(74057),bA=c(29936),bB=c(38572),bC=c(72346),bD=c(47535),bE=c(14089),bF=c(69484),bG=c(73211),bH=c(2518),bI=c(67285),bJ=c(52113),bK=c(61933);function bL({className:a,children:b,...c}){return(0,d.jsxs)(bG.V,{"data-slot":"scroll-area",className:(0,l.cn)("relative",a),...c,children:[(0,d.jsx)(bH.B,{"data-slot":"scroll-area-viewport",className:"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:b}),(0,d.jsx)(bM,{}),(0,d.jsx)(bI.I,{})]})}function bM({className:a,orientation:b="vertical",...c}){return(0,d.jsx)(bJ.V,{"data-slot":"scroll-area-scrollbar","data-orientation":b,orientation:b,className:(0,l.cn)("flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent",a),...c,children:(0,d.jsx)(bK.l,{"data-slot":"scroll-area-thumb",className:"relative flex-1 rounded-full bg-border"})})}var bN=c(22515),bO=c(42489);function bP(a){let b=a?.videoRuntimeScope;return"local"===b||"cloud"===b?b:void 0}function bQ(a){return"local"===a?"Local runtime":"Larkup Cloud"}let bR={website:{label:"Website",icon:o.A},text:{label:"Text",icon:n.A},files:{label:"Files",icon:m.A},media:{label:"Media",icon:p.A},integrations:{label:"Integrations",icon:q.A}};function bS({documents:a,groups:b=[],onChanged:c,isIndexing:f,activeVideoRuntimeScope:g,initialGroupId:h}){let[i,j]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(new Set),[q,r]=(0,e.useState)(null),[t,u]=(0,e.useState)(null),[v,w]=(0,e.useState)(0),[x,y]=(0,e.useState)("all"),[z,C]=(0,e.useState)("all"),[D,H]=(0,e.useState)(()=>new Set(h?[h]:[])),[J,K]=(0,e.useState)(!1),M=(0,e.useMemo)(()=>{let b=new Map,c=[];for(let d of a)if("media"===d.source&&d.metadata?.mediaAssetId){let a=d.metadata.mediaAssetId;if(b.has(a)){let c=b.get(a);c.charCount+=d.charCount,c.metadata.childIds.push(d.id),"indexed"!==d.status&&(c.status=d.status)}else b.set(a,{...d,id:`media-group-${a}`,title:d.metadata.fileName||d.title||"Media Asset",charCount:d.charCount,metadata:{...d.metadata,isGroup:!0,childIds:[d.id]}})}else c.push(d);return[...Array.from(b.values()),...c].sort((a,b)=>new Date(b.createdAt).getTime()-new Date(a.createdAt).getTime())},[a]),P=M.filter(a=>("all"===x||a.source===x)&&("all"===z||(a.status??"unindexed")===z)&&(0===D.size||D.has(a.groupId??"default"))),Q=Math.max(1,Math.ceil(P.length/10)),R=Math.min(v,Q-1),S=P.slice(10*R,(R+1)*10),T=M.filter(a=>"media"===a.source&&a.metadata?.isGroup&&!bP(a.metadata)).length,U=S.length>0&&S.every(a=>o.has(a.id));async function V(a){let b=await fetch(a,{method:"DELETE"});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error??"Could not delete this document.")}async function W(a,b){try{b?.metadata?.isGroup&&b?.metadata?.mediaAssetId?await V(`/api/media?id=${b.metadata.mediaAssetId}`):await V(`/api/documents?id=${a}`),p(b=>{let c=new Set(b);return c.delete(a),c}),await c(),k.oR.success("Document deleted")}catch(a){k.oR.error(bx(a)||"Could not delete this document.")}}async function X(){if(0===o.size)return;let a=M.filter(a=>o.has(a.id));try{for(let b of a)b.metadata?.isGroup&&b.metadata?.mediaAssetId?await V(`/api/media?id=${b.metadata.mediaAssetId}`):await V(`/api/documents?id=${b.id}`);p(new Set),await c(),k.oR.success(`Deleted ${a.length} item(s)`)}catch(a){k.oR.error(bx(a)||"Could not delete the selected documents.")}}async function Z(){try{await V("/api/documents"),p(new Set),await c(),k.oR.success("Corpus and vector index cleared")}catch(a){k.oR.error(bx(a)||"Could not clear the corpus.")}}let $=(0,e.useMemo)(()=>M.filter(a=>o.has(a.id)),[M,o]),_=b.filter(a=>$.some(b=>(b.groupId??"default")!==a.id));async function aa(a){if(0===$.length||q)return;let b=$.flatMap(a=>a.metadata?.isGroup?(a.metadata.childIds??[]).filter(a=>"string"==typeof a):[a.id]),d=$.flatMap(a=>a.metadata?.isGroup&&"string"==typeof a.metadata.mediaAssetId?[a.metadata.mediaAssetId]:[]);r(a.id);try{let e=await fetch("/api/documents/move",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({documentIds:b,mediaAssetIds:d,groupId:a.id})}),f=await e.json().catch(()=>({}));if(!e.ok)throw Error(f.error??"Could not move the selected data.");p(new Set),await c(),k.oR.success(`Moved ${$.length} source${1===$.length?"":"s"} to ${a.name}.`)}catch(a){k.oR.error(bx(a)||"Could not move the selected data.")}finally{r(null)}}let ab=0===D.size,ac=(0,e.useMemo)(()=>ab?"All Groups":Array.from(D).map(a=>{let c=b.find(b=>b.id===a);return c?c.icon?`${c.icon} ${c.name}`:c.name:a}).join(", "),[D,b,ab]);return 0===a.length?(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center rounded-lg px-6 py-14 text-center",children:[(0,d.jsx)("div",{className:"size-10 p-1.5 bg-white/60 border border-border rounded-md flex items-center justify-center",children:(0,d.jsx)(bc.A,{className:"size-7 text-muted-foreground/60"})}),(0,d.jsx)("p",{className:"mt-3 text-lg font-medium",children:"Your corpus is empty"}),(0,d.jsx)("p",{className:"mt-1 max-w-xl text-sm text-muted-foreground",children:"Scrape the web, paste text, or upload files. Everything you collect is stored locally and ready to index in the next step."})]}):(0,d.jsxs)(O.Bc,{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center justify-between pb-3",children:[(0,d.jsx)("div",{className:"flex items-center gap-3",children:(0,d.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:[{id:"all",label:"All Sources"},...Object.entries(bR).map(([a,b])=>({id:a,label:b.label}))].map(a=>{let b=x===a.id;return(0,d.jsx)("button",{type:"button",onClick:()=>y(a.id),className:`rounded-full px-3 py-1 text-xs font-medium transition-colors ${b?"bg-muted text-foreground":"border border-border bg-transparent text-muted-foreground hover:bg-muted/50"}`,children:a.label},a.id)})})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)(bN.AM,{open:J,onOpenChange:K,children:[(0,d.jsx)(bN.Wv,{render:(0,d.jsxs)("button",{type:"button",className:(0,l.cn)("inline-flex h-9 items-center gap-1.5 rounded-md border border-border bg-white px-3 text-xs font-medium text-foreground transition-colors hover:bg-muted/50 shadow-none",!ab&&"border-primary/40 bg-primary/5 text-primary"),"aria-label":"Filter by group",children:[(0,d.jsx)("span",{className:"max-w-40 truncate",children:ac}),(0,d.jsx)(B.A,{className:"size-3 shrink-0 text-muted-foreground"})]})}),(0,d.jsx)(bN.hl,{align:"start",className:"w-56 p-1.5 shadow-none",children:(0,d.jsxs)("div",{className:"space-y-0.5",children:[(0,d.jsxs)("button",{type:"button",onClick:function(){H(new Set)},className:(0,l.cn)("flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-xs transition-colors hover:bg-accent",ab&&"bg-accent/60 font-medium"),children:[(0,d.jsx)("div",{className:(0,l.cn)("flex size-4 shrink-0 items-center justify-center rounded border border-primary/40",ab?"bg-primary border-primary":"bg-white"),children:ab&&(0,d.jsx)(aw.A,{className:"size-2.5 text-white",strokeWidth:3})}),"All Groups"]}),b.length>0&&(0,d.jsx)("div",{className:"my-1 border-t border-border"}),b.map(a=>{let b=D.has(a.id);return(0,d.jsxs)("button",{type:"button",onClick:()=>{var b;return b=a.id,void H(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:(0,l.cn)("flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-xs transition-colors hover:bg-accent",b&&"bg-accent/60"),children:[(0,d.jsx)("div",{className:(0,l.cn)("flex size-4 shrink-0 items-center justify-center rounded border border-primary/40",b?"bg-primary border-primary":"bg-white"),children:b&&(0,d.jsx)(aw.A,{className:"size-2.5 text-white",strokeWidth:3})}),(0,d.jsxs)("span",{className:"flex-1 truncate text-left",children:[a.icon?`${a.icon} `:"",a.name]})]},a.id)})]})})]}),(0,d.jsxs)(N.l6,{value:z,onValueChange:a=>a&&C(a),children:[(0,d.jsx)(N.bq,{className:"w-29 shadow-none border-border/70 bg-white h-9! text-xs",children:(0,d.jsx)(N.yv,{placeholder:"All status"})}),(0,d.jsxs)(N.gC,{children:[(0,d.jsx)(N.eb,{value:"all",children:"All status"}),(0,d.jsx)(N.eb,{value:"indexed",children:"Indexed"}),(0,d.jsx)(N.eb,{value:"unindexed",children:"Unindexed"})]})]}),o.size>0&&(0,d.jsxs)(bO.rI,{children:[(0,d.jsx)(bO.ty,{render:(0,d.jsxs)(I.$,{size:"sm",variant:"secondary",className:"h-8 gap-1.5 text-xs",disabled:null!==q,children:[(0,d.jsx)(by.A,{className:"size-3.5"}),q?"Moving…":`Actions (${o.size})`,(0,d.jsx)(B.A,{className:"size-3.5"})]})}),(0,d.jsxs)(bO.SQ,{align:"end",className:"min-w-52",children:[(0,d.jsxs)(bO.lv,{children:[(0,d.jsxs)(bO.nV,{children:[(0,d.jsx)(by.A,{className:"size-3.5"}),"Move to group"]}),(0,d.jsx)(bO.M5,{className:"min-w-52",children:_.length>0?_.map(a=>(0,d.jsxs)(bO._2,{disabled:null!==q,onClick:()=>void aa(a),children:[(0,d.jsx)("span",{className:"w-5 text-center",children:a.icon||"✦"}),(0,d.jsx)("span",{className:"truncate",children:a.name})]},a.id)):(0,d.jsx)(bO._2,{disabled:!0,children:"Already in this group"})})]}),(0,d.jsx)(bO.mB,{}),(0,d.jsxs)(bO._2,{variant:"destructive",disabled:null!==q,onClick:()=>n({type:"selected"}),children:[(0,d.jsx)(E.A,{className:"size-3.5"}),"Delete selected"]})]})]}),(0,d.jsx)(O.Bc,{children:(0,d.jsxs)(O.m_,{children:[(0,d.jsx)(O.k$,{render:(0,d.jsx)(I.$,{size:"icon",variant:"destructive","aria-label":"Clear all data",className:"h-9 border border-border text-xs",onClick:()=>n({type:"all"}),disabled:f,children:(0,d.jsx)(E.A,{className:"size-3.5"})})}),(0,d.jsx)(O.ZI,{children:"Clear all data"})]})})]})]}),T>0&&(0,d.jsxs)("div",{className:"mb-3 flex items-start gap-2 rounded-lg border border-border bg-muted/25 px-3 py-2 text-xs text-muted-foreground",children:[(0,d.jsx)(A.A,{className:"mt-0.5 size-3.5 shrink-0"}),(0,d.jsxs)("span",{children:[T," existing video",1===T?"":"s"," will stay available until re-indexed. Re-index a video once to link it to"," ",bQ(g)," and enable runtime-specific visibility."]})]}),(0,d.jsx)("div",{className:"overflow-hidden rounded-lg border border-border",children:(0,d.jsxs)(bF.XI,{children:[(0,d.jsx)(bF.A0,{children:(0,d.jsxs)(bF.Hj,{className:"bg-muted/50",children:[(0,d.jsx)(bF.nd,{className:"w-12",children:(0,d.jsx)(L.S,{checked:U,onCheckedChange:a=>{if(a){let a=new Set(o);S.forEach(b=>a.add(b.id)),p(a)}else{let a=new Set(o);S.forEach(b=>a.delete(b.id)),p(a)}},"aria-label":"Select all on page"})}),(0,d.jsx)(bF.nd,{children:"Title"}),(0,d.jsx)(bF.nd,{className:"w-24",children:"Status"}),(0,d.jsx)(bF.nd,{className:"w-28",children:"Source"}),(0,d.jsx)(bF.nd,{className:"w-24 text-right",children:"Chars"}),(0,d.jsx)(bF.nd,{className:"w-20"})]})}),(0,d.jsx)(bF.BF,{className:"bg-white/70",children:S.map(a=>{let b=bR[a.source]||{label:a.source||"Unknown",icon:bc.A},c=b.icon,e="media"===a.source?bP(a.metadata):void 0,h=!!e&&e!==g,i=e?bQ(e):void 0,k="local"===e?bz.A:bA.A;return(0,d.jsxs)(bF.Hj,{className:(0,l.cn)("border-border/50 h-10.5! transition-opacity",h&&"opacity-45 hover:opacity-70"),children:[(0,d.jsx)(bF.nA,{children:(0,d.jsx)(L.S,{checked:o.has(a.id),onCheckedChange:b=>{let c=new Set(o);b?c.add(a.id):c.delete(a.id),p(c)},"aria-label":"Select document"})}),(0,d.jsx)(bF.nA,{children:(0,d.jsxs)("button",{type:"button",onClick:()=>!a.metadata?.isGroup&&j(a),className:(0,l.cn)("group flex flex-col items-start text-left",a.metadata?.isGroup?"cursor-default":"cursor-pointer"),children:[(0,d.jsx)("span",{className:(0,l.cn)("line-clamp-1 text-sm font-medium",!a.metadata?.isGroup&&"group-hover:text-primary"),children:a.title}),a.metadata?.isGroup&&(0,d.jsxs)("div",{className:"mt-0.5 flex items-center gap-1.5 text-[10px] text-muted-foreground",children:[(0,d.jsxs)("span",{className:"line-clamp-1",children:["Video (",a.metadata.childIds?.length," chunks)"]}),h&&i&&(0,d.jsxs)(O.m_,{children:[(0,d.jsx)(O.k$,{render:(0,d.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-1 rounded-full border border-amber-500/30 bg-amber-500/5 px-1.5 py-0.5 text-[9px] font-medium text-amber-700 dark:text-amber-300",children:[(0,d.jsx)(bB.A,{className:"size-2.5"}),"local"===e?"Local only":"Cloud only"]})}),(0,d.jsxs)(O.ZI,{className:"max-w-64 text-center",children:["This video was indexed with ",i,". It is not available to the agent while ",bQ(g)," is selected. Switch runtimes or re-index the video."]})]}),!e&&(0,d.jsx)("span",{className:"shrink-0 text-[9px] text-muted-foreground/70",children:"Legacy index"})]})]})}),(0,d.jsx)(bF.nA,{children:"indexed"===a.status?(0,d.jsx)(bE.E,{variant:"outline",className:"text-green-600 bg-green-50/10 border-green-500 font-normal",children:"Indexed"}):f?(0,d.jsxs)(bE.E,{variant:"outline",className:"text-blue-500 bg-blue-50 border-blue-200 font-normal flex items-center gap-1.5",children:[(0,d.jsx)(s.A,{className:"size-3 animate-spin"}),"Indexing"]}):(0,d.jsx)(bE.E,{variant:"outline",className:"text-orange-500 bg-orange-50 border-orange-200 font-normal",children:"Unindexed"})}),(0,d.jsx)(bF.nA,{children:(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsxs)(bE.E,{variant:"secondary",className:"gap-1 font-normal",children:[(0,d.jsx)(c,{className:"size-3"}),b.label]}),a.metadata?.isGroup&&e&&!h&&(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-muted-foreground",children:[(0,d.jsx)(k,{className:"size-2.5"}),"local"===e?"Local":"Cloud"]})]})}),(0,d.jsx)(bF.nA,{className:"text-right text-xs text-muted-foreground tabular-nums",children:a.charCount.toLocaleString()}),(0,d.jsx)(bF.nA,{children:(0,d.jsxs)("div",{className:"flex items-center justify-end gap-4",children:[!a.metadata?.isGroup&&(0,d.jsx)("button",{type:"button","aria-label":"Edit document",onClick:()=>j(a),className:"text-muted-foreground transition-colors hover:text-primary",children:(0,d.jsx)(bC.A,{className:"size-4"})}),a.metadata?.isGroup&&(0,d.jsxs)(O.m_,{children:[(0,d.jsx)(O.k$,{render:(0,d.jsx)("button",{type:"button","aria-label":"View indexed video evidence",onClick:()=>u(a),className:"text-muted-foreground transition-colors hover:text-primary",children:(0,d.jsx)(Y.A,{className:"size-4"})})}),(0,d.jsx)(O.ZI,{children:"View indexed video evidence"})]}),(0,d.jsx)("button",{type:"button","aria-label":"Delete document",onClick:()=>n({type:"single",doc:a}),className:"text-muted-foreground transition-colors hover:text-destructive",children:(0,d.jsx)(E.A,{className:"size-4"})})]})})]},a.id)})})]})}),Q>1&&(0,d.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-muted-foreground",children:[(0,d.jsxs)("span",{children:[0===P.length?0:10*R+1,"–",Math.min((R+1)*10,P.length)," of"," ",P.length]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)("button",{disabled:0===R,onClick:()=>w(a=>Math.max(0,a-1)),className:"rounded p-1 hover:bg-muted disabled:opacity-40 transition-colors cursor-pointer",children:(0,d.jsx)(F.A,{className:"size-3.5"})}),(0,d.jsxs)("span",{className:"tabular-nums",children:[R+1," / ",Q]}),(0,d.jsx)("button",{disabled:R>=Q-1,onClick:()=>w(a=>Math.min(Q-1,a+1)),className:"rounded p-1 hover:bg-muted disabled:opacity-40 transition-colors cursor-pointer",children:(0,d.jsx)(G.A,{className:"size-3.5"})})]})]}),(0,d.jsx)(bU,{doc:i,onOpenChange:a=>!a&&j(null),onSaved:()=>{j(null),c()},onDelete:a=>{i&&n({type:"single",doc:i})}}),(0,d.jsx)(bT,{doc:t,allDocuments:a,onClose:()=>u(null)}),(0,d.jsx)(aD.K,{open:null!==m,onOpenChange:a=>{a||n(null)},title:m?.type==="all"?"Clear corpus":m?.type==="selected"?"Delete selected documents":"Delete document",description:m?.type==="all"?"Delete every uploaded file and document from this knowledge base? This also clears the vector index and cannot be undone.":m?.type==="selected"?`Are you sure you want to delete ${o.size} selected documents?`:(0,d.jsxs)("span",{className:"wrap-break-word",children:['Are you sure you want to delete "',(0,d.jsx)("span",{className:"break-all font-medium",children:m?.type==="single"?m.doc.title:""}),'"?']}),actionText:"Delete",variant:"destructive",onAction:()=>{m?.type==="all"?Z():m?.type==="selected"?X():m?.type==="single"&&(W(m.doc.id,m.doc),i?.id===m.doc.id&&j(null))}})]})}function bT({doc:a,allDocuments:b,onClose:c}){if(!a||!a.metadata?.isGroup)return null;let e=(a.metadata?.childIds??[]).map(a=>b.find(b=>b.id===a)).filter(a=>void 0!==a).sort((a,b)=>(a.metadata?.startSecs??0)-(b.metadata?.startSecs??0));return(0,d.jsx)(ag.lG,{open:!!a,onOpenChange:a=>!a&&c(),children:(0,d.jsxs)(ag.Cf,{className:"w-full pb-3 max-w-5xl! max-h-[90%]! h-full!",children:[(0,d.jsxs)(ag.c7,{children:[(0,d.jsxs)(ag.L3,{className:"flex items-center gap-2",children:[(0,d.jsx)(bD.A,{className:"size-4 text-muted-foreground"}),a.title]}),(0,d.jsxs)(ag.rr,{children:[e.length," indexed segment",1!==e.length?"s":""," \xb7"," ",a.charCount.toLocaleString()," total characters"]})]}),(0,d.jsx)(bL,{className:"max-h-[70vh]",children:(0,d.jsx)("div",{className:"space-y-4 pr-4",children:e.map((a,b)=>{let c=a.metadata?.startSecs;return(0,d.jsxs)("div",{className:"rounded-lg border border-border/60 bg-muted/20 p-3 space-y-1.5",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-[11px] font-medium text-muted-foreground",children:"number"==typeof c?`${Math.floor(c/60)}:${String(Math.floor(c%60)).padStart(2,"0")}`:`Segment ${b+1}`}),(0,d.jsxs)("span",{className:"text-[10px] text-muted-foreground/60 tabular-nums",children:[a.charCount.toLocaleString()," chars"]})]}),(0,d.jsx)("pre",{className:"whitespace-pre-wrap wrap-break-word text-xs leading-relaxed text-foreground font-mono",children:a.content})]},a.id)})})}),(0,d.jsx)(ag.Es,{className:"h-full",children:(0,d.jsx)(I.$,{variant:"outline",onClick:c,className:"",children:"Close"})})]})})}function bU({doc:a,onOpenChange:b,onSaved:c,onDelete:f}){let[g,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(""),[q,r]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),v=(0,e.useRef)(null);async function w(){if(a){if(!o.trim())return void k.oR.error("Content can't be empty.");r(!0);try{let b=await fetch("/api/documents",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a.id,title:i.trim()||"Untitled",url:m.trim(),content:o})});if(!b.ok){let a=await b.json().catch(()=>({}));k.oR.error(a.error?bx(Error(a.error)):"Failed to save document.");return}k.oR.success("Document saved"),c()}catch(a){k.oR.error(bx(a)||"Could not reach the server.")}finally{r(!1)}}}async function x(a){let b=a.target.files?.[0];if(b){u(!0);try{let a=new FormData;a.append("file",b);let c=await fetch("/api/media",{method:"POST",body:a});if(!c.ok){let a=await c.json().catch(()=>({}));throw Error(a.error||"Failed to upload file")}let d=await c.json();d.assets&&d.assets.length>0&&(n(`/api/media/${d.assets[0].id}`),k.oR.success("File uploaded and URL updated"))}catch(a){k.oR.error(bx(a)||"Failed to upload")}finally{u(!1),v.current&&(v.current.value="")}}}return(0,d.jsx)(ag.lG,{open:!!a,onOpenChange:b,children:(0,d.jsxs)(ag.Cf,{className:"w-full max-w-5xl! ",children:[(0,d.jsxs)(ag.c7,{children:[(0,d.jsx)(ag.L3,{className:"text-balance",children:g?"Edit document":a?.title}),!g&&a?.url&&(0,d.jsx)(ag.rr,{className:"break-all",children:a.url}),g&&(0,d.jsx)(ag.rr,{children:"Changes are saved to this server's corpus. Re-index to apply them to search."})]}),g?(0,d.jsxs)("div",{className:"grid gap-4 overflow-y-auto pr-2 pb-2 ",style:{maxHeight:"calc(80vh - 150px)"},children:[(0,d.jsxs)("div",{className:"grid gap-2",children:[(0,d.jsx)(K.J,{htmlFor:"doc-title",children:"Title"}),(0,d.jsx)(J.p,{id:"doc-title",value:i,onChange:a=>j(a.target.value),placeholder:"Untitled"})]}),(0,d.jsxs)("div",{className:"grid gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)(K.J,{htmlFor:"doc-url",children:"URL (optional)"}),(0,d.jsxs)(I.$,{type:"button",variant:"ghost",size:"sm",className:"h-6 text-[10px] uppercase font-medium text-primary hover:bg-primary/10",onClick:()=>v.current?.click(),disabled:t,children:[t?(0,d.jsx)(s.A,{className:"size-3 mr-1 animate-spin"}):(0,d.jsx)(as.A,{className:"size-3 mr-1"}),"Upload File"]}),(0,d.jsx)("input",{type:"file",ref:v,className:"hidden",onChange:x,accept:"image/*,video/*,audio/*"})]}),(0,d.jsx)(J.p,{id:"doc-url",value:m,onChange:a=>n(a.target.value),placeholder:"https://…"})]}),(0,d.jsxs)("div",{className:"grid gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)(K.J,{htmlFor:"doc-content",children:"Content"}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground tabular-nums ",children:[o.length.toLocaleString()," chars"]})]}),(0,d.jsx)(T.T,{id:"doc-content",value:o,onChange:a=>p(a.target.value),rows:14,className:"resize-none font-mono text-xs leading-relaxed"})]})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[a?.source==="media"&&a?.url&&(0,d.jsx)("div",{className:"rounded-md border border-border bg-muted/30 overflow-hidden flex items-center justify-center p-4",children:a.metadata?.mediaType==="video"?(0,d.jsx)("video",{src:a.url,controls:!0,className:"max-h-[40vh] max-w-full"}):a.metadata?.mediaType==="audio"?(0,d.jsx)("audio",{src:a.url,controls:!0,className:"w-full"}):(0,d.jsx)("img",{src:a.url,alt:a.title,className:"max-h-[40vh] max-w-full object-contain"})}),(0,d.jsx)(bL,{className:"max-h-[60vh] rounded-md border border-border bg-muted/30",children:(0,d.jsx)("pre",{className:(0,l.cn)("whitespace-pre-wrap break-all px-4 py-3 font-mono text-xs leading-relaxed text-foreground"),children:a?.content})})]}),(0,d.jsx)(ag.Es,{className:"flex-row items-center justify-between gap-2 sm:justify-between",children:g?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(I.$,{variant:"ghost",onClick:()=>h(!1),disabled:q,children:[(0,d.jsx)(z.A,{className:"size-4"}),"Cancel"]}),(0,d.jsxs)(I.$,{onClick:()=>void w(),disabled:q,children:[q&&(0,d.jsx)(s.A,{className:"size-4 animate-spin"}),"Save changes"]})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(I.$,{variant:"destructive",className:"text-white hover:text-white hover:bg-destructive/80",onClick:()=>a&&f(a.id),children:[(0,d.jsx)(E.A,{className:"size-4 mr-2"}),"Delete"]}),(0,d.jsxs)(I.$,{onClick:()=>h(!0),children:[(0,d.jsx)(bC.A,{className:"size-4 mr-2"}),"Edit"]})]})})]})})}var bV=c(94016);let bW=a=>fetch(a).then(a=>a.json()),bX=[{id:"files",label:"Files",icon:m.A},{id:"text",label:"Text",icon:n.A},{id:"website",label:"Website",icon:o.A},{id:"media",label:"Media",icon:p.A},{id:"integrations",label:"Integrations",icon:q.A}];function bY(a){let b=a?.split(",")[0]?.trim();return b&&"undefined"!==b&&"null"!==b?b:"default"}let bZ={files:{title:"Add Files",description:"Upload PDFs, documents, spreadsheets, CSVs, JSON files, and more."},text:{title:"Add Text",description:"Paste notes, documentation, transcripts, or any text you want to search."},website:{title:"Add Websites",description:"Add a URL or discover and crawl websites for your knowledge base."},media:{title:"Add Media",description:"Upload images, audio, and video, or add media from a URL."},integrations:{title:"Add Integrations",description:"Connect your tools and import the data your team already uses."}};function b$({view:a}={}){var b;let c,g,m,n=(0,f.useSearchParams)(),o=bY(n.get("groupId")),p=(0,f.usePathname)(),{activeProject:q}=(0,az.B)(),v=q?.id,[w,x]=(0,e.useState)(a||"add"),[y,z]=(0,e.useState)((c=n.get("subtab"))&&bX.some(a=>a.id===c)?c:"files"),[A,B]=(0,e.useState)(o),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(null),G=(0,e.useCallback)(a=>{F(a)},[]);(0,e.useRef)([]);let H=(0,e.useRef)(!1),J=(0,i.u)("/api/jobs",bV.A,{refreshInterval:a=>4e3*!!a?.jobs.some(a=>"running"===a.status||"queued"===a.status)}),K=J.data?.jobs??[],L=K.some(a=>"running"===a.status||"queued"===a.status),M=(0,i.u)("/api/index",bW,{refreshInterval:a=>2e3*!!a?.running}),P=M.data?.running??!1,Q=M.data?.blockers?.includes("MISSING_EMBEDDING_API_KEY")??!1,{mutate:T}=M,V=(0,i.u)(`/api/media?type=all${v?`&serverId=${encodeURIComponent(v)}`:""}`,bW,{refreshInterval:a=>a?.assets.some(bw.t)?2e3:8e3,revalidateOnFocus:!0}),W=(V.data?.assets??[]).filter(bw.t),X=W.length>0,Y=L||X||P,Z=K.filter(a=>"running"===a.status||"queued"===a.status).reduce((a,b)=>a+(b.targets?.length||1),0)+W.length+ +!!P,$=K.length>0||X||P;K.filter(a=>"completed"!==a.status),K.filter(a=>"completed"===a.status);let[_,aa]=(0,e.useState)("running"),ab=(0,i.u)("/api/documents",bW,{refreshInterval:5e3*!!Y}),{mutate:ac}=ab,ad=ab.data?.documents??[],ae=ab.data?.groups??[],af=(0,i.u)(`/api/config${v?`?serverId=${encodeURIComponent(v)}`:""}`,bW),ag=(b=af.data?.config,"local"===(m=(g=b?.toolConfigs)&&"object"==typeof g?g["video-intelligence"]?.runtimeMode:void 0)||"local-docker"===m||"local-process"===m?"local":"cloud"),ah=ae.find(a=>a.id===A),ai=void 0!==ab.data&&!ab.error&&("default"===A||void 0!==ah),{mutate:aj}=(0,j.iX)(),ak=async()=>{await Promise.all([J.mutate(),V.mutate(),ab.mutate(),M.mutate(),aj("/api/index")])},al=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/index",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({incremental:!!M.data?.run})}),b=await a.json();if(409===a.status||b.queued){H.current=409===a.status,k.oR.message("Added to the indexing queue",{id:"document-index-queued",description:"It will start automatically after the current indexing job."}),T();return}if(!a.ok)return void k.oR.error(b.error||"Your data was added, but indexing could not start.");k.oR.success("Making your data searchable",{description:"This runs in the background. You can keep adding files.",duration:7e3}),H.current=!1,T()}catch{k.oR.error("Your data was added, but indexing could not start.")}},[M.data?.run,T]);(0,e.useRef)(P);let an=()=>{ak(),al()},ao=(0,e.useCallback)(a=>{J.mutate(b=>({jobs:[a,...(b?.jobs??[]).filter(b=>b.id!==a.id)],configured:b?.configured??!0}),{revalidate:!0})},[J]),ap=(0,e.useCallback)(()=>{ac(),T(),k.oR.success("Media indexed and added to your Knowledge Base.")},[ac,T]),aq=(0,e.useCallback)(()=>{V.mutate()},[V]),ar=bZ[y];return(0,d.jsxs)("div",{className:"px-6 md:px-8",children:["add"===a&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:ar.title}),(0,d.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:ar.description})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:["website"===y&&(0,d.jsx)(S,{}),$&&(0,d.jsx)(O.Bc,{delay:150,children:(0,d.jsxs)(O.m_,{children:[(0,d.jsx)(O.k$,{render:(0,d.jsxs)("button",{type:"button",onClick:()=>D(!C),className:(0,l.cn)("relative cursor-pointer flex size-9 items-center justify-center rounded-lg border transition-colors",Y?"border-green-600 bg-green-100/30 text-green-600 hover:bg-green-100/50":"border-border bg-card text-muted-foreground hover:bg-muted/50 hover:text-foreground",C&&"bg-white hover:bg-white"),"aria-label":"Toggle jobs panel",children:[(0,d.jsx)(r.A,{className:"size-4"}),Y&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"absolute -top-1 -right-1 z-10 flex h-3.5 min-w-3.5 items-center justify-center rounded-full bg-emerald-500 px-1 text-[9px] font-bold text-white shadow-sm ring-1 ring-white",children:Z}),(0,d.jsx)("span",{className:"absolute -top-1 -right-1 z-0 flex h-3.5 w-3.5 animate-ping rounded-full bg-emerald-400 opacity-75"})]})]})}),(0,d.jsx)(O.ZI,{children:(0,d.jsx)("p",{children:Y?"Active jobs":"Job history"})})]})})]})]}),(0,d.jsxs)("div",{className:"mb-4 pb-0 mt-9 flex items-center justify-between border-b border-border",children:[(0,d.jsx)("div",{className:"-mb-1.5 flex items-center gap-1",children:bX.map(a=>{let b=y===a.id,c=a.icon;return(0,d.jsxs)("button",{onClick:()=>{var b;let c;return b=a.id,F(null),z(b),void((c=new URLSearchParams(n.toString())).set("subtab",b),window.history.replaceState(null,"",`${p}?${c.toString()}`))},className:(0,l.cn)("relative flex items-center gap-2 px-4 py-2.5 text-sm font-medium transition-colors outline-none",b?"text-foreground":"text-muted-foreground hover:text-foreground"),children:[(0,d.jsx)(c,{className:"size-4"}),a.label,b&&(0,d.jsx)("span",{"aria-hidden":"true",className:"absolute bottom-0 left-0 right-0 h-0.5 rounded-full bg-primary motion-safe:animate-in motion-safe:fade-in motion-safe:slide-in-from-left-2 motion-safe:duration-200"})]},a.id)})}),(0,d.jsxs)("div",{className:"flex items-center gap-2 pb-1.5",children:[(0,d.jsxs)(N.l6,{value:A,onValueChange:a=>{let b=bY(a);B(b);let c=new URLSearchParams(n.toString());"default"!==b?c.set("groupId",b):c.delete("groupId"),window.history.replaceState(null,"",`${p}?${c.toString()}`)},children:[(0,d.jsx)(N.bq,{"aria-label":"Data group",className:"h-9 min-w-42 max-w-56 bg-white text-xs",children:(0,d.jsx)("span",{className:"flex flex-1 items-center gap-1.5 truncate text-left",children:ai||void 0!==ab.data?"default"===A?"Default group":ah?`${ah.icon?`${ah.icon} `:""}${ah.name}`:"Group unavailable":"Loading group…"})}),(0,d.jsx)(N.gC,{children:(0,d.jsx)("div",{className:"space-y-1 p-1",children:ae.map(a=>(0,d.jsx)(N.eb,{value:a.id,className:"px-2 py-1.5 text-sm",children:(0,d.jsxs)("span",{className:"truncate",children:[a.icon?`${a.icon} `:"",a.name]})},a.id))})})]}),E&&(0,d.jsxs)(I.$,{size:"default","data-ready":!Q&&ai&&!E.disabled&&!E.loading,className:"h-10 min-w-28 transition-colors",onClick:E.onClick,disabled:Q||!ai||E.disabled||E.loading,children:[E.loading?(0,d.jsx)(s.A,{className:"mr-1.5 size-3.5 animate-spin"}):(0,d.jsx)(t.A,{className:"mr-1.5 size-3.5"}),E.label]})]})]})]}),C&&$&&(0,d.jsx)("div",{className:"mb-6 animate-in slide-in-from-top-2 fade-in duration-200",children:(0,d.jsxs)("div",{className:(0,l.cn)("rounded-lg border border-border bg-card/70 p-4",K?.length==0&&"bg-background"),children:[(0,d.jsx)("div",{className:"flex items-center justify-end mb-3",children:(0,d.jsx)("button",{type:"button",onClick:()=>D(!1),className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Hide"})}),(0,d.jsx)(bw.v,{assets:W}),P&&(0,d.jsxs)("div",{className:(0,l.cn)("flex items-center gap-3 rounded-lg border border-border bg-background px-3 py-2.5",W.length>0&&"mt-3"),children:[(0,d.jsx)(s.A,{className:"size-4 shrink-0 animate-spin text-emerald-600"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("p",{className:"text-xs font-medium",children:"Indexing files"}),(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Running in the background — new files will join the queue."})]})]}),K.length>0&&(0,d.jsxs)("div",{className:(0,l.cn)(W.length>0&&"mt-4 border-t border-border pt-4"),children:[(0,d.jsx)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[{id:"running",label:"Running"},{id:"all",label:"All Jobs"}].map(a=>{let b=_===a.id;return(0,d.jsx)("button",{type:"button",onClick:()=>aa(a.id),className:(0,l.cn)("rounded-full px-3 py-1 text-xs font-medium transition-colors",b?"bg-muted text-foreground":"border border-border bg-transparent text-muted-foreground hover:bg-muted/50"),children:a.label},a.id)})}),(0,d.jsx)(bv.n,{jobs:"running"===_?K.filter(a=>"running"===a.status||"queued"===a.status):K,onChanged:ak})]})]})}),(0,d.jsxs)("div",{children:["add"===w&&(0,d.jsx)("div",{className:"w-full ",children:(0,d.jsx)("div",{className:"relative",children:Q?(0,d.jsxs)("div",{className:"mx-auto flex min-h-72 max-w-xl mt-5 flex-col items-center justify-center rounded-xl px-6 text-center",children:[(0,d.jsx)("div",{className:"mb-4 rounded-full bg-primary/10 p-3 text-primary",children:(0,d.jsx)(u.A,{className:"size-5"})}),(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Set an embedding API key first"}),(0,d.jsx)("p",{className:"mt-2 max-w-md text-sm text-muted-foreground",children:"Data is kept out of the Knowledge Base until it can be indexed. Configure an embedding provider and API key, then return here to add data."}),(0,d.jsx)(h(),{href:"/settings?section=models",className:"mt-5 inline-flex h-9 items-center justify-center rounded-md bg-primary px-3 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90",children:"Open AI model settings"})]}):(0,d.jsxs)(d.Fragment,{children:["website"===y&&(0,d.jsx)("div",{className:"w-full flex flex-col gap-8 animate-in fade-in duration-200",children:(0,d.jsx)("div",{children:(0,d.jsx)(R,{onStarted:ao,onActionChange:G,groupId:A})})}),"files"===y&&(0,d.jsx)("div",{className:"animate-in fade-in duration-200",children:(0,d.jsx)(am,{onAdded:an,onActionChange:G,groupId:A})}),"text"===y&&(0,d.jsx)("div",{className:" animate-in fade-in duration-200",children:(0,d.jsx)(U,{onAdded:an,onActionChange:G,groupId:A})}),"media"===y&&(0,d.jsx)("div",{className:"animate-in fade-in duration-200",children:(0,d.jsx)(aU,{onAdded:ak,onIndexed:ap,onProcessingStarted:aq,onActionChange:G,groupId:A})}),"integrations"===y&&(0,d.jsx)("div",{className:"animate-in fade-in duration-200",children:(0,d.jsx)(bu,{onAdded:an,groupId:A})})]})})}),"corpus"===w&&(0,d.jsx)("div",{className:"animate-in fade-in duration-300",children:(0,d.jsx)(bS,{documents:ad,groups:ae,onChanged:ak,isIndexing:P,activeVideoRuntimeScope:ag,initialGroupId:n.has("groupId")?o:void 0})})]})]})}},22515:(a,b,c)=>{c.d(b,{AM:()=>k,Wv:()=>l,hl:()=>m});var d=c(32108);c(21621);var e=c(72138),f=c(83583),g=c(4594),h=c(53078),i=c(54818),j=c(3989);function k({...a}){return(0,d.jsx)(e.y,{"data-slot":"popover",...a})}function l({...a}){return(0,d.jsx)(f.W,{"data-slot":"popover-trigger",...a})}function m({className:a,align:b="center",alignOffset:c=0,side:e="bottom",sideOffset:f=4,...k}){return(0,d.jsx)(g.i,{children:(0,d.jsx)(h.U,{align:b,alignOffset:c,side:e,sideOffset:f,className:"isolate z-50",children:(0,d.jsx)(i.i,{"data-slot":"popover-content",className:(0,j.cn)("z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...k})})})}},36908:(a,b,c)=>{c.d(b,{T:()=>f});var d=c(32108);c(21621);var e=c(3989);function f({className:a,...b}){return(0,d.jsx)("textarea",{"data-slot":"textarea",className:(0,e.cn)("flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-background px-2.5 py-2 text-base transition-colors outline-none! placeholder:text-muted-foreground/50 placeholder:text-xs disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",a),...b})}},49857:(a,b,c)=>{c.d(b,{K:()=>g});var d=c(32108);c(21621);var e=c(28245),f=c(3989);function g({open:a,onOpenChange:b,title:c,description:h,cancelText:i="Cancel",actionText:j="Continue",onAction:k,variant:l="default",icon:m,contentClassName:n}){return(0,d.jsx)(e.Lt,{open:a,onOpenChange:b,children:(0,d.jsxs)(e.EO,{className:n,children:[(0,d.jsxs)(e.wd,{children:[(0,d.jsxs)(e.r7,{className:"flex items-center gap-2",children:[m,c]}),"string"==typeof h?(0,d.jsx)(e.$v,{className:"whitespace-pre-wrap",children:h}):h?(0,d.jsx)("div",{className:"space-y-2 text-sm text-muted-foreground",children:h}):null]}),(0,d.jsxs)(e.ck,{children:[(0,d.jsx)(e.Zr,{children:i}),(0,d.jsx)(e.Rx,{onClick:a=>{a.preventDefault(),k&&k(),b(!1)},className:(0,f.cn)("destructive"===l&&"bg-destructive text-white hover:bg-destructive/90 gap-2"),children:j})]})]})})}},60403:(a,b,c)=>{c.d(b,{Av:()=>h,Pp:()=>f,g9:()=>e,y8:()=>d});let d="scrape_recent_queries",e="media_recent_urls",f="larkup:recent-add-history-cleared",g=[d,e];function h(a,b){for(let b of g)a.removeItem(b);b?.dispatchEvent(new Event(f))}}};