larkup 0.1.40 → 0.1.42

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 (336) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/diagnostics/route-bundle-stats.json +21 -21
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +18 -18
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
  18. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  19. package/.next/server/app/_not-found.segments/_index.segment.rsc +12 -12
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  21. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/analytics.html +1 -1
  25. package/.next/server/app/analytics.rsc +19 -19
  26. package/.next/server/app/analytics.segments/_full.segment.rsc +19 -19
  27. package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
  28. package/.next/server/app/analytics.segments/_index.segment.rsc +12 -12
  29. package/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
  30. package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +3 -3
  31. package/.next/server/app/analytics.segments/analytics.segment.rsc +3 -3
  32. package/.next/server/app/api/analytics/route.js.nft.json +1 -1
  33. package/.next/server/app/api/chat/route.js +1 -1
  34. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  35. package/.next/server/app/api/chat/status/route.js.nft.json +1 -1
  36. package/.next/server/app/api/chat/suggestions/route.js.nft.json +1 -1
  37. package/.next/server/app/api/config/route.js.nft.json +1 -1
  38. package/.next/server/app/api/config/test/route.js.nft.json +1 -1
  39. package/.next/server/app/api/connections/route.js.nft.json +1 -1
  40. package/.next/server/app/api/connections/webhook/route.js.nft.json +1 -1
  41. package/.next/server/app/api/demo/route.js.nft.json +1 -1
  42. package/.next/server/app/api/deploy/cloud-project/route.js.nft.json +1 -1
  43. package/.next/server/app/api/deploy/ssh/route.js.nft.json +1 -1
  44. package/.next/server/app/api/deployment/blob-setup/route.js.nft.json +1 -1
  45. package/.next/server/app/api/deployment/config/route.js.nft.json +1 -1
  46. package/.next/server/app/api/describe-image/route.js.nft.json +1 -1
  47. package/.next/server/app/api/documents/route.js.nft.json +1 -1
  48. package/.next/server/app/api/firecrawl/local/route.js.nft.json +1 -1
  49. package/.next/server/app/api/index/route.js.nft.json +1 -1
  50. package/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
  51. package/.next/server/app/api/jobs/route.js.nft.json +1 -1
  52. package/.next/server/app/api/media/[id]/route.js.nft.json +1 -1
  53. package/.next/server/app/api/media/process/route.js.nft.json +1 -1
  54. package/.next/server/app/api/media/route.js.nft.json +1 -1
  55. package/.next/server/app/api/media/stream/route.js.nft.json +1 -1
  56. package/.next/server/app/api/search/bing/route.js.nft.json +1 -1
  57. package/.next/server/app/api/search/brave/route.js.nft.json +1 -1
  58. package/.next/server/app/api/search/exa/route.js.nft.json +1 -1
  59. package/.next/server/app/api/search/google/route.js.nft.json +1 -1
  60. package/.next/server/app/api/search/route.js.nft.json +1 -1
  61. package/.next/server/app/api/search/tavily/route.js.nft.json +1 -1
  62. package/.next/server/app/api/server/agent/route.js.nft.json +1 -1
  63. package/.next/server/app/api/server/download/route.js.nft.json +1 -1
  64. package/.next/server/app/api/server/generate/route.js.nft.json +1 -1
  65. package/.next/server/app/api/server/local/route.js.nft.json +1 -1
  66. package/.next/server/app/api/servers/route.js.nft.json +1 -1
  67. package/.next/server/app/api/tabular/query/route.js.nft.json +1 -1
  68. package/.next/server/app/api/tabular/route.js.nft.json +1 -1
  69. package/.next/server/app/api/upload-file/route.js.nft.json +1 -1
  70. package/.next/server/app/api/uploads/[...slug]/route.js.nft.json +1 -1
  71. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  72. package/.next/server/app/chat.html +1 -1
  73. package/.next/server/app/chat.rsc +19 -19
  74. package/.next/server/app/chat.segments/_full.segment.rsc +19 -19
  75. package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
  76. package/.next/server/app/chat.segments/_index.segment.rsc +12 -12
  77. package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
  78. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +3 -3
  79. package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
  80. package/.next/server/app/data/page.js.nft.json +1 -1
  81. package/.next/server/app/data/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/data.html +1 -1
  83. package/.next/server/app/data.rsc +19 -19
  84. package/.next/server/app/data.segments/_full.segment.rsc +19 -19
  85. package/.next/server/app/data.segments/_head.segment.rsc +4 -4
  86. package/.next/server/app/data.segments/_index.segment.rsc +12 -12
  87. package/.next/server/app/data.segments/_tree.segment.rsc +2 -2
  88. package/.next/server/app/data.segments/data/__PAGE__.segment.rsc +3 -3
  89. package/.next/server/app/data.segments/data.segment.rsc +3 -3
  90. package/.next/server/app/index.html +1 -1
  91. package/.next/server/app/index.rsc +17 -17
  92. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  93. package/.next/server/app/index.segments/_full.segment.rsc +17 -17
  94. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  95. package/.next/server/app/index.segments/_index.segment.rsc +12 -12
  96. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  97. package/.next/server/app/page_client-reference-manifest.js +1 -1
  98. package/.next/server/app/settings/page.js.nft.json +1 -1
  99. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  100. package/.next/server/app/settings.html +1 -1
  101. package/.next/server/app/settings.rsc +19 -19
  102. package/.next/server/app/settings.segments/_full.segment.rsc +19 -19
  103. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  104. package/.next/server/app/settings.segments/_index.segment.rsc +12 -12
  105. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  106. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  107. package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  108. package/.next/server/chunks/0598_next_dist_esm_build_templates_app-route_0kbcuk-.js +10 -7
  109. package/.next/server/chunks/0598_next_dist_esm_build_templates_app-route_0sbf4ny.js +2 -2
  110. package/.next/server/chunks/[root-of-the-server]__06gca-c._.js +1 -1
  111. package/.next/server/chunks/[root-of-the-server]__0j2l54r._.js +1 -1
  112. package/.next/server/chunks/{[root-of-the-server]__1idgvjh._.js → [root-of-the-server]__0pmypq8._.js} +3 -3
  113. package/.next/server/chunks/[root-of-the-server]__0tlfusr._.js +1 -1
  114. package/.next/server/chunks/[root-of-the-server]__0x_a1jw._.js +1 -1
  115. package/.next/server/chunks/[root-of-the-server]__1-f7u-_._.js +1 -1
  116. package/.next/{standalone/apps/web/.next/server/chunks/[root-of-the-server]__1lhls88._.js → server/chunks/[root-of-the-server]__13xnq6l._.js} +1 -1
  117. package/.next/server/chunks/[root-of-the-server]__16jk_se._.js +1 -1
  118. package/.next/server/chunks/[root-of-the-server]__1s_l1di._.js +1 -1
  119. package/.next/server/chunks/[root-of-the-server]__1u4frv-._.js +1 -1
  120. package/.next/server/chunks/[root-of-the-server]__1w00ho9._.js +1 -1
  121. package/.next/server/chunks/_1ncm_ks._.js +1 -1
  122. package/.next/server/chunks/_1sx94ue._.js +1 -1
  123. package/.next/server/chunks/_20il040._.js +1 -1
  124. package/.next/server/chunks/packages_0cc5bxf._.js +1 -1
  125. package/.next/server/chunks/packages_1ggqion._.js +1 -1
  126. package/.next/server/chunks/packages_core_src_embeddings_registry_ts_05dafmb._.js +1 -1
  127. package/.next/server/chunks/packages_scraper_src_0kkcv_v._.js +1 -1
  128. package/.next/server/chunks/ssr/[root-of-the-server]__1k1mxo2._.js +1 -1
  129. package/.next/server/chunks/ssr/_0ffb2sn._.js +1 -1
  130. package/.next/server/chunks/ssr/_169pdlf._.js +5 -5
  131. package/.next/server/chunks/ssr/_18jagqc._.js +1 -1
  132. package/.next/server/chunks/ssr/_1b5ufkw._.js +3 -0
  133. package/.next/server/chunks/ssr/_1yqlx1m._.js +1 -1
  134. package/.next/server/chunks/ssr/packages_core_src_generator_generate-server_ts_15zzrn2._.js +1 -1
  135. package/.next/server/middleware-build-manifest.js +3 -3
  136. package/.next/server/pages/404.html +1 -1
  137. package/.next/server/pages/500.html +1 -1
  138. package/.next/standalone/apps/web/.next/BUILD_ID +1 -1
  139. package/.next/standalone/apps/web/.next/build-manifest.json +3 -3
  140. package/.next/standalone/apps/web/.next/required-server-files.json +1 -1
  141. package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
  142. package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
  143. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  144. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  145. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  146. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  147. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  148. package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  149. package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
  150. package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +18 -18
  151. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
  152. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  153. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +12 -12
  154. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  155. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  156. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  157. package/.next/standalone/apps/web/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  158. package/.next/standalone/apps/web/.next/server/app/analytics.html +1 -1
  159. package/.next/standalone/apps/web/.next/server/app/analytics.rsc +19 -19
  160. package/.next/standalone/apps/web/.next/server/app/analytics.segments/_full.segment.rsc +19 -19
  161. package/.next/standalone/apps/web/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
  162. package/.next/standalone/apps/web/.next/server/app/analytics.segments/_index.segment.rsc +12 -12
  163. package/.next/standalone/apps/web/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
  164. package/.next/standalone/apps/web/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +3 -3
  165. package/.next/standalone/apps/web/.next/server/app/analytics.segments/analytics.segment.rsc +3 -3
  166. package/.next/standalone/apps/web/.next/server/app/api/analytics/route.js.nft.json +1 -1
  167. package/.next/standalone/apps/web/.next/server/app/api/chat/route.js +1 -1
  168. package/.next/standalone/apps/web/.next/server/app/api/chat/route.js.nft.json +1 -1
  169. package/.next/standalone/apps/web/.next/server/app/api/chat/status/route.js.nft.json +1 -1
  170. package/.next/standalone/apps/web/.next/server/app/api/chat/suggestions/route.js.nft.json +1 -1
  171. package/.next/standalone/apps/web/.next/server/app/api/config/route.js.nft.json +1 -1
  172. package/.next/standalone/apps/web/.next/server/app/api/config/test/route.js.nft.json +1 -1
  173. package/.next/standalone/apps/web/.next/server/app/api/connections/route.js.nft.json +1 -1
  174. package/.next/standalone/apps/web/.next/server/app/api/connections/webhook/route.js.nft.json +1 -1
  175. package/.next/standalone/apps/web/.next/server/app/api/demo/route.js.nft.json +1 -1
  176. package/.next/standalone/apps/web/.next/server/app/api/deploy/cloud-project/route.js.nft.json +1 -1
  177. package/.next/standalone/apps/web/.next/server/app/api/deploy/ssh/route.js.nft.json +1 -1
  178. package/.next/standalone/apps/web/.next/server/app/api/deployment/blob-setup/route.js.nft.json +1 -1
  179. package/.next/standalone/apps/web/.next/server/app/api/deployment/config/route.js.nft.json +1 -1
  180. package/.next/standalone/apps/web/.next/server/app/api/describe-image/route.js.nft.json +1 -1
  181. package/.next/standalone/apps/web/.next/server/app/api/documents/route.js.nft.json +1 -1
  182. package/.next/standalone/apps/web/.next/server/app/api/firecrawl/local/route.js.nft.json +1 -1
  183. package/.next/standalone/apps/web/.next/server/app/api/index/route.js.nft.json +1 -1
  184. package/.next/standalone/apps/web/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
  185. package/.next/standalone/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -1
  186. package/.next/standalone/apps/web/.next/server/app/api/media/[id]/route.js.nft.json +1 -1
  187. package/.next/standalone/apps/web/.next/server/app/api/media/process/route.js.nft.json +1 -1
  188. package/.next/standalone/apps/web/.next/server/app/api/media/route.js.nft.json +1 -1
  189. package/.next/standalone/apps/web/.next/server/app/api/media/stream/route.js.nft.json +1 -1
  190. package/.next/standalone/apps/web/.next/server/app/api/search/bing/route.js.nft.json +1 -1
  191. package/.next/standalone/apps/web/.next/server/app/api/search/brave/route.js.nft.json +1 -1
  192. package/.next/standalone/apps/web/.next/server/app/api/search/exa/route.js.nft.json +1 -1
  193. package/.next/standalone/apps/web/.next/server/app/api/search/google/route.js.nft.json +1 -1
  194. package/.next/standalone/apps/web/.next/server/app/api/search/route.js.nft.json +1 -1
  195. package/.next/standalone/apps/web/.next/server/app/api/search/tavily/route.js.nft.json +1 -1
  196. package/.next/standalone/apps/web/.next/server/app/api/server/agent/route.js.nft.json +1 -1
  197. package/.next/standalone/apps/web/.next/server/app/api/server/download/route.js.nft.json +1 -1
  198. package/.next/standalone/apps/web/.next/server/app/api/server/generate/route.js.nft.json +1 -1
  199. package/.next/standalone/apps/web/.next/server/app/api/server/local/route.js.nft.json +1 -1
  200. package/.next/standalone/apps/web/.next/server/app/api/servers/route.js.nft.json +1 -1
  201. package/.next/standalone/apps/web/.next/server/app/api/tabular/query/route.js.nft.json +1 -1
  202. package/.next/standalone/apps/web/.next/server/app/api/tabular/route.js.nft.json +1 -1
  203. package/.next/standalone/apps/web/.next/server/app/api/upload-file/route.js.nft.json +1 -1
  204. package/.next/standalone/apps/web/.next/server/app/api/uploads/[...slug]/route.js.nft.json +1 -1
  205. package/.next/standalone/apps/web/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  206. package/.next/standalone/apps/web/.next/server/app/chat.html +1 -1
  207. package/.next/standalone/apps/web/.next/server/app/chat.rsc +19 -19
  208. package/.next/standalone/apps/web/.next/server/app/chat.segments/_full.segment.rsc +19 -19
  209. package/.next/standalone/apps/web/.next/server/app/chat.segments/_head.segment.rsc +4 -4
  210. package/.next/standalone/apps/web/.next/server/app/chat.segments/_index.segment.rsc +12 -12
  211. package/.next/standalone/apps/web/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
  212. package/.next/standalone/apps/web/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +3 -3
  213. package/.next/standalone/apps/web/.next/server/app/chat.segments/chat.segment.rsc +3 -3
  214. package/.next/standalone/apps/web/.next/server/app/data/page.js.nft.json +1 -1
  215. package/.next/standalone/apps/web/.next/server/app/data/page_client-reference-manifest.js +1 -1
  216. package/.next/standalone/apps/web/.next/server/app/data.html +1 -1
  217. package/.next/standalone/apps/web/.next/server/app/data.rsc +19 -19
  218. package/.next/standalone/apps/web/.next/server/app/data.segments/_full.segment.rsc +19 -19
  219. package/.next/standalone/apps/web/.next/server/app/data.segments/_head.segment.rsc +4 -4
  220. package/.next/standalone/apps/web/.next/server/app/data.segments/_index.segment.rsc +12 -12
  221. package/.next/standalone/apps/web/.next/server/app/data.segments/_tree.segment.rsc +2 -2
  222. package/.next/standalone/apps/web/.next/server/app/data.segments/data/__PAGE__.segment.rsc +3 -3
  223. package/.next/standalone/apps/web/.next/server/app/data.segments/data.segment.rsc +3 -3
  224. package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
  225. package/.next/standalone/apps/web/.next/server/app/index.rsc +17 -17
  226. package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  227. package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +17 -17
  228. package/.next/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
  229. package/.next/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +12 -12
  230. package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  231. package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  232. package/.next/standalone/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
  233. package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  234. package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
  235. package/.next/standalone/apps/web/.next/server/app/settings.rsc +19 -19
  236. package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +19 -19
  237. package/.next/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  238. package/.next/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +12 -12
  239. package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  240. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  241. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  242. package/.next/standalone/apps/web/.next/server/chunks/0598_next_dist_esm_build_templates_app-route_0kbcuk-.js +10 -7
  243. package/.next/standalone/apps/web/.next/server/chunks/0598_next_dist_esm_build_templates_app-route_0sbf4ny.js +2 -2
  244. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__06gca-c._.js +1 -1
  245. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0j2l54r._.js +1 -1
  246. package/.next/standalone/apps/web/.next/server/chunks/{[root-of-the-server]__1idgvjh._.js → [root-of-the-server]__0pmypq8._.js} +3 -3
  247. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0tlfusr._.js +1 -1
  248. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0x_a1jw._.js +1 -1
  249. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__1-f7u-_._.js +1 -1
  250. package/.next/{server/chunks/[root-of-the-server]__1lhls88._.js → standalone/apps/web/.next/server/chunks/[root-of-the-server]__13xnq6l._.js} +1 -1
  251. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__16jk_se._.js +1 -1
  252. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__1s_l1di._.js +1 -1
  253. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__1u4frv-._.js +1 -1
  254. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__1w00ho9._.js +1 -1
  255. package/.next/standalone/apps/web/.next/server/chunks/_1ncm_ks._.js +1 -1
  256. package/.next/standalone/apps/web/.next/server/chunks/_1sx94ue._.js +1 -1
  257. package/.next/standalone/apps/web/.next/server/chunks/_20il040._.js +1 -1
  258. package/.next/standalone/apps/web/.next/server/chunks/packages_0cc5bxf._.js +1 -1
  259. package/.next/standalone/apps/web/.next/server/chunks/packages_1ggqion._.js +1 -1
  260. package/.next/standalone/apps/web/.next/server/chunks/packages_core_src_embeddings_registry_ts_05dafmb._.js +1 -1
  261. package/.next/standalone/apps/web/.next/server/chunks/packages_scraper_src_0kkcv_v._.js +1 -1
  262. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__1k1mxo2._.js +1 -1
  263. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0ffb2sn._.js +1 -1
  264. package/.next/standalone/apps/web/.next/server/chunks/ssr/_169pdlf._.js +5 -5
  265. package/.next/standalone/apps/web/.next/server/chunks/ssr/_18jagqc._.js +1 -1
  266. package/.next/standalone/apps/web/.next/server/chunks/ssr/_1b5ufkw._.js +3 -0
  267. package/.next/standalone/apps/web/.next/server/chunks/ssr/_1yqlx1m._.js +1 -1
  268. package/.next/standalone/apps/web/.next/server/chunks/ssr/packages_core_src_generator_generate-server_ts_15zzrn2._.js +1 -1
  269. package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +3 -3
  270. package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
  271. package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
  272. package/.next/standalone/apps/web/.next/static/chunks/1_knu6c2q82r_.js +1 -0
  273. package/.next/{static/chunks/37j20in7beze4.js → standalone/apps/web/.next/static/chunks/1gl22nlyonq0i.js} +1 -1
  274. package/.next/standalone/apps/web/.next/static/chunks/1xr94e4n5c_m_.css +1 -0
  275. package/.next/standalone/apps/web/.next/static/chunks/{2h-80z3n8mi3d.js → 2diknd81m_z55.js} +1 -1
  276. package/.next/standalone/apps/web/.next/static/chunks/2iog7bwy_5c7e.js +1 -0
  277. package/.next/standalone/apps/web/.next/static/chunks/{2_qbhu4zxkm7j.js → 2q_4eq7-dkww2.js} +5 -5
  278. package/.next/standalone/apps/web/.next/static/chunks/{1b9srvyupwcjz.js → 2t0il37i0nvoo.js} +1 -1
  279. package/.next/standalone/apps/web/.next/static/media/pdf.worker.min.43wid0v0nfx-f.mjs +29 -0
  280. package/.next/standalone/apps/web/CHANGELOG.md +21 -0
  281. package/.next/standalone/apps/web/app/api/chat/route.ts +30 -64
  282. package/.next/standalone/apps/web/app/api/chat/tools.ts +76 -12
  283. package/.next/standalone/apps/web/app/api/media/process/route.ts +88 -40
  284. package/.next/standalone/apps/web/components/chat/chat-workspace.tsx +10 -10
  285. package/.next/standalone/apps/web/components/chat/message-item.tsx +1 -8
  286. package/.next/standalone/apps/web/components/data/firecrawl-notice.tsx +3 -3
  287. package/.next/standalone/apps/web/components/data/media-panel.tsx +2 -8
  288. package/.next/standalone/apps/web/components/data/scrape-panel.tsx +3 -11
  289. package/.next/standalone/apps/web/components/data/upload-panel.tsx +7 -4
  290. package/.next/standalone/apps/web/components/index/index-workspace.tsx +1 -1
  291. package/.next/standalone/apps/web/lib/pdf-images.ts +30 -1
  292. package/.next/standalone/apps/web/lib/retrieval-routing.ts +72 -0
  293. package/.next/standalone/apps/web/package.json +1 -1
  294. package/.next/standalone/apps/web/server.js +1 -1
  295. package/.next/standalone/packages/tools/doc-editor/CHANGELOG.md +7 -0
  296. package/.next/standalone/packages/tools/doc-editor/package.json +1 -1
  297. package/.next/standalone/packages/tools/video-audio/CHANGELOG.md +6 -0
  298. package/.next/standalone/packages/tools/video-audio/dist/url-importer.js +37 -5
  299. package/.next/standalone/packages/tools/video-audio/package.json +1 -1
  300. package/.next/standalone/packages/tools/video-audio/src/url-importer.ts +61 -25
  301. package/.next/static/chunks/1_knu6c2q82r_.js +1 -0
  302. package/.next/{standalone/apps/web/.next/static/chunks/37j20in7beze4.js → static/chunks/1gl22nlyonq0i.js} +1 -1
  303. package/.next/static/chunks/1xr94e4n5c_m_.css +1 -0
  304. package/.next/static/chunks/{2h-80z3n8mi3d.js → 2diknd81m_z55.js} +1 -1
  305. package/.next/static/chunks/2iog7bwy_5c7e.js +1 -0
  306. package/.next/static/chunks/{2_qbhu4zxkm7j.js → 2q_4eq7-dkww2.js} +5 -5
  307. package/.next/static/chunks/{1b9srvyupwcjz.js → 2t0il37i0nvoo.js} +1 -1
  308. package/.next/static/media/pdf.worker.min.43wid0v0nfx-f.mjs +29 -0
  309. package/CHANGELOG.md +21 -0
  310. package/app/api/chat/route.ts +30 -64
  311. package/app/api/chat/tools.ts +76 -12
  312. package/app/api/media/process/route.ts +88 -40
  313. package/components/chat/chat-workspace.tsx +10 -10
  314. package/components/chat/message-item.tsx +1 -8
  315. package/components/data/firecrawl-notice.tsx +3 -3
  316. package/components/data/media-panel.tsx +2 -8
  317. package/components/data/scrape-panel.tsx +3 -11
  318. package/components/data/upload-panel.tsx +7 -4
  319. package/components/index/index-workspace.tsx +1 -1
  320. package/lib/pdf-images.ts +30 -1
  321. package/lib/retrieval-routing.ts +72 -0
  322. package/package.json +6 -6
  323. package/.next/server/chunks/ssr/apps_web_lib_pdf-images_ts_13-l5wa._.js +0 -3
  324. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_lib_pdf-images_ts_13-l5wa._.js +0 -3
  325. package/.next/standalone/apps/web/.next/static/chunks/2ib3e0xrrdait.js +0 -1
  326. package/.next/standalone/apps/web/.next/static/chunks/38f3p67a1uufx.js +0 -1
  327. package/.next/standalone/apps/web/.next/static/chunks/3fe06cefiv690.css +0 -1
  328. package/.next/static/chunks/2ib3e0xrrdait.js +0 -1
  329. package/.next/static/chunks/38f3p67a1uufx.js +0 -1
  330. package/.next/static/chunks/3fe06cefiv690.css +0 -1
  331. /package/.next/standalone/apps/web/.next/static/{7yuxi3XYqMr4kxUl6T-qk → YT7FJOJe86DX-Sa61-JJz}/_buildManifest.js +0 -0
  332. /package/.next/standalone/apps/web/.next/static/{7yuxi3XYqMr4kxUl6T-qk → YT7FJOJe86DX-Sa61-JJz}/_clientMiddlewareManifest.js +0 -0
  333. /package/.next/standalone/apps/web/.next/static/{7yuxi3XYqMr4kxUl6T-qk → YT7FJOJe86DX-Sa61-JJz}/_ssgManifest.js +0 -0
  334. /package/.next/static/{7yuxi3XYqMr4kxUl6T-qk → YT7FJOJe86DX-Sa61-JJz}/_buildManifest.js +0 -0
  335. /package/.next/static/{7yuxi3XYqMr4kxUl6T-qk → YT7FJOJe86DX-Sa61-JJz}/_clientMiddlewareManifest.js +0 -0
  336. /package/.next/static/{7yuxi3XYqMr4kxUl6T-qk → YT7FJOJe86DX-Sa61-JJz}/_ssgManifest.js +0 -0
