sqlbot 0.0.1 → 0.0.12

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 (216) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +2 -2
  3. package/.next/standalone/.next/server/app/(chat)/ai-providers/page.js.nft.json +1 -1
  4. package/.next/standalone/.next/server/app/(chat)/ai-providers/page_client-reference-manifest.js +1 -1
  5. package/.next/standalone/.next/server/app/(chat)/chart/[chartId]/page.js.nft.json +1 -1
  6. package/.next/standalone/.next/server/app/(chat)/chart/[chartId]/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/(chat)/chat/[threadId]/page.js +2 -2
  8. package/.next/standalone/.next/server/app/(chat)/chat/[threadId]/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/(chat)/chat/[threadId]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(chat)/connections/page.js.nft.json +1 -1
  11. package/.next/standalone/.next/server/app/(chat)/connections/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(chat)/knowledge-base/page.js +1 -1
  13. package/.next/standalone/.next/server/app/(chat)/knowledge-base/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(chat)/knowledge-base/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(chat)/page.js +1 -1
  16. package/.next/standalone/.next/server/app/(chat)/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/(chat)/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(chat)/query-editor/page.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/(chat)/query-editor/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  21. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  24. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  26. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  28. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  29. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  30. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  31. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  32. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  33. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
  34. package/.next/standalone/.next/server/app/ai-providers.html +1 -1
  35. package/.next/standalone/.next/server/app/ai-providers.rsc +4 -4
  36. package/.next/standalone/.next/server/app/ai-providers.segments/!KGNoYXQp/ai-providers/__PAGE__.segment.rsc +2 -2
  37. package/.next/standalone/.next/server/app/ai-providers.segments/!KGNoYXQp/ai-providers.segment.rsc +1 -1
  38. package/.next/standalone/.next/server/app/ai-providers.segments/!KGNoYXQp.segment.rsc +1 -1
  39. package/.next/standalone/.next/server/app/ai-providers.segments/_full.segment.rsc +4 -4
  40. package/.next/standalone/.next/server/app/ai-providers.segments/_index.segment.rsc +2 -2
  41. package/.next/standalone/.next/server/app/ai-providers.segments/_tree.segment.rsc +3 -3
  42. package/.next/standalone/.next/server/app/api/chat/route.js +1 -1
  43. package/.next/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/health/route.js +1 -1
  45. package/.next/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/knowledge/auto-generate/route.js +1 -1
  47. package/.next/standalone/.next/server/app/api/knowledge/auto-generate/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/knowledge/generate/route.js +1 -1
  49. package/.next/standalone/.next/server/app/api/knowledge/generate/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/trpc/[trpc]/route.js +3 -3
  51. package/.next/standalone/.next/server/app/api/trpc/[trpc]/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/connections.html +1 -1
  53. package/.next/standalone/.next/server/app/connections.rsc +4 -4
  54. package/.next/standalone/.next/server/app/connections.segments/!KGNoYXQp/connections/__PAGE__.segment.rsc +2 -2
  55. package/.next/standalone/.next/server/app/connections.segments/!KGNoYXQp/connections.segment.rsc +1 -1
  56. package/.next/standalone/.next/server/app/connections.segments/!KGNoYXQp.segment.rsc +1 -1
  57. package/.next/standalone/.next/server/app/connections.segments/_full.segment.rsc +4 -4
  58. package/.next/standalone/.next/server/app/connections.segments/_index.segment.rsc +2 -2
  59. package/.next/standalone/.next/server/app/connections.segments/_tree.segment.rsc +3 -3
  60. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1f49434f._.js +3 -0
  61. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__51b79d66._.js → [root-of-the-server]__3a1fb665._.js} +6 -6
  62. package/.next/standalone/.next/server/chunks/[root-of-the-server]__73947e32._.js +3 -0
  63. package/.next/standalone/.next/server/chunks/[root-of-the-server]__747722f0._.js +85 -0
  64. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ca89cb1f._.js +85 -0
  65. package/.next/standalone/.next/server/chunks/_26ec1867._.js +30 -14
  66. package/.next/standalone/.next/server/chunks/_430c5305._.js +30 -14
  67. package/.next/standalone/.next/server/chunks/_44fa1f03._.js +1 -1
  68. package/.next/standalone/.next/server/chunks/_75b542e9._.js +3 -3
  69. package/.next/standalone/.next/server/chunks/_82e2d86b._.js +11 -11
  70. package/.next/standalone/.next/server/chunks/_c49f2a1f._.js +30 -14
  71. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__d8a3f2e3._.js → [root-of-the-server]__1ad22765._.js} +2 -2
  72. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2534236b._.js +1 -1
  73. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__77c3448a._.js +1 -1
  74. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__85abb029._.js +3 -0
  75. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__d2e81be0._.js +3 -0
  76. package/.next/standalone/.next/server/chunks/ssr/_0ffd2d5e._.js +3 -0
  77. package/.next/standalone/.next/server/chunks/ssr/_119ae296._.js +31 -15
  78. package/.next/standalone/.next/server/chunks/ssr/_37f7f89d._.js +1 -1
  79. package/.next/standalone/.next/server/chunks/ssr/_673cb560._.js +1 -1
  80. package/.next/standalone/.next/server/chunks/ssr/_6c7220e5._.js +2 -2
  81. package/.next/standalone/.next/server/chunks/ssr/_6ed755aa._.js +2 -2
  82. package/.next/standalone/.next/server/chunks/ssr/_776a746c._.js +2 -2
  83. package/.next/standalone/.next/server/chunks/ssr/_7f407fdd._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/ssr/{_837c4081._.js → _90b65f35._.js} +2 -2
  85. package/.next/standalone/.next/server/chunks/ssr/_96c3d546._.js +2 -2
  86. package/.next/standalone/.next/server/chunks/ssr/_a4dce1b3._.js +1 -1
  87. package/.next/standalone/.next/server/chunks/ssr/_b427a73f._.js +3 -0
  88. package/.next/standalone/.next/server/chunks/ssr/_bb34a863._.js +2 -2
  89. package/.next/standalone/.next/server/chunks/ssr/_d017f4d9._.js +3 -0
  90. package/.next/standalone/.next/server/chunks/ssr/_deb2246d._.js +1 -1
  91. package/.next/standalone/.next/server/chunks/ssr/_e83447a6._.js +3 -0
  92. package/.next/standalone/.next/server/chunks/ssr/src_components_connections_connections-page_tsx_a8fa3df0._.js +1 -1
  93. package/.next/standalone/.next/server/chunks/ssr/src_components_knowledge-base_knowledge-base-page_tsx_10bf7f9a._.js +1 -1
  94. package/.next/standalone/.next/server/pages/404.html +1 -1
  95. package/.next/standalone/.next/server/pages/500.html +2 -2
  96. package/.next/standalone/.next/static/chunks/00ce465d0a58e73b.js +1 -0
  97. package/.next/standalone/.next/static/chunks/0492dc04de204ef8.js +5 -0
  98. package/.next/standalone/.next/static/chunks/17906a765ba90602.js +1 -0
  99. package/.next/standalone/.next/static/chunks/18344611f9149409.js +5 -0
  100. package/.next/standalone/.next/static/chunks/22f0970a7da31999.js +1 -0
  101. package/.next/standalone/.next/static/chunks/32afcb8f324728fe.js +1 -0
  102. package/.next/standalone/.next/static/chunks/3aa118eb200a16a6.js +1 -0
  103. package/.next/standalone/.next/static/chunks/3bb45a8246c87c9c.js +1 -0
  104. package/.next/standalone/.next/static/chunks/3bd88f74116ecf0b.js +1 -0
  105. package/.next/standalone/.next/static/chunks/69a71249fe4c8d17.js +1 -0
  106. package/.next/standalone/.next/static/chunks/{842e82429bd01d96.js → 69f389e018a048b0.js} +1 -1
  107. package/.next/standalone/.next/static/chunks/83fd475d7bb1bc7e.js +1 -0
  108. package/.next/standalone/.next/static/chunks/84ba0322d6b6eb00.js +5 -0
  109. package/.next/standalone/.next/static/chunks/89e492a83a4b53e3.js +1 -0
  110. package/.next/{static/chunks/785e4ee9877d7d8d.js → standalone/.next/static/chunks/924ad79523394fd9.js} +2 -2
  111. package/.next/standalone/.next/static/chunks/a561d8ef36eb9e96.js +1 -0
  112. package/.next/standalone/.next/static/chunks/b2ecf63a14401981.js +1 -0
  113. package/.next/standalone/.next/static/chunks/cd6330f0a950e8c0.js +1 -0
  114. package/.next/standalone/.next/static/chunks/cdee4d388d00a056.js +6 -0
  115. package/.next/standalone/.next/static/chunks/d241d710d5ec3fd7.js +1 -0
  116. package/.next/standalone/.next/static/chunks/e443aaa7b1ed4b4e.js +5 -0
  117. package/.next/standalone/.next/static/chunks/effc0fba41d927bf.js +1 -0
  118. package/.next/standalone/.next/static/chunks/f0df418fe5859df9.css +1 -0
  119. package/.next/standalone/.next/static/chunks/f55ea47136cf1b22.js +1 -0
  120. package/.next/standalone/.next/static/chunks/f60f82508902e71a.js +1 -0
  121. package/.next/standalone/.next/static/chunks/fe778cfc22734c9c.js +5 -0
  122. package/.next/standalone/README.md +3 -2
  123. package/.next/standalone/package.json +4 -2
  124. package/.next/static/chunks/00ce465d0a58e73b.js +1 -0
  125. package/.next/static/chunks/0492dc04de204ef8.js +5 -0
  126. package/.next/static/chunks/17906a765ba90602.js +1 -0
  127. package/.next/static/chunks/18344611f9149409.js +5 -0
  128. package/.next/static/chunks/22f0970a7da31999.js +1 -0
  129. package/.next/static/chunks/32afcb8f324728fe.js +1 -0
  130. package/.next/static/chunks/3aa118eb200a16a6.js +1 -0
  131. package/.next/static/chunks/3bb45a8246c87c9c.js +1 -0
  132. package/.next/static/chunks/3bd88f74116ecf0b.js +1 -0
  133. package/.next/static/chunks/69a71249fe4c8d17.js +1 -0
  134. package/.next/static/chunks/{842e82429bd01d96.js → 69f389e018a048b0.js} +1 -1
  135. package/.next/static/chunks/83fd475d7bb1bc7e.js +1 -0
  136. package/.next/static/chunks/84ba0322d6b6eb00.js +5 -0
  137. package/.next/static/chunks/89e492a83a4b53e3.js +1 -0
  138. package/.next/{standalone/.next/static/chunks/785e4ee9877d7d8d.js → static/chunks/924ad79523394fd9.js} +2 -2
  139. package/.next/static/chunks/a561d8ef36eb9e96.js +1 -0
  140. package/.next/static/chunks/b2ecf63a14401981.js +1 -0
  141. package/.next/static/chunks/cd6330f0a950e8c0.js +1 -0
  142. package/.next/static/chunks/cdee4d388d00a056.js +6 -0
  143. package/.next/static/chunks/d241d710d5ec3fd7.js +1 -0
  144. package/.next/static/chunks/e443aaa7b1ed4b4e.js +5 -0
  145. package/.next/static/chunks/effc0fba41d927bf.js +1 -0
  146. package/.next/static/chunks/f0df418fe5859df9.css +1 -0
  147. package/.next/static/chunks/f55ea47136cf1b22.js +1 -0
  148. package/.next/static/chunks/f60f82508902e71a.js +1 -0
  149. package/.next/static/chunks/fe778cfc22734c9c.js +5 -0
  150. package/README.md +3 -2
  151. package/package.json +4 -2
  152. package/.next/standalone/.next/server/chunks/[root-of-the-server]__26852352._.js +0 -85
  153. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5dc46bc4._.js +0 -3
  154. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8992d6da._.js +0 -3
  155. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e474c328._.js +0 -85
  156. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e727499._.js +0 -3
  157. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4451526a._.js +0 -3
  158. package/.next/standalone/.next/server/chunks/ssr/_96a4d2a6._.js +0 -3
  159. package/.next/standalone/.next/server/chunks/ssr/_9cae1942._.js +0 -3
  160. package/.next/standalone/.next/server/chunks/ssr/_b48f2654._.js +0 -3
  161. package/.next/standalone/.next/server/chunks/ssr/_d57a9966._.js +0 -3
  162. package/.next/standalone/.next/server/chunks/ssr/_d9ccac15._.js +0 -3
  163. package/.next/standalone/.next/static/chunks/000ce5d236847e14.js +0 -1
  164. package/.next/standalone/.next/static/chunks/0c86eeaca8703623.js +0 -1
  165. package/.next/standalone/.next/static/chunks/0f0b044da5064d31.js +0 -1
  166. package/.next/standalone/.next/static/chunks/13aa9092c4478e88.js +0 -1
  167. package/.next/standalone/.next/static/chunks/25acbecde2c21b0b.js +0 -1
  168. package/.next/standalone/.next/static/chunks/27f1f589cc35ce7f.js +0 -5
  169. package/.next/standalone/.next/static/chunks/3799f4ad1dc31445.css +0 -1
  170. package/.next/standalone/.next/static/chunks/37c455518a8623aa.js +0 -5
  171. package/.next/standalone/.next/static/chunks/395473ba68358e71.js +0 -1
  172. package/.next/standalone/.next/static/chunks/5781382bb8e8910c.js +0 -6
  173. package/.next/standalone/.next/static/chunks/6a3fee7f033793da.js +0 -1
  174. package/.next/standalone/.next/static/chunks/6af4eb4b1f798375.js +0 -5
  175. package/.next/standalone/.next/static/chunks/7c8dab1a077d98e9.js +0 -1
  176. package/.next/standalone/.next/static/chunks/893da8072a275b7b.js +0 -1
  177. package/.next/standalone/.next/static/chunks/941ffb527c8ad269.js +0 -1
  178. package/.next/standalone/.next/static/chunks/b40d536f5d92bc07.js +0 -1
  179. package/.next/standalone/.next/static/chunks/b55f2944bf45b9ec.js +0 -1
  180. package/.next/standalone/.next/static/chunks/b90a78e2d36034ff.js +0 -1
  181. package/.next/standalone/.next/static/chunks/d3d6e96c79ecf7ff.js +0 -1
  182. package/.next/standalone/.next/static/chunks/d44ccaf98a04c9f5.js +0 -1
  183. package/.next/standalone/.next/static/chunks/d58f11c82ac60f13.js +0 -1
  184. package/.next/standalone/.next/static/chunks/d6b31c9a193c5bed.js +0 -5
  185. package/.next/standalone/.next/static/chunks/ed49341bf575ec20.js +0 -1
  186. package/.next/standalone/.next/static/chunks/fc28f22597652237.js +0 -5
  187. package/.next/static/chunks/000ce5d236847e14.js +0 -1
  188. package/.next/static/chunks/0c86eeaca8703623.js +0 -1
  189. package/.next/static/chunks/0f0b044da5064d31.js +0 -1
  190. package/.next/static/chunks/13aa9092c4478e88.js +0 -1
  191. package/.next/static/chunks/25acbecde2c21b0b.js +0 -1
  192. package/.next/static/chunks/27f1f589cc35ce7f.js +0 -5
  193. package/.next/static/chunks/3799f4ad1dc31445.css +0 -1
  194. package/.next/static/chunks/37c455518a8623aa.js +0 -5
  195. package/.next/static/chunks/395473ba68358e71.js +0 -1
  196. package/.next/static/chunks/5781382bb8e8910c.js +0 -6
  197. package/.next/static/chunks/6a3fee7f033793da.js +0 -1
  198. package/.next/static/chunks/6af4eb4b1f798375.js +0 -5
  199. package/.next/static/chunks/7c8dab1a077d98e9.js +0 -1
  200. package/.next/static/chunks/893da8072a275b7b.js +0 -1
  201. package/.next/static/chunks/941ffb527c8ad269.js +0 -1
  202. package/.next/static/chunks/b40d536f5d92bc07.js +0 -1
  203. package/.next/static/chunks/b55f2944bf45b9ec.js +0 -1
  204. package/.next/static/chunks/b90a78e2d36034ff.js +0 -1
  205. package/.next/static/chunks/d3d6e96c79ecf7ff.js +0 -1
  206. package/.next/static/chunks/d44ccaf98a04c9f5.js +0 -1
  207. package/.next/static/chunks/d58f11c82ac60f13.js +0 -1
  208. package/.next/static/chunks/d6b31c9a193c5bed.js +0 -5
  209. package/.next/static/chunks/ed49341bf575ec20.js +0 -1
  210. package/.next/static/chunks/fc28f22597652237.js +0 -5
  211. /package/.next/standalone/.next/static/{H1e0tcZUy-dcOaNBJh3iW → zCAPedmpW7JHLJhWpOgp0}/_buildManifest.js +0 -0
  212. /package/.next/standalone/.next/static/{H1e0tcZUy-dcOaNBJh3iW → zCAPedmpW7JHLJhWpOgp0}/_clientMiddlewareManifest.json +0 -0
  213. /package/.next/standalone/.next/static/{H1e0tcZUy-dcOaNBJh3iW → zCAPedmpW7JHLJhWpOgp0}/_ssgManifest.js +0 -0
  214. /package/.next/static/{H1e0tcZUy-dcOaNBJh3iW → zCAPedmpW7JHLJhWpOgp0}/_buildManifest.js +0 -0
  215. /package/.next/static/{H1e0tcZUy-dcOaNBJh3iW → zCAPedmpW7JHLJhWpOgp0}/_clientMiddlewareManifest.json +0 -0
  216. /package/.next/static/{H1e0tcZUy-dcOaNBJh3iW → zCAPedmpW7JHLJhWpOgp0}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[918622,(e,t,n)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},193695,(e,t,n)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},814747,(e,t,n)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,n)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,n)=>{t.exports=e.x("os",()=>require("os"))},666680,(e,t,n)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},581988,e=>e.a(async(t,n)=>{try{let t=await e.y("@libsql/client");e.n(t),n()}catch(e){n(e)}},!0),316733,e=>{"use strict";var t=e.i(814747),n=e.i(446786);function r(){let e=(0,n.homedir)();return(0,t.join)(e,".sqlbot")}function a(){return(0,t.join)(r(),"sqlbot.db")}function o(){return(0,t.join)(r(),"ai-providers.json")}function i(){return(0,t.join)(r(),"config.json")}function s(){return(0,t.join)(r(),"csv-dbs")}function l(e){let t=(0,n.homedir)();return e.startsWith(t)?e.replace(t,"~"):e}e.s(["getConfigDir",()=>r,"getConfigFilePath",()=>i,"getCsvDbsDir",()=>s,"getDbPath",()=>a,"getDisplayPath",()=>l,"getProvidersFilePath",()=>o])},875398,e=>{"use strict";var t=e.i(666680);let n=new Uint8Array(256),r=n.length;function a(){return r>n.length-16&&((0,t.randomFillSync)(n),r=0),n.slice(r,r+=16)}let o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));let i={};function s(e,t,n,r,a=0){if(e.length<16)throw Error("Random bytes length must be >= 16");if(r){if(a<0||a+16>r.length)throw RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`)}else r=new Uint8Array(16),a=0;return t??=Date.now(),n??=127*e[6]<<24|e[7]<<16|e[8]<<8|e[9],r[a++]=t/0x10000000000&255,r[a++]=t/0x100000000&255,r[a++]=t/0x1000000&255,r[a++]=t/65536&255,r[a++]=t/256&255,r[a++]=255&t,r[a++]=112|n>>>28&15,r[a++]=n>>>20&255,r[a++]=128|n>>>14&63,r[a++]=n>>>6&255,r[a++]=n<<2&255|3&e[10],r[a++]=e[11],r[a++]=e[12],r[a++]=e[13],r[a++]=e[14],r[a++]=e[15],r}e.s(["v7",0,function(e,t,n){let r;if(e)r=s(e.random??e.rng?.()??a(),e.msecs,e.seq,t,n);else{var l,c,u;let e=Date.now(),o=a();l=i,c=e,u=o,l.msecs??=-1/0,l.seq??=0,c>l.msecs?(l.seq=u[6]<<23|u[7]<<16|u[8]<<8|u[9],l.msecs=c):(l.seq=l.seq+1|0,0===l.seq&&l.msecs++),r=s(o,i.msecs,i.seq,t,n)}return t??function(e,t=0){return(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase()}(r)}],875398)},230056,e=>e.a(async(t,n)=>{try{let t=await e.y("pg");e.n(t),n()}catch(e){n(e)}},!0),600177,e=>{"use strict";var t=e.i(522734),n=e.i(814747),r=e.i(875398),a=e.i(316733);let o=(0,a.getConfigDir)(),i=(0,a.getConfigFilePath)();function s(){(0,t.mkdirSync)(o,{recursive:!0})}function l(){if(s(),!(0,t.existsSync)(i)){let e={connections:[],activeConnectionId:null};return(0,t.writeFileSync)(i,JSON.stringify(e,null,2)),e}try{let e=(0,t.readFileSync)(i,"utf-8");return JSON.parse(e)}catch{let e={connections:[],activeConnectionId:null};return(0,t.writeFileSync)(i,JSON.stringify(e,null,2)),e}}function c(e){s(),(0,t.writeFileSync)(i,JSON.stringify(e,null,2))}function u(){return l().connections}function d(e){return l().connections.find(t=>t.id===e)}function p(){let e=l();return e.activeConnectionId?e.connections.find(t=>t.id===e.activeConnectionId)??null:null}function h(){return l().activeConnectionId}function f(e){let t=l(),n=new Date().toISOString(),a={...e,id:(0,r.v7)(),createdAt:n,updatedAt:n};return t.connections.push(a),1===t.connections.length&&(t.activeConnectionId=a.id),c(t),a}function w(e,t){let n=l(),r=n.connections.findIndex(t=>t.id===e);return -1===r?null:(n.connections[r]={...n.connections[r],...t,updatedAt:new Date().toISOString()},c(n),n.connections[r])}function g(e){let t=l(),n=t.connections.findIndex(t=>t.id===e);return -1!==n&&(t.connections.splice(n,1),t.activeConnectionId===e&&(t.activeConnectionId=t.connections.length>0?t.connections[0].id:null),c(t),!0)}function v(e){let t=l();return!!t.connections.find(t=>t.id===e)&&(t.activeConnectionId=e,c(t),!0)}function y(e){return(0,n.join)((0,a.getCsvDbsDir)(),`${e}.db`)}function m(e,t){let n=l(),r=n.connections.findIndex(t=>t.id===e);return -1===r?null:(n.connections[r]={...n.connections[r],csvFiles:t,updatedAt:new Date().toISOString()},c(n),n.connections[r])}e.s(["addConnection",()=>f,"deleteConnection",()=>g,"getActiveConnection",()=>p,"getActiveConnectionId",()=>h,"getConnection",()=>d,"getConnections",()=>u,"getCsvDbPath",()=>y,"setActiveConnection",()=>v,"updateConnection",()=>w,"updateCsvFiles",()=>m])},393207,(e,t,n)=>{t.exports=e.x("@libsql/client",()=>require("@libsql/client"))},381165,e=>e.a(async(t,n)=>{try{var r=e.i(230056),a=e.i(600177),o=e.i(522734),i=t([r]);[r]=i.then?(await i)():i;let f=new Map;async function s(t){let n=(await e.A(959021)).createPool({host:t.host,port:t.port,user:t.user,password:t.password,database:t.database,ssl:t.ssl?{rejectUnauthorized:!1}:void 0,connectionLimit:5,waitForConnections:!0});return{warehouse:{async execute(e){let[t,r]=await n.execute(e);return{rows:t,fields:(r||[]).map(e=>({name:e.name,dataTypeID:e.columnType}))}}},cleanup:async()=>{await n.end()}}}async function l(t){let n,o;if(!(n=t?(0,a.getConnection)(t):(0,a.getActiveConnection)()))throw Error("No database connection configured. Please add a connection in the Connections page.");let i="sqlite"===n.type||"csv"===n.type?`${n.type}:${n.filePath||n.database||n.id}`:`${n.type}:${n.host}:${n.port}:${n.user}:${n.database}:${n.ssl}:${n.password}`,l=f.get(n.id);if(l&&l.connectionHash===i)return l.lastUsed=Date.now(),{db:l.warehouse,connection:n};if(l){try{await l.cleanup()}catch{}f.delete(n.id)}if("mysql"===n.type)o=await s(n);else if("sqlite"===n.type||"csv"===n.type)o=function(t){let n="csv"===t.type?(0,a.getCsvDbPath)(t.id):t.filePath||t.database;if(!n)throw Error("No database file path specified for SQLite connection.");let r=null;return{warehouse:{async execute(t){let a=(()=>{if(!r){let{createClient:t}=e.r(393207);r=t({url:`file:${n}`})}return r})(),o=await a.execute(t);return{rows:o.rows.map(e=>{let t={};for(let n of o.columns)t[n]=e[n];return t}),fields:o.columns.map(e=>({name:e}))}}},cleanup:async()=>{r&&(r.close?.(),r=null)}}}(n);else{let e;e=new r.Pool({host:n.host,port:n.port,user:n.user,password:n.password,database:n.database,ssl:n.ssl?{rejectUnauthorized:!1}:void 0,max:5,idleTimeoutMillis:3e5}),o={warehouse:{async execute(t){let n=await e.query(t);return{rows:n.rows,fields:n.fields.map(e=>({name:e.name,dataTypeID:e.dataTypeID}))}}},cleanup:async()=>{await e.end()}}}return f.set(n.id,{warehouse:o.warehouse,cleanup:o.cleanup,connectionHash:i,lastUsed:Date.now()}),{db:o.warehouse,connection:n}}async function c(t){let n=Date.now();try{if("sqlite"===t.type){let n=t.filePath||t.database;if(!n)throw Error("No file path specified");if(!(0,o.existsSync)(n))throw Error(`File not found: ${n}`);let{createClient:r}=e.r(393207),a=r({url:`file:${n}`});await a.execute("SELECT 1"),a.close()}else if("csv"===t.type){let n=t.id?(0,a.getCsvDbPath)(t.id):null;if(n&&(0,o.existsSync)(n)){let{createClient:t}=e.r(393207),r=t({url:`file:${n}`});await r.execute("SELECT 1"),r.close()}}else if("mysql"===t.type){let n=await e.A(959021),r=await n.createConnection({host:t.host,port:t.port,user:t.user,password:t.password,database:t.database,ssl:t.ssl?{rejectUnauthorized:!1}:void 0,connectTimeout:1e4});await r.execute("SELECT 1"),await r.end()}else{let e=new r.Pool({host:t.host,port:t.port,user:t.user,password:t.password,database:t.database,ssl:t.ssl?{rejectUnauthorized:!1}:void 0,max:1,connectionTimeoutMillis:1e4}),n=await e.connect();await n.query("SELECT 1"),n.release(),await e.end()}return{success:!0,latencyMs:Date.now()-n}}catch(e){return{success:!1,error:e instanceof Error?e.message:String(e),latencyMs:Date.now()-n}}}function u(e){switch(e){case"redshift":return"Amazon Redshift SQL";case"postgresql":return"PostgreSQL";case"mysql":return"MySQL";case"sqlite":case"csv":return"SQLite"}}async function d(t,n,r){let o=(0,a.getCsvDbPath)(t),{mkdirSync:i}=e.r(522734),{dirname:s}=e.r(814747);i(s(o),{recursive:!0});let{createClient:l}=e.r(393207),c=l({url:`file:${o}`});try{let e=function(e){let t=[],n=[],r="",a=!1,o=0;for(;o<e.length;){let i=e[o];a?'"'===i?o+1<e.length&&'"'===e[o+1]?(r+='"',o+=2):(a=!1,o++):(r+=i,o++):'"'===i?(a=!0,o++):","===i?(n.push(r.trim()),r="",o++):"\r"===i||"\n"===i?(n.push(r.trim()),r="",n.some(e=>""!==e)&&t.push(n),n=[],"\r"===i&&o+1<e.length&&"\n"===e[o+1]?o+=2:o++):(r+=i,o++)}return(r||n.length>0)&&(n.push(r.trim()),n.some(e=>""!==e)&&t.push(n)),t}(n);if(e.length<2)throw Error("CSV must have a header row and at least one data row");let t=e[0],a=e.slice(1),o=h(r),i=t.map(h);await c.execute(`DROP TABLE IF EXISTS "${o}"`);let s=i.map((e,t)=>{var n;let r=(n=a.slice(0,20).map(e=>e[t]).filter(Boolean),0===n.length?"TEXT":n.every(e=>/^-?\d+$/.test(e))?"INTEGER":n.every(e=>/^-?\d+(\.\d+)?$/.test(e))?"REAL":"TEXT");return`"${e}" ${r}`});await c.execute(`CREATE TABLE "${o}" (${s.join(", ")})`);let l=0;for(let e=0;e<a.length;e+=500){let t=a.slice(e,e+500),n=t.map(()=>`(${i.map(()=>"?").join(", ")})`).join(", "),r=t.flatMap(e=>i.map((t,n)=>{let r=e[n];return null==r||""===r?null:r}));await c.execute({sql:`INSERT INTO "${o}" (${i.map(e=>`"${e}"`).join(", ")}) VALUES ${n}`,args:r}),l+=t.length}return c.close(),{rowCount:l,columns:i}}catch(e){throw c.close(),e}}async function p(t,n){let r=(0,a.getCsvDbPath)(t);if(!(0,o.existsSync)(r))return;let{createClient:i}=e.r(393207),s=i({url:`file:${r}`});await s.execute(`DROP TABLE IF EXISTS "${h(n)}"`),s.close()}function h(e){return e.replace(/[^\w\s]/g,"").replace(/\s+/g,"_").replace(/^(\d)/,"_$1").toLowerCase().slice(0,64)||"column"}e.s(["getDbDialect",()=>u,"getWarehouseDB",()=>l,"importCsvToSqlite",()=>d,"removeCsvTable",()=>p,"testConnection",()=>c]),n()}catch(e){n(e)}},!1),531233,e=>e.a(async(t,n)=>{try{var r=e.i(679371),a=e.i(381165),o=t([r,a]);async function i(){let e=new Date().toISOString(),t=process.uptime(),n="ok",o="ok";try{await r.rawClient.execute("SELECT 1")}catch(e){console.error("Database health check failed:",e),n="error"}try{let{db:e}=await (0,a.getWarehouseDB)();await e.execute("SELECT 1")}catch(e){console.error("Warehouse health check failed:",e),o="error"}let i="ok"===n&&"ok"===o?"ok":"error";return new Response(JSON.stringify({status:i,timestamp:e,uptime:`${Math.floor(t)}s`,checks:{database:n,warehouse:o}}),{status:"ok"===i?200:503,headers:{"Content-Type":"application/json"}})}[r,a]=o.then?(await o)():o,e.s(["GET",()=>i]),n()}catch(e){n(e)}},!1),243007,e=>e.a(async(t,n)=>{try{var r=e.i(747909),a=e.i(174017),o=e.i(996250),i=e.i(759756),s=e.i(561916),l=e.i(114444),c=e.i(837092),u=e.i(869741),d=e.i(316795),p=e.i(487718),h=e.i(995169),f=e.i(47587),w=e.i(666012),g=e.i(570101),v=e.i(626937),y=e.i(10372),m=e.i(193695);e.i(52474);var x=e.i(600220),C=e.i(531233),E=t([C]);[C]=E.then?(await E)():E;let S=new r.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/health/route",pathname:"/api/health",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/health/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:T,workUnitAsyncStorage:A,serverHooks:D}=S;function b(){return(0,o.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:A})}async function R(e,t,n){S.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/health/route";r=r.replace(/\/index$/,"")||"/";let o=await S.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!o)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:C,params:E,nextConfig:b,parsedUrl:R,isDraftMode:T,prerenderManifest:A,routerServerContext:D,isOnDemandRevalidate:q,revalidateOnlyGenerated:P,resolvedPathname:I,clientReferenceManifest:$,serverActionsManifest:j}=o,N=(0,u.normalizeAppPath)(r),O=!!(A.dynamicRoutes[N]||A.routes[I]),k=async()=>((null==D?void 0:D.render404)?await D.render404(e,t,R,!1):t.end("This page could not be found"),null);if(O&&!T){let e=!!A.routes[I],t=A.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await k();throw new m.NoFallbackError}}let _=null;!O||S.isDev||T||(_=I,_="/index"===_?"/":_);let U=!0===S.isDev||!O,L=O&&!U;j&&$&&(0,l.setReferenceManifestsSingleton)({page:r,clientReferenceManifest:$,serverActionsManifest:j,serverModuleMap:(0,c.createServerModuleMap)({serverActionsManifest:j})});let M=e.method||"GET",F=(0,s.getTracer)(),H=F.getActiveScopeSpan(),B={params:E,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r)=>S.onRequestError(e,t,r,D)},sharedContext:{buildId:C}},K=new d.NodeNextRequest(e),X=new d.NodeNextResponse(t),z=p.NextRequestAdapter.fromNodeNextRequest(K,(0,p.signalFromNodeResponse)(t));try{let o=async e=>S.handle(z,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=F.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==h.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=n.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${r}`)}),l=!!(0,i.getRequestMeta)(e,"minimalMode"),c=async i=>{var s,c;let u=async({previousCacheEntry:a})=>{try{if(!l&&q&&P&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await o(i);e.fetchMetrics=B.renderOpts.fetchMetrics;let s=B.renderOpts.pendingWaitUntil;s&&n.waitUntil&&(n.waitUntil(s),s=void 0);let c=B.renderOpts.collectedTags;if(!O)return await (0,w.sendResponse)(K,X,r,B.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(r.headers);c&&(t[y.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,a=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:a}}}}catch(t){throw(null==a?void 0:a.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:q})},D),t}},d=await S.handleResponse({req:e,nextConfig:b,cacheKey:_,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:P,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:l});if(!O)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(c=d.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",q?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return l&&O||p.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,v.getCacheControlHeader)(d.cacheControl)),await (0,w.sendResponse)(K,X,new Response(d.value.body,{headers:p,status:d.value.status||200})),null};H?await c(H):await F.withPropagatedContext(e.headers,()=>F.trace(h.BaseServerSpan.handleRequest,{spanName:`${M} ${r}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},c))}catch(t){if(t instanceof m.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:q})}),O)throw t;return await (0,w.sendResponse)(K,X,new Response(null,{status:500})),null}}e.s(["handler",()=>R,"patchFetch",()=>b,"routeModule",()=>S,"serverHooks",()=>D,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>A]),n()}catch(e){n(e)}},!1),959021,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__d85d916d._.js","server/chunks/[root-of-the-server]__e0f10449._.js"].map(t=>e.l(t))).then(()=>t(822244)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1f49434f._.js.map
@@ -1,16 +1,16 @@
1
- module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},484199,(e,t,r)=>{"use strict";var n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i={},l={VercelOidcTokenError:()=>d};for(var u in l)n(i,u,{get:l[u],enumerable:!0});t.exports=((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))o.call(e,r)||void 0===r||n(e,r,{get:()=>t[r],enumerable:!(i=a(t,r))||i.enumerable});return e})(n({},"__esModule",{value:!0}),i);class d extends Error{constructor(e,t){super(e),this.name="VercelOidcTokenError",this.cause=t}toString(){return this.cause?`${this.name}: ${this.message}: ${this.cause}`:`${this.name}: ${this.message}`}}},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},875398,e=>{"use strict";var t=e.i(666680);let r=new Uint8Array(256),n=r.length;function a(){return n>r.length-16&&((0,t.randomFillSync)(r),n=0),r.slice(n,n+=16)}let s=[];for(let e=0;e<256;++e)s.push((e+256).toString(16).slice(1));let o={};function i(e,t,r,n,a=0){if(e.length<16)throw Error("Random bytes length must be >= 16");if(n){if(a<0||a+16>n.length)throw RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`)}else n=new Uint8Array(16),a=0;return t??=Date.now(),r??=127*e[6]<<24|e[7]<<16|e[8]<<8|e[9],n[a++]=t/0x10000000000&255,n[a++]=t/0x100000000&255,n[a++]=t/0x1000000&255,n[a++]=t/65536&255,n[a++]=t/256&255,n[a++]=255&t,n[a++]=112|r>>>28&15,n[a++]=r>>>20&255,n[a++]=128|r>>>14&63,n[a++]=r>>>6&255,n[a++]=r<<2&255|3&e[10],n[a++]=e[11],n[a++]=e[12],n[a++]=e[13],n[a++]=e[14],n[a++]=e[15],n}e.s(["v7",0,function(e,t,r){let n;if(e)n=i(e.random??e.rng?.()??a(),e.msecs,e.seq,t,r);else{var l,u,d;let e=Date.now(),s=a();l=o,u=e,d=s,l.msecs??=-1/0,l.seq??=0,u>l.msecs?(l.seq=d[6]<<23|d[7]<<16|d[8]<<8|d[9],l.msecs=u):(l.seq=l.seq+1|0,0===l.seq&&l.msecs++),n=i(s,o.msecs,o.seq,t,r)}return t??function(e,t=0){return(s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+"-"+s[e[t+4]]+s[e[t+5]]+"-"+s[e[t+6]]+s[e[t+7]]+"-"+s[e[t+8]]+s[e[t+9]]+"-"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]).toLowerCase()}(n)}],875398)},644082,e=>{"use strict";var t=e.i(747909),r=e.i(174017),n=e.i(996250),a=e.i(759756),s=e.i(561916),o=e.i(114444),i=e.i(837092),l=e.i(869741),u=e.i(316795),d=e.i(487718),c=e.i(995169),p=e.i(47587),h=e.i(666012),g=e.i(570101),f=e.i(626937),m=e.i(10372),x=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(608056),R=e.i(712075),y=e.i(469719);async function b(e){try{let t=await e.json(),r=t.text,n=t.modelId;if(!r?.trim())return new Response("Text is required",{status:400});let a=(0,w.getModel)(n||"google-gemini-2.0-flash-001"),s=y.z.object({entries:y.z.array(y.z.object({title:y.z.string(),content:y.z.string()}))}),o=function(e){let t=e.trim();if(t.length<=5e3)return[t];let r=[],n=0;for(;n<t.length;){let e=Math.min(n+5e3,t.length);if(e<t.length){let r=t.slice(n,e),a=r.lastIndexOf("\n\n");if(a>2500)e=n+a+2;else{let t=r.lastIndexOf("\n");t>2500&&(e=n+t+1)}}r.push(t.slice(n,e).trim());let a=e-n-600;n+=Math.max(a,1)}return r}(r),i=o.length,l=new ReadableStream({async start(e){let t=new TextEncoder,n=r=>{e.enqueue(t.encode(`data: ${JSON.stringify(r)}
1
+ module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},484199,(e,t,r)=>{"use strict";var n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,i={},l={VercelOidcTokenError:()=>c};for(var u in l)n(i,u,{get:l[u],enumerable:!0});t.exports=((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of o(t))s.call(e,r)||void 0===r||n(e,r,{get:()=>t[r],enumerable:!(i=a(t,r))||i.enumerable});return e})(n({},"__esModule",{value:!0}),i);class c extends Error{constructor(e,t){super(e),this.name="VercelOidcTokenError",this.cause=t}toString(){return this.cause?`${this.name}: ${this.message}: ${this.cause}`:`${this.name}: ${this.message}`}}},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},875398,e=>{"use strict";var t=e.i(666680);let r=new Uint8Array(256),n=r.length;function a(){return n>r.length-16&&((0,t.randomFillSync)(r),n=0),r.slice(n,n+=16)}let o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));let s={};function i(e,t,r,n,a=0){if(e.length<16)throw Error("Random bytes length must be >= 16");if(n){if(a<0||a+16>n.length)throw RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`)}else n=new Uint8Array(16),a=0;return t??=Date.now(),r??=127*e[6]<<24|e[7]<<16|e[8]<<8|e[9],n[a++]=t/0x10000000000&255,n[a++]=t/0x100000000&255,n[a++]=t/0x1000000&255,n[a++]=t/65536&255,n[a++]=t/256&255,n[a++]=255&t,n[a++]=112|r>>>28&15,n[a++]=r>>>20&255,n[a++]=128|r>>>14&63,n[a++]=r>>>6&255,n[a++]=r<<2&255|3&e[10],n[a++]=e[11],n[a++]=e[12],n[a++]=e[13],n[a++]=e[14],n[a++]=e[15],n}e.s(["v7",0,function(e,t,r){let n;if(e)n=i(e.random??e.rng?.()??a(),e.msecs,e.seq,t,r);else{var l,u,c;let e=Date.now(),o=a();l=s,u=e,c=o,l.msecs??=-1/0,l.seq??=0,u>l.msecs?(l.seq=c[6]<<23|c[7]<<16|c[8]<<8|c[9],l.msecs=u):(l.seq=l.seq+1|0,0===l.seq&&l.msecs++),n=i(o,s.msecs,s.seq,t,r)}return t??function(e,t=0){return(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase()}(n)}],875398)},316733,e=>{"use strict";var t=e.i(814747),r=e.i(446786);function n(){let e=(0,r.homedir)();return(0,t.join)(e,".sqlbot")}function a(){return(0,t.join)(n(),"sqlbot.db")}function o(){return(0,t.join)(n(),"ai-providers.json")}function s(){return(0,t.join)(n(),"config.json")}function i(){return(0,t.join)(n(),"csv-dbs")}function l(e){let t=(0,r.homedir)();return e.startsWith(t)?e.replace(t,"~"):e}e.s(["getConfigDir",()=>n,"getConfigFilePath",()=>s,"getCsvDbsDir",()=>i,"getDbPath",()=>a,"getDisplayPath",()=>l,"getProvidersFilePath",()=>o])},644082,e=>{"use strict";var t=e.i(747909),r=e.i(174017),n=e.i(996250),a=e.i(759756),o=e.i(561916),s=e.i(114444),i=e.i(837092),l=e.i(869741),u=e.i(316795),c=e.i(487718),d=e.i(995169),p=e.i(47587),h=e.i(666012),g=e.i(570101),f=e.i(626937),m=e.i(10372),x=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(608056),R=e.i(712075),y=e.i(469719);async function b(e){try{let t=await e.json(),r=t.text,n=t.modelId;if(!r?.trim())return new Response("Text is required",{status:400});let a=(0,w.getModel)(n||"google-gemini-2.0-flash-001"),o=y.z.object({entries:y.z.array(y.z.object({title:y.z.string(),content:y.z.string()}))}),s=function(e){let t=e.trim();if(t.length<=5e3)return[t];let r=[],n=0;for(;n<t.length;){let e=Math.min(n+5e3,t.length);if(e<t.length){let r=t.slice(n,e),a=r.lastIndexOf("\n\n");if(a>2500)e=n+a+2;else{let t=r.lastIndexOf("\n");t>2500&&(e=n+t+1)}}r.push(t.slice(n,e).trim());let a=e-n-600;n+=Math.max(a,1)}return r}(r),i=s.length,l=new ReadableStream({async start(e){let t=new TextEncoder,n=r=>{e.enqueue(t.encode(`data: ${JSON.stringify(r)}
2
2
 
3
- `))};try{n({type:"start",totalChunks:i,textLength:r.length});let e=[];for(let t=0;t<o.length;t+=3){let r=o.slice(t,t+3),l=t;for(let e=0;e<r.length;e++)n({type:"chunk_start",chunk:l+e+1,totalChunks:i});let u=await Promise.all(r.map((e,r)=>{let n=t+r+1,o=i>1?`
3
+ `))};try{n({type:"start",totalChunks:i,textLength:r.length});let e=[];for(let t=0;t<s.length;t+=3){let r=s.slice(t,t+3),l=t;for(let e=0;e<r.length;e++)n({type:"chunk_start",chunk:l+e+1,totalChunks:i});let u=await Promise.all(r.map((e,r)=>{let n=t+r+1,s=i>1?`
4
4
 
5
- Note: This is chunk ${n} of ${i} from a larger document. Avoid creating duplicate entries for the same topic.`:"";return(0,R.generateObject)({model:a,schema:s,prompt:`Analyze the following text and extract useful knowledge base entries for a database assistant.
5
+ Note: This is chunk ${n} of ${i} from a larger document. Avoid creating duplicate entries for the same topic.`:"";return(0,R.generateObject)({model:a,schema:o,prompt:`Analyze the following text and extract useful knowledge base entries for a database assistant.
6
6
 
7
7
  The goal is to create structured knowledge that helps an AI understand the database schema, business logic, and conventions.
8
8
 
9
9
  For each distinct topic or rule found in the text, create an entry.
10
10
  - Each entry should be self-contained with enough context to be useful on its own.
11
- - Focus on business rules, column meanings, relationships, data patterns, enum values, and important conventions.${o}
11
+ - Focus on business rules, column meanings, relationships, data patterns, enum values, and important conventions.${s}
12
12
 
13
13
  Text to analyze:
14
- ${e}`})}));for(let t=0;t<u.length;t++){let r=u[t].object.entries;e.push(...r),n({type:"chunk_done",chunk:l+t+1,totalChunks:i,entriesFound:r.length,totalEntries:e.length})}}let t=i>1?function(e){let t=new Map;for(let r of e){let e=r.title.toLowerCase().trim(),n=t.get(e);(!n||r.content.length>n.content.length)&&t.set(e,r)}return Array.from(t.values())}(e):e;n({type:"done",entries:t,totalChunks:i,totalRawEntries:e.length})}catch(e){n({type:"error",message:e.message||"Failed to generate"})}finally{e.close()}}});return new Response(l,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}catch(e){return console.error("Generate knowledge error:",e),new Response("Internal server error",{status:500})}}e.s(["POST",()=>b],394709);var E=e.i(394709);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/knowledge/generate/route",pathname:"/api/knowledge/generate",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/knowledge/generate/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:k,workUnitAsyncStorage:_,serverHooks:A}=C;function O(){return(0,n.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:_})}async function T(e,t,n){C.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/knowledge/generate/route";w=w.replace(/\/index$/,"")||"/";let R=await C.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,params:b,nextConfig:E,parsedUrl:k,isDraftMode:_,prerenderManifest:A,routerServerContext:O,isOnDemandRevalidate:T,revalidateOnlyGenerated:q,resolvedPathname:P,clientReferenceManifest:j,serverActionsManifest:N}=R,S=(0,l.normalizeAppPath)(w),I=!!(A.dynamicRoutes[S]||A.routes[P]),M=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,k,!1):t.end("This page could not be found"),null);if(I&&!_){let e=!!A.routes[P],t=A.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await M();throw new x.NoFallbackError}}let $=null;!I||C.isDev||_||($="/index"===($=P)?"/":$);let U=!0===C.isDev||!I,D=I&&!U;N&&j&&(0,o.setReferenceManifestsSingleton)({page:w,clientReferenceManifest:j,serverActionsManifest:N,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:N})});let H=e.method||"GET",F=(0,s.getTracer)(),z=F.getActiveScopeSpan(),K={params:b,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n)=>C.onRequestError(e,t,n,O)},sharedContext:{buildId:y}},L=new u.NodeNextRequest(e),B=new u.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let o=async e=>C.handle(V,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${w}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&T&&q&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(a);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!I)return await (0,h.sendResponse)(L,B,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);u&&(t[m.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:T})},O),t}},d=await C.handleResponse({req:e,nextConfig:E,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:q,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:i});if(!I)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",T?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&I||c.delete(m.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,h.sendResponse)(L,B,new Response(d.value.body,{headers:c,status:d.value.status||200})),null};z?await l(z):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:T})}),I)throw t;return await (0,h.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>O,"routeModule",()=>C,"serverHooks",()=>A,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>_],644082)},967030,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_@vercel_oidc_dist_7c2bef69._.js"].map(t=>e.l(t))).then(()=>t(783697)))},683671,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_@vercel_oidc_dist_7fd3d757._.js"].map(t=>e.l(t))).then(()=>t(390391)))}];
14
+ ${e}`})}));for(let t=0;t<u.length;t++){let r=u[t].object.entries;e.push(...r),n({type:"chunk_done",chunk:l+t+1,totalChunks:i,entriesFound:r.length,totalEntries:e.length})}}let t=i>1?function(e){let t=new Map;for(let r of e){let e=r.title.toLowerCase().trim(),n=t.get(e);(!n||r.content.length>n.content.length)&&t.set(e,r)}return Array.from(t.values())}(e):e;n({type:"done",entries:t,totalChunks:i,totalRawEntries:e.length})}catch(e){n({type:"error",message:e.message||"Failed to generate"})}finally{e.close()}}});return new Response(l,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}catch(e){return console.error("Generate knowledge error:",e),new Response("Internal server error",{status:500})}}e.s(["POST",()=>b],394709);var E=e.i(394709);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/knowledge/generate/route",pathname:"/api/knowledge/generate",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/knowledge/generate/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:k,workUnitAsyncStorage:P,serverHooks:_}=C;function A(){return(0,n.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:P})}async function O(e,t,n){C.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/knowledge/generate/route";w=w.replace(/\/index$/,"")||"/";let R=await C.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,params:b,nextConfig:E,parsedUrl:k,isDraftMode:P,prerenderManifest:_,routerServerContext:A,isOnDemandRevalidate:O,revalidateOnlyGenerated:j,resolvedPathname:q,clientReferenceManifest:T,serverActionsManifest:N}=R,S=(0,l.normalizeAppPath)(w),D=!!(_.dynamicRoutes[S]||_.routes[q]),I=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,k,!1):t.end("This page could not be found"),null);if(D&&!P){let e=!!_.routes[q],t=_.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new x.NoFallbackError}}let M=null;!D||C.isDev||P||(M="/index"===(M=q)?"/":M);let $=!0===C.isDev||!D,U=D&&!$;N&&T&&(0,s.setReferenceManifestsSingleton)({page:w,clientReferenceManifest:T,serverActionsManifest:N,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:N})});let H=e.method||"GET",F=(0,o.getTracer)(),z=F.getActiveScopeSpan(),K={params:b,prerenderManifest:_,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:$,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n)=>C.onRequestError(e,t,n,A)},sharedContext:{buildId:y}},L=new u.NodeNextRequest(e),B=new u.NodeNextResponse(t),V=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let s=async e=>C.handle(V,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${w}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var o,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&O&&j&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(a);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!D)return await (0,h.sendResponse)(L,B,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[m.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:O})},A),t}},c=await C.handleResponse({req:e,nextConfig:E,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:j,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:i});if(!D)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",O?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),P&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return i&&D||d.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,f.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(L,B,new Response(c.value.body,{headers:d,status:c.value.status||200})),null};z?await l(z):await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${H} ${w}`,kind:o.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:O})}),D)throw t;return await (0,h.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>A,"routeModule",()=>C,"serverHooks",()=>_,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>P],644082)},967030,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_@vercel_oidc_dist_7c2bef69._.js"].map(t=>e.l(t))).then(()=>t(783697)))},683671,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_@vercel_oidc_dist_7fd3d757._.js"].map(t=>e.l(t))).then(()=>t(390391)))}];
15
15
 