@@ -731,13 +731,7 @@ function MediaContent({
731
731
  if (!res.ok) throw new Error(data.error ?? 'Media import failed');
732
732
  const ids = (data.assets as MediaAsset[]).map((asset) => asset.id);
733
733
  toast.success(`${mediaType === 'video' ? 'Video' : 'Audio'} import started`, {
734
- description: `Expected time: ${
735
- remoteDuration
736
- ? `about ${remoteEstimate.processingMinutes} minute${
737
- remoteEstimate.processingMinutes === 1 ? '' : 's'
738
- }`
739
- : 'a few minutes'
740
- }. You can safely leave — we will keep indexing it in the background.`,
734
+ description: 'Queued for download and indexing. You can safely leave in the meantime.',
741
735
  duration: 8_000,
742
736
  });
743
737
  await processAssets(ids);
@@ -1385,7 +1379,7 @@ function MediaContent({
1385
1379
  <AlertDialogFooter>
1386
1380
  <AlertDialogCancel>Keep file</AlertDialogCancel>
1387
1381
  <AlertDialogAction
1388
- className="bg-destructive text-destructive-foreground hover:bg-destructive/90"
1382
+ className="bg-destructive text-white hover:bg-destructive/90"
1389
1383
  onClick={() => {
1390
1384
  if (assetToRemove) void handleDelete(assetToRemove.id);
1391
1385
  setAssetToRemove(null);
@@ -576,20 +576,12 @@ export function ScrapePanel({
576
576
  const data = await res.json();
577
577
  if (!res.ok) throw new Error(data.error ?? 'Could not start job');
578
578
 
579
- const { totalPages, estimatedSeconds } = estimateEtlDuration(
580
- selectedUrls.length,
581
- effectiveScope,
582
- specificUrls ? 1 : pageLimit,
583
- );
584
-
585
- toast.success('Scraping started, running in background', {
579
+ toast.success('Scrape queued', {
586
580
  description: specificUrls
587
- ? `Scraping ${selectedUrls.length} specific URL(s) only, no deep crawl. You can navigate away. Progress is tracked automatically.`
581
+ ? `We will connect to ${selectedUrls.length} specific URL(s) and show real page progress as each response arrives. You can navigate away.`
588
582
  : `${selectedUrls.length} ${
589
583
  effectiveScope === 'domain' ? 'domain(s)' : 'page(s)'
590
- } · ~${totalPages} pages · ETA ${formatDuration(
591
- estimatedSeconds,
592
- )}. You can navigate away. Progress is tracked automatically.`,
584
+ } selected. We will show real page progress as each response arrives; no artificial completion estimate. You can navigate away.`,
593
585
  duration: 8000,
594
586
  });
595
587
 
@@ -219,7 +219,10 @@ export function UploadPanel({ onAdded }: { onAdded: () => void }) {
219
219
  format: 'plain',
220
220
  rawContent: text,
221
221
  fileObject: file,
222
- indexImages: !text || text.trim().length === 0,
222
+ // PDF diagrams are often embedded alongside ordinary text. Keep
223
+ // visual indexing on by default, with the existing per-file toggle
224
+ // available for users who only want text extraction.
225
+ indexImages: true,
223
226
  });
224
227
  } else {
225
228
  const content = await file.text();
@@ -572,7 +575,7 @@ export function UploadPanel({ onAdded }: { onAdded: () => void }) {
572
575
  </button>
573
576
  </div>
574
577
  </div>
575
- <ul className="space-y-1.5 max-h-[350px] overflow-y-auto pr-1">
578
+ <ul className="space-y-1.5 max-h-87.5 overflow-y-auto pr-1">
576
579
  {staged.map((f) => (
577
580
  <li
578
581
  key={f.id}
@@ -782,7 +785,7 @@ export function UploadPanel({ onAdded }: { onAdded: () => void }) {
782
785
  <p className="text-[11px] text-muted-foreground mb-2 -mt-1">
783
786
  Selected columns will be combined to form the searchable content.
784
787
  </p>
785
- <div className="max-h-[120px] overflow-y-auto space-y-2 pr-2">
788
+ <div className="max-h-30 overflow-y-auto space-y-2 pr-2">
786
789
  {editingFile.keys?.map((k) => {
787
790
  const isSelected = editingFile.contentKeys?.includes(k);
788
791
  return (
@@ -871,7 +874,7 @@ export function UploadPanel({ onAdded }: { onAdded: () => void }) {
871
874
  <p className="text-[11px] text-muted-foreground mb-2 -mt-1">
872
875
  These columns will be stored as searchable metadata.
873
876
  </p>
874
- <div className="max-h-[120px] overflow-y-auto space-y-2 pr-2">
877
+ <div className="max-h-30 overflow-y-auto space-y-2 pr-2">
875
878
  {editingFile.keys?.map((k) => {
876
879
  const isSelected = editingFile.metadataKeys?.includes(k);
877
880
  const disabled = k === editingFile.titleKey;
@@ -95,7 +95,7 @@ export function IndexWorkspace({
95
95
  setIsIndexing(true);
96
96
  } else if (isIndexing && status === 'completed') {
97
97
  setIsIndexing(false);
98
- toast.success('Indexing complete your data is ready to use.');
98
+ toast.success('Indexing complete. Your data is ready to use.');
99
99
  try {
100
100
  const context = new (window.AudioContext || (window as any).webkitAudioContext)();
101
101
  const oscillator = context.createOscillator();
package/lib/pdf-images.ts CHANGED
@@ -3,7 +3,12 @@ import * as pdfjsLib from 'pdfjs-dist';
3
3
  export async function extractImagesFromPDF(
4
4
  file: File,
5
5
  ): Promise<{ base64: string; pageNumber: number; index: number }[]> {
6
- pdfjsLib.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjsLib.version}/pdf.worker.mjs`;
6
+ // Keep extraction self-contained. The previous CDN worker could fail behind
7
+ // a firewall or offline, silently leaving PDFs with no indexed visuals.
8
+ pdfjsLib.GlobalWorkerOptions.workerSrc = new URL(
9
+ 'pdfjs-dist/build/pdf.worker.min.mjs',
10
+ import.meta.url,
11
+ ).toString();
7
12
 
8
13
  const arrayBuffer = await file.arrayBuffer();
9
14
  const pdf = await pdfjsLib.getDocument({ data: new Uint8Array(arrayBuffer) }).promise;
@@ -30,6 +35,7 @@ export async function extractImagesFromPDF(
30
35
  try {
31
36
  const page = await pdf.getPage(i);
32
37
  const opList = await page.getOperatorList();
38
+ const pageStartCount = images.length;
33
39
 
34
40
  const imageOps = [];
35
41
  for (let j = 0; j < opList.fnArray.length; j++) {
@@ -86,6 +92,29 @@ export async function extractImagesFromPDF(
86
92
  console.error(`Error extracting image ${objId} on page ${i}`, err);
87
93
  }
88
94
  }
95
+
96
+ // Diagrams and slides in PDFs are commonly vector artwork, not embedded
97
+ // bitmap objects. When image indexing is explicitly enabled, render such
98
+ // a page as one bounded visual so its labels and structure remain
99
+ // available to the vision model and to chat previews.
100
+ if (images.length === pageStartCount) {
101
+ try {
102
+ const viewport = page.getViewport({ scale: 1 });
103
+ const maxDimension = 1_600;
104
+ const scale = Math.min(1, maxDimension / Math.max(viewport.width, viewport.height));
105
+ const renderedViewport = page.getViewport({ scale: Math.max(scale, 0.1) });
106
+ const canvas = document.createElement('canvas');
107
+ canvas.width = Math.max(1, Math.round(renderedViewport.width));
108
+ canvas.height = Math.max(1, Math.round(renderedViewport.height));
109
+ const ctx = canvas.getContext('2d');
110
+ if (ctx) {
111
+ await page.render({ canvas, viewport: renderedViewport }).promise;
112
+ images.push({ base64: toDataUrl(canvas), pageNumber: i, index: imageIndex++ });
113
+ }
114
+ } catch (err) {
115
+ console.error(`Error rendering PDF page ${i} for visual indexing`, err);
116
+ }
117
+ }
89
118
  } catch (err) {
90
119
  console.error(`Error processing page ${i}`, err);
91
120
  }
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Keeps retrieval routing deterministic before the chat model is asked to
3
+ * decide whether a returned source is actually useful.
4
+ */
5
+ export function requiresKnowledgeBaseSearch(text: string): boolean {
6
+ const normalized = text.trim();
7
+ if (/^(hi|hello|hey|thanks|thank you|ok|sure|yes|no|please|help)\b/i.test(normalized)) {
8
+ return false;
9
+ }
10
+
11
+ return (
12
+ /\b(my|our)\s+(favo(?:u)?rite|preference|choice|answer|name|result|score|winner)\b/i.test(
13
+ normalized,
14
+ ) ||
15
+ /\b(?:what|which|who|where|when|how)\b[\s\S]{0,80}\b(my|our)\b/i.test(normalized) ||
16
+ /\b(?:this|that|the)\s+(?:match|video|episode|recording|diagram|chart|image|page|section)\b/i.test(
17
+ normalized,
18
+ ) ||
19
+ /\b(?:shown|listed|named|counted|under)\b[\s\S]{0,80}\b(?:image|diagram|chart|pdf|document|page|section|resources)\b/i.test(
20
+ normalized,
21
+ ) ||
22
+ /\b(my|our)\s+(document|file|data|image|picture|diagram|video|audio|upload|corpus|knowledge|database|db|pdf|report|spreadsheet|presentation)\b/i.test(
23
+ normalized,
24
+ ) ||
25
+ /\b(?:search|check|query)\s+(?:the\s+)?(?:knowledge base|corpus|database|db)\b/i.test(
26
+ normalized,
27
+ ) ||
28
+ /\b(the|this|that)\s+(document|file|diagram|image|picture|upload|pdf|report)\b/i.test(
29
+ normalized,
30
+ ) ||
31
+ /\b(uploaded?|indexed|scraped|knowledge base|corpus)\b/i.test(normalized) ||
32
+ /\bshow\s+me\b/i.test(normalized)
33
+ );
34
+ }
35
+
36
+ /** Current/public questions should begin on the web unless they explicitly
37
+ * refer to the user's indexed data, which the caller gives precedence to. */
38
+ export function requiresCurrentWebSearch(text: string): boolean {
39
+ return /\b(?:search (?:the )?web|search online|look (?:it )?up|internet|latest|current|today|yesterday|breaking news|weather|stock price|exchange rate|election result|schedule|who won|winner|match result|final score)\b/i.test(
40
+ text,
41
+ );
42
+ }
43
+
44
+ /** Only the first retrieval is forced. The other source remains available for
45
+ * exactly one recovery attempt; subsequent steps are reserved for analysis and
46
+ * the final answer. */
47
+ export function retrievalToolsForStep(options: {
48
+ stepNumber: number;
49
+ forceKnowledgeBaseSearch: boolean;
50
+ forceWebSearch: boolean;
51
+ toolNames: string[];
52
+ }): { toolChoice?: { type: 'tool'; toolName: string }; activeTools?: string[] } | undefined {
53
+ const { stepNumber, forceKnowledgeBaseSearch, forceWebSearch, toolNames } = options;
54
+ const without = (...blocked: string[]) => toolNames.filter((name) => !blocked.includes(name));
55
+
56
+ if (stepNumber === 0 && forceKnowledgeBaseSearch) {
57
+ return { toolChoice: { type: 'tool', toolName: 'searchKnowledgeBase' } };
58
+ }
59
+ if (stepNumber === 0 && forceWebSearch) {
60
+ return { toolChoice: { type: 'tool', toolName: 'webSearch' } };
61
+ }
62
+ if (stepNumber === 0) {
63
+ return { activeTools: without('webSearch', 'searchKnowledgeBase') };
64
+ }
65
+ if (stepNumber === 1 && forceKnowledgeBaseSearch) {
66
+ return { activeTools: without('searchKnowledgeBase') };
67
+ }
68
+ if (stepNumber === 1 && forceWebSearch) {
69
+ return { activeTools: without('webSearch') };
70
+ }
71
+ return { activeTools: without('webSearch', 'searchKnowledgeBase') };
72
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "larkup",
3
- "version": "0.1.40",
3
+ "version": "0.1.42",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "larkup": "./bin/larkup.js"
@@ -53,13 +53,13 @@
53
53
  "xlsx": "^0.18.5",
54
54
  "zod": "^4.4.3",
55
55
  "zustand": "^5.0.14",
56
- "@larkup/core": "0.2.5",
56
+ "@larkup/core": "0.2.6",
57
+ "@larkup/marketplace": "0.1.12",
58
+ "@larkup/scraper": "0.1.30",
57
59
  "@larkup/sandbox": "0.1.2",
58
- "@larkup/tool-doc-editor": "0.2.6",
59
- "@larkup/scraper": "0.1.28",
60
+ "@larkup/tool-doc-editor": "0.2.7",
60
61
  "@larkup/vector-stores": "0.1.23",
61
- "@larkup/marketplace": "0.1.11",
62
- "@larkup/tool-video-audio": "0.2.3"
62
+ "@larkup/tool-video-audio": "0.2.4"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@tailwindcss/postcss": "^4.2.0",
@@ -1,3 +0,0 @@
1
- module.exports=[802183,a=>{"use strict";var b=a.i(531245);async function c(a){b.GlobalWorkerOptions.workerSrc=`//cdnjs.cloudflare.com/ajax/libs/pdf.js/${b.version}/pdf.worker.mjs`;let c=await a.arrayBuffer(),d=await b.getDocument({data:new Uint8Array(c)}).promise,e=d.numPages,f=[],g=0,h=a=>{let b=Math.min(1,1600/Math.max(a.width,a.height));if(1===b)return a.toDataURL("image/jpeg",.86);let c=document.createElement("canvas");return c.width=Math.max(1,Math.round(a.width*b)),c.height=Math.max(1,Math.round(a.height*b)),c.getContext("2d")?.drawImage(a,0,0,c.width,c.height),c.toDataURL("image/jpeg",.86)};for(let a=1;a<=e;a++)try{let c=await d.getPage(a),e=await c.getOperatorList(),i=[];for(let a=0;a<e.fnArray.length;a++)(e.fnArray[a]===b.OPS.paintImageXObject||e.fnArray[a]===b.OPS.paintInlineImageXObject)&&i.push(e.argsArray[a][0]);for(let b of i)try{let d=await new Promise(a=>{try{c.objs.get(b,b=>a(b))}catch(b){a(null)}});if(d&&d.bitmap){let b=document.createElement("canvas");b.width=d.bitmap.width||d.width,b.height=d.bitmap.height||d.height;let c=b.getContext("2d");c&&(c.drawImage(d.bitmap,0,0),f.push({base64:h(b),pageNumber:a,index:g++}))}else if(d&&d.data&&d.width&&d.height){let b=document.createElement("canvas");b.width=d.width,b.height=d.height;let c=b.getContext("2d");if(c){let e=new ImageData(new Uint8ClampedArray(d.data),d.width,d.height);c.putImageData(e,0,0),f.push({base64:h(b),pageNumber:a,index:g++})}}}catch(c){console.error(`Error extracting image ${b} on page ${a}`,c)}}catch(b){console.error(`Error processing page ${a}`,b)}return f}a.s(["extractImagesFromPDF",0,c])}];
2
-
3
- //# sourceMappingURL=apps_web_lib_pdf-images_ts_13-l5wa._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[802183,a=>{"use strict";var b=a.i(531245);async function c(a){b.GlobalWorkerOptions.workerSrc=`//cdnjs.cloudflare.com/ajax/libs/pdf.js/${b.version}/pdf.worker.mjs`;let c=await a.arrayBuffer(),d=await b.getDocument({data:new Uint8Array(c)}).promise,e=d.numPages,f=[],g=0,h=a=>{let b=Math.min(1,1600/Math.max(a.width,a.height));if(1===b)return a.toDataURL("image/jpeg",.86);let c=document.createElement("canvas");return c.width=Math.max(1,Math.round(a.width*b)),c.height=Math.max(1,Math.round(a.height*b)),c.getContext("2d")?.drawImage(a,0,0,c.width,c.height),c.toDataURL("image/jpeg",.86)};for(let a=1;a<=e;a++)try{let c=await d.getPage(a),e=await c.getOperatorList(),i=[];for(let a=0;a<e.fnArray.length;a++)(e.fnArray[a]===b.OPS.paintImageXObject||e.fnArray[a]===b.OPS.paintInlineImageXObject)&&i.push(e.argsArray[a][0]);for(let b of i)try{let d=await new Promise(a=>{try{c.objs.get(b,b=>a(b))}catch(b){a(null)}});if(d&&d.bitmap){let b=document.createElement("canvas");b.width=d.bitmap.width||d.width,b.height=d.bitmap.height||d.height;let c=b.getContext("2d");c&&(c.drawImage(d.bitmap,0,0),f.push({base64:h(b),pageNumber:a,index:g++}))}else if(d&&d.data&&d.width&&d.height){let b=document.createElement("canvas");b.width=d.width,b.height=d.height;let c=b.getContext("2d");if(c){let e=new ImageData(new Uint8ClampedArray(d.data),d.width,d.height);c.putImageData(e,0,0),f.push({base64:h(b),pageNumber:a,index:g++})}}}catch(c){console.error(`Error extracting image ${b} on page ${a}`,c)}}catch(b){console.error(`Error processing page ${a}`,b)}return f}a.s(["extractImagesFromPDF",0,c])}];
2
-
3
- //# sourceMappingURL=apps_web_lib_pdf-images_ts_13-l5wa._.js.map
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,385290,t=>{"use strict";var e=t.i(410386);async function a(t){e.GlobalWorkerOptions.workerSrc=`//cdnjs.cloudflare.com/ajax/libs/pdf.js/${e.version}/pdf.worker.mjs`;let a=await t.arrayBuffer(),r=await e.getDocument({data:new Uint8Array(a)}).promise,i=r.numPages,n=[],h=0,o=t=>{let e=Math.min(1,1600/Math.max(t.width,t.height));if(1===e)return t.toDataURL("image/jpeg",.86);let a=document.createElement("canvas");return a.width=Math.max(1,Math.round(t.width*e)),a.height=Math.max(1,Math.round(t.height*e)),a.getContext("2d")?.drawImage(t,0,0,a.width,a.height),a.toDataURL("image/jpeg",.86)};for(let t=1;t<=i;t++)try{let a=await r.getPage(t),i=await a.getOperatorList(),g=[];for(let t=0;t<i.fnArray.length;t++)(i.fnArray[t]===e.OPS.paintImageXObject||i.fnArray[t]===e.OPS.paintInlineImageXObject)&&g.push(i.argsArray[t][0]);for(let e of g)try{let r=await new Promise(t=>{try{a.objs.get(e,e=>t(e))}catch(e){t(null)}});if(r&&r.bitmap){let e=document.createElement("canvas");e.width=r.bitmap.width||r.width,e.height=r.bitmap.height||r.height;let a=e.getContext("2d");a&&(a.drawImage(r.bitmap,0,0),n.push({base64:o(e),pageNumber:t,index:h++}))}else if(r&&r.data&&r.width&&r.height){let e=document.createElement("canvas");e.width=r.width,e.height=r.height;let a=e.getContext("2d");if(a){let i=new ImageData(new Uint8ClampedArray(r.data),r.width,r.height);a.putImageData(i,0,0),n.push({base64:o(e),pageNumber:t,index:h++})}}}catch(a){console.error(`Error extracting image ${e} on page ${t}`,a)}}catch(e){console.error(`Error processing page ${t}`,e)}return n}t.s(["extractImagesFromPDF",0,a])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,155369,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},505716,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={assign:function(){return s},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return l}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});function o(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,i(e));else t.set(r,i(a));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,a]of r.entries())e.append(t,a)}return e}},584345,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return k},MissingStaticPage:function(){return x},NormalizeError:function(){return v},PageNotFoundError:function(){return b},SP:function(){return h},ST:function(){return g},WEB_VITALS:function(){return o},execOnce:function(){return i},getDisplayName:function(){return c},getLocationOrigin:function(){return d},getURL:function(){return u},isAbsoluteUrl:function(){return s},isResSent:function(){return p},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return m},stringifyError:function(){return w}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...a)=>(r||(r=!0,t=e(...a)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>l.test(e);function d(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function u(){let{href:e}=window.location,t=d();return e.substring(t.length)}function c(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function p(e){return e.finished||e.headersSent}function m(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function f(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&p(r))return a;if(!a)throw Object.defineProperty(Error(`"${c(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return a}let h="u">typeof performance,g=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class v extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class x extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class k extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},708909,e=>{"use strict";let t=(0,e.i(874822).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",0,t],708909)},487779,e=>{"use strict";let t=(0,e.i(874822).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Settings",0,t],487779)},539352,e=>{"use strict";let t=(0,e.i(874822).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],539352)},960198,e=>{"use strict";let t=(0,e.i(874822).default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);e.s(["ArrowUp",0,t],960198)},909042,e=>{"use strict";let t=(0,e.i(874822).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["default",0,t])},82100,e=>{"use strict";var t=e.i(523829),r=e.i(178328);let a=(0,r.createContext)(null);e.s(["ThemeCustomizerProvider",0,function({children:e}){let[n,o]=(0,r.useState)(!1),[i,l]=(0,r.useState)("default"),[s,d]=(0,r.useState)("sidebar"),[u,c]=(0,r.useState)("radius-default"),[p,m]=(0,r.useState)("bg-default"),[f,h]=(0,r.useState)("panel-default"),[g,y]=(0,r.useState)("panel-default"),[v,b]=(0,r.useState)("card");return(0,r.useEffect)(()=>{o(!0);let e=localStorage.getItem("app-theme"),t=localStorage.getItem("app-layout"),r=localStorage.getItem("app-radius"),a=localStorage.getItem("app-background"),n=localStorage.getItem("app-panel-bg"),i=localStorage.getItem("app-nav-bg"),s=localStorage.getItem("app-pagestyle");e&&l(e),t&&d(t),r&&c(r),a&&m(a),n&&h(n),i&&y(i),s&&b(s)},[]),(0,r.useEffect)(()=>{if(!n)return;localStorage.setItem("app-theme",i),localStorage.setItem("app-layout",s),localStorage.setItem("app-radius",u),localStorage.setItem("app-background",p),localStorage.setItem("app-panel-bg",f),localStorage.setItem("app-nav-bg",g),localStorage.setItem("app-pagestyle",v);let e=document.body;Array.from(e.classList).forEach(t=>{(t.startsWith("theme-")||t.startsWith("radius-")||t.startsWith("bg-"))&&e.classList.remove(t)}),"default"!==i&&e.classList.add(i),"radius-default"!==u&&e.classList.add(u),p&&e.classList.add(p)},[i,s,u,p,f,g,v,n]),(0,t.jsx)(a.Provider,{value:{theme:i,setTheme:l,layout:s,setLayout:d,radius:u,setRadius:c,background:p,setBackground:m,panelBg:f,setPanelBg:h,navBg:g,setNavBg:y,pageStyle:v,setPageStyle:b,isMounted:n},children:e})},"useThemeCustomizer",0,function(){let e=(0,r.useContext)(a);if(!e)throw Error("useThemeCustomizer must be used within a ThemeCustomizerProvider");return e}])},37126,463861,874560,e=>{"use strict";let t=(0,e.i(874822).default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);e.s(["default",0,t],463861),e.s(["Server",0,t],37126);var r=e.i(523829),a=e.i(178328),n=e.i(746632),o=e.i(501706),i=e.i(466691),l=e.i(282879),s=e.i(924911),d=e.i(925466),u=e.i(624529);e.s(["ServerFormDialog",0,function({mode:e,target:t,open:c,onOpenChange:p}){let{createServer:m,renameServer:f}=(0,u.useWorkspace)(),[h,g]=(0,a.useState)(""),[y,v]=(0,a.useState)(!1);async function b(){let r=h.trim();if(!r)return void n.toast.error("Enter a project name.");v(!0);try{if("create"===e){let e=await m(r);e&&n.toast.success(`Created "${e.name}" and switched to it.`)}else t&&(await f(t.id,r),n.toast.success("Project renamed."));p(!1)}catch{n.toast.error("Something went wrong. Try again.")}finally{v(!1)}}return(0,a.useEffect)(()=>{c&&g("rename"===e?t?.name??"":"")},[c,e,t]),(0,r.jsx)(l.Dialog,{open:c,onOpenChange:p,children:(0,r.jsxs)(l.DialogContent,{className:"sm:max-w-md",children:[(0,r.jsxs)(l.DialogHeader,{children:[(0,r.jsx)(l.DialogTitle,{children:"create"===e?"New project":"Rename project"}),(0,r.jsx)(l.DialogDescription,{children:"create"===e?"Each project is an isolated environment with its own documents, index, and settings.":"Give this project a clearer name."})]}),(0,r.jsxs)("div",{className:"grid gap-2",children:[(0,r.jsx)(d.Label,{htmlFor:"server-name",children:"Project name"}),(0,r.jsx)(s.Input,{id:"server-name",value:h,autoFocus:!0,placeholder:"e.g. docs-assistant",onChange:e=>g(e.target.value),onKeyDown:e=>{"Enter"===e.key&&b()}})]}),(0,r.jsxs)(l.DialogFooter,{children:[(0,r.jsx)(i.Button,{variant:"outline",onClick:()=>p(!1),disabled:y,children:"Cancel"}),(0,r.jsxs)(i.Button,{onClick:()=>void b(),disabled:y,children:[y&&(0,r.jsx)(o.Loader2,{className:"size-4 animate-spin"}),"create"===e?"Create project":"Save"]})]})]})})}],874560)},714809,e=>{"use strict";let t=(0,e.i(874822).default)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);e.s(["Layers",0,t],714809)},682458,161351,e=>{"use strict";let t=[{id:"openai/text-embedding-3-small",label:"text-embedding-3-small",provider:"openai",dimensions:1536,maxInputTokens:8191,description:"Fast, cheap, strong general-purpose default."},{id:"openai/text-embedding-3-large",label:"text-embedding-3-large",provider:"openai",dimensions:3072,maxInputTokens:8191,description:"Highest quality OpenAI embeddings, larger vectors."},{id:"openai/text-embedding-ada-002",label:"text-embedding-ada-002",provider:"openai",dimensions:1536,maxInputTokens:8191,description:"Legacy model — kept for backward compatibility."},{id:"google/gemini-embedding-001",label:"gemini-embedding-001",provider:"google",dimensions:768,maxInputTokens:2048,description:"Gemini embedding 001."},{id:"cohere/embed-english-v3.0",label:"embed-english-v3.0",provider:"cohere",dimensions:1024,maxInputTokens:512,description:"Tuned for retrieval; great for English-heavy corpora."},{id:"cohere/embed-multilingual-v3.0",label:"embed-multilingual-v3.0",provider:"cohere",dimensions:1024,maxInputTokens:512,description:"100+ language multilingual retrieval embeddings."},{id:"voyage/voyage-3",label:"voyage-3",provider:"voyage",dimensions:1024,maxInputTokens:32e3,description:"Voyage's best general-purpose retrieval model."},{id:"voyage/voyage-3-lite",label:"voyage-3-lite",provider:"voyage",dimensions:512,maxInputTokens:32e3,description:"Optimized for latency and cost with strong performance."},{id:"voyage/voyage-code-3",label:"voyage-code-3",provider:"voyage",dimensions:1024,maxInputTokens:32e3,description:"Specialized for code retrieval tasks."},{id:"mistral/mistral-embed",label:"mistral-embed",provider:"mistral",dimensions:1024,maxInputTokens:8192,description:"Mistral's efficient embedding model for retrieval."},{id:"jina/jina-embeddings-v3",label:"jina-embeddings-v3",provider:"jina",dimensions:1024,maxInputTokens:8192,description:"Multilingual, task-specific embeddings from Jina AI."},{id:"jina/jina-clip-v2",label:"jina-clip-v2",provider:"jina",dimensions:1024,maxInputTokens:8192,description:"Multimodal embeddings for text and images."},{id:"nomic/nomic-embed-text-v1.5",label:"nomic-embed-text-v1.5",provider:"nomic",dimensions:768,maxInputTokens:8192,description:"Open-source, highly capable text embeddings."}];e.s(["EMBEDDING_DIMENSIONS",0,{"openai/text-embedding-3-small":{dimensions:1536,maxInputTokens:8191},"openai/text-embedding-3-large":{dimensions:3072,maxInputTokens:8191},"openai/text-embedding-ada-002":{dimensions:1536,maxInputTokens:8191},"google/gemini-embedding-2":{dimensions:768,maxInputTokens:2048},"google/gemini-embedding-001":{dimensions:768,maxInputTokens:2048},"cohere/embed-english-v3.0":{dimensions:1024,maxInputTokens:512},"cohere/embed-multilingual-v3.0":{dimensions:1024,maxInputTokens:512},"voyage/voyage-3":{dimensions:1024,maxInputTokens:32e3},"voyage/voyage-3-lite":{dimensions:512,maxInputTokens:32e3},"voyage/voyage-code-3":{dimensions:1024,maxInputTokens:32e3},"mistral/mistral-embed":{dimensions:1024,maxInputTokens:8192},"jina/jina-embeddings-v3":{dimensions:1024,maxInputTokens:8192},"jina/jina-clip-v2":{dimensions:1024,maxInputTokens:8192},"nomic/nomic-embed-text-v1.5":{dimensions:768,maxInputTokens:8192}},"EMBEDDING_MODELS",0,t,"getEmbeddingModel",0,function(e){return t.find(t=>t.id===e)}],682458);let r={lancedb:{id:"lancedb",label:"LanceDB",description:"Embedded vector database for local development, LanceDB Cloud, or persistent S3-compatible storage such as Cloudflare R2.",runtime:"both",installStatus:"installed",docsUrl:"https://lancedb.github.io/lancedb/",serverDependencies:{"@lancedb/lancedb":"^0.30.0"},fields:[{key:"mode",label:"Mode",type:"select",required:!0,defaultValue:"local",help:"Use a local disk, LanceDB Cloud, or an S3-compatible bucket for persistent serverless deployments.",options:[{label:"Local (on-disk)",value:"local"},{label:"S3-compatible (Vercel / R2 / S3)",value:"s3"},{label:"Cloud",value:"cloud"}]},{key:"dbPath",label:"Database path",type:"path",required:!0,defaultValue:"./.larkup/lancedb",placeholder:"./.larkup/lancedb",help:"Directory where the LanceDB tables are stored.",showWhen:{key:"mode",equals:["local"]}},{key:"s3Uri",label:"Database URI",type:"text",required:!0,placeholder:"s3://my-bucket/larkup/my-server",help:"A dedicated, private bucket prefix for LanceDB table files. This is persistent across Vercel invocations.",showWhen:{key:"mode",equals:["s3"]}},{key:"s3Endpoint",label:"S3 endpoint",type:"text",required:!1,placeholder:"https://<account-id>.r2.cloudflarestorage.com",help:"Required for Cloudflare R2 and other S3-compatible providers. Leave blank for AWS S3.",showWhen:{key:"mode",equals:["s3"]}},{key:"s3Region",label:"Region",type:"text",required:!0,defaultValue:"auto",placeholder:"auto",help:"Use “auto” for Cloudflare R2, or your bucket region for AWS S3.",showWhen:{key:"mode",equals:["s3"]}},{key:"s3AccessKeyId",label:"Access key ID",type:"password",required:!0,secret:!0,help:"Use an object read/write credential restricted to this bucket.",showWhen:{key:"mode",equals:["s3"]}},{key:"s3SecretAccessKey",label:"Secret access key",type:"password",required:!0,secret:!0,help:"Stored as a deployment environment variable; never expose it in the browser.",showWhen:{key:"mode",equals:["s3"]}},{key:"uri",label:"Cloud URI",type:"text",required:!0,placeholder:"db://my-database",help:"Your LanceDB Cloud database URI.",showWhen:{key:"mode",equals:["cloud"]}},{key:"apiKey",label:"API key",type:"password",required:!0,secret:!0,placeholder:"sk_...",help:"LanceDB Cloud API key. Stored as an env var in the generated server.",showWhen:{key:"mode",equals:["cloud"]}},{key:"tableName",label:"Table name",type:"text",required:!0,defaultValue:"documents",help:"The table that holds your embedded chunks."}]},pinecone:{id:"pinecone",label:"Pinecone",description:"Fully-managed cloud vector database. Cloud-only — requires an API key and an existing index.",runtime:"cloud",installStatus:"installed",docsUrl:"https://docs.pinecone.io/",serverDependencies:{"@pinecone-database/pinecone":"^6.0.0"},fields:[{key:"apiKey",label:"API key",type:"password",required:!0,secret:!0,placeholder:"pcsk_...",help:"Pinecone API key. Stored as an env var in the generated server."},{key:"indexName",label:"Index name",type:"text",required:!0,placeholder:"rag-index",help:"Name of the Pinecone index to upsert into / query. For hybrid/lexical mode this index must use the 'dotproduct' metric."},{key:"namespace",label:"Namespace",type:"text",required:!1,placeholder:"default",help:"Optional namespace to isolate this dataset within the index."},{key:"sparseModel",label:"Sparse model",type:"text",required:!0,defaultValue:"pinecone-sparse-english-v0",help:"Pinecone-hosted sparse model used to generate keyword vectors via the Inference API. Both dense and sparse vectors are stored in the same index.",showWhenIndexType:["lexical","hybrid"]}]},weaviate:{id:"weaviate",label:"Weaviate",description:"Open-source AI-native vector database with built-in hybrid search, BM25, and multi-tenancy.",runtime:"both",installStatus:"coming-soon",docsUrl:"https://weaviate.io/developers/weaviate",serverDependencies:{weaviate:"^3.0.0"},fields:[{key:"host",label:"Host URL",type:"text",required:!0,placeholder:"https://my-cluster.weaviate.network",help:"Weaviate Cloud URL or self-hosted host address."},{key:"apiKey",label:"API key",type:"password",required:!1,secret:!0,placeholder:"weaviate-api-key",help:"Weaviate Cloud API key (optional for self-hosted)."},{key:"className",label:"Collection name",type:"text",required:!0,defaultValue:"Documents",help:"The Weaviate collection (class) that holds your embedded chunks."}]},qdrant:{id:"qdrant",label:"Qdrant",description:"High-performance vector search engine with rich filtering, built for production-scale RAG.",runtime:"both",installStatus:"coming-soon",docsUrl:"https://qdrant.tech/documentation/",serverDependencies:{"@qdrant/js-client-rest":"^1.9.0"},fields:[{key:"url",label:"Host URL",type:"text",required:!0,placeholder:"http://localhost:6333",help:"Qdrant server URL (local or Qdrant Cloud endpoint)."},{key:"apiKey",label:"API key",type:"password",required:!1,secret:!0,placeholder:"qdrant-api-key",help:"Qdrant Cloud API key (leave blank for local)."},{key:"collectionName",label:"Collection name",type:"text",required:!0,defaultValue:"documents",help:"Qdrant collection to upsert into and query."}]},chroma:{id:"chroma",label:"Chroma",description:"Open-source, developer-friendly embedding database. Great for rapid local prototyping.",runtime:"both",installStatus:"installable",docsUrl:"https://docs.trychroma.com/",serverDependencies:{chromadb:"^1.9.0"},fields:[{key:"mode",label:"Mode",type:"select",required:!0,defaultValue:"server",help:"Server connects to a self-hosted Chroma instance. Cloud connects to Chroma Cloud.",options:[{label:"Server (Self-hosted)",value:"server"},{label:"Cloud (Chroma Cloud)",value:"cloud"}]},{key:"host",label:"Server URL",type:"text",required:!0,placeholder:"http://localhost:8000",defaultValue:"http://localhost:8000",help:"Chroma server URL (local Docker or remote).",showWhen:{key:"mode",equals:["server"]}},{key:"authToken",label:"Auth Token",type:"password",required:!1,secret:!0,placeholder:"chroma-token",help:"Optional static auth token for Chroma server.",showWhen:{key:"mode",equals:["server"]}},{key:"apiKey",label:"API Key",type:"password",required:!0,secret:!0,placeholder:"sk_...",help:"Chroma Cloud API Key.",showWhen:{key:"mode",equals:["cloud"]}},{key:"tenant",label:"Tenant",type:"text",required:!0,defaultValue:"default_tenant",help:"Tenant name for Chroma Cloud.",showWhen:{key:"mode",equals:["cloud"]}},{key:"database",label:"Database",type:"text",required:!0,defaultValue:"default_database",help:"Database name for Chroma Cloud.",showWhen:{key:"mode",equals:["cloud"]}},{key:"collectionName",label:"Collection name",type:"text",required:!0,defaultValue:"documents",help:"Chroma collection to store and retrieve embeddings."}]},pgvector:{id:"pgvector",label:"pgvector",description:"PostgreSQL extension for vector similarity search. Self-host vectors alongside your relational data.",runtime:"both",installStatus:"coming-soon",docsUrl:"https://github.com/pgvector/pgvector",serverDependencies:{pg:"^8.11.0",pgvector:"^0.2.0"},fields:[{key:"connectionString",label:"Connection string",type:"password",required:!0,secret:!0,placeholder:"postgresql://user:pass@localhost:5432/db",help:"Full PostgreSQL connection string."},{key:"tableName",label:"Table name",type:"text",required:!0,defaultValue:"embeddings",help:"The table used to store vector embeddings. Created automatically if absent."}]},supabase:{id:"supabase",label:"Supabase",description:"Postgres-backed vector store via the pgvector extension with Supabase's managed infrastructure.",runtime:"cloud",installStatus:"coming-soon",docsUrl:"https://supabase.com/docs/guides/ai",serverDependencies:{"@supabase/supabase-js":"^2.43.0"},fields:[{key:"url",label:"Project URL",type:"text",required:!0,placeholder:"https://xyz.supabase.co",help:"Your Supabase project URL."},{key:"serviceKey",label:"Service role key",type:"password",required:!0,secret:!0,placeholder:"eyJhbGci...",help:"Supabase service_role key (not the anon key). Stored as an env var."},{key:"tableName",label:"Table name",type:"text",required:!0,defaultValue:"documents",help:"Supabase table with a vector column for embeddings."}]}},a=Object.values(r);function n(e,t,r){return e.fields.filter(e=>{if(e.showWhen){let r=t[e.showWhen.key]??"";if(!e.showWhen.equals.includes(r))return!1}return!e.showWhenIndexType||!r||!!e.showWhenIndexType.includes(r)})}e.s(["VECTOR_STORE_LIST",0,a,"getVectorStore",0,function(e){return r[e]},"validateStoreConfig",0,function(e,t,r){let a={};for(let o of n(e,t,r))o.required&&!t[o.key]?.trim()&&(a[o.key]=`${o.label} is required`);return a},"visibleFields",0,n],161351)},592601,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let a=e.r(178328);function n(e,t){let r=(0,a.useRef)(null),n=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=o(e,a)),t&&(n.current=o(t,a))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},866657,e=>{"use strict";var t=e.i(978038);e.s(["AlertTriangle",()=>t.default])},861947,e=>{"use strict";var t,r=e.i(523829);e.s([],79988),e.i(79988),e.i(199910);var a=e.i(178328),n=e.i(914554),o=e.i(722348),i=e.i(111608),l=e.i(782486),s=e.i(200622);let d=a.createContext(void 0);function u(){let e=a.useContext(d);if(void 0===e)throw Error((0,s.default)(51));return e}let c=((t={}).complete="data-complete",t.indeterminate="data-indeterminate",t.progressing="data-progressing",t),p={status:e=>"progressing"===e?{[c.progressing]:""}:"complete"===e?{[c.complete]:""}:"indeterminate"===e?{[c.indeterminate]:""}:null};function m(e,t){return null==t?"indeterminate progress":e||`${t}%`}let f=a.forwardRef(function(e,t){let{format:s,getAriaValueText:u=m,locale:c,max:f=100,min:h=0,value:g,render:y,className:v,children:b,style:x,...k}=e,[w,S]=a.useState(),I=(0,n.useValueAsRef)(s),j="indeterminate";Number.isFinite(g)&&(j=g===f?"complete":"progressing");let T=(0,i.formatNumberValue)(g,c,I.current),C=a.useMemo(()=>({status:j}),[j]),P={"aria-labelledby":w,"aria-valuemax":f,"aria-valuemin":h,"aria-valuenow":g??void 0,"aria-valuetext":u(T,g),role:"progressbar",children:(0,r.jsxs)(a.Fragment,{children:[b,(0,r.jsx)("span",{role:"presentation",style:o.visuallyHidden,children:"x"})]})},q=a.useMemo(()=>({formattedValue:T,max:f,min:h,setLabelId:S,state:C,status:j,value:g}),[T,f,h,S,C,j,g]),E=(0,l.useRenderElement)("div",e,{state:C,ref:t,props:[P,k],stateAttributesMapping:p});return(0,r.jsx)(d.Provider,{value:q,children:E})}),h=a.forwardRef(function(e,t){let{render:r,className:a,style:n,...o}=e,{state:i}=u();return(0,l.useRenderElement)("div",e,{state:i,ref:t,props:o,stateAttributesMapping:p})});var g=e.i(401082);let y=a.forwardRef(function(e,t){let{render:r,className:a,style:n,...o}=e,{max:i,min:s,value:d,state:c}=u(),m=Number.isFinite(d)&&null!==d?(0,g.valueToPercent)(d,s,i):null,f=null==m?{}:{insetInlineStart:0,height:"inherit",width:`${m}%`};return(0,l.useRenderElement)("div",e,{state:c,ref:t,props:[{style:f},o],stateAttributesMapping:p})}),v=a.forwardRef(function(e,t){let{className:r,render:a,children:n,style:o,...i}=e,{value:s,formattedValue:d,state:c}=u(),m=null==s?"indeterminate":d,f=null==s?null:d;return(0,l.useRenderElement)("span",e,{state:c,ref:t,props:[{"aria-hidden":!0,children:"function"==typeof n?n(m,s):f},i],stateAttributesMapping:p})});var b=e.i(322627);let x=a.forwardRef(function(e,t){let{render:r,className:a,style:n,id:o,...i}=e,{setLabelId:s,state:d}=u(),c=(0,b.useRegisteredLabelId)(o,s);return(0,l.useRenderElement)("span",e,{state:d,ref:t,props:[{id:c,role:"presentation"},i],stateAttributesMapping:p})});e.s(["Indicator",0,y,"Label",0,x,"Root",0,f,"Track",0,h,"Value",0,v],208452);var k=e.i(208452),k=k,w=e.i(152236);function S({className:e,...t}){return(0,r.jsx)(k.Track,{className:(0,w.cn)("relative flex h-1 w-full items-center overflow-x-hidden rounded-full bg-muted",e),"data-slot":"progress-track",...t})}function I({className:e,...t}){return(0,r.jsx)(k.Indicator,{"data-slot":"progress-indicator",className:(0,w.cn)("h-full bg-primary transition-all",e),...t})}e.s(["Progress",0,function({className:e,children:t,value:a,...n}){return(0,r.jsxs)(k.Root,{value:a,"data-slot":"progress",className:(0,w.cn)("flex flex-wrap gap-3",e),...n,children:[t,(0,r.jsx)(S,{children:(0,r.jsx)(I,{})})]})}],861947)},323621,e=>{"use strict";var t=e.i(300441),r=e.i(782486),a=e.i(294237),n=e.i(152236);let o=(0,a.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:ring-[3px] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:a="default",render:i,...l}){var s;return s={defaultTagName:"span",props:(0,t.mergeProps)({className:(0,n.cn)(o({variant:a}),e)},l),render:i,state:{slot:"badge",variant:a}},(0,r.useRenderElement)(s.defaultTagName??"div",s,s)}],323621)},524365,e=>{"use strict";var t=e.i(523829),r=e.i(294237),a=e.i(152236);let n=(0,r.cva)("group/alert relative grid w-full gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current"}},defaultVariants:{variant:"default"}});e.s(["Alert",0,function({className:e,variant:r,...o}){return(0,t.jsx)("div",{"data-slot":"alert",role:"alert",className:(0,a.cn)(n({variant:r}),e),...o})},"AlertDescription",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"alert-description",className:(0,a.cn)("text-sm text-balance text-muted-foreground md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",e),...r})},"AlertTitle",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"alert-title",className:(0,a.cn)("font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground",e),...r})}])},534792,e=>{"use strict";var t=e.i(523829),r=e.i(152236);e.s(["Skeleton",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"skeleton",className:(0,r.cn)("animate-pulse rounded-md bg-muted",e),...a})}])},951482,e=>{"use strict";let t=(0,e.i(874822).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["default",0,t])},195300,e=>{"use strict";let t=(0,e.i(874822).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["default",0,t])},894180,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return l},formatWithValidation:function(){return d},urlObjectKeys:function(){return s}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let o=e.r(744066)._(e.r(505716)),i=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,a=e.protocol||"",n=e.pathname||"",l=e.hash||"",s=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:r&&(d=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(d+=":"+e.port)),s&&"object"==typeof s&&(s=String(o.urlQueryToSearchParams(s)));let u=e.search||s&&`?${s}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||i.test(a))&&!1!==d?(d="//"+(d||""),n&&"/"!==n[0]&&(n="/"+n)):d||(d=""),l&&"#"!==l[0]&&(l="#"+l),u&&"?"!==u[0]&&(u="?"+u),n=n.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${a}${d}${n}${u}${l}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return l(e)}},1808,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let a=e.r(584345),n=e.r(653313);function o(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,n.hasBasePath)(r.pathname)}catch(e){return!1}}},330446,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},334347,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return y},useLinkStatus:function(){return b}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let o=e.r(744066),i=e.r(523829),l=o._(e.r(178328)),s=e.r(894180),d=e.r(46640),u=e.r(592601),c=e.r(584345),p=e.r(455649);e.r(155369);let m=e.r(644047),f=e.r(969009),h=e.r(1808),g=e.r(341286);function y(t){var r,a;let n,o,y,[b,x]=(0,l.useOptimistic)(f.IDLE_LINK_STATUS),k=(0,l.useRef)(null),{href:w,as:S,children:I,prefetch:j=null,passHref:T,replace:C,shallow:P,scroll:q,onClick:E,onMouseEnter:R,onTouchStart:_,legacyBehavior:A=!1,onNavigate:L,transitionTypes:N,ref:O,unstable_dynamicOnHover:D,...M}=t;n=I,A&&("string"==typeof n||"number"==typeof n)&&(n=(0,i.jsx)("a",{children:n}));let U=l.default.useContext(d.AppRouterContext),W=!1!==j,V=!1!==j?null===(a=j)||"auto"===a?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,B="string"==typeof(r=S||w)?r:(0,s.formatUrl)(r);if(A){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=l.default.Children.only(n)}let z=A?o&&"object"==typeof o&&o.ref:O,F=l.default.useCallback(e=>(null!==U&&(k.current=(0,f.mountLinkInstance)(e,B,U,V,W,x)),()=>{k.current&&((0,f.unmountLinkForCurrentNavigation)(k.current),k.current=null),(0,f.unmountPrefetchableInstance)(e)}),[W,B,U,V,x]),$={ref:(0,u.useMergedRef)(F,z),onClick(t){A||"function"!=typeof E||E(t),A&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!U||t.defaultPrevented||function(t,r,a,n,o,i,s){if("u">typeof window){let d,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((d=t.currentTarget.getAttribute("target"))&&"_self"!==d||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){n&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:c}=e.r(365730);l.default.startTransition(()=>{c(r,n?"replace":"push",!1===o?m.ScrollBehavior.NoScroll:m.ScrollBehavior.Default,a.current,s)})}}(t,B,k,C,q,L,N)},onMouseEnter(e){A||"function"!=typeof R||R(e),A&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),U&&W&&(0,f.onNavigationIntent)(e.currentTarget,!0===D)},onTouchStart:function(e){A||"function"!=typeof _||_(e),A&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),U&&W&&(0,f.onNavigationIntent)(e.currentTarget,!0===D)}};return(0,c.isAbsoluteUrl)(B)?$.href=B:A&&!T&&("a"!==o.type||"href"in o.props)||($.href=(0,p.addBasePath)(B)),y=A?l.default.cloneElement(o,$):(0,i.jsx)("a",{...M,...$,children:n}),(0,i.jsx)(v.Provider,{value:b,children:y})}e.r(330446);let v=(0,l.createContext)(f.IDLE_LINK_STATUS),b=()=>(0,l.useContext)(v);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},743118,e=>{"use strict";var t=e.i(951482);e.s(["Info",()=>t.default])},963347,e=>{e.v(t=>Promise.all(["static/chunks/0le9w0u20k38o.js"].map(t=>e.l(t))).then(()=>t(405299)))},995308,e=>{e.v(t=>Promise.all(["static/chunks/0tckbq8d00xpw.js"].map(t=>e.l(t))).then(()=>t(44438)))}]);