16
- //# sourceMappingURL=%5Broot-of-the-server%5D__51b79d66._.js.map
16
+ //# sourceMappingURL=%5Broot-of-the-server%5D__3a1fb665._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[918622,(e,t,n)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},193695,(e,t,n)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},814747,(e,t,n)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,n)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,n)=>{t.exports=e.x("os",()=>require("os"))},666680,(e,t,n)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},581988,e=>e.a(async(t,n)=>{try{let t=await e.y("@libsql/client");e.n(t),n()}catch(e){n(e)}},!0),484199,(e,t,n)=>{"use strict";var r=Object.defineProperty,s=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a={},c={VercelOidcTokenError:()=>u};for(var l in c)r(a,l,{get:c[l],enumerable:!0});t.exports=((e,t,n,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of o(t))i.call(e,n)||void 0===n||r(e,n,{get:()=>t[n],enumerable:!(a=s(t,n))||a.enumerable});return e})(r({},"__esModule",{value:!0}),a);class u extends Error{constructor(e,t){super(e),this.name="VercelOidcTokenError",this.cause=t}toString(){return this.cause?`${this.name}: ${this.message}: ${this.cause}`:`${this.name}: ${this.message}`}}},875398,e=>{"use strict";var t=e.i(666680);let n=new Uint8Array(256),r=n.length;function s(){return r>n.length-16&&((0,t.randomFillSync)(n),r=0),n.slice(r,r+=16)}let o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));let i={};function a(e,t,n,r,s=0){if(e.length<16)throw Error("Random bytes length must be >= 16");if(r){if(s<0||s+16>r.length)throw RangeError(`UUID byte range ${s}:${s+15} is out of buffer bounds`)}else r=new Uint8Array(16),s=0;return t??=Date.now(),n??=127*e[6]<<24|e[7]<<16|e[8]<<8|e[9],r[s++]=t/0x10000000000&255,r[s++]=t/0x100000000&255,r[s++]=t/0x1000000&255,r[s++]=t/65536&255,r[s++]=t/256&255,r[s++]=255&t,r[s++]=112|n>>>28&15,r[s++]=n>>>20&255,r[s++]=128|n>>>14&63,r[s++]=n>>>6&255,r[s++]=n<<2&255|3&e[10],r[s++]=e[11],r[s++]=e[12],r[s++]=e[13],r[s++]=e[14],r[s++]=e[15],r}e.s(["v7",0,function(e,t,n){let r;if(e)r=a(e.random??e.rng?.()??s(),e.msecs,e.seq,t,n);else{var c,l,u;let e=Date.now(),o=s();c=i,l=e,u=o,c.msecs??=-1/0,c.seq??=0,l>c.msecs?(c.seq=u[6]<<23|u[7]<<16|u[8]<<8|u[9],c.msecs=l):(c.seq=c.seq+1|0,0===c.seq&&c.msecs++),r=a(o,i.msecs,i.seq,t,n)}return t??function(e,t=0){return(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase()}(r)}],875398)},316733,e=>{"use strict";var t=e.i(814747),n=e.i(446786);function r(){let e=(0,n.homedir)();return(0,t.join)(e,".sqlbot")}function s(){return(0,t.join)(r(),"sqlbot.db")}function o(){return(0,t.join)(r(),"ai-providers.json")}function i(){return(0,t.join)(r(),"config.json")}function a(){return(0,t.join)(r(),"csv-dbs")}function c(e){let t=(0,n.homedir)();return e.startsWith(t)?e.replace(t,"~"):e}e.s(["getConfigDir",()=>r,"getConfigFilePath",()=>i,"getCsvDbsDir",()=>a,"getDbPath",()=>s,"getDisplayPath",()=>c,"getProvidersFilePath",()=>o])},230056,e=>e.a(async(t,n)=>{try{let t=await e.y("pg");e.n(t),n()}catch(e){n(e)}},!0),600177,e=>{"use strict";var t=e.i(522734),n=e.i(814747),r=e.i(875398),s=e.i(316733);let o=(0,s.getConfigDir)(),i=(0,s.getConfigFilePath)();function a(){(0,t.mkdirSync)(o,{recursive:!0})}function c(){if(a(),!(0,t.existsSync)(i)){let e={connections:[],activeConnectionId:null};return(0,t.writeFileSync)(i,JSON.stringify(e,null,2)),e}try{let e=(0,t.readFileSync)(i,"utf-8");return JSON.parse(e)}catch{let e={connections:[],activeConnectionId:null};return(0,t.writeFileSync)(i,JSON.stringify(e,null,2)),e}}function l(e){a(),(0,t.writeFileSync)(i,JSON.stringify(e,null,2))}function u(){return c().connections}function d(e){return c().connections.find(t=>t.id===e)}function p(){let e=c();return e.activeConnectionId?e.connections.find(t=>t.id===e.activeConnectionId)??null:null}function f(){return c().activeConnectionId}function h(e){let t=c(),n=new Date().toISOString(),s={...e,id:(0,r.v7)(),createdAt:n,updatedAt:n};return t.connections.push(s),1===t.connections.length&&(t.activeConnectionId=s.id),l(t),s}function w(e,t){let n=c(),r=n.connections.findIndex(t=>t.id===e);return -1===r?null:(n.connections[r]={...n.connections[r],...t,updatedAt:new Date().toISOString()},l(n),n.connections[r])}function y(e){let t=c(),n=t.connections.findIndex(t=>t.id===e);return -1!==n&&(t.connections.splice(n,1),t.activeConnectionId===e&&(t.activeConnectionId=t.connections.length>0?t.connections[0].id:null),l(t),!0)}function g(e){let t=c();return!!t.connections.find(t=>t.id===e)&&(t.activeConnectionId=e,l(t),!0)}function m(e){return(0,n.join)((0,s.getCsvDbsDir)(),`${e}.db`)}function v(e,t){let n=c(),r=n.connections.findIndex(t=>t.id===e);return -1===r?null:(n.connections[r]={...n.connections[r],csvFiles:t,updatedAt:new Date().toISOString()},l(n),n.connections[r])}e.s(["addConnection",()=>h,"deleteConnection",()=>y,"getActiveConnection",()=>p,"getActiveConnectionId",()=>f,"getConnection",()=>d,"getConnections",()=>u,"getCsvDbPath",()=>m,"setActiveConnection",()=>g,"updateConnection",()=>w,"updateCsvFiles",()=>v])},393207,(e,t,n)=>{t.exports=e.x("@libsql/client",()=>require("@libsql/client"))},381165,e=>e.a(async(t,n)=>{try{var r=e.i(230056),s=e.i(600177),o=e.i(522734),i=t([r]);[r]=i.then?(await i)():i;let h=new Map;async function a(t){let n=(await e.A(959021)).createPool({host:t.host,port:t.port,user:t.user,password:t.password,database:t.database,ssl:t.ssl?{rejectUnauthorized:!1}:void 0,connectionLimit:5,waitForConnections:!0});return{warehouse:{async execute(e){let[t,r]=await n.execute(e);return{rows:t,fields:(r||[]).map(e=>({name:e.name,dataTypeID:e.columnType}))}}},cleanup:async()=>{await n.end()}}}async function c(t){let n,o;if(!(n=t?(0,s.getConnection)(t):(0,s.getActiveConnection)()))throw Error("No database connection configured. Please add a connection in the Connections page.");let i="sqlite"===n.type||"csv"===n.type?`${n.type}:${n.filePath||n.database||n.id}`:`${n.type}:${n.host}:${n.port}:${n.user}:${n.database}:${n.ssl}:${n.password}`,c=h.get(n.id);if(c&&c.connectionHash===i)return c.lastUsed=Date.now(),{db:c.warehouse,connection:n};if(c){try{await c.cleanup()}catch{}h.delete(n.id)}if("mysql"===n.type)o=await a(n);else if("sqlite"===n.type||"csv"===n.type)o=function(t){let n="csv"===t.type?(0,s.getCsvDbPath)(t.id):t.filePath||t.database;if(!n)throw Error("No database file path specified for SQLite connection.");let r=null;return{warehouse:{async execute(t){let s=(()=>{if(!r){let{createClient:t}=e.r(393207);r=t({url:`file:${n}`})}return r})(),o=await s.execute(t);return{rows:o.rows.map(e=>{let t={};for(let n of o.columns)t[n]=e[n];return t}),fields:o.columns.map(e=>({name:e}))}}},cleanup:async()=>{r&&(r.close?.(),r=null)}}}(n);else{let e;e=new r.Pool({host:n.host,port:n.port,user:n.user,password:n.password,database:n.database,ssl:n.ssl?{rejectUnauthorized:!1}:void 0,max:5,idleTimeoutMillis:3e5}),o={warehouse:{async execute(t){let n=await e.query(t);return{rows:n.rows,fields:n.fields.map(e=>({name:e.name,dataTypeID:e.dataTypeID}))}}},cleanup:async()=>{await e.end()}}}return h.set(n.id,{warehouse:o.warehouse,cleanup:o.cleanup,connectionHash:i,lastUsed:Date.now()}),{db:o.warehouse,connection:n}}async function l(t){let n=Date.now();try{if("sqlite"===t.type){let n=t.filePath||t.database;if(!n)throw Error("No file path specified");if(!(0,o.existsSync)(n))throw Error(`File not found: ${n}`);let{createClient:r}=e.r(393207),s=r({url:`file:${n}`});await s.execute("SELECT 1"),s.close()}else if("csv"===t.type){let n=t.id?(0,s.getCsvDbPath)(t.id):null;if(n&&(0,o.existsSync)(n)){let{createClient:t}=e.r(393207),r=t({url:`file:${n}`});await r.execute("SELECT 1"),r.close()}}else if("mysql"===t.type){let n=await e.A(959021),r=await n.createConnection({host:t.host,port:t.port,user:t.user,password:t.password,database:t.database,ssl:t.ssl?{rejectUnauthorized:!1}:void 0,connectTimeout:1e4});await r.execute("SELECT 1"),await r.end()}else{let e=new r.Pool({host:t.host,port:t.port,user:t.user,password:t.password,database:t.database,ssl:t.ssl?{rejectUnauthorized:!1}:void 0,max:1,connectionTimeoutMillis:1e4}),n=await e.connect();await n.query("SELECT 1"),n.release(),await e.end()}return{success:!0,latencyMs:Date.now()-n}}catch(e){return{success:!1,error:e instanceof Error?e.message:String(e),latencyMs:Date.now()-n}}}function u(e){switch(e){case"redshift":return"Amazon Redshift SQL";case"postgresql":return"PostgreSQL";case"mysql":return"MySQL";case"sqlite":case"csv":return"SQLite"}}async function d(t,n,r){let o=(0,s.getCsvDbPath)(t),{mkdirSync:i}=e.r(522734),{dirname:a}=e.r(814747);i(a(o),{recursive:!0});let{createClient:c}=e.r(393207),l=c({url:`file:${o}`});try{let e=function(e){let t=[],n=[],r="",s=!1,o=0;for(;o<e.length;){let i=e[o];s?'"'===i?o+1<e.length&&'"'===e[o+1]?(r+='"',o+=2):(s=!1,o++):(r+=i,o++):'"'===i?(s=!0,o++):","===i?(n.push(r.trim()),r="",o++):"\r"===i||"\n"===i?(n.push(r.trim()),r="",n.some(e=>""!==e)&&t.push(n),n=[],"\r"===i&&o+1<e.length&&"\n"===e[o+1]?o+=2:o++):(r+=i,o++)}return(r||n.length>0)&&(n.push(r.trim()),n.some(e=>""!==e)&&t.push(n)),t}(n);if(e.length<2)throw Error("CSV must have a header row and at least one data row");let t=e[0],s=e.slice(1),o=f(r),i=t.map(f);await l.execute(`DROP TABLE IF EXISTS "${o}"`);let a=i.map((e,t)=>{var n;let r=(n=s.slice(0,20).map(e=>e[t]).filter(Boolean),0===n.length?"TEXT":n.every(e=>/^-?\d+$/.test(e))?"INTEGER":n.every(e=>/^-?\d+(\.\d+)?$/.test(e))?"REAL":"TEXT");return`"${e}" ${r}`});await l.execute(`CREATE TABLE "${o}" (${a.join(", ")})`);let c=0;for(let e=0;e<s.length;e+=500){let t=s.slice(e,e+500),n=t.map(()=>`(${i.map(()=>"?").join(", ")})`).join(", "),r=t.flatMap(e=>i.map((t,n)=>{let r=e[n];return null==r||""===r?null:r}));await l.execute({sql:`INSERT INTO "${o}" (${i.map(e=>`"${e}"`).join(", ")}) VALUES ${n}`,args:r}),c+=t.length}return l.close(),{rowCount:c,columns:i}}catch(e){throw l.close(),e}}async function p(t,n){let r=(0,s.getCsvDbPath)(t);if(!(0,o.existsSync)(r))return;let{createClient:i}=e.r(393207),a=i({url:`file:${r}`});await a.execute(`DROP TABLE IF EXISTS "${f(n)}"`),a.close()}function f(e){return e.replace(/[^\w\s]/g,"").replace(/\s+/g,"_").replace(/^(\d)/,"_$1").toLowerCase().slice(0,64)||"column"}e.s(["getDbDialect",()=>u,"getWarehouseDB",()=>c,"importCsvToSqlite",()=>d,"removeCsvTable",()=>p,"testConnection",()=>l]),n()}catch(e){n(e)}},!1),967030,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_@vercel_oidc_dist_7c2bef69._.js"].map(t=>e.l(t))).then(()=>t(783697)))},683671,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_@vercel_oidc_dist_7fd3d757._.js"].map(t=>e.l(t))).then(()=>t(390391)))},959021,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__d85d916d._.js","server/chunks/[root-of-the-server]__e0f10449._.js"].map(t=>e.l(t))).then(()=>t(822244)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__73947e32._.js.map
@@ -0,0 +1,85 @@
1
+ module.exports=[484199,(e,t,n)=>{"use strict";var a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,i={},c={VercelOidcTokenError:()=>u};for(var l in c)a(i,l,{get:c[l],enumerable:!0});t.exports=((e,t,n,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of s(t))r.call(e,n)||void 0===n||a(e,n,{get:()=>t[n],enumerable:!(i=o(t,n))||i.enumerable});return e})(a({},"__esModule",{value:!0}),i);class u extends Error{constructor(e,t){super(e),this.name="VercelOidcTokenError",this.cause=t}toString(){return this.cause?`${this.name}: ${this.message}: ${this.cause}`:`${this.name}: ${this.message}`}}},814747,(e,t,n)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,n)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,n)=>{t.exports=e.x("os",()=>require("os"))},666680,(e,t,n)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},875398,e=>{"use strict";var t=e.i(666680);let n=new Uint8Array(256),a=n.length;function o(){return a>n.length-16&&((0,t.randomFillSync)(n),a=0),n.slice(a,a+=16)}let s=[];for(let e=0;e<256;++e)s.push((e+256).toString(16).slice(1));let r={};function i(e,t,n,a,o=0){if(e.length<16)throw Error("Random bytes length must be >= 16");if(a){if(o<0||o+16>a.length)throw RangeError(`UUID byte range ${o}:${o+15} is out of buffer bounds`)}else a=new Uint8Array(16),o=0;return t??=Date.now(),n??=127*e[6]<<24|e[7]<<16|e[8]<<8|e[9],a[o++]=t/0x10000000000&255,a[o++]=t/0x100000000&255,a[o++]=t/0x1000000&255,a[o++]=t/65536&255,a[o++]=t/256&255,a[o++]=255&t,a[o++]=112|n>>>28&15,a[o++]=n>>>20&255,a[o++]=128|n>>>14&63,a[o++]=n>>>6&255,a[o++]=n<<2&255|3&e[10],a[o++]=e[11],a[o++]=e[12],a[o++]=e[13],a[o++]=e[14],a[o++]=e[15],a}e.s(["v7",0,function(e,t,n){let a;if(e)a=i(e.random??e.rng?.()??o(),e.msecs,e.seq,t,n);else{var c,l,u;let e=Date.now(),s=o();c=r,l=e,u=s,c.msecs??=-1/0,c.seq??=0,l>c.msecs?(c.seq=u[6]<<23|u[7]<<16|u[8]<<8|u[9],c.msecs=l):(c.seq=c.seq+1|0,0===c.seq&&c.msecs++),a=i(s,r.msecs,r.seq,t,n)}return t??function(e,t=0){return(s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+"-"+s[e[t+4]]+s[e[t+5]]+"-"+s[e[t+6]]+s[e[t+7]]+"-"+s[e[t+8]]+s[e[t+9]]+"-"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]).toLowerCase()}(a)}],875398)},316733,e=>{"use strict";var t=e.i(814747),n=e.i(446786);function a(){let e=(0,n.homedir)();return(0,t.join)(e,".sqlbot")}function o(){return(0,t.join)(a(),"sqlbot.db")}function s(){return(0,t.join)(a(),"ai-providers.json")}function r(){return(0,t.join)(a(),"config.json")}function i(){return(0,t.join)(a(),"csv-dbs")}function c(e){let t=(0,n.homedir)();return e.startsWith(t)?e.replace(t,"~"):e}e.s(["getConfigDir",()=>a,"getConfigFilePath",()=>r,"getCsvDbsDir",()=>i,"getDbPath",()=>o,"getDisplayPath",()=>c,"getProvidersFilePath",()=>s])},230056,e=>e.a(async(t,n)=>{try{let t=await e.y("pg");e.n(t),n()}catch(e){n(e)}},!0),600177,e=>{"use strict";var t=e.i(522734),n=e.i(814747),a=e.i(875398),o=e.i(316733);let s=(0,o.getConfigDir)(),r=(0,o.getConfigFilePath)();function i(){(0,t.mkdirSync)(s,{recursive:!0})}function c(){if(i(),!(0,t.existsSync)(r)){let e={connections:[],activeConnectionId:null};return(0,t.writeFileSync)(r,JSON.stringify(e,null,2)),e}try{let e=(0,t.readFileSync)(r,"utf-8");return JSON.parse(e)}catch{let e={connections:[],activeConnectionId:null};return(0,t.writeFileSync)(r,JSON.stringify(e,null,2)),e}}function l(e){i(),(0,t.writeFileSync)(r,JSON.stringify(e,null,2))}function u(){return c().connections}function m(e){return c().connections.find(t=>t.id===e)}function h(){let e=c();return e.activeConnectionId?e.connections.find(t=>t.id===e.activeConnectionId)??null:null}function d(){return c().activeConnectionId}function f(e){let t=c(),n=new Date().toISOString(),o={...e,id:(0,a.v7)(),createdAt:n,updatedAt:n};return t.connections.push(o),1===t.connections.length&&(t.activeConnectionId=o.id),l(t),o}function p(e,t){let n=c(),a=n.connections.findIndex(t=>t.id===e);return -1===a?null:(n.connections[a]={...n.connections[a],...t,updatedAt:new Date().toISOString()},l(n),n.connections[a])}function g(e){let t=c(),n=t.connections.findIndex(t=>t.id===e);return -1!==n&&(t.connections.splice(n,1),t.activeConnectionId===e&&(t.activeConnectionId=t.connections.length>0?t.connections[0].id:null),l(t),!0)}function b(e){let t=c();return!!t.connections.find(t=>t.id===e)&&(t.activeConnectionId=e,l(t),!0)}function y(e){return(0,n.join)((0,o.getCsvDbsDir)(),`${e}.db`)}function w(e,t){let n=c(),a=n.connections.findIndex(t=>t.id===e);return -1===a?null:(n.connections[a]={...n.connections[a],csvFiles:t,updatedAt:new Date().toISOString()},l(n),n.connections[a])}e.s(["addConnection",()=>f,"deleteConnection",()=>g,"getActiveConnection",()=>h,"getActiveConnectionId",()=>d,"getConnection",()=>m,"getConnections",()=>u,"getCsvDbPath",()=>y,"setActiveConnection",()=>b,"updateConnection",()=>p,"updateCsvFiles",()=>w])},393207,(e,t,n)=>{t.exports=e.x("@libsql/client",()=>require("@libsql/client"))},381165,e=>e.a(async(t,n)=>{try{var a=e.i(230056),o=e.i(600177),s=e.i(522734),r=t([a]);[a]=r.then?(await r)():r;let f=new Map;async function i(t){let n=(await e.A(959021)).createPool({host:t.host,port:t.port,user:t.user,password:t.password,database:t.database,ssl:t.ssl?{rejectUnauthorized:!1}:void 0,connectionLimit:5,waitForConnections:!0});return{warehouse:{async execute(e){let[t,a]=await n.execute(e);return{rows:t,fields:(a||[]).map(e=>({name:e.name,dataTypeID:e.columnType}))}}},cleanup:async()=>{await n.end()}}}async function c(t){let n,s;if(!(n=t?(0,o.getConnection)(t):(0,o.getActiveConnection)()))throw Error("No database connection configured. Please add a connection in the Connections page.");let r="sqlite"===n.type||"csv"===n.type?`${n.type}:${n.filePath||n.database||n.id}`:`${n.type}:${n.host}:${n.port}:${n.user}:${n.database}:${n.ssl}:${n.password}`,c=f.get(n.id);if(c&&c.connectionHash===r)return c.lastUsed=Date.now(),{db:c.warehouse,connection:n};if(c){try{await c.cleanup()}catch{}f.delete(n.id)}if("mysql"===n.type)s=await i(n);else if("sqlite"===n.type||"csv"===n.type)s=function(t){let n="csv"===t.type?(0,o.getCsvDbPath)(t.id):t.filePath||t.database;if(!n)throw Error("No database file path specified for SQLite connection.");let a=null;return{warehouse:{async execute(t){let o=(()=>{if(!a){let{createClient:t}=e.r(393207);a=t({url:`file:${n}`})}return a})(),s=await o.execute(t);return{rows:s.rows.map(e=>{let t={};for(let n of s.columns)t[n]=e[n];return t}),fields:s.columns.map(e=>({name:e}))}}},cleanup:async()=>{a&&(a.close?.(),a=null)}}}(n);else{let e;e=new a.Pool({host:n.host,port:n.port,user:n.user,password:n.password,database:n.database,ssl:n.ssl?{rejectUnauthorized:!1}:void 0,max:5,idleTimeoutMillis:3e5}),s={warehouse:{async execute(t){let n=await e.query(t);return{rows:n.rows,fields:n.fields.map(e=>({name:e.name,dataTypeID:e.dataTypeID}))}}},cleanup:async()=>{await e.end()}}}return f.set(n.id,{warehouse:s.warehouse,cleanup:s.cleanup,connectionHash:r,lastUsed:Date.now()}),{db:s.warehouse,connection:n}}async function l(t){let n=Date.now();try{if("sqlite"===t.type){let n=t.filePath||t.database;if(!n)throw Error("No file path specified");if(!(0,s.existsSync)(n))throw Error(`File not found: ${n}`);let{createClient:a}=e.r(393207),o=a({url:`file:${n}`});await o.execute("SELECT 1"),o.close()}else if("csv"===t.type){let n=t.id?(0,o.getCsvDbPath)(t.id):null;if(n&&(0,s.existsSync)(n)){let{createClient:t}=e.r(393207),a=t({url:`file:${n}`});await a.execute("SELECT 1"),a.close()}}else if("mysql"===t.type){let n=await e.A(959021),a=await n.createConnection({host:t.host,port:t.port,user:t.user,password:t.password,database:t.database,ssl:t.ssl?{rejectUnauthorized:!1}:void 0,connectTimeout:1e4});await a.execute("SELECT 1"),await a.end()}else{let e=new a.Pool({host:t.host,port:t.port,user:t.user,password:t.password,database:t.database,ssl:t.ssl?{rejectUnauthorized:!1}:void 0,max:1,connectionTimeoutMillis:1e4}),n=await e.connect();await n.query("SELECT 1"),n.release(),await e.end()}return{success:!0,latencyMs:Date.now()-n}}catch(e){return{success:!1,error:e instanceof Error?e.message:String(e),latencyMs:Date.now()-n}}}function u(e){switch(e){case"redshift":return"Amazon Redshift SQL";case"postgresql":return"PostgreSQL";case"mysql":return"MySQL";case"sqlite":case"csv":return"SQLite"}}async function m(t,n,a){let s=(0,o.getCsvDbPath)(t),{mkdirSync:r}=e.r(522734),{dirname:i}=e.r(814747);r(i(s),{recursive:!0});let{createClient:c}=e.r(393207),l=c({url:`file:${s}`});try{let e=function(e){let t=[],n=[],a="",o=!1,s=0;for(;s<e.length;){let r=e[s];o?'"'===r?s+1<e.length&&'"'===e[s+1]?(a+='"',s+=2):(o=!1,s++):(a+=r,s++):'"'===r?(o=!0,s++):","===r?(n.push(a.trim()),a="",s++):"\r"===r||"\n"===r?(n.push(a.trim()),a="",n.some(e=>""!==e)&&t.push(n),n=[],"\r"===r&&s+1<e.length&&"\n"===e[s+1]?s+=2:s++):(a+=r,s++)}return(a||n.length>0)&&(n.push(a.trim()),n.some(e=>""!==e)&&t.push(n)),t}(n);if(e.length<2)throw Error("CSV must have a header row and at least one data row");let t=e[0],o=e.slice(1),s=d(a),r=t.map(d);await l.execute(`DROP TABLE IF EXISTS "${s}"`);let i=r.map((e,t)=>{var n;let a=(n=o.slice(0,20).map(e=>e[t]).filter(Boolean),0===n.length?"TEXT":n.every(e=>/^-?\d+$/.test(e))?"INTEGER":n.every(e=>/^-?\d+(\.\d+)?$/.test(e))?"REAL":"TEXT");return`"${e}" ${a}`});await l.execute(`CREATE TABLE "${s}" (${i.join(", ")})`);let c=0;for(let e=0;e<o.length;e+=500){let t=o.slice(e,e+500),n=t.map(()=>`(${r.map(()=>"?").join(", ")})`).join(", "),a=t.flatMap(e=>r.map((t,n)=>{let a=e[n];return null==a||""===a?null:a}));await l.execute({sql:`INSERT INTO "${s}" (${r.map(e=>`"${e}"`).join(", ")}) VALUES ${n}`,args:a}),c+=t.length}return l.close(),{rowCount:c,columns:r}}catch(e){throw l.close(),e}}async function h(t,n){let a=(0,o.getCsvDbPath)(t);if(!(0,s.existsSync)(a))return;let{createClient:r}=e.r(393207),i=r({url:`file:${a}`});await i.execute(`DROP TABLE IF EXISTS "${d(n)}"`),i.close()}function d(e){return e.replace(/[^\w\s]/g,"").replace(/\s+/g,"_").replace(/^(\d)/,"_$1").toLowerCase().slice(0,64)||"column"}e.s(["getDbDialect",()=>u,"getWarehouseDB",()=>c,"importCsvToSqlite",()=>m,"removeCsvTable",()=>h,"testConnection",()=>l]),n()}catch(e){n(e)}},!1),452886,e=>e.a(async(t,n)=>{try{var a=e.i(712075),o=e.i(469719),s=e.i(608056),r=e.i(381165),i=t([r]);async function c(e,t,n){let i=n||(()=>{}),{db:c,connection:u}=await (0,r.getWarehouseDB)(e),m=u.type,h=(0,r.getDbDialect)(m);i({type:"connecting",connectionName:u.name});let d=(await c.execute(function(e){switch(e){case"postgresql":case"redshift":return`
2
+ SELECT table_schema, table_name
3
+ FROM information_schema.tables
4
+ WHERE table_schema NOT IN ('information_schema', 'pg_catalog')
5
+ AND table_type = 'BASE TABLE'
6
+ ORDER BY table_schema, table_name
7
+ LIMIT 50
8
+ `;case"mysql":return`
9
+ SELECT table_schema, table_name
10
+ FROM information_schema.tables
11
+ WHERE table_schema NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys')
12
+ AND table_type = 'BASE TABLE'
13
+ ORDER BY table_schema, table_name
14
+ LIMIT 50
15
+ `;case"sqlite":case"csv":return`
16
+ SELECT name AS table_name
17
+ FROM sqlite_master
18
+ WHERE type = 'table'
19
+ AND name NOT LIKE 'sqlite_%'
20
+ ORDER BY name
21
+ LIMIT 50
22
+ `;default:return"SELECT 1"}}(m))).rows.map(e=>({name:e.table_name||e.name,schema:e.table_schema}));if(0===d.length)return i({type:"no_tables"}),{entries:[],tablesExplored:0,connectionName:u.name};i({type:"tables_found",totalTables:d.length});let f=[];for(let e=0;e<d.length;e++){let t=d[e],n=t.schema?`${t.schema}.${t.name}`:t.name;i({type:"exploring_table",table:n,current:e+1,total:d.length});try{let a=await c.execute(function(e,t,n){switch(e){case"postgresql":case"redshift":return`
23
+ SELECT column_name, data_type, is_nullable, column_default,
24
+ character_maximum_length, numeric_precision
25
+ FROM information_schema.columns
26
+ WHERE table_name = '${t}'
27
+ ${n?`AND table_schema = '${n}'`:""}
28
+ ORDER BY ordinal_position
29
+ `;case"mysql":return`
30
+ SELECT column_name, data_type, is_nullable, column_default,
31
+ character_maximum_length, numeric_precision, column_key, extra
32
+ FROM information_schema.columns
33
+ WHERE table_name = '${t}'
34
+ ${n?`AND table_schema = '${n}'`:""}
35
+ ORDER BY ordinal_position
36
+ `;case"sqlite":case"csv":return`PRAGMA table_info("${t}")`;default:return"SELECT 1"}}(m,t.name,t.schema)),o=[],s=function(e,t,n){switch(e){case"postgresql":case"redshift":return`
37
+ SELECT
38
+ kcu.column_name,
39
+ ccu.table_schema AS foreign_table_schema,
40
+ ccu.table_name AS foreign_table_name,
41
+ ccu.column_name AS foreign_column_name
42
+ FROM information_schema.table_constraints tc
43
+ JOIN information_schema.key_column_usage kcu
44
+ ON tc.constraint_name = kcu.constraint_name
45
+ JOIN information_schema.constraint_column_usage ccu
46
+ ON ccu.constraint_name = tc.constraint_name
47
+ WHERE tc.constraint_type = 'FOREIGN KEY'
48
+ AND tc.table_name = '${t}'
49
+ ${n?`AND tc.table_schema = '${n}'`:""}
50
+ `;case"mysql":return`
51
+ SELECT
52
+ column_name,
53
+ referenced_table_schema AS foreign_table_schema,
54
+ referenced_table_name AS foreign_table_name,
55
+ referenced_column_name AS foreign_column_name
56
+ FROM information_schema.key_column_usage
57
+ WHERE table_name = '${t}'
58
+ AND referenced_table_name IS NOT NULL
59
+ ${n?`AND table_schema = '${n}'`:""}
60
+ `;case"sqlite":case"csv":return`PRAGMA foreign_key_list("${t}")`;default:return null}}(m,t.name,t.schema);if(s)try{o=(await c.execute(s)).rows}catch{}let r=[];try{r=(await c.execute(function(e,t,n){let a=n&&"sqlite"!==e&&"csv"!==e?`"${n}"."${t}"`:`"${t}"`;return`SELECT * FROM ${a} LIMIT 3`}(m,t.name,t.schema))).rows.slice(0,3)}catch{}let l=0;try{let e=await c.execute(function(e,t,n){let a=n&&"sqlite"!==e&&"csv"!==e?`"${n}"."${t}"`:`"${t}"`;return`SELECT COUNT(*) AS row_count FROM ${a}`}(m,t.name,t.schema));l=Number(e.rows[0]?.row_count||0)}catch{}f.push({name:t.name,schema:t.schema,fullName:n,columns:a.rows,foreignKeys:o,sampleRows:r,rowCount:l}),i({type:"table_done",table:n,current:e+1,total:d.length,columnCount:a.rows.length,rowCount:l})}catch(t){console.error(`Failed to explore table ${n}:`,t),i({type:"table_error",table:n,current:e+1,total:d.length})}}if(0===f.length)return{entries:[],tablesExplored:0,connectionName:u.name};let p=f.map(e=>{let t=e.columns.map(e=>{let t=e.column_name||e.name||"unknown",n=e.data_type||e.type||"unknown",a="YES"===e.is_nullable||0===e.notnull?"nullable":"not null",o=1===e.pk?" PRIMARY KEY":"",s=e.column_key?` (${e.column_key})`:"";return` ${t} ${n} ${a}${o}${s}`}).join("\n"),n=e.foreignKeys.length>0?` Foreign Keys:
61
+ ${e.foreignKeys.map(e=>` ${e.column_name||e.from} → ${e.foreign_table_name||e.table}.${e.foreign_column_name||e.to}`).join("\n")}`:"",a=e.sampleRows.length>0?` Sample Data (${e.rowCount} total rows):
62
+ ${JSON.stringify(e.sampleRows,null,2).split("\n").map(e=>` ${e}`).join("\n")}`:` (${e.rowCount} rows, no sample available)`;return`TABLE: ${e.fullName}
63
+ Columns:
64
+ ${t}
65
+ ${n}
66
+ ${a}`}).join("\n\n---\n\n");i({type:"generating",tablesExplored:f.length});let g=(0,s.getModel)(t||"google-gemini-2.0-flash-001"),b=o.z.object({entries:o.z.array(o.z.object({title:o.z.string().describe("A concise title"),content:o.z.string().describe("Detailed knowledge for AI SQL queries")}))}),y=[];if(p.length<=15e3)i({type:"generating_batch",batch:1,totalBatches:1}),y=(await (0,a.generateObject)({model:g,schema:b,prompt:l(h,u.name,p)})).object.entries,i({type:"batch_done",batch:1,totalBatches:1,entriesFound:y.length});else{let e=[],t="";for(let n of f){let a=p.split("---").find(e=>e.includes(`TABLE: ${n.fullName}`))?.trim()||"";t.length+a.length>15e3?(t&&e.push(t),t=a):t+=(t?"\n\n---\n\n":"")+a}t&&e.push(t);for(let t=0;t<e.length;t++){i({type:"generating_batch",batch:t+1,totalBatches:e.length});let n=await (0,a.generateObject)({model:g,schema:b,prompt:l(h,u.name,e[t])});y.push(...n.object.entries),i({type:"batch_done",batch:t+1,totalBatches:e.length,entriesFound:n.object.entries.length,totalEntries:y.length})}}return{entries:y,tablesExplored:f.length,connectionName:u.name}}function l(e,t,n){return`You are a database knowledge extraction agent. Analyze the following ${e} database schema for connection "${t}" and generate comprehensive knowledge base entries.
67
+
68
+ Your goal: create knowledge entries that would help an AI assistant write better SQL queries against this database.
69
+
70
+ For each entry, focus on:
71
+ 1. **Table purposes** — What each table is for, what entity it represents
72
+ 2. **Column meanings** — Non-obvious column names, what values mean
73
+ 3. **Relationships** — How tables relate to each other (foreign keys, join patterns)
74
+ 4. **Data patterns** — Enum values observed in sample data, status codes, date formats
75
+ 5. **Business rules** — Any business logic implied by the schema (e.g. soft deletes, computed fields)
76
+ 6. **Naming conventions** — Schema-wide patterns in naming
77
+ 7. **Important notes** — Anything an AI should know to avoid common mistakes
78
+
79
+ Create at least one entry per table and additional entries for cross-cutting concerns.
80
+ Each entry should be self-contained and useful on its own.
81
+
82
+ Database Schema:
83
+ ${n}`}[r]=i.then?(await i)():i,e.s(["exploreDatabase",()=>c]),n()}catch(e){n(e)}},!1)];
84
+
85
+ //# sourceMappingURL=%5Broot-of-the-server%5D__747722f0._.js.map
@@ -0,0 +1,85 @@
1
+ module.exports=[484199,(e,t,n)=>{"use strict";var a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,i={},c={VercelOidcTokenError:()=>u};for(var l in c)a(i,l,{get:c[l],enumerable:!0});t.exports=((e,t,n,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of s(t))r.call(e,n)||void 0===n||a(e,n,{get:()=>t[n],enumerable:!(i=o(t,n))||i.enumerable});return e})(a({},"__esModule",{value:!0}),i);class u extends Error{constructor(e,t){super(e),this.name="VercelOidcTokenError",this.cause=t}toString(){return this.cause?`${this.name}: ${this.message}: ${this.cause}`:`${this.name}: ${this.message}`}}},316733,e=>{"use strict";var t=e.i(814747),n=e.i(446786);function a(){let e=(0,n.homedir)();return(0,t.join)(e,".sqlbot")}function o(){return(0,t.join)(a(),"sqlbot.db")}function s(){return(0,t.join)(a(),"ai-providers.json")}function r(){return(0,t.join)(a(),"config.json")}function i(){return(0,t.join)(a(),"csv-dbs")}function c(e){let t=(0,n.homedir)();return e.startsWith(t)?e.replace(t,"~"):e}e.s(["getConfigDir",()=>a,"getConfigFilePath",()=>r,"getCsvDbsDir",()=>i,"getDbPath",()=>o,"getDisplayPath",()=>c,"getProvidersFilePath",()=>s])},875398,e=>{"use strict";var t=e.i(666680);let n=new Uint8Array(256),a=n.length;function o(){return a>n.length-16&&((0,t.randomFillSync)(n),a=0),n.slice(a,a+=16)}let s=[];for(let e=0;e<256;++e)s.push((e+256).toString(16).slice(1));let r={};function i(e,t,n,a,o=0){if(e.length<16)throw Error("Random bytes length must be >= 16");if(a){if(o<0||o+16>a.length)throw RangeError(`UUID byte range ${o}:${o+15} is out of buffer bounds`)}else a=new Uint8Array(16),o=0;return t??=Date.now(),n??=127*e[6]<<24|e[7]<<16|e[8]<<8|e[9],a[o++]=t/0x10000000000&255,a[o++]=t/0x100000000&255,a[o++]=t/0x1000000&255,a[o++]=t/65536&255,a[o++]=t/256&255,a[o++]=255&t,a[o++]=112|n>>>28&15,a[o++]=n>>>20&255,a[o++]=128|n>>>14&63,a[o++]=n>>>6&255,a[o++]=n<<2&255|3&e[10],a[o++]=e[11],a[o++]=e[12],a[o++]=e[13],a[o++]=e[14],a[o++]=e[15],a}e.s(["v7",0,function(e,t,n){let a;if(e)a=i(e.random??e.rng?.()??o(),e.msecs,e.seq,t,n);else{var c,l,u;let e=Date.now(),s=o();c=r,l=e,u=s,c.msecs??=-1/0,c.seq??=0,l>c.msecs?(c.seq=u[6]<<23|u[7]<<16|u[8]<<8|u[9],c.msecs=l):(c.seq=c.seq+1|0,0===c.seq&&c.msecs++),a=i(s,r.msecs,r.seq,t,n)}return t??function(e,t=0){return(s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+"-"+s[e[t+4]]+s[e[t+5]]+"-"+s[e[t+6]]+s[e[t+7]]+"-"+s[e[t+8]]+s[e[t+9]]+"-"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]).toLowerCase()}(a)}],875398)},230056,e=>e.a(async(t,n)=>{try{let t=await e.y("pg");e.n(t),n()}catch(e){n(e)}},!0),600177,e=>{"use strict";var t=e.i(522734),n=e.i(814747),a=e.i(875398),o=e.i(316733);let s=(0,o.getConfigDir)(),r=(0,o.getConfigFilePath)();function i(){(0,t.mkdirSync)(s,{recursive:!0})}function c(){if(i(),!(0,t.existsSync)(r)){let e={connections:[],activeConnectionId:null};return(0,t.writeFileSync)(r,JSON.stringify(e,null,2)),e}try{let e=(0,t.readFileSync)(r,"utf-8");return JSON.parse(e)}catch{let e={connections:[],activeConnectionId:null};return(0,t.writeFileSync)(r,JSON.stringify(e,null,2)),e}}function l(e){i(),(0,t.writeFileSync)(r,JSON.stringify(e,null,2))}function u(){return c().connections}function m(e){return c().connections.find(t=>t.id===e)}function h(){let e=c();return e.activeConnectionId?e.connections.find(t=>t.id===e.activeConnectionId)??null:null}function d(){return c().activeConnectionId}function f(e){let t=c(),n=new Date().toISOString(),o={...e,id:(0,a.v7)(),createdAt:n,updatedAt:n};return t.connections.push(o),1===t.connections.length&&(t.activeConnectionId=o.id),l(t),o}function p(e,t){let n=c(),a=n.connections.findIndex(t=>t.id===e);return -1===a?null:(n.connections[a]={...n.connections[a],...t,updatedAt:new Date().toISOString()},l(n),n.connections[a])}function g(e){let t=c(),n=t.connections.findIndex(t=>t.id===e);return -1!==n&&(t.connections.splice(n,1),t.activeConnectionId===e&&(t.activeConnectionId=t.connections.length>0?t.connections[0].id:null),l(t),!0)}function b(e){let t=c();return!!t.connections.find(t=>t.id===e)&&(t.activeConnectionId=e,l(t),!0)}function w(e){return(0,n.join)((0,o.getCsvDbsDir)(),`${e}.db`)}function y(e,t){let n=c(),a=n.connections.findIndex(t=>t.id===e);return -1===a?null:(n.connections[a]={...n.connections[a],csvFiles:t,updatedAt:new Date().toISOString()},l(n),n.connections[a])}e.s(["addConnection",()=>f,"deleteConnection",()=>g,"getActiveConnection",()=>h,"getActiveConnectionId",()=>d,"getConnection",()=>m,"getConnections",()=>u,"getCsvDbPath",()=>w,"setActiveConnection",()=>b,"updateConnection",()=>p,"updateCsvFiles",()=>y])},393207,(e,t,n)=>{t.exports=e.x("@libsql/client",()=>require("@libsql/client"))},381165,e=>e.a(async(t,n)=>{try{var a=e.i(230056),o=e.i(600177),s=e.i(522734),r=t([a]);[a]=r.then?(await r)():r;let f=new Map;async function i(t){let n=(await e.A(959021)).createPool({host:t.host,port:t.port,user:t.user,password:t.password,database:t.database,ssl:t.ssl?{rejectUnauthorized:!1}:void 0,connectionLimit:5,waitForConnections:!0});return{warehouse:{async execute(e){let[t,a]=await n.execute(e);return{rows:t,fields:(a||[]).map(e=>({name:e.name,dataTypeID:e.columnType}))}}},cleanup:async()=>{await n.end()}}}async function c(t){let n,s;if(!(n=t?(0,o.getConnection)(t):(0,o.getActiveConnection)()))throw Error("No database connection configured. Please add a connection in the Connections page.");let r="sqlite"===n.type||"csv"===n.type?`${n.type}:${n.filePath||n.database||n.id}`:`${n.type}:${n.host}:${n.port}:${n.user}:${n.database}:${n.ssl}:${n.password}`,c=f.get(n.id);if(c&&c.connectionHash===r)return c.lastUsed=Date.now(),{db:c.warehouse,connection:n};if(c){try{await c.cleanup()}catch{}f.delete(n.id)}if("mysql"===n.type)s=await i(n);else if("sqlite"===n.type||"csv"===n.type)s=function(t){let n="csv"===t.type?(0,o.getCsvDbPath)(t.id):t.filePath||t.database;if(!n)throw Error("No database file path specified for SQLite connection.");let a=null;return{warehouse:{async execute(t){let o=(()=>{if(!a){let{createClient:t}=e.r(393207);a=t({url:`file:${n}`})}return a})(),s=await o.execute(t);return{rows:s.rows.map(e=>{let t={};for(let n of s.columns)t[n]=e[n];return t}),fields:s.columns.map(e=>({name:e}))}}},cleanup:async()=>{a&&(a.close?.(),a=null)}}}(n);else{let e;e=new a.Pool({host:n.host,port:n.port,user:n.user,password:n.password,database:n.database,ssl:n.ssl?{rejectUnauthorized:!1}:void 0,max:5,idleTimeoutMillis:3e5}),s={warehouse:{async execute(t){let n=await e.query(t);return{rows:n.rows,fields:n.fields.map(e=>({name:e.name,dataTypeID:e.dataTypeID}))}}},cleanup:async()=>{await e.end()}}}return f.set(n.id,{warehouse:s.warehouse,cleanup:s.cleanup,connectionHash:r,lastUsed:Date.now()}),{db:s.warehouse,connection:n}}async function l(t){let n=Date.now();try{if("sqlite"===t.type){let n=t.filePath||t.database;if(!n)throw Error("No file path specified");if(!(0,s.existsSync)(n))throw Error(`File not found: ${n}`);let{createClient:a}=e.r(393207),o=a({url:`file:${n}`});await o.execute("SELECT 1"),o.close()}else if("csv"===t.type){let n=t.id?(0,o.getCsvDbPath)(t.id):null;if(n&&(0,s.existsSync)(n)){let{createClient:t}=e.r(393207),a=t({url:`file:${n}`});await a.execute("SELECT 1"),a.close()}}else if("mysql"===t.type){let n=await e.A(959021),a=await n.createConnection({host:t.host,port:t.port,user:t.user,password:t.password,database:t.database,ssl:t.ssl?{rejectUnauthorized:!1}:void 0,connectTimeout:1e4});await a.execute("SELECT 1"),await a.end()}else{let e=new a.Pool({host:t.host,port:t.port,user:t.user,password:t.password,database:t.database,ssl:t.ssl?{rejectUnauthorized:!1}:void 0,max:1,connectionTimeoutMillis:1e4}),n=await e.connect();await n.query("SELECT 1"),n.release(),await e.end()}return{success:!0,latencyMs:Date.now()-n}}catch(e){return{success:!1,error:e instanceof Error?e.message:String(e),latencyMs:Date.now()-n}}}function u(e){switch(e){case"redshift":return"Amazon Redshift SQL";case"postgresql":return"PostgreSQL";case"mysql":return"MySQL";case"sqlite":case"csv":return"SQLite"}}async function m(t,n,a){let s=(0,o.getCsvDbPath)(t),{mkdirSync:r}=e.r(522734),{dirname:i}=e.r(814747);r(i(s),{recursive:!0});let{createClient:c}=e.r(393207),l=c({url:`file:${s}`});try{let e=function(e){let t=[],n=[],a="",o=!1,s=0;for(;s<e.length;){let r=e[s];o?'"'===r?s+1<e.length&&'"'===e[s+1]?(a+='"',s+=2):(o=!1,s++):(a+=r,s++):'"'===r?(o=!0,s++):","===r?(n.push(a.trim()),a="",s++):"\r"===r||"\n"===r?(n.push(a.trim()),a="",n.some(e=>""!==e)&&t.push(n),n=[],"\r"===r&&s+1<e.length&&"\n"===e[s+1]?s+=2:s++):(a+=r,s++)}return(a||n.length>0)&&(n.push(a.trim()),n.some(e=>""!==e)&&t.push(n)),t}(n);if(e.length<2)throw Error("CSV must have a header row and at least one data row");let t=e[0],o=e.slice(1),s=d(a),r=t.map(d);await l.execute(`DROP TABLE IF EXISTS "${s}"`);let i=r.map((e,t)=>{var n;let a=(n=o.slice(0,20).map(e=>e[t]).filter(Boolean),0===n.length?"TEXT":n.every(e=>/^-?\d+$/.test(e))?"INTEGER":n.every(e=>/^-?\d+(\.\d+)?$/.test(e))?"REAL":"TEXT");return`"${e}" ${a}`});await l.execute(`CREATE TABLE "${s}" (${i.join(", ")})`);let c=0;for(let e=0;e<o.length;e+=500){let t=o.slice(e,e+500),n=t.map(()=>`(${r.map(()=>"?").join(", ")})`).join(", "),a=t.flatMap(e=>r.map((t,n)=>{let a=e[n];return null==a||""===a?null:a}));await l.execute({sql:`INSERT INTO "${s}" (${r.map(e=>`"${e}"`).join(", ")}) VALUES ${n}`,args:a}),c+=t.length}return l.close(),{rowCount:c,columns:r}}catch(e){throw l.close(),e}}async function h(t,n){let a=(0,o.getCsvDbPath)(t);if(!(0,s.existsSync)(a))return;let{createClient:r}=e.r(393207),i=r({url:`file:${a}`});await i.execute(`DROP TABLE IF EXISTS "${d(n)}"`),i.close()}function d(e){return e.replace(/[^\w\s]/g,"").replace(/\s+/g,"_").replace(/^(\d)/,"_$1").toLowerCase().slice(0,64)||"column"}e.s(["getDbDialect",()=>u,"getWarehouseDB",()=>c,"importCsvToSqlite",()=>m,"removeCsvTable",()=>h,"testConnection",()=>l]),n()}catch(e){n(e)}},!1),452886,e=>e.a(async(t,n)=>{try{var a=e.i(712075),o=e.i(469719),s=e.i(608056),r=e.i(381165),i=t([r]);async function c(e,t,n){let i=n||(()=>{}),{db:c,connection:u}=await (0,r.getWarehouseDB)(e),m=u.type,h=(0,r.getDbDialect)(m);i({type:"connecting",connectionName:u.name});let d=(await c.execute(function(e){switch(e){case"postgresql":case"redshift":return`
2
+ SELECT table_schema, table_name
3
+ FROM information_schema.tables
4
+ WHERE table_schema NOT IN ('information_schema', 'pg_catalog')
5
+ AND table_type = 'BASE TABLE'
6
+ ORDER BY table_schema, table_name
7
+ LIMIT 50
8
+ `;case"mysql":return`
9
+ SELECT table_schema, table_name
10
+ FROM information_schema.tables
11
+ WHERE table_schema NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys')
12
+ AND table_type = 'BASE TABLE'
13
+ ORDER BY table_schema, table_name
14
+ LIMIT 50
15
+ `;case"sqlite":case"csv":return`
16
+ SELECT name AS table_name
17
+ FROM sqlite_master
18
+ WHERE type = 'table'
19
+ AND name NOT LIKE 'sqlite_%'
20
+ ORDER BY name
21
+ LIMIT 50
22
+ `;default:return"SELECT 1"}}(m))).rows.map(e=>({name:e.table_name||e.name,schema:e.table_schema}));if(0===d.length)return i({type:"no_tables"}),{entries:[],tablesExplored:0,connectionName:u.name};i({type:"tables_found",totalTables:d.length});let f=[];for(let e=0;e<d.length;e++){let t=d[e],n=t.schema?`${t.schema}.${t.name}`:t.name;i({type:"exploring_table",table:n,current:e+1,total:d.length});try{let a=await c.execute(function(e,t,n){switch(e){case"postgresql":case"redshift":return`
23
+ SELECT column_name, data_type, is_nullable, column_default,
24
+ character_maximum_length, numeric_precision
25
+ FROM information_schema.columns
26
+ WHERE table_name = '${t}'
27
+ ${n?`AND table_schema = '${n}'`:""}
28
+ ORDER BY ordinal_position
29
+ `;case"mysql":return`
30
+ SELECT column_name, data_type, is_nullable, column_default,
31
+ character_maximum_length, numeric_precision, column_key, extra
32
+ FROM information_schema.columns
33
+ WHERE table_name = '${t}'
34
+ ${n?`AND table_schema = '${n}'`:""}
35
+ ORDER BY ordinal_position
36
+ `;case"sqlite":case"csv":return`PRAGMA table_info("${t}")`;default:return"SELECT 1"}}(m,t.name,t.schema)),o=[],s=function(e,t,n){switch(e){case"postgresql":case"redshift":return`
37
+ SELECT
38
+ kcu.column_name,
39
+ ccu.table_schema AS foreign_table_schema,
40
+ ccu.table_name AS foreign_table_name,
41
+ ccu.column_name AS foreign_column_name
42
+ FROM information_schema.table_constraints tc
43
+ JOIN information_schema.key_column_usage kcu
44
+ ON tc.constraint_name = kcu.constraint_name
45
+ JOIN information_schema.constraint_column_usage ccu
46
+ ON ccu.constraint_name = tc.constraint_name
47
+ WHERE tc.constraint_type = 'FOREIGN KEY'
48
+ AND tc.table_name = '${t}'
49
+ ${n?`AND tc.table_schema = '${n}'`:""}
50
+ `;case"mysql":return`
51
+ SELECT
52
+ column_name,
53
+ referenced_table_schema AS foreign_table_schema,
54
+ referenced_table_name AS foreign_table_name,
55
+ referenced_column_name AS foreign_column_name
56
+ FROM information_schema.key_column_usage
57
+ WHERE table_name = '${t}'
58
+ AND referenced_table_name IS NOT NULL
59
+ ${n?`AND table_schema = '${n}'`:""}
60
+ `;case"sqlite":case"csv":return`PRAGMA foreign_key_list("${t}")`;default:return null}}(m,t.name,t.schema);if(s)try{o=(await c.execute(s)).rows}catch{}let r=[];try{r=(await c.execute(function(e,t,n){let a=n&&"sqlite"!==e&&"csv"!==e?`"${n}"."${t}"`:`"${t}"`;return`SELECT * FROM ${a} LIMIT 3`}(m,t.name,t.schema))).rows.slice(0,3)}catch{}let l=0;try{let e=await c.execute(function(e,t,n){let a=n&&"sqlite"!==e&&"csv"!==e?`"${n}"."${t}"`:`"${t}"`;return`SELECT COUNT(*) AS row_count FROM ${a}`}(m,t.name,t.schema));l=Number(e.rows[0]?.row_count||0)}catch{}f.push({name:t.name,schema:t.schema,fullName:n,columns:a.rows,foreignKeys:o,sampleRows:r,rowCount:l}),i({type:"table_done",table:n,current:e+1,total:d.length,columnCount:a.rows.length,rowCount:l})}catch(t){console.error(`Failed to explore table ${n}:`,t),i({type:"table_error",table:n,current:e+1,total:d.length})}}if(0===f.length)return{entries:[],tablesExplored:0,connectionName:u.name};let p=f.map(e=>{let t=e.columns.map(e=>{let t=e.column_name||e.name||"unknown",n=e.data_type||e.type||"unknown",a="YES"===e.is_nullable||0===e.notnull?"nullable":"not null",o=1===e.pk?" PRIMARY KEY":"",s=e.column_key?` (${e.column_key})`:"";return` ${t} ${n} ${a}${o}${s}`}).join("\n"),n=e.foreignKeys.length>0?` Foreign Keys:
61
+ ${e.foreignKeys.map(e=>` ${e.column_name||e.from} → ${e.foreign_table_name||e.table}.${e.foreign_column_name||e.to}`).join("\n")}`:"",a=e.sampleRows.length>0?` Sample Data (${e.rowCount} total rows):
62
+ ${JSON.stringify(e.sampleRows,null,2).split("\n").map(e=>` ${e}`).join("\n")}`:` (${e.rowCount} rows, no sample available)`;return`TABLE: ${e.fullName}
63
+ Columns:
64
+ ${t}
65
+ ${n}
66
+ ${a}`}).join("\n\n---\n\n");i({type:"generating",tablesExplored:f.length});let g=(0,s.getModel)(t||"google-gemini-2.0-flash-001"),b=o.z.object({entries:o.z.array(o.z.object({title:o.z.string().describe("A concise title"),content:o.z.string().describe("Detailed knowledge for AI SQL queries")}))}),w=[];if(p.length<=15e3)i({type:"generating_batch",batch:1,totalBatches:1}),w=(await (0,a.generateObject)({model:g,schema:b,prompt:l(h,u.name,p)})).object.entries,i({type:"batch_done",batch:1,totalBatches:1,entriesFound:w.length});else{let e=[],t="";for(let n of f){let a=p.split("---").find(e=>e.includes(`TABLE: ${n.fullName}`))?.trim()||"";t.length+a.length>15e3?(t&&e.push(t),t=a):t+=(t?"\n\n---\n\n":"")+a}t&&e.push(t);for(let t=0;t<e.length;t++){i({type:"generating_batch",batch:t+1,totalBatches:e.length});let n=await (0,a.generateObject)({model:g,schema:b,prompt:l(h,u.name,e[t])});w.push(...n.object.entries),i({type:"batch_done",batch:t+1,totalBatches:e.length,entriesFound:n.object.entries.length,totalEntries:w.length})}}return{entries:w,tablesExplored:f.length,connectionName:u.name}}function l(e,t,n){return`You are a database knowledge extraction agent. Analyze the following ${e} database schema for connection "${t}" and generate comprehensive knowledge base entries.
67
+
68
+ Your goal: create knowledge entries that would help an AI assistant write better SQL queries against this database.
69
+
70
+ For each entry, focus on:
71
+ 1. **Table purposes** — What each table is for, what entity it represents
72
+ 2. **Column meanings** — Non-obvious column names, what values mean
73
+ 3. **Relationships** — How tables relate to each other (foreign keys, join patterns)
74
+ 4. **Data patterns** — Enum values observed in sample data, status codes, date formats
75
+ 5. **Business rules** — Any business logic implied by the schema (e.g. soft deletes, computed fields)
76
+ 6. **Naming conventions** — Schema-wide patterns in naming
77
+ 7. **Important notes** — Anything an AI should know to avoid common mistakes
78
+
79
+ Create at least one entry per table and additional entries for cross-cutting concerns.
80
+ Each entry should be self-contained and useful on its own.
81
+
82
+ Database Schema:
83
+ ${n}`}[r]=i.then?(await i)():i,e.s(["exploreDatabase",()=>c]),n()}catch(e){n(e)}},!1)];
84
+
85
+ //# sourceMappingURL=%5Broot-of-the-server%5D__ca89cb1f._.js.map