larkup 0.1.28 → 0.1.29

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 (214) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +5 -5
  3. package/.next/diagnostics/route-bundle-stats.json +25 -25
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/next-minimal-server.js.nft.json +1 -1
  6. package/.next/next-server.js.nft.json +1 -1
  7. package/.next/prerender-manifest.json +3 -3
  8. package/.next/required-server-files.js +4 -4
  9. package/.next/required-server-files.json +4 -4
  10. package/.next/server/app/_global-error/page/build-manifest.json +2 -2
  11. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  12. package/.next/server/app/_global-error.html +1 -1
  13. package/.next/server/app/_global-error.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  18. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/.next/server/app/_not-found/page/build-manifest.json +2 -2
  20. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  21. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/_not-found.html +1 -1
  23. package/.next/server/app/_not-found.rsc +16 -16
  24. package/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
  25. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  26. package/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  27. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  28. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  29. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  30. package/.next/server/app/analytics/page/build-manifest.json +2 -2
  31. package/.next/server/app/analytics/page.js.nft.json +1 -1
  32. package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/analytics.html +1 -1
  34. package/.next/server/app/analytics.rsc +17 -17
  35. package/.next/server/app/analytics.segments/_full.segment.rsc +17 -17
  36. package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
  37. package/.next/server/app/analytics.segments/_index.segment.rsc +11 -11
  38. package/.next/server/app/analytics.segments/_tree.segment.rsc +1 -1
  39. package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +3 -3
  40. package/.next/server/app/analytics.segments/analytics.segment.rsc +3 -3
  41. package/.next/server/app/api/analytics/route.js.nft.json +1 -1
  42. package/.next/server/app/api/chat/route.js +8 -9
  43. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  44. package/.next/server/app/api/chat/status/route.js.nft.json +1 -1
  45. package/.next/server/app/api/chat/suggestions/route.js.nft.json +1 -1
  46. package/.next/server/app/api/config/route.js.nft.json +1 -1
  47. package/.next/server/app/api/config/test/route.js.nft.json +1 -1
  48. package/.next/server/app/api/config/test-embedding/route.js.nft.json +1 -1
  49. package/.next/server/app/api/config/test-llm/route.js.nft.json +1 -1
  50. package/.next/server/app/api/config/test-provider/route.js.nft.json +1 -1
  51. package/.next/server/app/api/config/verify/route.js.nft.json +1 -1
  52. package/.next/server/app/api/connections/route.js.nft.json +1 -1
  53. package/.next/server/app/api/connections/webhook/route.js.nft.json +1 -1
  54. package/.next/server/app/api/demo/route.js.nft.json +1 -1
  55. package/.next/server/app/api/deploy/cloud-project/route.js.nft.json +1 -1
  56. package/.next/server/app/api/deploy/ssh/route.js.nft.json +1 -1
  57. package/.next/server/app/api/deployment/blob-setup/route.js.nft.json +1 -1
  58. package/.next/server/app/api/deployment/config/route.js.nft.json +1 -1
  59. package/.next/server/app/api/describe-image/route.js.nft.json +1 -1
  60. package/.next/server/app/api/doc-editor/edit/route.js.nft.json +1 -1
  61. package/.next/server/app/api/doc-editor/export/route.js.nft.json +1 -1
  62. package/.next/server/app/api/doc-editor/extract-text/route.js.nft.json +1 -1
  63. package/.next/server/app/api/doc-editor/parse/route.js.nft.json +1 -1
  64. package/.next/server/app/api/doc-editor/restore/route.js.nft.json +1 -1
  65. package/.next/server/app/api/document/sign/route.js.nft.json +1 -1
  66. package/.next/server/app/api/documents/route.js.nft.json +1 -1
  67. package/.next/server/app/api/firecrawl/local/route.js.nft.json +1 -1
  68. package/.next/server/app/api/index/route.js.nft.json +1 -1
  69. package/.next/server/app/api/integrations/notion/callback/route.js.nft.json +1 -1
  70. package/.next/server/app/api/integrations/notion/route.js.nft.json +1 -1
  71. package/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
  72. package/.next/server/app/api/jobs/route.js.nft.json +1 -1
  73. package/.next/server/app/api/marketplace/[toolId]/route.js +1 -1
  74. package/.next/server/app/api/marketplace/[toolId]/route.js.nft.json +1 -1
  75. package/.next/server/app/api/marketplace/route.js +1 -1
  76. package/.next/server/app/api/marketplace/route.js.nft.json +1 -1
  77. package/.next/server/app/api/media/[id]/route.js.nft.json +1 -1
  78. package/.next/server/app/api/media/process/route.js +2 -2
  79. package/.next/server/app/api/media/process/route.js.nft.json +1 -1
  80. package/.next/server/app/api/media/route.js +1 -1
  81. package/.next/server/app/api/media/route.js.nft.json +1 -1
  82. package/.next/server/app/api/media/stream/route.js.nft.json +1 -1
  83. package/.next/server/app/api/models/route.js.nft.json +1 -1
  84. package/.next/server/app/api/parse-file/route.js.nft.json +1 -1
  85. package/.next/server/app/api/proxy/verify/route.js.nft.json +1 -1
  86. package/.next/server/app/api/sandbox/route.js.nft.json +1 -1
  87. package/.next/server/app/api/search/bing/route.js.nft.json +1 -1
  88. package/.next/server/app/api/search/brave/route.js.nft.json +1 -1
  89. package/.next/server/app/api/search/exa/route.js.nft.json +1 -1
  90. package/.next/server/app/api/search/google/route.js.nft.json +1 -1
  91. package/.next/server/app/api/search/route.js.nft.json +1 -1
  92. package/.next/server/app/api/search/tavily/route.js.nft.json +1 -1
  93. package/.next/server/app/api/search/verify/route.js.nft.json +1 -1
  94. package/.next/server/app/api/server/agent/route.js.nft.json +1 -1
  95. package/.next/server/app/api/server/download/route.js.nft.json +1 -1
  96. package/.next/server/app/api/server/generate/route.js.nft.json +1 -1
  97. package/.next/server/app/api/server/local/route.js.nft.json +1 -1
  98. package/.next/server/app/api/servers/route.js.nft.json +1 -1
  99. package/.next/server/app/api/tabular/query/route.js.nft.json +1 -1
  100. package/.next/server/app/api/tabular/route.js.nft.json +1 -1
  101. package/.next/server/app/api/upload-file/route.js.nft.json +1 -1
  102. package/.next/server/app/api/uploads/[...slug]/route.js.nft.json +1 -1
  103. package/.next/server/app/api/vector-stores/install/route.js.nft.json +1 -1
  104. package/.next/server/app/api/vector-stores/status/route.js.nft.json +1 -1
  105. package/.next/server/app/chat/page/build-manifest.json +2 -2
  106. package/.next/server/app/chat/page.js.nft.json +1 -1
  107. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  108. package/.next/server/app/chat.html +1 -1
  109. package/.next/server/app/chat.rsc +17 -17
  110. package/.next/server/app/chat.segments/_full.segment.rsc +17 -17
  111. package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
  112. package/.next/server/app/chat.segments/_index.segment.rsc +11 -11
  113. package/.next/server/app/chat.segments/_tree.segment.rsc +1 -1
  114. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +3 -3
  115. package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
  116. package/.next/server/app/data/page/build-manifest.json +2 -2
  117. package/.next/server/app/data/page.js.nft.json +1 -1
  118. package/.next/server/app/data/page_client-reference-manifest.js +1 -1
  119. package/.next/server/app/data.html +1 -1
  120. package/.next/server/app/data.rsc +17 -17
  121. package/.next/server/app/data.segments/_full.segment.rsc +17 -17
  122. package/.next/server/app/data.segments/_head.segment.rsc +4 -4
  123. package/.next/server/app/data.segments/_index.segment.rsc +11 -11
  124. package/.next/server/app/data.segments/_tree.segment.rsc +1 -1
  125. package/.next/server/app/data.segments/data/__PAGE__.segment.rsc +3 -3
  126. package/.next/server/app/data.segments/data.segment.rsc +3 -3
  127. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  128. package/.next/server/app/index.html +1 -1
  129. package/.next/server/app/index.rsc +16 -16
  130. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  131. package/.next/server/app/index.segments/_full.segment.rsc +16 -16
  132. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  133. package/.next/server/app/index.segments/_index.segment.rsc +11 -11
  134. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  135. package/.next/server/app/page/build-manifest.json +2 -2
  136. package/.next/server/app/page.js.nft.json +1 -1
  137. package/.next/server/app/page_client-reference-manifest.js +1 -1
  138. package/.next/server/app/settings/page/build-manifest.json +2 -2
  139. package/.next/server/app/settings/page/server-reference-manifest.json +3 -3
  140. package/.next/server/app/settings/page.js.nft.json +1 -1
  141. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  142. package/.next/server/app/settings.html +1 -1
  143. package/.next/server/app/settings.rsc +18 -18
  144. package/.next/server/app/settings.segments/_full.segment.rsc +18 -18
  145. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  146. package/.next/server/app/settings.segments/_index.segment.rsc +11 -11
  147. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  148. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  149. package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  150. package/.next/server/chunks/[root-of-the-server]__0c80bj0._.js +3 -0
  151. package/.next/server/chunks/{[root-of-the-server]__1m7m2x7._.js → [root-of-the-server]__0drkoru._.js} +2 -2
  152. package/.next/server/chunks/{[root-of-the-server]__0vnm6_8._.js → [root-of-the-server]__0kmh740._.js} +6 -6
  153. package/.next/server/chunks/{[root-of-the-server]__0ou70-v._.js → [root-of-the-server]__0nfenje._.js} +1 -1
  154. package/.next/server/chunks/[root-of-the-server]__0omd-x0._.js +3 -0
  155. package/.next/server/chunks/{[root-of-the-server]__1s1zui-._.js → [root-of-the-server]__10v5qsi._.js} +1 -1
  156. package/.next/server/chunks/[root-of-the-server]__1idgvjh._.js +172 -0
  157. package/.next/server/chunks/[root-of-the-server]__1ip05r1._.js +1 -1
  158. package/.next/server/chunks/[root-of-the-server]__1jc54o2._.js +3 -0
  159. package/.next/server/chunks/{[root-of-the-server]__0748x7h._.js → [root-of-the-server]__1lhls88._.js} +1 -1
  160. package/.next/server/chunks/{[root-of-the-server]__0g_q-44._.js → [root-of-the-server]__1wy6wes._.js} +2 -2
  161. package/.next/server/chunks/{packages_1f4dx4h._.js → packages_1ggqion._.js} +2 -2
  162. package/.next/server/chunks/packages_marketplace_src_125_g2p._.js +1 -1
  163. package/.next/server/chunks/{packages_vector-stores_src_064-9ay._.js → packages_vector-stores_src_1fib7u-._.js} +2 -2
  164. package/.next/server/chunks/ssr/_169pdlf._.js +2 -2
  165. package/.next/server/chunks/ssr/_1hetwwu._.js +2 -2
  166. package/.next/server/chunks/ssr/_1iff9ia._.js +1 -1
  167. package/.next/server/chunks/ssr/_1yqlx1m._.js +1 -1
  168. package/.next/server/chunks/ssr/apps_web_lib_pdf-images_ts_13-l5wa._.js +1 -1
  169. package/.next/server/middleware-build-manifest.js +5 -5
  170. package/.next/server/pages/404.html +1 -1
  171. package/.next/server/pages/500.html +1 -1
  172. package/.next/server/server-reference-manifest.js +1 -1
  173. package/.next/server/server-reference-manifest.json +4 -4
  174. package/.next/static/chunks/{13hmtkhrbm4t3.js → 01qmngac69n9j.js} +1 -1
  175. package/.next/static/chunks/{3bpr59xr-_rv7.js → 0ge3nirnmx_np.js} +1 -1
  176. package/.next/static/chunks/{0k405nomf6s4e.js → 102b8vinedggz.js} +6 -6
  177. package/.next/static/chunks/{2jqjx4-rh414_.js → 13kyiy7q3of41.js} +1 -1
  178. package/.next/static/chunks/{1fz_0-qb5r5wd.js → 1dykihoo_1ae5.js} +1 -1
  179. package/.next/static/chunks/{0rgt7-bqxonef.js → 1sh7d5tt49x8b.js} +2 -2
  180. package/.next/static/chunks/{1-afr-snks55m.js → 1z4nte07k3dt6.js} +1 -1
  181. package/.next/static/chunks/2ib3e0xrrdait.js +1 -0
  182. package/.next/static/chunks/{turbopack-2gu-fmc6o5wkn.js → turbopack-2qt7vn_ocj4ao.js} +1 -1
  183. package/CHANGELOG.md +10 -0
  184. package/app/api/describe-image/route.ts +12 -4
  185. package/components/data/media-panel.tsx +34 -2
  186. package/components/data/upload-panel.tsx +2 -1
  187. package/components/settings/marketplace-section.tsx +14 -2
  188. package/lib/pdf-images.ts +20 -5
  189. package/package.json +5 -5
  190. package/.next/server/chunks/[root-of-the-server]__00r1kgp._.js +0 -143
  191. package/.next/server/chunks/[root-of-the-server]__064gb96._.js +0 -3
  192. package/.next/server/chunks/_0ce9vcg._.js +0 -32
  193. package/.next/static/chunks/00z1f-adeq1lg.js +0 -1
  194. package/archive/redesign-v2/app/configure/page.tsx +0 -53
  195. package/archive/redesign-v2/app/demo/page.tsx +0 -15
  196. package/archive/redesign-v2/app/server/page.tsx +0 -22
  197. package/archive/redesign-v2/app/simple/chat/page.tsx +0 -17
  198. package/archive/redesign-v2/app/simple/docs/page.tsx +0 -21
  199. package/archive/redesign-v2/app/simple/settings/page.tsx +0 -1104
  200. package/archive/redesign-v2/app-routes/configure/page.tsx +0 -53
  201. package/archive/redesign-v2/app-routes/demo/page.tsx +0 -15
  202. package/archive/redesign-v2/app-routes/server/page.tsx +0 -22
  203. package/archive/redesign-v2/app-routes/simple/chat/page.tsx +0 -17
  204. package/archive/redesign-v2/app-routes/simple/docs/page.tsx +0 -21
  205. package/archive/redesign-v2/app-routes/simple/layout.tsx +0 -9
  206. package/archive/redesign-v2/app-routes/simple/settings/page.tsx +0 -1104
  207. package/archive/redesign-v2/components/app-sidebar.tsx +0 -188
  208. package/archive/redesign-v2/components/app-topnav.tsx +0 -195
  209. package/archive/redesign-v2/components/global-settings.tsx +0 -288
  210. package/archive/redesign-v2/components/simple/simple-sidebar.tsx +0 -171
  211. package/archive/redesign-v2/components/simple/simple-topnav.tsx +0 -175
  212. /package/.next/static/{bDwMIFYSTVBKUJkJJx77o → W6QdudzTPo_OVPpNt29f7}/_buildManifest.js +0 -0
  213. /package/.next/static/{bDwMIFYSTVBKUJkJJx77o → W6QdudzTPo_OVPpNt29f7}/_clientMiddlewareManifest.js +0 -0
  214. /package/.next/static/{bDwMIFYSTVBKUJkJJx77o → W6QdudzTPo_OVPpNt29f7}/_ssgManifest.js +0 -0
@@ -0,0 +1,172 @@
1
+ module.exports=[367165,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(638725),n=e.i(192441);async function i(){let e=await (0,n.getDataDir)();if(!e)return a.DEFAULT_CONFIG;try{let n=await t.promises.readFile(r.default.join(e,"config.json"),"utf8"),i=JSON.parse(n),s=i.customEmbeddings,o=i.embeddingModelId;if(i.customEmbedding&&!s?.length){let e=i.customEmbedding;s=[e],"custom"===o&&(o=`custom:${e.modelName}`)}let l={...a.DEFAULT_CONFIG,...i,embeddingModelId:o??a.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:s,chunking:{...a.DEFAULT_CONFIG.chunking,...i.chunking},storeConfig:{...a.DEFAULT_CONFIG.storeConfig,...i.storeConfig}};return delete l.customEmbedding,l}catch{return a.DEFAULT_CONFIG}}async function s(e){let a=await (0,n.requireDataDir)(),i={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(r.default.join(a,"config.json"),JSON.stringify(i,null,2),"utf8"),i}e.s(["readConfig",0,i,"writeConfig",0,s])},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},705252,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(666680),n=e.i(192441);let i=Promise.resolve();function s(e){let t=i.then(e,e);return i=t.catch(()=>{}),t}async function o(e){let t=e?await (0,n.requireDataDir)():await (0,n.getDataDir)();return t?r.default.join(t,"documents.json"):null}async function l(){let e=await o(!1);if(!e)return[];try{let r=await t.promises.readFile(e,"utf8"),a=JSON.parse(r);if(!Array.isArray(a))throw Error(`Invalid document store at ${e}: expected a JSON array.`);return a}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let n=await o(!0);if(!n)return;let i=r.default.join(r.default.dirname(n),`.${r.default.basename(n)}.${process.pid}.${(0,a.randomUUID)()}.tmp`);try{await t.promises.writeFile(i,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(i,n)}catch(e){throw await t.promises.unlink(i).catch(()=>{}),e}}function c(e){let t=e.content.trim();return{id:e.id??(0,a.randomUUID)(),title:e.title.trim()||"Untitled",url:e.url,source:e.source,content:t,charCount:t.length,jobId:e.jobId,metadata:e.metadata,status:"unindexed",createdAt:new Date().toISOString()}}async function u(){let e=await l(),t=e.reduce((e,t)=>e+t.charCount,0);return{docCount:e.length,charCount:t,bySource:e.reduce((e,t)=>(e[t.source]=(e[t.source]??0)+1,e),{})}}e.s(["addCrawledDocuments",0,function(e,t){return s(async()=>{let r=await l(),a=new Set(r.filter(e=>e.url).map(e=>e.url)),n=0;for(let i of t)!(i.url&&a.has(i.url))&&i.content.trim()&&(r.push(c({...i,jobId:e})),i.url&&a.add(i.url),n++);return n>0&&await d(r),n})},"addDocument",0,function(e){return s(async()=>{let t=await l(),r=c(e);return t.push(r),await d(t),r})},"addDocuments",0,function(e){return s(async()=>{if(0===e.length)return[];let t=await l(),r=e.map(c);return t.push(...r),await d(t),r})},"clearDocuments",0,function(){return s(async()=>{await d([])})},"corpusStats",0,u,"deleteDocument",0,function(e){return s(async()=>{let t=await l();await d(t.filter(t=>t.id!==e))})},"deleteDocuments",0,function(e){return s(async()=>{let t=await l(),r=new Set(e);await d(t.filter(e=>!r.has(e.id)))})},"readDocuments",0,l,"replaceDocuments",0,function(e){return s(async()=>{let t=new Date().toISOString();await d(e.map(e=>({...e,status:"unindexed",createdAt:e.createdAt||t})))})},"updateDocument",0,function(e,t){return s(async()=>{let r=await l(),a=r.findIndex(t=>t.id===e);if(a<0)return;let n=r[a],i=void 0!==t.content?t.content.trim():n.content,s={...n,title:void 0!==t.title?t.title.trim()||"Untitled":n.title,content:i,charCount:i.length,url:void 0!==t.url?t.url||void 0:n.url,metadata:void 0!==t.metadata?t.metadata:n.metadata,status:"unindexed"};return r[a]=s,await d(r),s})},"updateDocumentsStatus",0,function(e,t){return s(async()=>{let r=await l(),a=new Set(e),n=!1;for(let e of r)a.has(e.id)&&(e.status=t,n=!0);n&&await d(r)})}])},399828,e=>{"use strict";let t={"openai/text-embedding-3-small":{dimensions:1536,maxInputTokens:8191},"openai/text-embedding-3-large":{dimensions:3072,maxInputTokens:8191},"openai/text-embedding-ada-002":{dimensions:1536,maxInputTokens:8191},"google/gemini-embedding-2":{dimensions:768,maxInputTokens:2048},"google/gemini-embedding-001":{dimensions:768,maxInputTokens:2048},"cohere/embed-english-v3.0":{dimensions:1024,maxInputTokens:512},"cohere/embed-multilingual-v3.0":{dimensions:1024,maxInputTokens:512},"voyage/voyage-3":{dimensions:1024,maxInputTokens:32e3},"voyage/voyage-3-lite":{dimensions:512,maxInputTokens:32e3},"voyage/voyage-code-3":{dimensions:1024,maxInputTokens:32e3},"mistral/mistral-embed":{dimensions:1024,maxInputTokens:8192},"jina/jina-embeddings-v3":{dimensions:1024,maxInputTokens:8192},"jina/jina-clip-v2":{dimensions:1024,maxInputTokens:8192},"nomic/nomic-embed-text-v1.5":{dimensions:768,maxInputTokens:8192}},r=[{id:"openai/text-embedding-3-small",label:"text-embedding-3-small",provider:"openai",dimensions:1536,maxInputTokens:8191,description:"Fast, cheap, strong general-purpose default."},{id:"openai/text-embedding-3-large",label:"text-embedding-3-large",provider:"openai",dimensions:3072,maxInputTokens:8191,description:"Highest quality OpenAI embeddings, larger vectors."},{id:"openai/text-embedding-ada-002",label:"text-embedding-ada-002",provider:"openai",dimensions:1536,maxInputTokens:8191,description:"Legacy model — kept for backward compatibility."},{id:"google/gemini-embedding-001",label:"gemini-embedding-001",provider:"google",dimensions:768,maxInputTokens:2048,description:"Gemini embedding 001."},{id:"cohere/embed-english-v3.0",label:"embed-english-v3.0",provider:"cohere",dimensions:1024,maxInputTokens:512,description:"Tuned for retrieval; great for English-heavy corpora."},{id:"cohere/embed-multilingual-v3.0",label:"embed-multilingual-v3.0",provider:"cohere",dimensions:1024,maxInputTokens:512,description:"100+ language multilingual retrieval embeddings."},{id:"voyage/voyage-3",label:"voyage-3",provider:"voyage",dimensions:1024,maxInputTokens:32e3,description:"Voyage's best general-purpose retrieval model."},{id:"voyage/voyage-3-lite",label:"voyage-3-lite",provider:"voyage",dimensions:512,maxInputTokens:32e3,description:"Optimized for latency and cost with strong performance."},{id:"voyage/voyage-code-3",label:"voyage-code-3",provider:"voyage",dimensions:1024,maxInputTokens:32e3,description:"Specialized for code retrieval tasks."},{id:"mistral/mistral-embed",label:"mistral-embed",provider:"mistral",dimensions:1024,maxInputTokens:8192,description:"Mistral's efficient embedding model for retrieval."},{id:"jina/jina-embeddings-v3",label:"jina-embeddings-v3",provider:"jina",dimensions:1024,maxInputTokens:8192,description:"Multilingual, task-specific embeddings from Jina AI."},{id:"jina/jina-clip-v2",label:"jina-clip-v2",provider:"jina",dimensions:1024,maxInputTokens:8192,description:"Multimodal embeddings for text and images."},{id:"nomic/nomic-embed-text-v1.5",label:"nomic-embed-text-v1.5",provider:"nomic",dimensions:768,maxInputTokens:8192,description:"Open-source, highly capable text embeddings."}];e.s(["EMBEDDING_DIMENSIONS",0,t,"EMBEDDING_MODELS",0,r,"getEmbeddingModel",0,function(e){return r.find(t=>t.id===e)},"getEmbeddingModelsForProvider",0,function(e,t){return"vercel_ai_gateway"===t?e:e.filter(e=>e.provider?.toLowerCase()===t.toLowerCase())},"toEmbeddingDescriptor",0,function(e){let r=t[e.id],a=e.id.split("/")[0]||e.owned_by;return{id:e.id,label:e.name||e.id.split("/").slice(1).join("/"),provider:a,dimensions:r?.dimensions??e.context_window??768,maxInputTokens:r?.maxInputTokens??e.max_tokens??2048,description:e.description||""}}])},979598,e=>{"use strict";let t={lancedb:{id:"lancedb",label:"LanceDB",description:"Embedded vector database for local development, LanceDB Cloud, or persistent S3-compatible storage such as Cloudflare R2.",runtime:"both",installStatus:"installed",docsUrl:"https://lancedb.github.io/lancedb/",serverDependencies:{"@lancedb/lancedb":"^0.30.0"},fields:[{key:"mode",label:"Mode",type:"select",required:!0,defaultValue:"local",help:"Use a local disk, LanceDB Cloud, or an S3-compatible bucket for persistent serverless deployments.",options:[{label:"Local (on-disk)",value:"local"},{label:"S3-compatible (Vercel / R2 / S3)",value:"s3"},{label:"Cloud",value:"cloud"}]},{key:"dbPath",label:"Database path",type:"path",required:!0,defaultValue:"./.larkup/lancedb",placeholder:"./.larkup/lancedb",help:"Directory where the LanceDB tables are stored.",showWhen:{key:"mode",equals:["local"]}},{key:"s3Uri",label:"Database URI",type:"text",required:!0,placeholder:"s3://my-bucket/larkup/my-server",help:"A dedicated, private bucket prefix for LanceDB table files. This is persistent across Vercel invocations.",showWhen:{key:"mode",equals:["s3"]}},{key:"s3Endpoint",label:"S3 endpoint",type:"text",required:!1,placeholder:"https://<account-id>.r2.cloudflarestorage.com",help:"Required for Cloudflare R2 and other S3-compatible providers. Leave blank for AWS S3.",showWhen:{key:"mode",equals:["s3"]}},{key:"s3Region",label:"Region",type:"text",required:!0,defaultValue:"auto",placeholder:"auto",help:"Use “auto” for Cloudflare R2, or your bucket region for AWS S3.",showWhen:{key:"mode",equals:["s3"]}},{key:"s3AccessKeyId",label:"Access key ID",type:"password",required:!0,secret:!0,help:"Use an object read/write credential restricted to this bucket.",showWhen:{key:"mode",equals:["s3"]}},{key:"s3SecretAccessKey",label:"Secret access key",type:"password",required:!0,secret:!0,help:"Stored as a deployment environment variable; never expose it in the browser.",showWhen:{key:"mode",equals:["s3"]}},{key:"uri",label:"Cloud URI",type:"text",required:!0,placeholder:"db://my-database",help:"Your LanceDB Cloud database URI.",showWhen:{key:"mode",equals:["cloud"]}},{key:"apiKey",label:"API key",type:"password",required:!0,secret:!0,placeholder:"sk_...",help:"LanceDB Cloud API key. Stored as an env var in the generated server.",showWhen:{key:"mode",equals:["cloud"]}},{key:"tableName",label:"Table name",type:"text",required:!0,defaultValue:"documents",help:"The table that holds your embedded chunks."}]},pinecone:{id:"pinecone",label:"Pinecone",description:"Fully-managed cloud vector database. Cloud-only — requires an API key and an existing index.",runtime:"cloud",installStatus:"installed",docsUrl:"https://docs.pinecone.io/",serverDependencies:{"@pinecone-database/pinecone":"^6.0.0"},fields:[{key:"apiKey",label:"API key",type:"password",required:!0,secret:!0,placeholder:"pcsk_...",help:"Pinecone API key. Stored as an env var in the generated server."},{key:"indexName",label:"Index name",type:"text",required:!0,placeholder:"rag-index",help:"Name of the Pinecone index to upsert into / query. For hybrid/lexical mode this index must use the 'dotproduct' metric."},{key:"namespace",label:"Namespace",type:"text",required:!1,placeholder:"default",help:"Optional namespace to isolate this dataset within the index."},{key:"sparseModel",label:"Sparse model",type:"text",required:!0,defaultValue:"pinecone-sparse-english-v0",help:"Pinecone-hosted sparse model used to generate keyword vectors via the Inference API. Both dense and sparse vectors are stored in the same index.",showWhenIndexType:["lexical","hybrid"]}]},weaviate:{id:"weaviate",label:"Weaviate",description:"Open-source AI-native vector database with built-in hybrid search, BM25, and multi-tenancy.",runtime:"both",installStatus:"coming-soon",docsUrl:"https://weaviate.io/developers/weaviate",serverDependencies:{weaviate:"^3.0.0"},fields:[{key:"host",label:"Host URL",type:"text",required:!0,placeholder:"https://my-cluster.weaviate.network",help:"Weaviate Cloud URL or self-hosted host address."},{key:"apiKey",label:"API key",type:"password",required:!1,secret:!0,placeholder:"weaviate-api-key",help:"Weaviate Cloud API key (optional for self-hosted)."},{key:"className",label:"Collection name",type:"text",required:!0,defaultValue:"Documents",help:"The Weaviate collection (class) that holds your embedded chunks."}]},qdrant:{id:"qdrant",label:"Qdrant",description:"High-performance vector search engine with rich filtering, built for production-scale RAG.",runtime:"both",installStatus:"coming-soon",docsUrl:"https://qdrant.tech/documentation/",serverDependencies:{"@qdrant/js-client-rest":"^1.9.0"},fields:[{key:"url",label:"Host URL",type:"text",required:!0,placeholder:"http://localhost:6333",help:"Qdrant server URL (local or Qdrant Cloud endpoint)."},{key:"apiKey",label:"API key",type:"password",required:!1,secret:!0,placeholder:"qdrant-api-key",help:"Qdrant Cloud API key (leave blank for local)."},{key:"collectionName",label:"Collection name",type:"text",required:!0,defaultValue:"documents",help:"Qdrant collection to upsert into and query."}]},chroma:{id:"chroma",label:"Chroma",description:"Open-source, developer-friendly embedding database. Great for rapid local prototyping.",runtime:"both",installStatus:"installable",docsUrl:"https://docs.trychroma.com/",serverDependencies:{chromadb:"^1.9.0"},fields:[{key:"mode",label:"Mode",type:"select",required:!0,defaultValue:"server",help:"Server connects to a self-hosted Chroma instance. Cloud connects to Chroma Cloud.",options:[{label:"Server (Self-hosted)",value:"server"},{label:"Cloud (Chroma Cloud)",value:"cloud"}]},{key:"host",label:"Server URL",type:"text",required:!0,placeholder:"http://localhost:8000",defaultValue:"http://localhost:8000",help:"Chroma server URL (local Docker or remote).",showWhen:{key:"mode",equals:["server"]}},{key:"authToken",label:"Auth Token",type:"password",required:!1,secret:!0,placeholder:"chroma-token",help:"Optional static auth token for Chroma server.",showWhen:{key:"mode",equals:["server"]}},{key:"apiKey",label:"API Key",type:"password",required:!0,secret:!0,placeholder:"sk_...",help:"Chroma Cloud API Key.",showWhen:{key:"mode",equals:["cloud"]}},{key:"tenant",label:"Tenant",type:"text",required:!0,defaultValue:"default_tenant",help:"Tenant name for Chroma Cloud.",showWhen:{key:"mode",equals:["cloud"]}},{key:"database",label:"Database",type:"text",required:!0,defaultValue:"default_database",help:"Database name for Chroma Cloud.",showWhen:{key:"mode",equals:["cloud"]}},{key:"collectionName",label:"Collection name",type:"text",required:!0,defaultValue:"documents",help:"Chroma collection to store and retrieve embeddings."}]},pgvector:{id:"pgvector",label:"pgvector",description:"PostgreSQL extension for vector similarity search. Self-host vectors alongside your relational data.",runtime:"both",installStatus:"coming-soon",docsUrl:"https://github.com/pgvector/pgvector",serverDependencies:{pg:"^8.11.0",pgvector:"^0.2.0"},fields:[{key:"connectionString",label:"Connection string",type:"password",required:!0,secret:!0,placeholder:"postgresql://user:pass@localhost:5432/db",help:"Full PostgreSQL connection string."},{key:"tableName",label:"Table name",type:"text",required:!0,defaultValue:"embeddings",help:"The table used to store vector embeddings. Created automatically if absent."}]},supabase:{id:"supabase",label:"Supabase",description:"Postgres-backed vector store via the pgvector extension with Supabase's managed infrastructure.",runtime:"cloud",installStatus:"coming-soon",docsUrl:"https://supabase.com/docs/guides/ai",serverDependencies:{"@supabase/supabase-js":"^2.43.0"},fields:[{key:"url",label:"Project URL",type:"text",required:!0,placeholder:"https://xyz.supabase.co",help:"Your Supabase project URL."},{key:"serviceKey",label:"Service role key",type:"password",required:!0,secret:!0,placeholder:"eyJhbGci...",help:"Supabase service_role key (not the anon key). Stored as an env var."},{key:"tableName",label:"Table name",type:"text",required:!0,defaultValue:"documents",help:"Supabase table with a vector column for embeddings."}]}};Object.values(t),e.s(["getVectorStore",0,function(e){return t[e]},"validateStoreConfig",0,function(e,t,r){let a={};for(let n of e.fields.filter(e=>{if(e.showWhen){let r=t[e.showWhen.key]??"";if(!e.showWhen.equals.includes(r))return!1}return!e.showWhenIndexType||!r||!!e.showWhenIndexType.includes(r)}))n.required&&!t[n.key]?.trim()&&(a[n.key]=`${n.label} is required`);return a}])},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},688947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},983131,778923,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(660526),n=e.i(666680);let i="larkup-sandbox:latest",s="/sandbox/output",o=r.default.join({get url(){return`file://${e.P("packages/sandbox/dist/docker-runner.js")}`}}.dirname??"/ROOT/packages/sandbox/dist",".."),l=null;async function d(){if(!l){let{default:e}=await import("dockerode");l=new e}return l}async function c(){let e=await d();try{let t=await e.version(),r=await e.listImages({filters:{reference:[i]}});return{status:r.length>0?"ready":"image-not-found",backend:"docker",dockerVersion:t.Version,imageReady:r.length>0}}catch(e){return{status:"docker-not-found",backend:"docker",error:e.message??"Docker daemon not available"}}}async function u(e){let a=await d(),n=r.default.join(o,"Dockerfile");try{await t.promises.access(n)}catch{throw Error(`Sandbox Dockerfile not found at ${n}. Ensure the @larkup/sandbox package is properly installed.`)}e?.("Building sandbox image…");let s=await a.buildImage({context:o,src:["Dockerfile"]},{t:i});await new Promise((t,r)=>{a.modem.followProgress(s,e=>{e?r(e):t()},t=>{t.stream&&e?.(t.stream.trim())})}),e?.("Sandbox image built successfully ✓")}async function p(){let e=await d();if((await e.listImages({filters:{reference:[i]}})).length>0)return!0;try{return await u(),!0}catch{return!1}}async function m(e,i){let o,l,c=await d(),u=Date.now(),p=r.default.join(a.default.tmpdir(),`larkup-sandbox-${(0,n.randomUUID)()}`),m=r.default.join(p,"input"),g=r.default.join(p,"output");if(await t.promises.mkdir(m,{recursive:!0}),await t.promises.mkdir(g,{recursive:!0}),e.files)for(let a of e.files){let e=r.default.join(m,a.name);a.isBase64?await t.promises.writeFile(e,Buffer.from(a.content,"base64")):await t.promises.writeFile(e,a.content,"utf8")}if("python"===e.language){var h;h=e.code,o=`
2
+ import sys, os, json, traceback
3
+
4
+ # Ensure output directory exists
5
+ os.makedirs("${s}", exist_ok=True)
6
+
7
+ # ============================================================
8
+ # SAFETY PREAMBLE: Suppress warnings & patch deprecated APIs
9
+ # ============================================================
10
+ import warnings
11
+ warnings.filterwarnings('ignore', category=FutureWarning)
12
+ warnings.filterwarnings('ignore', category=DeprecationWarning)
13
+ warnings.filterwarnings('ignore', category=UserWarning)
14
+
15
+ # Auto-import common data analysis modules
16
+ import numpy as np
17
+
18
+ try:
19
+ import pandas as pd
20
+
21
+ # --- Patch 1: DataFrame.append() was removed in pandas 2.0 ---
22
+ if not hasattr(pd.DataFrame, 'append'):
23
+ def _df_append(self, other, ignore_index=False, verify_integrity=False, sort=False, **kwargs):
24
+ """Backwards-compatible append using pd.concat."""
25
+ if isinstance(other, (list, tuple)):
26
+ to_concat = [self] + list(other)
27
+ elif isinstance(other, dict):
28
+ to_concat = [self, pd.DataFrame([other])]
29
+ else:
30
+ to_concat = [self, other]
31
+ return pd.concat(to_concat, ignore_index=ignore_index, verify_integrity=verify_integrity, sort=sort)
32
+ pd.DataFrame.append = _df_append
33
+
34
+ # --- Patch 2: Series.append() was removed in pandas 2.0 ---
35
+ if not hasattr(pd.Series, 'append'):
36
+ def _series_append(self, to_append, ignore_index=False, verify_integrity=False):
37
+ """Backwards-compatible Series.append using pd.concat."""
38
+ if isinstance(to_append, (list, tuple)):
39
+ to_concat = [self] + list(to_append)
40
+ else:
41
+ to_concat = [self, to_append]
42
+ return pd.concat(to_concat, ignore_index=ignore_index, verify_integrity=verify_integrity)
43
+ pd.Series.append = _series_append
44
+
45
+ # --- Patch 3: Fix deprecated resample frequency aliases ---
46
+ # "M" -> "ME", "Q" -> "QE", "Y" -> "YE", "H" -> "h", "T" -> "min", "S" -> "s"
47
+ _original_resample = pd.DataFrame.resample
48
+ _FREQ_ALIAS_MAP = {
49
+ 'M': 'ME', 'Q': 'QE', 'Y': 'YE', 'A': 'YE',
50
+ 'BM': 'BME', 'BQ': 'BQE', 'BA': 'BYE', 'BY': 'BYE',
51
+ 'BMS': 'BMS', 'QS': 'QS', 'AS': 'YS', 'BAS': 'BYS',
52
+ 'H': 'h', 'T': 'min', 'S': 's', 'L': 'ms', 'U': 'us', 'N': 'ns',
53
+ }
54
+ def _patched_resample(self, rule, *args, **kwargs):
55
+ if isinstance(rule, str) and rule in _FREQ_ALIAS_MAP:
56
+ rule = _FREQ_ALIAS_MAP[rule]
57
+ return _original_resample(self, rule, *args, **kwargs)
58
+ pd.DataFrame.resample = _patched_resample
59
+
60
+ # Also patch Series.resample
61
+ _original_series_resample = pd.Series.resample
62
+ def _patched_series_resample(self, rule, *args, **kwargs):
63
+ if isinstance(rule, str) and rule in _FREQ_ALIAS_MAP:
64
+ rule = _FREQ_ALIAS_MAP[rule]
65
+ return _original_series_resample(self, rule, *args, **kwargs)
66
+ pd.Series.resample = _patched_series_resample
67
+
68
+ # --- Patch 4: Fix pd.Grouper freq aliases ---
69
+ _original_grouper = pd.Grouper
70
+ class _PatchedGrouper(_original_grouper):
71
+ def __init__(self, *args, **kwargs):
72
+ if 'freq' in kwargs and isinstance(kwargs['freq'], str):
73
+ kwargs['freq'] = _FREQ_ALIAS_MAP.get(kwargs['freq'], kwargs['freq'])
74
+ super().__init__(*args, **kwargs)
75
+ pd.Grouper = _PatchedGrouper
76
+
77
+ except ImportError:
78
+ pass
79
+
80
+ # ============================================================
81
+ # Patch matplotlib to auto-save figures
82
+ # ============================================================
83
+ _figure_count = [0]
84
+ try:
85
+ import matplotlib
86
+ matplotlib.use("Agg")
87
+ import matplotlib.pyplot as plt
88
+
89
+ _original_show = plt.show
90
+ def _patched_show(*args, **kwargs):
91
+ for fig_num in plt.get_fignums():
92
+ fig = plt.figure(fig_num)
93
+ fname = f"${s}/chart_{_figure_count[0]}.png"
94
+ fig.savefig(fname, dpi=150, bbox_inches="tight", facecolor="white")
95
+ _figure_count[0] += 1
96
+ plt.close("all")
97
+ plt.show = _patched_show
98
+ except ImportError:
99
+ pass
100
+
101
+ # ============================================================
102
+ # Execute user code with robust error handling
103
+ # ============================================================
104
+ try:
105
+ exec(${JSON.stringify(h)})
106
+
107
+ # Auto-save any remaining matplotlib figures
108
+ try:
109
+ import matplotlib.pyplot as plt
110
+ if plt.get_fignums():
111
+ plt.show()
112
+ except (ImportError, Exception):
113
+ pass
114
+ except SystemExit as e:
115
+ # Let explicit sys.exit() calls through
116
+ if e.code != 0:
117
+ sys.exit(e.code)
118
+ except Exception as e:
119
+ # Print a clean, user-readable error instead of raw traceback
120
+ error_type = type(e).__name__
121
+ error_msg = str(e)
122
+ print(f"Error ({error_type}): {error_msg}", file=sys.stderr)
123
+ # Also print the relevant part of the traceback for debugging
124
+ tb = traceback.extract_tb(sys.exc_info()[2])
125
+ # Filter to only show the exec'd code frames (skip wrapper frames)
126
+ user_frames = [f for f in tb if f.filename == '<string>']
127
+ if user_frames:
128
+ last = user_frames[-1]
129
+ print(f" at line {last.lineno}: {last.line}", file=sys.stderr)
130
+ sys.exit(1)
131
+
132
+ # List generated artifacts
133
+ artifacts = []
134
+ if os.path.isdir("${s}"):
135
+ for f in sorted(os.listdir("${s}")):
136
+ fp = os.path.join("${s}", f)
137
+ if os.path.isfile(fp):
138
+ artifacts.append(f)
139
+ if artifacts:
140
+ print("\\n__ARTIFACTS__:" + json.dumps(artifacts))
141
+ `;let a=r.default.join(p,"run.py");await t.promises.writeFile(a,o,"utf8"),l=["python3","/sandbox/run.py"]}else{let a=r.default.join(p,"run.js");await t.promises.writeFile(a,e.code,"utf8"),l=["node","/sandbox/run.js"]}let f=e.timeout??i.timeoutMs,y=null;try{y=await c.createContainer({Image:i.imageName,Cmd:l,Entrypoint:[],WorkingDir:"/sandbox/input",HostConfig:{AutoRemove:!1,Memory:1024*i.memoryMB*1024,CpuShares:i.cpuShares,NetworkMode:i.networkDisabled?"none":"bridge",Binds:[`${m}:/sandbox/input:ro`,`${g}:${s}:rw`,`${p}/run.py:/sandbox/run.py:ro`],ReadonlyRootfs:!1},Tty:!1,AttachStdout:!0,AttachStderr:!0}),await y.start();let e=y.wait(),a=new Promise((e,t)=>{setTimeout(async()=>{try{await y?.kill()}catch{}t(Error(`Execution timed out after ${f}ms`))},f)}),n=await Promise.race([e,a]),o=await y.logs({stdout:!0,stderr:!0,follow:!1}),d=function(e){let t="",r="";if("string"==typeof e)return{stdout:e,stderr:""};let a=0;for(;a<e.length&&!(a+8>e.length);){let n=e.readUInt8(a),i=e.readUInt32BE(a+4);if((a+=8)+i>e.length)break;let s=e.subarray(a,a+i).toString("utf8");1===n?t+=s:2===n&&(r+=s),a+=i}return t||r||!(e.length>0)||(t=e.toString("utf8")),{stdout:t,stderr:r}}(o),h=[];try{for(let e of(await t.promises.readdir(g))){let a=r.default.join(g,e),n=await t.promises.readFile(a),i={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".svg":"image/svg+xml",".gif":"image/gif",".csv":"text/csv",".json":"application/json",".txt":"text/plain",".html":"text/html",".pdf":"application/pdf"}[r.default.extname(e).toLowerCase()]??"application/octet-stream";h.push({name:e,mimeType:i,data:n.toString("base64")})}}catch{}let{stdout:b,stderr:v}=d;return{stdout:b.replace(/\n__ARTIFACTS__:.*$/m,"").trimEnd(),stderr:v,exitCode:n.StatusCode??1,artifacts:h,executionTimeMs:Date.now()-u}}catch(e){return{stdout:"",stderr:e.message??"Execution failed",exitCode:1,artifacts:[],executionTimeMs:Date.now()-u}}finally{if(y)try{await y.remove({force:!0})}catch{}try{await t.promises.rm(p,{recursive:!0,force:!0})}catch{}}}let g={imageName:"larkup-sandbox:latest",memoryMB:512,cpuShares:1024,timeoutMs:3e4,networkDisabled:!0};e.s(["SandboxManager",0,class{config;constructor(e){this.config={backend:e?.backend??"docker",docker:e?.docker,remote:e?.remote}}async healthCheck(){switch(this.config.backend){case"docker":return c();case"e2b":case"modal":case"custom":return{status:"error",backend:this.config.backend,error:`${this.config.backend} backend is not yet implemented. Use Docker for local execution.`};default:return{status:"error",backend:this.config.backend,error:`Unknown backend: ${this.config.backend}`}}}async setup(e){if("docker"===this.config.backend)await u(e);else throw Error(`Setup not supported for backend: ${this.config.backend}`)}async execute(e){switch(this.config.backend){case"docker":if(!await p())return{stdout:"",stderr:"Sandbox image not available. Run setup first or ensure Docker is installed.",exitCode:1,artifacts:[],executionTimeMs:0};return m(e,{...g,...this.config.docker});case"e2b":case"modal":case"custom":return{stdout:"",stderr:`${this.config.backend} backend is not yet implemented.`,exitCode:1,artifacts:[],executionTimeMs:0};default:return{stdout:"",stderr:`Unknown backend: ${this.config.backend}`,exitCode:1,artifacts:[],executionTimeMs:0}}}}],778923),e.s([],983131)},839554,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(666680),n=e.i(192441);let i=Promise.resolve();function s(e){let t=i.then(e,e);return i=t.catch(()=>{}),t}async function o(e){let t=e?await (0,n.requireDataDir)():await (0,n.getDataDir)();return t?r.default.join(t,"media-assets.json"):null}async function l(){let e=await o(!1);if(!e)return[];try{let r=await t.promises.readFile(e,"utf8"),a=JSON.parse(r);if(!Array.isArray(a))throw Error(`Invalid media asset store at ${e}: expected a JSON array.`);return a}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let n=await o(!0);if(!n)return;let i=r.default.join(r.default.dirname(n),`.${r.default.basename(n)}.${process.pid}.${(0,a.randomUUID)()}.tmp`);try{await t.promises.writeFile(i,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(i,n)}catch(e){throw await t.promises.unlink(i).catch(()=>{}),e}}let c=["download","extract","transcribe","vision","synthesize","index"],u={download:10,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function p(e){return c.map(t=>({stage:t,status:"waiting",updatedAt:e}))}function m(e){return void 0!==e&&Number.isFinite(e)?Math.max(0,e):void 0}function g(e){let t=m(e);return void 0===t?void 0:Math.min(100,t)}function h(e){return Math.floor(m(e.processingRevision)??0)+1}async function f(){let e=await l(),t={image:0,video:0,audio:0},r={pending:0,processing:0,completed:0,failed:0},a=0;for(let n of e)t[n.type]++,r[n.processingStatus]++,a+=n.fileSize;return{total:e.length,byType:t,byStatus:r,totalBytes:a}}async function y(e){return(await l()).find(t=>t.id===e)}e.s(["addMediaAssets",0,function(e){return s(async()=>{let t=await l(),r=new Date().toISOString(),n=e.map(e=>({id:(0,a.randomUUID)(),type:e.type,fileName:e.fileName,mimeType:e.mimeType,storageUri:e.storageUri,thumbnailUri:e.thumbnailUri,originalUrl:e.originalUrl,fileSize:e.fileSize,dimensions:e.dimensions,durationSecs:e.durationSecs,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:r,updatedAt:r}));return t.push(...n),await d(t),n})},"claimMediaAsset",0,function(e){return s(async()=>{let t=await l(),r=t.findIndex(t=>t.id===e);if(r<0||"processing"===t[r].processingStatus||"Queued for background processing..."===t[r].processingMessage)return;let a=new Date().toISOString();return t[r]={...t[r],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:1,processingSteps:p(a),processingRevision:h(t[r]),processingHeartbeatAt:a,updatedAt:a},await d(t),t[r]})},"deleteMediaAsset",0,function(e){return s(async()=>{let t=await l();await d(t.filter(t=>t.id!==e))})},"deleteMediaAssets",0,function(e){return s(async()=>{let t=await l(),r=new Set(e);await d(t.filter(e=>!r.has(e.id)))})},"getMediaAsset",0,y,"mediaStats",0,f,"readMediaAssets",0,l,"recoverStaleMediaAssets",0,function(e=3e5){return s(async()=>{let t=await l(),r=Date.now()-e,a="The background worker stopped. Retry to resume media processing.",n=0;for(let e=0;e<t.length;e++){let i=t[e],s="processing"===i.processingStatus,o="pending"===i.processingStatus&&"Queued for background processing..."===i.processingMessage,l=i.processingHeartbeatAt??i.updatedAt;if((s||o)&&new Date(l).getTime()<r){let r=new Date().toISOString(),s=i.processingSteps?.map(e=>"running"===e.status?{...e,status:"failed",message:a,updatedAt:r,finishedAt:r}:e);t[e]={...i,processingStatus:"failed",processingError:a,processingMessage:void 0,processingProgress:void 0,processingSteps:s,processingRevision:h(i),processingHeartbeatAt:r,updatedAt:r},n++}}return n>0&&await d(t),n})},"updateMediaAsset",0,function(e,t){return s(async()=>{let r=await l(),a=r.findIndex(t=>t.id===e);if(a<0)return;let n=r[a];return r[a]={...n,...t,documentIds:t.documentIds??n.documentIds,pendingDocumentIds:t.pendingDocumentIds??n.pendingDocumentIds,supersededDocumentIds:t.supersededDocumentIds??n.supersededDocumentIds,updatedAt:new Date().toISOString()},await d(r),r[a]})},"updateMediaStage",0,function(e,t,r){return s(async()=>{let a,n,i=await l(),s=i.findIndex(t=>t.id===e);if(s<0)return;let o=new Date().toISOString(),c=i[s],f=new Map((c.processingSteps??[]).map(e=>[e.stage,e])),y=p(o).map(e=>f.get(e.stage)??e),b=y.findIndex(e=>e.stage===t),v=y[b],w=new Set(["completed","skipped","failed"]),k=r.status??v.status,x=w.has(v.status)||"running"===v.status&&"waiting"===k?v.status:k,_=g(v.percent),S=g(r.percent),M=void 0===S?_:Math.max(_??0,S),I=m(v.current),D=m(r.current),A=void 0===D?I:Math.max(I??0,D),C=void 0===r.total?m(v.total):m(r.total);void 0!==A&&void 0!==C&&(C=Math.max(C,A))>0&&(M=Math.max(M??0,Math.min(100,A/C*100))),"completed"===x&&(M=100,void 0!==C&&(A=C));let T=w.has(x),$={...v,...r,stage:t,status:x,percent:M,current:A,total:C,startedAt:r.startedAt??v.startedAt??("running"===x||T?o:void 0),updatedAt:o,finishedAt:T?r.finishedAt??v.finishedAt??o:void 0};y[b]=$;let N=Math.max(g(c.processingProgress)??0,0===(n=(a=y.filter(e=>"skipped"!==e.status)).reduce((e,t)=>e+u[t.stage],0))?100:Math.round(a.reduce((e,t)=>e+u[t.stage]*function(e){if("completed"===e.status)return 100;if("waiting"===e.status||"skipped"===e.status)return 0;let t=g(e.percent);return void 0!==t?t:void 0!==e.current&&void 0!==e.total&&Number.isFinite(e.current)&&Number.isFinite(e.total)&&e.total>0?Math.min(100,Math.max(0,e.current/e.total*100)):0}(t)/100,0)/n*100)),q=[...y].reverse().find(e=>"running"===e.status&&e.message)?.message,j="running"===$.status?$.message??r.message??c.processingMessage:q??r.message??$.message??c.processingMessage;return i[s]={...c,processingSteps:y,processingProgress:N,processingMessage:j,processingRevision:h(c),processingHeartbeatAt:o,updatedAt:o},await d(i),i[s]})}])},857764,(e,t,r)=>{t.exports=e.x("node:url",()=>require("node:url"))},504740,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(857764),n=e.i(463857);let i=new Map;async function s(e){if(i.has(e))return i.get(e);let t=await (0,n.getInstalledTool)(e);if(!t)return null;try{let r=await o(t),a=await import(r);return i.set(e,a),a}catch(t){return console.error(`[marketplace] Failed to load tool "${e}":`,t),null}}async function o(e){switch(e.source){case"local":default:return e.packageName;case"registry":case"sandbox":return l(e.resolvedPath)}}async function l(e){let n=r.default.join(e,"package.json"),i=JSON.parse(await t.promises.readFile(n,"utf8")),s="object"==typeof i.exports?i.exports["."]:i.exports,o=("object"==typeof s?s.import??s.default:s)??i.main??"index.js";return(0,a.pathToFileURL)(r.default.resolve(e,o)).href}e.s(["loadTool",0,s,"unloadTool",0,function(e){i.delete(e)}])},608778,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(666680),n=e.i(192441);let i=[/^\d{4}-\d{2}-\d{2}$/,/^\d{2}\/\d{2}\/\d{4}$/,/^\d{2}-\d{2}-\d{4}$/,/^\d{4}\/\d{2}\/\d{2}$/,/^\d{4}-\d{2}-\d{2}T/];function s(e){if(null==e||""===e)return NaN;if(e instanceof Date)return e.getTime();let t=String(e).trim();if(!t)return NaN;let r=Date.parse(t);if(!isNaN(r))return r;let a=t.match(/^(\d{2})\/(\d{2})\/(\d{4})$/);if(a){let e=Date.parse(`${a[3]}-${a[2]}-${a[1]}`);if(!isNaN(e))return e}let n=t.match(/^(\d{2})-(\d{2})-(\d{4})$/);if(n){let e=Date.parse(`${n[3]}-${n[2]}-${n[1]}`);if(!isNaN(e))return e}return NaN}async function o(e){let t=e?await (0,n.requireDataDir)():await (0,n.getDataDir)();return t?r.default.join(t,"tabular-datasets.json"):null}async function l(){let e=await o(!1);if(!e)return[];try{let r=await t.promises.readFile(e,"utf8");return JSON.parse(r)}catch{return[]}}async function d(e){let r=await o(!0);r&&await t.promises.writeFile(r,JSON.stringify(e,null,2),"utf8")}async function c(e,t){if(0===t.length)throw Error("Cannot save an empty dataset");let r=Object.keys(t[0]),n=r.map(e=>{let r=t.map(t=>t[e]),a=function(e){let t=e.filter(e=>null!=e&&""!==e);if(0===t.length)return"mixed";let r=0,a=0,n=0;for(let e of t){let t=String(e).trim();"true"===t||"false"===t?a++:isNaN(Number(t))||""===t?(i.some(e=>e.test(t))||!isNaN(Date.parse(t)))&&n++:r++}let s=.8*t.length;return r>=s?"number":a>=s?"boolean":n>=s?"date":"string"}(r),n=r.filter(e=>null!=e&&""!==e),o=new Set(n.map(String)),l={name:e,type:a,nullCount:r.length-n.length,uniqueCount:o.size,sampleValues:[...o].slice(0,5)};if("number"===a){let e,t,r,a,i,s,o=n.map(Number).filter(e=>!isNaN(e));o.length>0&&(t=(e=[...o].sort((e,t)=>e-t)).length,a=(r=e.reduce((e,t)=>e+t,0))/t,i=t%2==0?(e[t/2-1]+e[t/2])/2:e[Math.floor(t/2)],s=Math.sqrt(e.reduce((e,t)=>e+(t-a)**2,0)/t),l.stats={min:e[0],max:e[t-1],mean:Number(a.toFixed(4)),median:Number(i.toFixed(4)),stddev:Number(s.toFixed(4)),sum:Number(r.toFixed(4))})}if("date"===a){let e=n.map(String),t=e.map(s).filter(e=>!isNaN(e));if(t.length>0){let r=[...t].sort((e,t)=>e-t);l.dateRange={min:e[t.indexOf(r[0])]??new Date(r[0]).toISOString().split("T")[0],max:e[t.indexOf(r[r.length-1])]??new Date(r[r.length-1]).toISOString().split("T")[0],format:function(e){for(let t of e){if(/^\d{4}-\d{2}-\d{2}$/.test(t))break;if(/^\d{4}-\d{2}-\d{2}T/.test(t))return"YYYY-MM-DDTHH:mm:ss";if(/^\d{2}\/\d{2}\/\d{4}$/.test(t))return"DD/MM/YYYY";if(/^\d{2}-\d{2}-\d{4}$/.test(t))return"DD-MM-YYYY";if(/^\d{4}\/\d{2}\/\d{2}$/.test(t))return"YYYY/MM/DD"}return"YYYY-MM-DD"}(e)}}}return l}),o={totalRows:t.length,totalColumns:n.length,numericColumns:n.filter(e=>"number"===e.type).length,categoricalColumns:n.filter(e=>"string"===e.type).length,dateColumns:n.filter(e=>"date"===e.type).length},c={id:(0,a.randomUUID)(),fileName:e,columns:n,rows:t,summary:o,rowCount:t.length,createdAt:new Date().toISOString()},u=await l();return u.push(c),await d(u),c}async function u(){return(await l()).map(({rows:e,...t})=>t)}async function p(e){return(await l()).find(t=>t.id===e)??null}async function m(e){let t=await l();await d(t.filter(t=>t.id!==e))}async function g(e){let t,r=await p(e.datasetId);if(!r)throw Error(`Dataset not found: ${e.datasetId}`);let a=[...r.rows],n=new Map;for(let e of r.columns)n.set(e.name,e.type);if(e.filters&&e.filters.length>0)for(let t of e.filters){let e="date"===n.get(t.column);a=a.filter(r=>{let a=r[t.column];if(e&&["eq","neq","gt","gte","lt","lte"].includes(t.op)){let e=s(a),r=s(t.value);if(isNaN(e)||isNaN(r))return"eq"===t.op?String(a)===String(t.value):"neq"===t.op&&String(a)!==String(t.value);switch(t.op){case"eq":return e===r;case"neq":return e!==r;case"gt":return e>r;case"gte":return e>=r;case"lt":return e<r;case"lte":return e<=r}}switch(t.op){case"eq":return String(a)===String(t.value);case"neq":return String(a)!==String(t.value);case"gt":return Number(a)>Number(t.value);case"gte":return Number(a)>=Number(t.value);case"lt":return Number(a)<Number(t.value);case"lte":return Number(a)<=Number(t.value);case"contains":return String(a).toLowerCase().includes(String(t.value).toLowerCase());case"in":return Array.isArray(t.value)&&t.value.includes(a);default:return!0}})}if(e.groupBy&&e.groupBy.length>0&&e.aggregations){let t=new Map;for(let r of a){let a=e.groupBy.map(e=>String(r[e])).join("|||"),n=t.get(a)??[];n.push(r),t.set(a,n)}let r=[];for(let[a,n]of t.entries()){let t={},i=a.split("|||");for(let r of(e.groupBy.forEach((e,r)=>{t[e]=i[r]}),e.aggregations)){let e=n.map(e=>Number(e[r.column])).filter(e=>!isNaN(e));t[`${r.op}_${r.column}`]=h(r.op,e)}r.push(t)}a=r}if(e.aggregations&&e.aggregations.length>0&&(!e.groupBy||0===e.groupBy.length))for(let r of(t={},e.aggregations)){let e=a.map(e=>Number(e[r.column])).filter(e=>!isNaN(e));t[`${r.op}_${r.column}`]=h(r.op,e)}if(e.columns&&e.columns.length>0&&(a=a.map(t=>{let r={};for(let a of e.columns)a in t&&(r[a]=t[a]);return r})),e.sortBy){let t="desc"===e.sortOrder?-1:1;a.sort((r,a)=>{let n=r[e.sortBy],i=a[e.sortBy];return null==n&&null==i?0:null==n?1:null==i?-1:"number"==typeof n&&"number"==typeof i?(n-i)*t:String(n).localeCompare(String(i))*t})}let i=a.length;return e.limit&&e.limit>0&&(a=a.slice(0,e.limit)),{columns:a.length>0?Object.keys(a[0]):e.columns??r.columns.map(e=>e.name),rows:a,totalRows:i,aggregationResults:t}}function h(e,t){if(0===t.length)return 0;switch(e){case"sum":return Number(t.reduce((e,t)=>e+t,0).toFixed(4));case"avg":return Number((t.reduce((e,t)=>e+t,0)/t.length).toFixed(4));case"count":return t.length;case"min":return Math.min(...t);case"max":return Math.max(...t);case"median":{let e=[...t].sort((e,t)=>e-t),r=e.length;return r%2==0?Number(((e[r/2-1]+e[r/2])/2).toFixed(4)):e[Math.floor(r/2)]}default:return 0}}e.s(["deleteTabularDataset",0,m,"getTabularDataset",0,p,"listTabularDatasets",0,u,"queryTabular",0,g,"saveTabularDataset",0,c])},844915,e=>{"use strict";var t=e.i(891294);async function r(){return t.ALL_MODELS}async function a(e){return(await r()).filter(t=>t.type===e)}async function n(e){let t=await r(),a=e?t.filter(t=>t.type===e):t,n=new Map;for(let e of a)n.set(e.owned_by,(n.get(e.owned_by)??0)+1);return Array.from(n.entries()).map(([e,t])=>({id:e,name:i[e]||e.charAt(0).toUpperCase()+e.slice(1),modelCount:t})).sort((e,t)=>t.modelCount-e.modelCount)}let i={openai:"OpenAI",anthropic:"Anthropic",google:"Google",meta:"Meta",mistral:"Mistral",cohere:"Cohere",deepseek:"DeepSeek",amazon:"Amazon",xai:"xAI",perplexity:"Perplexity",alibaba:"Alibaba",groq:"Groq","together-ai":"Together AI",fireworks:"Fireworks",cerebras:"Cerebras",voyage:"Voyage AI",jina:"Jina AI",nomic:"Nomic",bfl:"Black Forest Labs","arcee-ai":"Arcee AI",luma:"Luma",minimax:"MiniMax",elevenlabs:"ElevenLabs"};e.s(["getAllModels",0,r,"getAllProviders",0,n,"getModelsByType",0,a])},336321,e=>{"use strict";function t(e,t){return"vercel_ai_gateway"===t?e:e.filter(e=>e.provider?.toLowerCase()===t.toLowerCase())}e.s(["getChatModel",0,function(e,t){return e.find(e=>e.id===t)},"getChatModelsForProvider",0,t,"getDefaultChatModel",0,function(e,r){let a=t(e,r),n={openai:"openai/gpt-5",anthropic:"anthropic/claude-3.5-sonnet-latest",google:"google/gemini-2.5-pro",mistral:"mistral/mistral-large-latest",deepseek:"deepseek/deepseek-chat",cohere:"cohere/command-r-plus",meta:"meta/llama-4-maverick",xai:"xai/grok-3-mini",vercel_ai_gateway:"anthropic/claude-3.5-sonnet-latest"}[r];return a.find(e=>e.id===n)??a[0]},"toChatDescriptor",0,function(e){return{id:e.id,name:e.name,provider:e.owned_by,context_window:e.context_window,max_tokens:e.max_tokens,tags:e.tags,description:e.description}}])},675101,e=>{"use strict";var t=e.i(89087),r=e.i(731699),a=e.i(528909),n=e.i(344963),i=e.i(733164),s=e.i(235072),o=e.i(416487),l=e.i(256485),d=e.i(336321);let c={openai:"openai/gpt-4o-mini",anthropic:"anthropic/claude-3-5-sonnet-latest",google:"google/gemini-2.5-flash",cohere:"cohere/command-r-plus",mistral:"mistral/mistral-large-latest",deepseek:"deepseek/deepseek-chat"};e.s(["createChatModel",0,function(e,d,c,u=[]){if(d.startsWith("custom:")){let e=d.slice(7),t=u.find(t=>t.modelName===e);if(!t)throw Error(`Custom chat model "${e}" is not configured.`);return(0,l.createOpenAICompatible)({name:"custom_chat_provider",baseURL:t.baseUrl,apiKey:t.apiKey||c||void 0})(t.modelName)}let p=d.includes("/")?d.split("/").slice(1).join("/"):d;switch(e){case"google":return(0,i.createGoogleGenerativeAI)({apiKey:c})(p);case"cohere":return(0,r.createCohere)({apiKey:c})(p);case"mistral":return(0,s.createMistral)({apiKey:c})(p);case"deepseek":return(0,a.createDeepSeek)({apiKey:c})(p);case"anthropic":return(0,t.createAnthropic)({apiKey:c})(p);case"openai":return(0,o.createOpenAI)({apiKey:c})(p);case"vercel_ai_gateway":return(0,n.createGateway)({apiKey:c})(d);case"custom":throw Error("Choose a configured custom chat model before processing media.");default:throw Error(`Unsupported chat provider "${e}".`)}},"resolveConfiguredChatModel",0,function(e,t=[],r={}){let a=e.chatProvider||e.embeddingProvider||"openai",n=e.chatModelId?.trim();if(!n&&"custom"===a&&e.customChatModels?.[0]&&(n=`custom:${e.customChatModels[0].modelName}`),!n&&t.length>0){let e=r.requiredTag,i=e?t.filter(t=>t.tags?.includes(e)):t,s=i.length>0?i:t;n=(0,d.getDefaultChatModel)(s.map(d.toChatDescriptor),a)?.id}if(!n&&"vercel_ai_gateway"===a)throw Error("No gateway model is available. Choose a chat model before processing media.");return n||=c[a]||c.openai,{provider:a,modelId:n,apiKey:e.chatApiKey||e.embeddingApiKey||void 0}}])},534404,e=>{"use strict";var t=e.i(214312),r=e.i(844915),a=e.i(675101);async function n(e){var t,n,i,c,u,p,m,g,h,f,y;let b=function(e){let t=[],r=[],a=0;for(let n of e){let e=o(n.text,14e3);for(let i=0;i<e.length;i++){let s={...n,text:1===e.length?e[i]:`${e[i]}
142
+ [Continuation ${i+1} of ${e.length} for this timestamp range]`};r.length>0&&a+s.text.length>14e3&&(t.push(r),r=[],a=0),r.push(s),a+=s.text.length}}return r.length>0&&t.push(r),t}(e.segments),v=await (0,r.getModelsByType)("language"),w=(0,a.resolveConfiguredChatModel)(e.config,v),k=(0,a.createChatModel)(w.provider,w.modelId,w.apiKey,e.config.customChatModels),x=[],_=0;for(let r=0;r<b.length;r++){await e.onProgress?.(_,b.length+1,`Reviewing evidence section ${r+1} of ${b.length}...`);let a=(t=e,n=b[r],i=r,c=b.length,`You are carefully watching section ${i+1} of ${c} from a ${t.mediaType} titled "${t.title}".
143
+
144
+ Write compact factual viewing notes that remain useful for later questions. CRITICAL: Every single factual claim, event, score change, or action MUST be prefixed with its exact [HH:MM:SS-HH:MM:SS] timestamp copied strictly from the evidence chunks below. Do not hallucinate timestamps. Preserve exact names, numbers, scores, decisions, winners, results, actions, and timestamps. Connect pronouns and repeated entities when the evidence supports it. Treat later chronological scoreboard/result frames as newer than earlier animation states. For Arabic or other right-to-left text, copy the visible spelling and do not reverse labels. If evidence conflicts or OCR is genuinely ambiguous, record the conflict instead of inventing certainty. Do not add repetitive statements about facts that were not present.
145
+
146
+ Evidence:
147
+ ${n.map(l).join("\n\n")}`),s=await d(k,a,w,e.mediaType);x.push(s),_++,await e.onProgress?.(_,Math.max(_+1,b.length+1),`Reviewed evidence section ${r+1} of ${b.length}.`)}let S=x,M=0;for(;S.join("\n\n").length>32e3;){M++;let t=function(e){let t=[],r=[],a=0;for(let n of e.flatMap(e=>o(e,14e3)))r.length>0&&a+n.length>14e3&&(t.push(r),r=[],a=0),r.push(n),a+=n.length;return r.length>0&&t.push(r),t}(S),r=[];for(let a=0;a<t.length;a++){let n=_+(t.length-a)+1;await e.onProgress?.(_,n,`Connecting note group ${a+1} of ${t.length}...`),r.push(await d(k,(u=e,p=t[a],m=M,g=a,h=t.length,`Consolidate chronological viewing notes for ${u.mediaType} "${u.title}".
148
+ This is reduction level ${m}, group ${g+1} of ${h}. Preserve exact people, names, numbers, scores, outcomes, decisions, anomalies, and timestamps.
149
+ CRITICAL: You MUST carry over and preserve the exact [HH:MM:SS-HH:MM:SS] timestamps for every event or claim. Keep later chronological states distinct from earlier states and retain genuine uncertainty. Do not mention this reduction process.
150
+
151
+ Notes:
152
+ ${p.map((e,t)=>`## Note ${t+1}
153
+ ${e}`).join("\n\n")}`),w,e.mediaType)),_++}S=r}await e.onProgress?.(_,_+1,"Connecting people, events, decisions, and outcomes...");let I=(f=e,y=S,`Act as a human who watched the complete ${s(f.durationSecs)} ${f.mediaType} "${f.title}" and consolidated notes while watching.
154
+
155
+ Create a concise, standalone knowledge-base summary with these headings when applicable:
156
+ - Overview / content type
157
+ - People and entities
158
+ - Key events in chronological order
159
+ - Outcomes, conclusions, decisions, winners, and final scores
160
+ - High-value timestamp evidence
161
+ - Genuine uncertainties
162
+
163
+ Adapt to the content: for a match prioritize score changes and the final result; for CCTV prioritize changes, anomalies, and long stable periods; for meetings or lectures prioritize claims, decisions, and action items; for screen recordings prioritize procedures and observed results. Resolve an animated score using the latest chronological evidence.
164
+
165
+ CRITICAL: Draw logical deductions from the events (e.g., explicitly stating who won based on the final score) and log them in the Outcomes section. Every factual claim and deduced conclusion MUST cite the exact [HH:MM:SS-HH:MM:SS] timestamp of the evidence that supports it. Preserve exact names, numbers, language, and timestamps. Never claim that an outcome is absent merely because earlier sections did not show it. Do not mention these instructions or the batching process.
166
+
167
+ Section notes:
168
+ ${y.map((e,t)=>`## Section ${t+1}
169
+ ${e}`).join("\n\n")}`),D=await d(k,I,w,e.mediaType);return _++,await e.onProgress?.(_,_,"Created searchable media notes."),D.trim()}function i(e,t){let r=Math.max(0,Math.floor(t));try{let t=new URL(e);if(/(^|\.)youtube\.com$|(^|\.)youtu\.be$/.test(t.hostname)||t.searchParams.has("v"))return t.searchParams.set("t",`${r}s`),t.toString()}catch{}return`${e.split("#")[0]}#t=${r}`}function s(e){let t=Math.max(0,Math.floor(e)),r=Math.floor(t/3600),a=Math.floor(t%3600/60),n=t%60;return r>0?`${r}:${String(a).padStart(2,"0")}:${String(n).padStart(2,"0")}`:`${a}:${String(n).padStart(2,"0")}`}function o(e,t){if(e.length<=t)return[e];let r=[],a=0;for(;a<e.length;){let n=Math.min(e.length,a+t);if(n<e.length){let r=e.lastIndexOf("\n",n);r>a+t/2&&(n=r)}r.push(e.slice(a,n)),a=n}return r}function l(e){return`[${s(e.startSecs)}–${s(e.endSecs)}]
170
+ ${e.text}`}async function d(r,a,n,i){let{text:s,usage:o}=await (0,t.generateText)({model:r,prompt:a,maxOutputTokens:1400,temperature:0}),{estimateCost:l,trackUsageEvent:d}=await e.A(313282);return d({type:"media_processing",mediaType:i,modelId:n.modelId,provider:n.provider,promptTokens:o.inputTokens??0,completionTokens:o.outputTokens??0,totalTokens:o.totalTokens??0,estimatedCost:l(n.modelId,o.inputTokens??0,o.outputTokens??0),timestamp:new Date().toISOString()}).catch(e=>console.error("Failed to record media synthesis usage:",e)),s}e.s(["buildMediaDocumentInputs",0,function(e){let t={mediaAssetId:e.assetId,mediaType:e.mediaType,fileName:e.fileName,mimeType:e.mimeType,mediaUrl:e.localUrl,originalUrl:e.originalUrl,durationSecs:e.durationSecs,transcriptSource:e.transcriptSource,transcriptProvider:e.transcriptProvider,transcriptLanguage:e.transcriptLanguage},r=e.originalUrl||e.localUrl,a="video"===e.mediaType?"Video":"Audio";return[{title:e.title,content:[`${a}: ${e.title}`,`Duration: ${s(e.durationSecs)}`,"## Human-style evidence notes",e.summary].join("\n\n"),source:"media",url:r,metadata:{...t,contentKind:`${e.mediaType}-summary`,isMediaSummary:!0,segmentCount:e.segments.length}},...e.segments.map(n=>({title:`${e.title} — ${s(n.startSecs)}`,content:[`${a}: ${e.title}`,`Evidence at ${s(n.startSecs)}–${s(n.endSecs)}`,n.text].join("\n\n"),source:"media",url:i(r,n.startSecs),metadata:{...t,contentKind:"video"===e.mediaType?"multimodal-segment":"audio-transcript-segment",isMediaSummary:!1,sequence:n.sequence,startSecs:n.startSecs,endSecs:n.endSecs,evidenceKinds:[...n.transcript?.trim()?["speech"]:[],...n.visualContext?.trim()?["visual","ocr"]:[]]}}))]},"createFallbackMediaSummary",0,function(e,t,r){return[`Overview: ${"video"===t?"Video":"Audio"} evidence notes for "${e}".`,"Representative timeline evidence:",...[...r.slice(0,2),...r.slice(Math.max(2,Math.floor(r.length/2)-1),Math.floor(r.length/2)+1),...r.slice(-3)].filter((e,t,r)=>r.findIndex(t=>t.sequence===e.sequence)===t).map(l),"The timestamped evidence documents contain the complete timeline."].join("\n\n")},"createMediaKnowledgeSummary",0,n,"formatTime",0,s,"normalizeMediaCitationRange",0,function(e,t,r,a){if("image"===e||void 0===r||!Number.isFinite(r))return{};let n=void 0!==t&&Number.isFinite(t)?Math.max(0,t):1/0,i=Math.min(Math.max(0,r),n),s=void 0!==a&&Number.isFinite(a)?Math.min(Math.max(i,a),n):void 0;return{startSecs:i,endSecs:s}},"queryAwareExcerpt",0,function(e,t,r,a=!1){if(e.length<=r)return e;let n=t.normalize("NFKC").toLocaleLowerCase().match(/[\p{Letter}\p{Number}][\p{Letter}\p{Mark}\p{Number}_-]{2,}/gu)??[],i=e.normalize("NFKC").toLocaleLowerCase(),s=[...new Set(n)].map(e=>i.indexOf(e)).filter(e=>e>=0);if(s.length>0){let t=Math.min(...s),a=Math.max(0,Math.min(e.length-r,t-Math.floor(r/3)));return`${a>0?"…":""}${e.slice(a,a+r)}${a+r<e.length?"…":""}`}return a?`…${e.slice(-r)}`:`${e.slice(0,r)}…`},"timestampMediaUrl",0,i])},225970,e=>{e.v(e=>Promise.resolve().then(()=>e(65048)))},953341,e=>{e.v(t=>Promise.all(["server/chunks/15sd_@vercel_oidc_dist_token_10ruti0.js"].map(t=>e.l(t))).then(()=>t(624299)))},77149,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__1ynt2jc._.js"].map(t=>e.l(t))).then(()=>t(292483)))},195059,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__1lhls88._.js"].map(t=>e.l(t))).then(()=>t(148089)))},184904,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__01al2n0._.js"].map(t=>e.l(t))).then(()=>t(46465)))},313282,e=>{e.v(t=>Promise.all(["server/chunks/packages_core_src_analytics-store_ts_06l_t47._.js"].map(t=>e.l(t))).then(()=>t(43697)))},195213,e=>{e.v(e=>Promise.resolve().then(()=>e(568886)))},484620,e=>{e.v(e=>Promise.resolve().then(()=>e(504740)))},627270,e=>{e.v(e=>Promise.resolve().then(()=>e(612069)))},311108,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0n78tj0._.js","server/chunks/0598_next_1f_7r6r._.js"].map(t=>e.l(t))).then(()=>t(104757)))},118890,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__1m18nr1._.js","server/chunks/0598_next_1f_7r6r._.js"].map(t=>e.l(t))).then(()=>t(508582)))},3366,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__18ih29u._.js","server/chunks/0598_next_1f_7r6r._.js"].map(t=>e.l(t))).then(()=>t(835716)))},654210,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0a8dopv._.js","server/chunks/0598_next_1f_7r6r._.js"].map(t=>e.l(t))).then(()=>t(38862)))},187616,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__1gte051._.js","server/chunks/0598_next_1f_7r6r._.js"].map(t=>e.l(t))).then(()=>t(129921)))},465615,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__1vsvck0._.js","server/chunks/0598_next_1f_7r6r._.js"].map(t=>e.l(t))).then(()=>t(426237)))}];
171
+
172
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1idgvjh._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[367165,e=>{"use strict";var t=e.i(902157),r=e.i(750227),o=e.i(638725),n=e.i(192441);async function a(){let e=await (0,n.getDataDir)();if(!e)return o.DEFAULT_CONFIG;try{let n=await t.promises.readFile(r.default.join(e,"config.json"),"utf8"),a=JSON.parse(n),i=a.customEmbeddings,s=a.embeddingModelId;if(a.customEmbedding&&!i?.length){let e=a.customEmbedding;i=[e],"custom"===s&&(s=`custom:${e.modelName}`)}let l={...o.DEFAULT_CONFIG,...a,embeddingModelId:s??o.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:i,chunking:{...o.DEFAULT_CONFIG.chunking,...a.chunking},storeConfig:{...o.DEFAULT_CONFIG.storeConfig,...a.storeConfig}};return delete l.customEmbedding,l}catch{return o.DEFAULT_CONFIG}}async function i(e){let o=await (0,n.requireDataDir)(),a={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(r.default.join(o,"config.json"),JSON.stringify(a,null,2),"utf8"),a}e.s(["readConfig",0,a,"writeConfig",0,i])},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"))},310470,(e,t,r)=>{"use strict";var o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={},l={VercelOidcTokenError:()=>u};for(var c in l)o(s,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of a(t))i.call(e,s)||void 0===s||o(e,s,{get:()=>t[s],enumerable:!(r=n(t,s))||r.enumerable});return e})(o({},"__esModule",{value:!0}),s);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}`}}},33015,(e,t,r)=>{"use strict";var o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={},l={AccessTokenMissingError:()=>u,RefreshAccessTokenFailedError:()=>d};for(var c in l)o(s,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of a(t))i.call(e,s)||void 0===s||o(e,s,{get:()=>t[s],enumerable:!(r=n(t,s))||r.enumerable});return e})(o({},"__esModule",{value:!0}),s);class u extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login)."),this.name="AccessTokenMissingError"}}class d extends Error{constructor(e){super("Failed to refresh authentication token.",{cause:e}),this.name="RefreshAccessTokenFailedError"}}},250216,(e,t,r)=>{"use strict";var o=Object.create,n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=(e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))l.call(e,s)||s===r||n(e,s,{get:()=>t[s],enumerable:!(o=a(t,s))||o.enumerable});return e},u=(e,t,r)=>(r=null!=e?o(s(e)):{},c(!t&&e&&e.__esModule?r:n(r,"default",{value:e,enumerable:!0}),e)),d={},p={findRootDir:()=>v,getUserDataDir:()=>w};for(var f in p)n(d,f,{get:p[f],enumerable:!0});t.exports=c(n({},"__esModule",{value:!0}),d);var h=u(e.r(814747)),m=u(e.r(522734)),g=u(e.r(446786)),y=e.r(310470);function v(){try{let e=process.cwd();for(;e!==h.default.dirname(e);){let t=h.default.join(e,".vercel");if(m.default.existsSync(t))return e;e=h.default.dirname(e)}}catch(e){throw new y.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function w(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(g.default.platform()){case"darwin":return h.default.join(g.default.homedir(),"Library/Application Support");case"linux":return h.default.join(g.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}},775427,(e,t,r)=>{"use strict";var o=Object.create,n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=(e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))l.call(e,s)||s===r||n(e,s,{get:()=>t[s],enumerable:!(o=a(t,s))||o.enumerable});return e},u=(e,t,r)=>(r=null!=e?o(s(e)):{},c(!t&&e&&e.__esModule?r:n(r,"default",{value:e,enumerable:!0}),e)),d={},p={isValidAccessToken:()=>b,readAuthConfig:()=>v,writeAuthConfig:()=>w};for(var f in p)n(d,f,{get:p[f],enumerable:!0});t.exports=c(n({},"__esModule",{value:!0}),d);var h=u(e.r(522734)),m=u(e.r(814747)),g=e.r(65048);function y(){let e=(0,g.getVercelDataDir)();if(!e)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return m.join(e,"auth.json")}function v(){try{let e=y();if(!h.existsSync(e))return null;let t=h.readFileSync(e,"utf8");if(!t)return null;return JSON.parse(t)}catch(e){return null}}function w(e){let t=y(),r=m.dirname(t);h.existsSync(r)||h.mkdirSync(r,{mode:504,recursive:!0}),h.writeFileSync(t,JSON.stringify(e,null,2),{mode:384})}function b(e,t=0){if(!e.token)return!1;if("number"!=typeof e.expiresAt)return!0;let r=Math.floor(Date.now()/1e3);return e.expiresAt>=r+t/1e3}},371746,(e,t,r)=>{"use strict";var o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={},l={processTokenResponse:()=>m,refreshTokenRequest:()=>h};for(var c in l)o(s,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of a(t))i.call(e,s)||void 0===s||o(e,s,{get:()=>t[s],enumerable:!(r=n(t,s))||r.enumerable});return e})(o({},"__esModule",{value:!0}),s);var u=e.r(446786);let d=`@vercel/oidc node-${process.version} ${(0,u.platform)()} (${(0,u.arch)()}) ${(0,u.hostname)()}`,p=null;async function f(){if(p)return p;let e=await fetch("https://vercel.com/.well-known/openid-configuration",{headers:{"user-agent":d}});if(!e.ok)throw Error("Failed to discover OAuth endpoints");let t=await e.json();if(!t||"string"!=typeof t.token_endpoint)throw Error("Invalid OAuth discovery response");let r=t.token_endpoint;return p=r,r}async function h(e){let t=await f();return await fetch(t,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":d},body:new URLSearchParams({client_id:"cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",grant_type:"refresh_token",...e})})}async function m(e){let t=await e.json();return e.ok?"object"!=typeof t||null===t?[Error("Invalid token response")]:"string"!=typeof t.access_token?[Error("Missing access_token in response")]:"Bearer"!==t.token_type?[Error("Invalid token_type in response")]:"number"!=typeof t.expires_in?[Error("Missing expires_in in response")]:[null,t]:[Error("object"==typeof t&&t&&"error"in t?String(t.error):"Token refresh failed")]}},65048,(e,t,r)=>{"use strict";var o=Object.create,n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=(e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))l.call(e,s)||s===r||n(e,s,{get:()=>t[s],enumerable:!(o=a(t,s))||o.enumerable});return e},u=(e,t,r)=>(r=null!=e?o(s(e)):{},c(!t&&e&&e.__esModule?r:n(r,"default",{value:e,enumerable:!0}),e)),d={},p={assertVercelOidcTokenResponse:()=>E,findProjectInfo:()=>_,getTokenPayload:()=>j,getVercelDataDir:()=>k,getVercelOidcToken:()=>A,getVercelToken:()=>O,isExpired:()=>x,loadToken:()=>C,saveToken:()=>T};for(var f in p)n(d,f,{get:p[f],enumerable:!0});t.exports=c(n({},"__esModule",{value:!0}),d);var h=u(e.r(814747)),m=u(e.r(522734)),g=e.r(310470),y=e.r(250216),v=e.r(775427),w=e.r(371746),b=e.r(33015);function k(){let e=(0,y.getUserDataDir)();return e?h.join(e,"com.vercel.cli"):null}async function O(e){let t=(0,v.readAuthConfig)();if(!t?.token)throw new b.AccessTokenMissingError;if((0,v.isValidAccessToken)(t,e?.expirationBufferMs))return t.token;if(!t.refreshToken)throw(0,v.writeAuthConfig)({}),new b.RefreshAccessTokenFailedError("No refresh token available");try{let e=await (0,w.refreshTokenRequest)({refresh_token:t.refreshToken}),[r,o]=await (0,w.processTokenResponse)(e);if(r||!o)throw(0,v.writeAuthConfig)({}),new b.RefreshAccessTokenFailedError(r);let n={token:o.access_token,expiresAt:Math.floor(Date.now()/1e3)+o.expires_in};return o.refresh_token&&(n.refreshToken=o.refresh_token),(0,v.writeAuthConfig)(n),n.token}catch(e){if((0,v.writeAuthConfig)({}),e instanceof b.AccessTokenMissingError||e instanceof b.RefreshAccessTokenFailedError)throw e;throw new b.RefreshAccessTokenFailedError(e)}}async function A(e,t,r){let o=`https://api.vercel.com/v1/projects/${t}/token?source=vercel-oidc-refresh${r?`&teamId=${r}`:""}`,n=await fetch(o,{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!n.ok)throw new g.VercelOidcTokenError(`Failed to refresh OIDC token: ${n.statusText}`);let a=await n.json();return E(a),a}function E(e){if(!e||"object"!=typeof e)throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in e)||"string"!=typeof e.token)throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function _(){let e=(0,y.findRootDir)();if(!e)throw new g.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let t=h.join(e,".vercel","project.json");if(!m.existsSync(t))throw new g.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let r=JSON.parse(m.readFileSync(t,"utf8"));if("string"!=typeof r.projectId&&"string"!=typeof r.orgId)throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:r.projectId,teamId:r.orgId}}function T(e,t){let r=(0,y.getUserDataDir)();if(!r)throw new g.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let o=h.join(r,"com.vercel.token",`${t}.json`),n=JSON.stringify(e);m.mkdirSync(h.dirname(o),{mode:504,recursive:!0}),m.writeFileSync(o,n),m.chmodSync(o,432)}function C(e){let t=(0,y.getUserDataDir)();if(!t)throw new g.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let r=h.join(t,"com.vercel.token",`${e}.json`);if(!m.existsSync(r))return null;let o=JSON.parse(m.readFileSync(r,"utf8"));return E(o),o}function j(e){let t=e.split(".");if(3!==t.length)throw new g.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let r=t[1].replace(/-/g,"+").replace(/_/g,"/"),o=r.padEnd(r.length+(4-r.length%4)%4,"=");return JSON.parse(Buffer.from(o,"base64").toString("utf8"))}function x(e,t=0){return 1e3*e.exp<Date.now()+t}},844915,e=>{"use strict";var t=e.i(891294);async function r(){return t.ALL_MODELS}async function o(e){return(await r()).filter(t=>t.type===e)}async function n(e){let t=await r(),o=e?t.filter(t=>t.type===e):t,n=new Map;for(let e of o)n.set(e.owned_by,(n.get(e.owned_by)??0)+1);return Array.from(n.entries()).map(([e,t])=>({id:e,name:a[e]||e.charAt(0).toUpperCase()+e.slice(1),modelCount:t})).sort((e,t)=>t.modelCount-e.modelCount)}let a={openai:"OpenAI",anthropic:"Anthropic",google:"Google",meta:"Meta",mistral:"Mistral",cohere:"Cohere",deepseek:"DeepSeek",amazon:"Amazon",xai:"xAI",perplexity:"Perplexity",alibaba:"Alibaba",groq:"Groq","together-ai":"Together AI",fireworks:"Fireworks",cerebras:"Cerebras",voyage:"Voyage AI",jina:"Jina AI",nomic:"Nomic",bfl:"Black Forest Labs","arcee-ai":"Arcee AI",luma:"Luma",minimax:"MiniMax",elevenlabs:"ElevenLabs"};e.s(["getAllModels",0,r,"getAllProviders",0,n,"getModelsByType",0,o])},336321,e=>{"use strict";function t(e,t){return"vercel_ai_gateway"===t?e:e.filter(e=>e.provider?.toLowerCase()===t.toLowerCase())}e.s(["getChatModel",0,function(e,t){return e.find(e=>e.id===t)},"getChatModelsForProvider",0,t,"getDefaultChatModel",0,function(e,r){let o=t(e,r),n={openai:"openai/gpt-5",anthropic:"anthropic/claude-3.5-sonnet-latest",google:"google/gemini-2.5-pro",mistral:"mistral/mistral-large-latest",deepseek:"deepseek/deepseek-chat",cohere:"cohere/command-r-plus",meta:"meta/llama-4-maverick",xai:"xai/grok-3-mini",vercel_ai_gateway:"anthropic/claude-3.5-sonnet-latest"}[r];return o.find(e=>e.id===n)??o[0]},"toChatDescriptor",0,function(e){return{id:e.id,name:e.name,provider:e.owned_by,context_window:e.context_window,max_tokens:e.max_tokens,tags:e.tags,description:e.description}}])},675101,e=>{"use strict";var t=e.i(89087),r=e.i(731699),o=e.i(528909),n=e.i(344963),a=e.i(733164),i=e.i(235072),s=e.i(416487),l=e.i(256485),c=e.i(336321);let u={openai:"openai/gpt-4o-mini",anthropic:"anthropic/claude-3-5-sonnet-latest",google:"google/gemini-2.5-flash",cohere:"cohere/command-r-plus",mistral:"mistral/mistral-large-latest",deepseek:"deepseek/deepseek-chat"};e.s(["createChatModel",0,function(e,c,u,d=[]){if(c.startsWith("custom:")){let e=c.slice(7),t=d.find(t=>t.modelName===e);if(!t)throw Error(`Custom chat model "${e}" is not configured.`);return(0,l.createOpenAICompatible)({name:"custom_chat_provider",baseURL:t.baseUrl,apiKey:t.apiKey||u||void 0})(t.modelName)}let p=c.includes("/")?c.split("/").slice(1).join("/"):c;switch(e){case"google":return(0,a.createGoogleGenerativeAI)({apiKey:u})(p);case"cohere":return(0,r.createCohere)({apiKey:u})(p);case"mistral":return(0,i.createMistral)({apiKey:u})(p);case"deepseek":return(0,o.createDeepSeek)({apiKey:u})(p);case"anthropic":return(0,t.createAnthropic)({apiKey:u})(p);case"openai":return(0,s.createOpenAI)({apiKey:u})(p);case"vercel_ai_gateway":return(0,n.createGateway)({apiKey:u})(c);case"custom":throw Error("Choose a configured custom chat model before processing media.");default:throw Error(`Unsupported chat provider "${e}".`)}},"resolveConfiguredChatModel",0,function(e,t=[],r={}){let o=e.chatProvider||e.embeddingProvider||"openai",n=e.chatModelId?.trim();if(!n&&"custom"===o&&e.customChatModels?.[0]&&(n=`custom:${e.customChatModels[0].modelName}`),!n&&t.length>0){let e=r.requiredTag,a=e?t.filter(t=>t.tags?.includes(e)):t,i=a.length>0?a:t;n=(0,c.getDefaultChatModel)(i.map(c.toChatDescriptor),o)?.id}if(!n&&"vercel_ai_gateway"===o)throw Error("No gateway model is available. Choose a chat model before processing media.");return n||=u[o]||u.openai,{provider:o,modelId:n,apiKey:e.chatApiKey||e.embeddingApiKey||void 0}}])},180475,e=>{"use strict";var t=e.i(239441),r=e.i(449055),o=e.i(391328),n=e.i(6352),a=e.i(746789),i=e.i(423437),s=e.i(178820),l=e.i(569191),c=e.i(576251),u=e.i(199962),d=e.i(547545),p=e.i(664046),f=e.i(235691),h=e.i(298907),m=e.i(110763),g=e.i(193695);e.i(673243);var y=e.i(236167),v=e.i(766576),w=e.i(214312),b=e.i(367165),k=e.i(844915),O=e.i(192441),A=e.i(675101);async function E(e){let t=new URL(e.url).searchParams.get("serverId"),r=()=>_(e);return t?(0,O.runWithServer)(t,r):r()}async function _(t){try{let{base64:r,base64Images:o,prompt:n}=await t.json(),a=(o?.length?o:r?[r]:[]).slice(0,6);if(0===a.length)return v.NextResponse.json({error:"Missing image data"},{status:400});let i=await (0,b.readConfig)(),s=await (0,k.getModelsByType)("language"),l=(0,A.resolveConfiguredChatModel)(i,s,{requiredTag:"vision"}),c=(0,A.createChatModel)(l.provider,l.modelId,l.apiKey,i.customChatModels),{text:u,usage:d}=await (0,w.generateText)({model:c,abortSignal:t.signal,messages:[{role:"user",content:[{type:"text",text:n||'Provide a very brief, high-level summary of what this image contains (e.g., "A database ER diagram about films and actors", "A bar chart showing quarterly revenue"). Do NOT extract all text or exhaustively describe relationships. Keep it under 2 sentences.'},...a.map(e=>({type:"image",image:e.startsWith("data:")?e:`data:image/jpeg;base64,${e}`}))]}]}),{estimateCost:p,trackUsageEvent:f}=await e.A(313282);return f({type:"media_processing",mediaType:"image",modelId:l.modelId,provider:l.provider,promptTokens:d.inputTokens??0,completionTokens:d.outputTokens??0,totalTokens:d.totalTokens??0,estimatedCost:p(l.modelId,d.inputTokens??0,d.outputTokens??0),timestamp:new Date().toISOString()}),v.NextResponse.json({description:u})}catch(e){return console.error("Image description failed:",e),v.NextResponse.json({error:e.message},{status:500})}}e.s(["POST",0,E,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],158825);var T=e.i(158825);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/describe-image/route",pathname:"/api/describe-image",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/describe-image/route.ts",nextConfigOutput:"standalone",userland:T,...{}}),{workAsyncStorage:j,workUnitAsyncStorage:x,serverHooks:P}=C;async function R(e,t,o){o.requestMeta&&(0,n.setRequestMeta)(e,o.requestMeta),C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/describe-image/route";v=v.replace(/\/index$/,"")||"/";let w=await C.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==o.waitUntil||o.waitUntil.call(o,Promise.resolve()),null;let{buildId:b,deploymentId:k,params:O,nextConfig:A,parsedUrl:E,isDraftMode:_,prerenderManifest:T,routerServerContext:j,isOnDemandRevalidate:x,revalidateOnlyGenerated:P,resolvedPathname:R,clientReferenceManifest:D,serverActionsManifest:M}=w,I=(0,s.normalizeAppPath)(v),S=!!(T.dynamicRoutes[I]||T.routes[R]),N=async()=>((null==j?void 0:j.render404)?await j.render404(e,t,E,!1):t.end("This page could not be found"),null);if(S&&!_){let e=!!T.routes[R],t=T.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await N();throw new g.NoFallbackError}}let F=null;!S||C.isDev||_||(F="/index"===(F=R)?"/":F);let U=!0===C.isDev||!S,$=S&&!U;M&&D&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:D,serverActionsManifest:M});let L=e.method||"GET",q=(0,a.getTracer)(),V=q.getActiveScopeSpan(),H=!!(null==j?void 0:j.isWrappedByNextServer),G=!!(0,n.getRequestMeta)(e,"minimalMode"),K=(0,n.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,A,T,G);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let B={params:O,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:U,incrementalCache:K,cacheLifeProfiles:A.cacheLife,waitUntil:o.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,o,n)=>C.onRequestError(e,t,o,n,j)},sharedContext:{buildId:b,deploymentId:k}},J=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=c.NextRequestAdapter.fromNodeNextRequest(J,(0,c.signalFromNodeResponse)(t));try{let n,i=async e=>C.handle(z,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.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 o=r.get("next.route");if(o){let t=`${L} ${o}`;e.setAttributes({"next.route":o,"http.route":o,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",o),n.updateName(t))}else e.updateName(`${L} ${v}`)}),s=async n=>{var a,s;let l=async({previousCacheEntry:r})=>{try{if(!G&&x&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=B.renderOpts.fetchMetrics;let s=B.renderOpts.pendingWaitUntil;s&&o.waitUntil&&(o.waitUntil(s),s=void 0);let l=B.renderOpts.collectedTags;if(!S)return await (0,p.sendResponse)(J,W,a,B.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,o=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:o}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,j),t}},c=await C.handleResponse({req:e,nextConfig:A,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:P,responseGenerator:l,waitUntil:o.waitUntil,isMinimalMode:G});if(!S)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(s=c.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});G||t.setHeader("x-nextjs-cache",x?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return G&&S||u.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(J,W,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};H&&V?await s(V):(n=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(u.BaseServerSpan.handleRequest,{spanName:`${L} ${v}`,kind:a.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},s),void 0,!H))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,j),S)throw t;return await (0,p.sendResponse)(J,W,new Response(null,{status:500})),null}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,o.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:x})},"routeModule",0,C,"serverHooks",0,P,"workAsyncStorage",0,j,"workUnitAsyncStorage",0,x],180475)},225970,e=>{e.v(e=>Promise.resolve().then(()=>e(65048)))},953341,e=>{e.v(t=>Promise.all(["server/chunks/15sd_@vercel_oidc_dist_token_10ruti0.js"].map(t=>e.l(t))).then(()=>t(624299)))},313282,e=>{e.v(t=>Promise.all(["server/chunks/packages_core_src_analytics-store_ts_06l_t47._.js"].map(t=>e.l(t))).then(()=>t(43697)))}];
1
+ module.exports=[367165,e=>{"use strict";var t=e.i(902157),r=e.i(750227),o=e.i(638725),n=e.i(192441);async function a(){let e=await (0,n.getDataDir)();if(!e)return o.DEFAULT_CONFIG;try{let n=await t.promises.readFile(r.default.join(e,"config.json"),"utf8"),a=JSON.parse(n),i=a.customEmbeddings,s=a.embeddingModelId;if(a.customEmbedding&&!i?.length){let e=a.customEmbedding;i=[e],"custom"===s&&(s=`custom:${e.modelName}`)}let l={...o.DEFAULT_CONFIG,...a,embeddingModelId:s??o.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:i,chunking:{...o.DEFAULT_CONFIG.chunking,...a.chunking},storeConfig:{...o.DEFAULT_CONFIG.storeConfig,...a.storeConfig}};return delete l.customEmbedding,l}catch{return o.DEFAULT_CONFIG}}async function i(e){let o=await (0,n.requireDataDir)(),a={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(r.default.join(o,"config.json"),JSON.stringify(a,null,2),"utf8"),a}e.s(["readConfig",0,a,"writeConfig",0,i])},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"))},310470,(e,t,r)=>{"use strict";var o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={},l={VercelOidcTokenError:()=>u};for(var c in l)o(s,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of a(t))i.call(e,s)||void 0===s||o(e,s,{get:()=>t[s],enumerable:!(r=n(t,s))||r.enumerable});return e})(o({},"__esModule",{value:!0}),s);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}`}}},33015,(e,t,r)=>{"use strict";var o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={},l={AccessTokenMissingError:()=>u,RefreshAccessTokenFailedError:()=>d};for(var c in l)o(s,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of a(t))i.call(e,s)||void 0===s||o(e,s,{get:()=>t[s],enumerable:!(r=n(t,s))||r.enumerable});return e})(o({},"__esModule",{value:!0}),s);class u extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login)."),this.name="AccessTokenMissingError"}}class d extends Error{constructor(e){super("Failed to refresh authentication token.",{cause:e}),this.name="RefreshAccessTokenFailedError"}}},250216,(e,t,r)=>{"use strict";var o=Object.create,n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=(e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))l.call(e,s)||s===r||n(e,s,{get:()=>t[s],enumerable:!(o=a(t,s))||o.enumerable});return e},u=(e,t,r)=>(r=null!=e?o(s(e)):{},c(!t&&e&&e.__esModule?r:n(r,"default",{value:e,enumerable:!0}),e)),d={},p={findRootDir:()=>v,getUserDataDir:()=>w};for(var f in p)n(d,f,{get:p[f],enumerable:!0});t.exports=c(n({},"__esModule",{value:!0}),d);var h=u(e.r(814747)),m=u(e.r(522734)),g=u(e.r(446786)),y=e.r(310470);function v(){try{let e=process.cwd();for(;e!==h.default.dirname(e);){let t=h.default.join(e,".vercel");if(m.default.existsSync(t))return e;e=h.default.dirname(e)}}catch(e){throw new y.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function w(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(g.default.platform()){case"darwin":return h.default.join(g.default.homedir(),"Library/Application Support");case"linux":return h.default.join(g.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}},775427,(e,t,r)=>{"use strict";var o=Object.create,n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=(e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))l.call(e,s)||s===r||n(e,s,{get:()=>t[s],enumerable:!(o=a(t,s))||o.enumerable});return e},u=(e,t,r)=>(r=null!=e?o(s(e)):{},c(!t&&e&&e.__esModule?r:n(r,"default",{value:e,enumerable:!0}),e)),d={},p={isValidAccessToken:()=>b,readAuthConfig:()=>v,writeAuthConfig:()=>w};for(var f in p)n(d,f,{get:p[f],enumerable:!0});t.exports=c(n({},"__esModule",{value:!0}),d);var h=u(e.r(522734)),m=u(e.r(814747)),g=e.r(65048);function y(){let e=(0,g.getVercelDataDir)();if(!e)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return m.join(e,"auth.json")}function v(){try{let e=y();if(!h.existsSync(e))return null;let t=h.readFileSync(e,"utf8");if(!t)return null;return JSON.parse(t)}catch(e){return null}}function w(e){let t=y(),r=m.dirname(t);h.existsSync(r)||h.mkdirSync(r,{mode:504,recursive:!0}),h.writeFileSync(t,JSON.stringify(e,null,2),{mode:384})}function b(e,t=0){if(!e.token)return!1;if("number"!=typeof e.expiresAt)return!0;let r=Math.floor(Date.now()/1e3);return e.expiresAt>=r+t/1e3}},371746,(e,t,r)=>{"use strict";var o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={},l={processTokenResponse:()=>m,refreshTokenRequest:()=>h};for(var c in l)o(s,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of a(t))i.call(e,s)||void 0===s||o(e,s,{get:()=>t[s],enumerable:!(r=n(t,s))||r.enumerable});return e})(o({},"__esModule",{value:!0}),s);var u=e.r(446786);let d=`@vercel/oidc node-${process.version} ${(0,u.platform)()} (${(0,u.arch)()}) ${(0,u.hostname)()}`,p=null;async function f(){if(p)return p;let e=await fetch("https://vercel.com/.well-known/openid-configuration",{headers:{"user-agent":d}});if(!e.ok)throw Error("Failed to discover OAuth endpoints");let t=await e.json();if(!t||"string"!=typeof t.token_endpoint)throw Error("Invalid OAuth discovery response");let r=t.token_endpoint;return p=r,r}async function h(e){let t=await f();return await fetch(t,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":d},body:new URLSearchParams({client_id:"cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",grant_type:"refresh_token",...e})})}async function m(e){let t=await e.json();return e.ok?"object"!=typeof t||null===t?[Error("Invalid token response")]:"string"!=typeof t.access_token?[Error("Missing access_token in response")]:"Bearer"!==t.token_type?[Error("Invalid token_type in response")]:"number"!=typeof t.expires_in?[Error("Missing expires_in in response")]:[null,t]:[Error("object"==typeof t&&t&&"error"in t?String(t.error):"Token refresh failed")]}},65048,(e,t,r)=>{"use strict";var o=Object.create,n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=(e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))l.call(e,s)||s===r||n(e,s,{get:()=>t[s],enumerable:!(o=a(t,s))||o.enumerable});return e},u=(e,t,r)=>(r=null!=e?o(s(e)):{},c(!t&&e&&e.__esModule?r:n(r,"default",{value:e,enumerable:!0}),e)),d={},p={assertVercelOidcTokenResponse:()=>E,findProjectInfo:()=>_,getTokenPayload:()=>j,getVercelDataDir:()=>k,getVercelOidcToken:()=>A,getVercelToken:()=>O,isExpired:()=>x,loadToken:()=>C,saveToken:()=>T};for(var f in p)n(d,f,{get:p[f],enumerable:!0});t.exports=c(n({},"__esModule",{value:!0}),d);var h=u(e.r(814747)),m=u(e.r(522734)),g=e.r(310470),y=e.r(250216),v=e.r(775427),w=e.r(371746),b=e.r(33015);function k(){let e=(0,y.getUserDataDir)();return e?h.join(e,"com.vercel.cli"):null}async function O(e){let t=(0,v.readAuthConfig)();if(!t?.token)throw new b.AccessTokenMissingError;if((0,v.isValidAccessToken)(t,e?.expirationBufferMs))return t.token;if(!t.refreshToken)throw(0,v.writeAuthConfig)({}),new b.RefreshAccessTokenFailedError("No refresh token available");try{let e=await (0,w.refreshTokenRequest)({refresh_token:t.refreshToken}),[r,o]=await (0,w.processTokenResponse)(e);if(r||!o)throw(0,v.writeAuthConfig)({}),new b.RefreshAccessTokenFailedError(r);let n={token:o.access_token,expiresAt:Math.floor(Date.now()/1e3)+o.expires_in};return o.refresh_token&&(n.refreshToken=o.refresh_token),(0,v.writeAuthConfig)(n),n.token}catch(e){if((0,v.writeAuthConfig)({}),e instanceof b.AccessTokenMissingError||e instanceof b.RefreshAccessTokenFailedError)throw e;throw new b.RefreshAccessTokenFailedError(e)}}async function A(e,t,r){let o=`https://api.vercel.com/v1/projects/${t}/token?source=vercel-oidc-refresh${r?`&teamId=${r}`:""}`,n=await fetch(o,{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!n.ok)throw new g.VercelOidcTokenError(`Failed to refresh OIDC token: ${n.statusText}`);let a=await n.json();return E(a),a}function E(e){if(!e||"object"!=typeof e)throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in e)||"string"!=typeof e.token)throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function _(){let e=(0,y.findRootDir)();if(!e)throw new g.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let t=h.join(e,".vercel","project.json");if(!m.existsSync(t))throw new g.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let r=JSON.parse(m.readFileSync(t,"utf8"));if("string"!=typeof r.projectId&&"string"!=typeof r.orgId)throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:r.projectId,teamId:r.orgId}}function T(e,t){let r=(0,y.getUserDataDir)();if(!r)throw new g.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let o=h.join(r,"com.vercel.token",`${t}.json`),n=JSON.stringify(e);m.mkdirSync(h.dirname(o),{mode:504,recursive:!0}),m.writeFileSync(o,n),m.chmodSync(o,432)}function C(e){let t=(0,y.getUserDataDir)();if(!t)throw new g.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let r=h.join(t,"com.vercel.token",`${e}.json`);if(!m.existsSync(r))return null;let o=JSON.parse(m.readFileSync(r,"utf8"));return E(o),o}function j(e){let t=e.split(".");if(3!==t.length)throw new g.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let r=t[1].replace(/-/g,"+").replace(/_/g,"/"),o=r.padEnd(r.length+(4-r.length%4)%4,"=");return JSON.parse(Buffer.from(o,"base64").toString("utf8"))}function x(e,t=0){return 1e3*e.exp<Date.now()+t}},844915,e=>{"use strict";var t=e.i(891294);async function r(){return t.ALL_MODELS}async function o(e){return(await r()).filter(t=>t.type===e)}async function n(e){let t=await r(),o=e?t.filter(t=>t.type===e):t,n=new Map;for(let e of o)n.set(e.owned_by,(n.get(e.owned_by)??0)+1);return Array.from(n.entries()).map(([e,t])=>({id:e,name:a[e]||e.charAt(0).toUpperCase()+e.slice(1),modelCount:t})).sort((e,t)=>t.modelCount-e.modelCount)}let a={openai:"OpenAI",anthropic:"Anthropic",google:"Google",meta:"Meta",mistral:"Mistral",cohere:"Cohere",deepseek:"DeepSeek",amazon:"Amazon",xai:"xAI",perplexity:"Perplexity",alibaba:"Alibaba",groq:"Groq","together-ai":"Together AI",fireworks:"Fireworks",cerebras:"Cerebras",voyage:"Voyage AI",jina:"Jina AI",nomic:"Nomic",bfl:"Black Forest Labs","arcee-ai":"Arcee AI",luma:"Luma",minimax:"MiniMax",elevenlabs:"ElevenLabs"};e.s(["getAllModels",0,r,"getAllProviders",0,n,"getModelsByType",0,o])},336321,e=>{"use strict";function t(e,t){return"vercel_ai_gateway"===t?e:e.filter(e=>e.provider?.toLowerCase()===t.toLowerCase())}e.s(["getChatModel",0,function(e,t){return e.find(e=>e.id===t)},"getChatModelsForProvider",0,t,"getDefaultChatModel",0,function(e,r){let o=t(e,r),n={openai:"openai/gpt-5",anthropic:"anthropic/claude-3.5-sonnet-latest",google:"google/gemini-2.5-pro",mistral:"mistral/mistral-large-latest",deepseek:"deepseek/deepseek-chat",cohere:"cohere/command-r-plus",meta:"meta/llama-4-maverick",xai:"xai/grok-3-mini",vercel_ai_gateway:"anthropic/claude-3.5-sonnet-latest"}[r];return o.find(e=>e.id===n)??o[0]},"toChatDescriptor",0,function(e){return{id:e.id,name:e.name,provider:e.owned_by,context_window:e.context_window,max_tokens:e.max_tokens,tags:e.tags,description:e.description}}])},675101,e=>{"use strict";var t=e.i(89087),r=e.i(731699),o=e.i(528909),n=e.i(344963),a=e.i(733164),i=e.i(235072),s=e.i(416487),l=e.i(256485),c=e.i(336321);let u={openai:"openai/gpt-4o-mini",anthropic:"anthropic/claude-3-5-sonnet-latest",google:"google/gemini-2.5-flash",cohere:"cohere/command-r-plus",mistral:"mistral/mistral-large-latest",deepseek:"deepseek/deepseek-chat"};e.s(["createChatModel",0,function(e,c,u,d=[]){if(c.startsWith("custom:")){let e=c.slice(7),t=d.find(t=>t.modelName===e);if(!t)throw Error(`Custom chat model "${e}" is not configured.`);return(0,l.createOpenAICompatible)({name:"custom_chat_provider",baseURL:t.baseUrl,apiKey:t.apiKey||u||void 0})(t.modelName)}let p=c.includes("/")?c.split("/").slice(1).join("/"):c;switch(e){case"google":return(0,a.createGoogleGenerativeAI)({apiKey:u})(p);case"cohere":return(0,r.createCohere)({apiKey:u})(p);case"mistral":return(0,i.createMistral)({apiKey:u})(p);case"deepseek":return(0,o.createDeepSeek)({apiKey:u})(p);case"anthropic":return(0,t.createAnthropic)({apiKey:u})(p);case"openai":return(0,s.createOpenAI)({apiKey:u})(p);case"vercel_ai_gateway":return(0,n.createGateway)({apiKey:u})(c);case"custom":throw Error("Choose a configured custom chat model before processing media.");default:throw Error(`Unsupported chat provider "${e}".`)}},"resolveConfiguredChatModel",0,function(e,t=[],r={}){let o=e.chatProvider||e.embeddingProvider||"openai",n=e.chatModelId?.trim();if(!n&&"custom"===o&&e.customChatModels?.[0]&&(n=`custom:${e.customChatModels[0].modelName}`),!n&&t.length>0){let e=r.requiredTag,a=e?t.filter(t=>t.tags?.includes(e)):t,i=a.length>0?a:t;n=(0,c.getDefaultChatModel)(i.map(c.toChatDescriptor),o)?.id}if(!n&&"vercel_ai_gateway"===o)throw Error("No gateway model is available. Choose a chat model before processing media.");return n||=u[o]||u.openai,{provider:o,modelId:n,apiKey:e.chatApiKey||e.embeddingApiKey||void 0}}])},180475,e=>{"use strict";var t=e.i(239441),r=e.i(449055),o=e.i(391328),n=e.i(6352),a=e.i(746789),i=e.i(423437),s=e.i(178820),l=e.i(569191),c=e.i(576251),u=e.i(199962),d=e.i(547545),p=e.i(664046),f=e.i(235691),h=e.i(298907),m=e.i(110763),g=e.i(193695);e.i(673243);var y=e.i(236167),v=e.i(766576),w=e.i(214312),b=e.i(367165),k=e.i(844915),O=e.i(192441),A=e.i(675101);async function E(e){let t=new URL(e.url).searchParams.get("serverId"),r=()=>_(e);return t?(0,O.runWithServer)(t,r):r()}async function _(t){try{let{base64:r,base64Images:o,prompt:n}=await t.json(),a=(o?.length?o:r?[r]:[]).slice(0,6);if(0===a.length)return v.NextResponse.json({error:"Missing image data"},{status:400});let i=await (0,b.readConfig)(),s=await (0,k.getModelsByType)("language"),l=(0,A.resolveConfiguredChatModel)(i,s,{requiredTag:"vision"}),c=(0,A.createChatModel)(l.provider,l.modelId,l.apiKey,i.customChatModels),{text:u,usage:d}=await (0,w.generateText)({model:c,abortSignal:t.signal,messages:[{role:"user",content:[{type:"text",text:n||'Provide a very brief, high-level summary of what this image contains (e.g., "A database ER diagram about films and actors", "A bar chart showing quarterly revenue"). Do NOT extract all text or exhaustively describe relationships. Keep it under 2 sentences.'},...a.map(e=>{let t=e.startsWith("data:")?e:`data:image/jpeg;base64,${e}`,r=t.match(/^data:([^;,]+)/)?.[1]||"image/jpeg";return{type:"file",mediaType:r,data:t}})]}]}),{estimateCost:p,trackUsageEvent:f}=await e.A(313282);return f({type:"media_processing",mediaType:"image",modelId:l.modelId,provider:l.provider,promptTokens:d.inputTokens??0,completionTokens:d.outputTokens??0,totalTokens:d.totalTokens??0,estimatedCost:p(l.modelId,d.inputTokens??0,d.outputTokens??0),timestamp:new Date().toISOString()}),v.NextResponse.json({description:u})}catch(e){return console.error("Image description failed:",e),v.NextResponse.json({error:e.message},{status:500})}}e.s(["POST",0,E,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],158825);var T=e.i(158825);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/describe-image/route",pathname:"/api/describe-image",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/describe-image/route.ts",nextConfigOutput:"standalone",userland:T,...{}}),{workAsyncStorage:j,workUnitAsyncStorage:x,serverHooks:P}=C;async function R(e,t,o){o.requestMeta&&(0,n.setRequestMeta)(e,o.requestMeta),C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/describe-image/route";v=v.replace(/\/index$/,"")||"/";let w=await C.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==o.waitUntil||o.waitUntil.call(o,Promise.resolve()),null;let{buildId:b,deploymentId:k,params:O,nextConfig:A,parsedUrl:E,isDraftMode:_,prerenderManifest:T,routerServerContext:j,isOnDemandRevalidate:x,revalidateOnlyGenerated:P,resolvedPathname:R,clientReferenceManifest:D,serverActionsManifest:M}=w,I=(0,s.normalizeAppPath)(v),S=!!(T.dynamicRoutes[I]||T.routes[R]),N=async()=>((null==j?void 0:j.render404)?await j.render404(e,t,E,!1):t.end("This page could not be found"),null);if(S&&!_){let e=!!T.routes[R],t=T.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await N();throw new g.NoFallbackError}}let F=null;!S||C.isDev||_||(F="/index"===(F=R)?"/":F);let U=!0===C.isDev||!S,$=S&&!U;M&&D&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:D,serverActionsManifest:M});let L=e.method||"GET",q=(0,a.getTracer)(),V=q.getActiveScopeSpan(),H=!!(null==j?void 0:j.isWrappedByNextServer),G=!!(0,n.getRequestMeta)(e,"minimalMode"),K=(0,n.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,A,T,G);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let B={params:O,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:U,incrementalCache:K,cacheLifeProfiles:A.cacheLife,waitUntil:o.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,o,n)=>C.onRequestError(e,t,o,n,j)},sharedContext:{buildId:b,deploymentId:k}},J=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=c.NextRequestAdapter.fromNodeNextRequest(J,(0,c.signalFromNodeResponse)(t));try{let n,i=async e=>C.handle(z,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.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 o=r.get("next.route");if(o){let t=`${L} ${o}`;e.setAttributes({"next.route":o,"http.route":o,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",o),n.updateName(t))}else e.updateName(`${L} ${v}`)}),s=async n=>{var a,s;let l=async({previousCacheEntry:r})=>{try{if(!G&&x&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=B.renderOpts.fetchMetrics;let s=B.renderOpts.pendingWaitUntil;s&&o.waitUntil&&(o.waitUntil(s),s=void 0);let l=B.renderOpts.collectedTags;if(!S)return await (0,p.sendResponse)(J,W,a,B.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,o=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:o}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,j),t}},c=await C.handleResponse({req:e,nextConfig:A,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:P,responseGenerator:l,waitUntil:o.waitUntil,isMinimalMode:G});if(!S)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(s=c.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});G||t.setHeader("x-nextjs-cache",x?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return G&&S||u.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(J,W,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};H&&V?await s(V):(n=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(u.BaseServerSpan.handleRequest,{spanName:`${L} ${v}`,kind:a.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},s),void 0,!H))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:x})},!1,j),S)throw t;return await (0,p.sendResponse)(J,W,new Response(null,{status:500})),null}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,o.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:x})},"routeModule",0,C,"serverHooks",0,P,"workAsyncStorage",0,j,"workUnitAsyncStorage",0,x],180475)},225970,e=>{e.v(e=>Promise.resolve().then(()=>e(65048)))},953341,e=>{e.v(t=>Promise.all(["server/chunks/15sd_@vercel_oidc_dist_token_10ruti0.js"].map(t=>e.l(t))).then(()=>t(624299)))},313282,e=>{e.v(t=>Promise.all(["server/chunks/packages_core_src_analytics-store_ts_06l_t47._.js"].map(t=>e.l(t))).then(()=>t(43697)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__1ip05r1._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[367165,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(638725),i=e.i(192441);async function n(){let e=await (0,i.getDataDir)();if(!e)return r.DEFAULT_CONFIG;try{let i=await t.promises.readFile(a.default.join(e,"config.json"),"utf8"),n=JSON.parse(i),s=n.customEmbeddings,o=n.embeddingModelId;if(n.customEmbedding&&!s?.length){let e=n.customEmbedding;s=[e],"custom"===o&&(o=`custom:${e.modelName}`)}let u={...r.DEFAULT_CONFIG,...n,embeddingModelId:o??r.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:s,chunking:{...r.DEFAULT_CONFIG.chunking,...n.chunking},storeConfig:{...r.DEFAULT_CONFIG.storeConfig,...n.storeConfig}};return delete u.customEmbedding,u}catch{return r.DEFAULT_CONFIG}}async function s(e){let r=await (0,i.requireDataDir)(),n={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(r,"config.json"),JSON.stringify(n,null,2),"utf8"),n}e.s(["readConfig",0,n,"writeConfig",0,s])},874533,(e,t,a)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,a)=>{t.exports=e.x("node:util",()=>require("node:util"))},705252,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(192441);let n=Promise.resolve();function s(e){let t=n.then(e,e);return n=t.catch(()=>{}),t}async function o(e){let t=e?await (0,i.requireDataDir)():await (0,i.getDataDir)();return t?a.default.join(t,"documents.json"):null}async function u(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid document store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let i=await o(!0);if(!i)return;let n=a.default.join(a.default.dirname(i),`.${a.default.basename(i)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(n,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(n,i)}catch(e){throw await t.promises.unlink(n).catch(()=>{}),e}}function l(e){let t=e.content.trim();return{id:e.id??(0,r.randomUUID)(),title:e.title.trim()||"Untitled",url:e.url,source:e.source,content:t,charCount:t.length,jobId:e.jobId,metadata:e.metadata,status:"unindexed",createdAt:new Date().toISOString()}}async function c(){let e=await u(),t=e.reduce((e,t)=>e+t.charCount,0);return{docCount:e.length,charCount:t,bySource:e.reduce((e,t)=>(e[t.source]=(e[t.source]??0)+1,e),{})}}e.s(["addCrawledDocuments",0,function(e,t){return s(async()=>{let a=await u(),r=new Set(a.filter(e=>e.url).map(e=>e.url)),i=0;for(let n of t)!(n.url&&r.has(n.url))&&n.content.trim()&&(a.push(l({...n,jobId:e})),n.url&&r.add(n.url),i++);return i>0&&await d(a),i})},"addDocument",0,function(e){return s(async()=>{let t=await u(),a=l(e);return t.push(a),await d(t),a})},"addDocuments",0,function(e){return s(async()=>{if(0===e.length)return[];let t=await u(),a=e.map(l);return t.push(...a),await d(t),a})},"clearDocuments",0,function(){return s(async()=>{await d([])})},"corpusStats",0,c,"deleteDocument",0,function(e){return s(async()=>{let t=await u();await d(t.filter(t=>t.id!==e))})},"deleteDocuments",0,function(e){return s(async()=>{let t=await u(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"readDocuments",0,u,"replaceDocuments",0,function(e){return s(async()=>{let t=new Date().toISOString();await d(e.map(e=>({...e,status:"unindexed",createdAt:e.createdAt||t})))})},"updateDocument",0,function(e,t){return s(async()=>{let a=await u(),r=a.findIndex(t=>t.id===e);if(r<0)return;let i=a[r],n=void 0!==t.content?t.content.trim():i.content,s={...i,title:void 0!==t.title?t.title.trim()||"Untitled":i.title,content:n,charCount:n.length,url:void 0!==t.url?t.url||void 0:i.url,metadata:void 0!==t.metadata?t.metadata:i.metadata,status:"unindexed"};return a[r]=s,await d(a),s})},"updateDocumentsStatus",0,function(e,t){return s(async()=>{let a=await u(),r=new Set(e),i=!1;for(let e of a)r.has(e.id)&&(e.status=t,i=!0);i&&await d(a)})}])},585071,e=>{"use strict";var t=e.i(192441);async function a(a,r){let i={...a.storeConfig},n=await (0,t.getActiveServer)(),s=n?.id;if(s){let e=s.replace(/[^a-zA-Z0-9_-]/g,"_");"pinecone"===a.vectorStore?i.namespace=s:"chroma"===a.vectorStore?i.collectionName=`documents_${e}`:"lancedb"!==a.vectorStore&&a.vectorStore||(i.tableName=`documents_${e}`)}switch(a.vectorStore){case"pinecone":{let{PineconeAdapter:t}=await e.A(77149);return new t({apiKey:i.apiKey,indexName:i.indexName,namespace:i.namespace,sparseModel:i.sparseModel,indexType:a.indexType,onRateLimit:r})}case"chroma":{let{ChromaAdapter:t}=await e.A(195059);return new t({mode:i.mode,host:i.host,authToken:i.authToken,apiKey:i.apiKey,tenant:i.tenant,database:i.database,collectionName:i.collectionName,indexType:a.indexType})}default:{let{LanceDBAdapter:t}=await e.A(184904);return new t({mode:i.mode,dbPath:i.dbPath,uri:i.uri,apiKey:i.apiKey,s3Uri:i.s3Uri,s3Endpoint:i.s3Endpoint,s3Region:i.s3Region,s3AccessKeyId:i.s3AccessKeyId,s3SecretAccessKey:i.s3SecretAccessKey,tableName:i.tableName})}}}e.s(["createAdapter",0,a])},857764,(e,t,a)=>{t.exports=e.x("node:url",()=>require("node:url"))},504740,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(857764),i=e.i(463857);let n=new Map;async function s(e){if(n.has(e))return n.get(e);let t=await (0,i.getInstalledTool)(e);if(!t)return null;try{let a=await o(t),r=await import(a);return n.set(e,r),r}catch(t){return console.error(`[marketplace] Failed to load tool "${e}":`,t),null}}async function o(e){switch(e.source){case"local":default:return e.packageName;case"registry":case"sandbox":return u(e.resolvedPath)}}async function u(e){let i=a.default.join(e,"package.json"),n=JSON.parse(await t.promises.readFile(i,"utf8")),s="object"==typeof n.exports?n.exports["."]:n.exports,o=("object"==typeof s?s.import??s.default:s)??n.main??"index.js";return(0,r.pathToFileURL)(a.default.resolve(e,o)).href}e.s(["loadTool",0,s,"unloadTool",0,function(e){n.delete(e)}])},839554,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(192441);let n=Promise.resolve();function s(e){let t=n.then(e,e);return n=t.catch(()=>{}),t}async function o(e){let t=e?await (0,i.requireDataDir)():await (0,i.getDataDir)();return t?a.default.join(t,"media-assets.json"):null}async function u(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid media asset store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let i=await o(!0);if(!i)return;let n=a.default.join(a.default.dirname(i),`.${a.default.basename(i)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(n,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(n,i)}catch(e){throw await t.promises.unlink(n).catch(()=>{}),e}}let l=["download","extract","transcribe","vision","synthesize","index"],c={download:10,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function p(e){return l.map(t=>({stage:t,status:"waiting",updatedAt:e}))}function m(e){return void 0!==e&&Number.isFinite(e)?Math.max(0,e):void 0}function f(e){let t=m(e);return void 0===t?void 0:Math.min(100,t)}function g(e){return Math.floor(m(e.processingRevision)??0)+1}async function h(){let e=await u(),t={image:0,video:0,audio:0},a={pending:0,processing:0,completed:0,failed:0},r=0;for(let i of e)t[i.type]++,a[i.processingStatus]++,r+=i.fileSize;return{total:e.length,byType:t,byStatus:a,totalBytes:r}}async function w(e){return(await u()).find(t=>t.id===e)}e.s(["addMediaAssets",0,function(e){return s(async()=>{let t=await u(),a=new Date().toISOString(),i=e.map(e=>({id:(0,r.randomUUID)(),type:e.type,fileName:e.fileName,mimeType:e.mimeType,storageUri:e.storageUri,thumbnailUri:e.thumbnailUri,originalUrl:e.originalUrl,fileSize:e.fileSize,dimensions:e.dimensions,durationSecs:e.durationSecs,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:a,updatedAt:a}));return t.push(...i),await d(t),i})},"claimMediaAsset",0,function(e){return s(async()=>{let t=await u(),a=t.findIndex(t=>t.id===e);if(a<0||"processing"===t[a].processingStatus||"Queued for background processing..."===t[a].processingMessage)return;let r=new Date().toISOString();return t[a]={...t[a],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:1,processingSteps:p(r),processingRevision:g(t[a]),processingHeartbeatAt:r,updatedAt:r},await d(t),t[a]})},"deleteMediaAsset",0,function(e){return s(async()=>{let t=await u();await d(t.filter(t=>t.id!==e))})},"deleteMediaAssets",0,function(e){return s(async()=>{let t=await u(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"getMediaAsset",0,w,"mediaStats",0,h,"readMediaAssets",0,u,"recoverStaleMediaAssets",0,function(e=3e5){return s(async()=>{let t=await u(),a=Date.now()-e,r="The background worker stopped. Retry to resume media processing.",i=0;for(let e=0;e<t.length;e++){let n=t[e],s="processing"===n.processingStatus,o="pending"===n.processingStatus&&"Queued for background processing..."===n.processingMessage,u=n.processingHeartbeatAt??n.updatedAt;if((s||o)&&new Date(u).getTime()<a){let a=new Date().toISOString(),s=n.processingSteps?.map(e=>"running"===e.status?{...e,status:"failed",message:r,updatedAt:a,finishedAt:a}:e);t[e]={...n,processingStatus:"failed",processingError:r,processingMessage:void 0,processingProgress:void 0,processingSteps:s,processingRevision:g(n),processingHeartbeatAt:a,updatedAt:a},i++}}return i>0&&await d(t),i})},"updateMediaAsset",0,function(e,t){return s(async()=>{let a=await u(),r=a.findIndex(t=>t.id===e);if(r<0)return;let i=a[r];return a[r]={...i,...t,documentIds:t.documentIds??i.documentIds,pendingDocumentIds:t.pendingDocumentIds??i.pendingDocumentIds,supersededDocumentIds:t.supersededDocumentIds??i.supersededDocumentIds,updatedAt:new Date().toISOString()},await d(a),a[r]})},"updateMediaStage",0,function(e,t,a){return s(async()=>{let r,i,n=await u(),s=n.findIndex(t=>t.id===e);if(s<0)return;let o=new Date().toISOString(),l=n[s],h=new Map((l.processingSteps??[]).map(e=>[e.stage,e])),w=p(o).map(e=>h.get(e.stage)??e),y=w.findIndex(e=>e.stage===t),v=w[y],A=new Set(["completed","skipped","failed"]),S=a.status??v.status,R=A.has(v.status)||"running"===v.status&&"waiting"===S?v.status:S,x=f(v.percent),D=f(a.percent),N=void 0===D?x:Math.max(x??0,D),b=m(v.current),I=m(a.current),E=void 0===I?b:Math.max(b??0,I),T=void 0===a.total?m(v.total):m(a.total);void 0!==E&&void 0!==T&&(T=Math.max(T,E))>0&&(N=Math.max(N??0,Math.min(100,E/T*100))),"completed"===R&&(N=100,void 0!==T&&(E=T));let U=A.has(R),M={...v,...a,stage:t,status:R,percent:N,current:E,total:T,startedAt:a.startedAt??v.startedAt??("running"===R||U?o:void 0),updatedAt:o,finishedAt:U?a.finishedAt??v.finishedAt??o:void 0};w[y]=M;let C=Math.max(f(l.processingProgress)??0,0===(i=(r=w.filter(e=>"skipped"!==e.status)).reduce((e,t)=>e+c[t.stage],0))?100:Math.round(r.reduce((e,t)=>e+c[t.stage]*function(e){if("completed"===e.status)return 100;if("waiting"===e.status||"skipped"===e.status)return 0;let t=f(e.percent);return void 0!==t?t:void 0!==e.current&&void 0!==e.total&&Number.isFinite(e.current)&&Number.isFinite(e.total)&&e.total>0?Math.min(100,Math.max(0,e.current/e.total*100)):0}(t)/100,0)/i*100)),j=[...w].reverse().find(e=>"running"===e.status&&e.message)?.message,P="running"===M.status?M.message??a.message??l.processingMessage:j??a.message??M.message??l.processingMessage;return n[s]={...l,processingSteps:w,processingProgress:C,processingMessage:P,processingRevision:g(l),processingHeartbeatAt:o,updatedAt:o},await d(n),n[s]})}])},941486,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(192441);class i{id="local";name="Local Storage";async mediaDir(){let e=await (0,r.requireDataDir)(),i=a.default.join(e,"media");return await t.promises.mkdir(i,{recursive:!0}),i}async store(e,r,i){let n=await this.mediaDir(),s=a.default.join(n,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.writeFile(s,r),`local://${e}`}async storeFile(e,r,i){let n=await this.mediaDir(),s=a.default.join(n,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.copyFile(r,s),`local://${e}`}async retrieve(e){let a=await this.resolvePath(e);if(!a)throw Error(`Unsupported local storage URI: ${e}`);return t.promises.readFile(a)}async resolvePath(e){if(!e.startsWith("local://"))return;let t=e.slice(8),r=await this.mediaDir(),i=a.default.resolve(r,t),n=a.default.relative(r,i);if(n.startsWith("..")||a.default.isAbsolute(n))throw Error("Invalid local storage URI");return i}async delete(e){let r=e.replace("local://",""),i=await this.mediaDir();try{await t.promises.unlink(a.default.join(i,r))}catch{}}async stats(){try{let e=await this.mediaDir();return await n(e)}catch{return{usedBytes:0,fileCount:0}}}}async function n(e){let r=0,i=0;async function n(e){let s;try{s=await t.promises.readdir(e,{withFileTypes:!0})}catch{return}for(let o of s){let s=a.default.join(e,o.name);if(o.isDirectory())await n(s);else try{let e=await t.promises.stat(s);r+=e.size,i++}catch{}}}return await n(e),{usedBytes:r,fileCount:i}}e.s(["createStorageProvider",0,function(e){return new i}])},889271,e=>{"use strict";var t=e.i(239441),a=e.i(449055),r=e.i(391328),i=e.i(6352),n=e.i(746789),s=e.i(423437),o=e.i(178820),u=e.i(569191),d=e.i(576251),l=e.i(199962),c=e.i(547545),p=e.i(664046),m=e.i(235691),f=e.i(298907),g=e.i(110763),h=e.i(193695);e.i(673243);var w=e.i(236167),y=e.i(766576),v=e.i(839554),A=e.i(463857),S=e.i(504740),R=e.i(941486),x=e.i(705252),D=e.i(367165),N=e.i(585071),b=e.i(192441);async function I(e){return O(e,()=>E(e))}async function E(e){let t=new URL(e.url).searchParams.get("type");await (0,v.recoverStaleMediaAssets)();let[a,r]=await Promise.all([(0,v.readMediaAssets)(),(0,v.mediaStats)()]),i=t?a.filter(e=>e.type===t):a;i.sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());let n=(0,R.createStorageProvider)(),s=await n.stats();return y.NextResponse.json({assets:i,stats:r,storage:{usedBytes:s.usedBytes,fileCount:s.fileCount}})}async function T(e){return O(e,()=>U(e))}async function U(t){try{if(t.headers.get("content-type")?.includes("application/json"))return await M(t);let r=(await t.formData()).getAll("file");if(0===r.length)return y.NextResponse.json({error:"No files provided."},{status:400});let i=(0,R.createStorageProvider)(),n=[];for(let e of r){var a;let t=(a=e.type).startsWith("image/")?"image":a.startsWith("video/")?"video":a.startsWith("audio/")?"audio":null;if(!t)continue;let r=Buffer.from(await e.arrayBuffer()),s=e.name.split(".").pop()||"bin",o=`${t}s/${Date.now()}_${Math.random().toString(36).slice(2)}.${s}`,u=await i.store(o,r,e.type);n.push({type:t,fileName:e.name,mimeType:e.type,storageUri:u,fileSize:e.size})}if(0===n.length)return y.NextResponse.json({error:"No supported media files found."},{status:400});let{addMediaAssets:s}=await e.A(742957),o=await s(n);return y.NextResponse.json({assets:o,count:o.length},{status:201})}catch(t){let e=t instanceof Error?t.message:"Failed to upload media.";return y.NextResponse.json({error:e},{status:500})}}async function M(t){let a=await t.json(),r=[...new Set(a.urls?.map(e=>e.trim()).filter(Boolean)??[])];if(0===r.length||r.length>10)return y.NextResponse.json({error:"Provide between 1 and 10 media URLs."},{status:400});if(!await (0,A.isToolInstalled)("video-audio"))return y.NextResponse.json({error:"Install the Video & Audio tool before importing media URLs."},{status:409});let i=await (0,S.loadTool)("video-audio");if(!i?.importMediaUrl||!i?.inspectMediaUrl)return y.NextResponse.json({error:"The installed Video & Audio tool needs an update."},{status:409});if(a.estimateOnly){let e=[];for(let t of r){let r=await i.inspectMediaUrl(t);if(a.mediaType&&"unknown"!==r.mediaType&&r.mediaType!==a.mediaType)return y.NextResponse.json({error:`The URL points to ${r.mediaType}, not ${a.mediaType}.`},{status:400});e.push(r)}return y.NextResponse.json({estimates:e})}let{addMediaAssets:n}=await e.A(742957),s=r.map(e=>({type:a.mediaType||"video",fileName:"Importing URL...",mimeType:"application/octet-stream",storageUri:`pending://${e}`,fileSize:0,originalUrl:e})),o=await n(s);return y.NextResponse.json({assets:o,count:o.length},{status:201})}async function C(e){return O(e,()=>j(e))}async function j(t){let a=new URL(t.url),r=a.searchParams.get("id"),i=a.searchParams.get("ids"),n=(0,R.createStorageProvider)();if(r){let{getMediaAsset:t}=await e.A(742957),a=await t(r);if(a){if(P(a))return y.NextResponse.json({error:"Wait for the media indexing job to finish before deleting it."},{status:409});let e=k(a);await _(e),await n.delete(a.storageUri).catch(()=>{}),a.thumbnailUri&&await n.delete(a.thumbnailUri).catch(()=>{}),await (0,x.deleteDocuments)(e)}await (0,v.deleteMediaAsset)(r)}else if(i){let e=i.split(","),t=(await (0,v.readMediaAssets)()).filter(t=>e.includes(t.id));if(t.some(P))return y.NextResponse.json({error:"Wait for all selected media indexing jobs to finish before deleting them."},{status:409});for(let e of t){let t=k(e);await _(t),await n.delete(e.storageUri).catch(()=>{}),e.thumbnailUri&&await n.delete(e.thumbnailUri).catch(()=>{}),await (0,x.deleteDocuments)(t)}await (0,v.deleteMediaAssets)(e)}return y.NextResponse.json({ok:!0})}function P(e){return"processing"===e.processingStatus||"pending"===e.processingStatus&&"Queued for background processing..."===e.processingMessage}function O(e,t){let a=new URL(e.url).searchParams.get("serverId");return a?(0,b.runWithServer)(a,t):t()}async function _(e){if(0===e.length)return;let t=await (0,N.createAdapter)(await (0,D.readConfig)());await t.deleteByDocumentIds(e)}function k(e){return[...new Set([...e.documentIds,...e.pendingDocumentIds??[],...e.supersededDocumentIds??[]])]}e.s(["DELETE",0,C,"GET",0,I,"POST",0,T,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],98281);var F=e.i(98281);let $=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/media/route",pathname:"/api/media",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/media/route.ts",nextConfigOutput:"standalone",userland:F,...{}}),{workAsyncStorage:q,workUnitAsyncStorage:H,serverHooks:L}=$;async function K(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),$.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/media/route";y=y.replace(/\/index$/,"")||"/";let v=await $.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:S,params:R,nextConfig:x,parsedUrl:D,isDraftMode:N,prerenderManifest:b,routerServerContext:I,isOnDemandRevalidate:E,revalidateOnlyGenerated:T,resolvedPathname:U,clientReferenceManifest:M,serverActionsManifest:C}=v,j=(0,o.normalizeAppPath)(y),P=!!(b.dynamicRoutes[j]||b.routes[U]),O=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,D,!1):t.end("This page could not be found"),null);if(P&&!N){let e=!!b.routes[U],t=b.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await O();throw new h.NoFallbackError}}let _=null;!P||$.isDev||N||(_="/index"===(_=U)?"/":_);let k=!0===$.isDev||!P,F=P&&!k;C&&M&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:M,serverActionsManifest:C});let q=e.method||"GET",H=(0,n.getTracer)(),L=H.getActiveScopeSpan(),K=!!(null==I?void 0:I.isWrappedByNextServer),B=!!(0,i.getRequestMeta)(e,"minimalMode"),z=(0,i.getRequestMeta)(e,"incrementalCache")||await $.getIncrementalCache(e,x,b,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let W={params:R,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:k,incrementalCache:z,cacheLifeProfiles:x.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,i)=>$.onRequestError(e,t,r,i,I)},sharedContext:{buildId:A,deploymentId:S}},G=new u.NodeNextRequest(e),J=new u.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(G,(0,d.signalFromNodeResponse)(t));try{let i,s=async e=>$.handle(V,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=H.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${q} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",r),i.updateName(t))}else e.updateName(`${q} ${y}`)}),o=async i=>{var n,o;let u=async({previousCacheEntry:a})=>{try{if(!B&&E&&T&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(i);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let u=W.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(G,J,n,W.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,r=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await $.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:E})},!1,I),t}},d=await $.handleResponse({req:e,nextConfig:x,cacheKey:_,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:T,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:B});if(!P)return null;if((null==d||null==(n=d.value)?void 0:n.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return B&&P||l.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(G,J,new Response(d.value.body,{headers:l,status:d.value.status||200})),null};K&&L?await o(L):(i=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(l.BaseServerSpan.handleRequest,{spanName:`${q} ${y}`,kind:n.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof h.NoFallbackError||await $.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:E})},!1,I),P)throw t;return await (0,p.sendResponse)(G,J,new Response(null,{status:500})),null}}e.s(["handler",0,K,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:q,workUnitAsyncStorage:H})},"routeModule",0,$,"serverHooks",0,L,"workAsyncStorage",0,q,"workUnitAsyncStorage",0,H],889271)},484620,e=>{e.v(e=>Promise.resolve().then(()=>e(504740)))},627270,e=>{e.v(e=>Promise.resolve().then(()=>e(612069)))},77149,e=>{e.v(t=>Promise.all(["server/chunks/[externals]__03264vc._.js","server/chunks/[root-of-the-server]__1ynt2jc._.js"].map(t=>e.l(t))).then(()=>t(292483)))},195059,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__10v5qsi._.js"].map(t=>e.l(t))).then(()=>t(148089)))},184904,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__01al2n0._.js"].map(t=>e.l(t))).then(()=>t(46465)))},742957,e=>{e.v(e=>Promise.resolve().then(()=>e(839554)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1jc54o2._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[148089,t=>{"use strict";t.s(["ChromaAdapter",0,class{config;client;collection;collectionName;constructor(t){this.config=t,this.client=null,this.collection=null,this.collectionName=t.collectionName?.trim()||"documents"}async getClient(){let e;if(this.client)return this.client;try{e=await t.A(63100)}catch{throw Error('The "chromadb" package is not installed. Please install it first via the Configure page or run: pnpm add chromadb --filter @larkup/vector-stores')}if("cloud"===this.config.mode){if(!this.config.apiKey)throw Error("Chroma Cloud requires an API key.");let t=e.CloudClient??e.default?.CloudClient;if(!t)throw Error("Could not find CloudClient in the chromadb package.");this.client=new t({apiKey:this.config.apiKey,tenant:this.config.tenant||"default_tenant",database:this.config.database||"default_database"})}else{let t=this.config.host?.trim()||"http://localhost:8000",i=e.ChromaClient??e.default?.ChromaClient;if(!i)throw Error("Could not find ChromaClient in the chromadb package.");let a={path:t};this.config.authToken&&(a.auth={provider:"token",credentials:this.config.authToken}),this.client=new i(a)}return this.client}async getCollection(){if(this.collection)return this.collection;let t=await this.getClient();return this.collection=await t.getOrCreateCollection({name:this.collectionName,metadata:{"hnsw:space":"cosine"}}),this.collection}async init(t){await this.getCollection()}async reset(){let t=await this.getClient();try{await t.deleteCollection({name:this.collectionName})}catch{}this.collection=null}async deleteByDocumentIds(t){if(0!==t.length)try{let e=await this.getCollection();await e.delete({where:{documentId:{$in:t}}})}catch(t){console.error("Failed to delete vectors by documentIds in Chroma:",t)}}async upsert(t){if(0===t.length)return;let e=await this.getCollection(),i=[],a=[],n=[],r=[];for(let e of t)i.push(e.id),a.push(e.vector),n.push(e.text),r.push(this.buildMetadata(e));for(let t=0;t<i.length;t+=4096)await e.upsert({ids:i.slice(t,t+4096),embeddings:a.slice(t,t+4096),documents:n.slice(t,t+4096),metadatas:r.slice(t,t+4096)})}buildMetadata(t){let e={title:t.title,source:t.source,documentId:t.documentId,chunkIndex:t.chunkIndex};if(t.url&&(e.url=t.url),t.metadata)for(let[i,a]of Object.entries(t.metadata))null!=a&&("string"==typeof a||"number"==typeof a||"boolean"==typeof a?e[i]=a:e[i]=JSON.stringify(a));return e}async count(){try{let t=await this.getCollection();return await t.count()}catch{return null}}async query(t,e,i){let a=await this.getCollection(),n="semantic"===this.config.indexType,r="lexical"===this.config.indexType;if(n||!i?.trim())return this.denseQuery(a,t,e);if(r)return this.documentQuery(a,i,e);let o=await this.denseQuery(a,t,e);try{let t=await this.documentQuery(a,i,e);if(t.length>0){var l,s,c;let i,a;return l=o,s=t,c=e,i=new Map,(a=t=>t.forEach((t,e)=>{let a=1/(60+e+1),n=i.get(t.id);n?n.score+=a:i.set(t.id,{hit:t,score:a})}))(l),a(s),[...i.values()].sort((t,e)=>e.score-t.score).slice(0,c).map(({hit:t,score:e})=>({...t,score:e}))}}catch{}return o}async denseQuery(t,e,i){let a=await t.query({queryEmbeddings:[e],nResults:i,include:["documents","metadatas","distances"]});return this.parseQueryResult(a)}async documentQuery(t,e,i){let a=await t.get({whereDocument:{$contains:e},limit:i,include:["documents","metadatas"]});return this.parseGetResult(a)}parseGetResult(t){if(!t.ids||0===t.ids.length)return[];let e=t.ids,i=t.documents??[],a=t.metadatas??[];return e.map((t,e)=>{let{title:n,url:r,source:o,documentId:l,chunkIndex:s,...c}=a[e]??{};return{id:t,score:1,text:i[e]??"",title:n??"Untitled",url:r||void 0,documentId:l??"",metadata:Object.keys(c).length>0?c:void 0}})}parseQueryResult(t){if(!t.ids?.[0])return[];let e=t.ids[0],i=t.documents?.[0]??[],a=t.metadatas?.[0]??[],n=t.distances?.[0]??[];return e.map((t,e)=>{let r=a[e]??{},o=n[e]??0,{title:l,url:s,source:c,documentId:d,chunkIndex:u,...h}=r;return{id:t,score:1/(1+o),text:i[e]??"",title:l??"Untitled",url:s||void 0,documentId:d??"",metadata:Object.keys(h).length>0?h:void 0}})}async testConnection(t){let e;try{e=await this.getClient()}catch(t){throw Error(`Failed to connect to Chroma: ${t.message}`)}try{await e.heartbeat()}catch(e){let t=e.message??"";if(t.includes("401")||t.includes("Unauthorized")||t.includes("403")||t.includes("Forbidden"))throw Error("Invalid Chroma credentials. Please check your auth token or API key.");if(t.includes("ECONNREFUSED")||t.includes("fetch failed"))throw Error("Could not reach the Chroma server. Is it running and accessible at the configured URL?");throw Error(`Failed to reach Chroma server: ${t}`)}try{await e.listCollections()}catch(t){throw Error(`Connected to Chroma but failed to access the database or tenant. Please verify your tenant and database names. Error: ${t.message}`)}}}])},63100,t=>{t.v(e=>Promise.all(["server/chunks/[externals]_chromadb_12df23u._.js"].map(e=>t.l(e))).then(()=>e(840941)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0748x7h._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1lhls88._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},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"))},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"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},797569,(e,t,r)=>{"use strict";t.exports=e.r(918622)},243712,(e,t,r)=>{"use strict";t.exports=e.r(797569).vendored["react-rsc"].React},938516,(e,t,r)=>{"use strict";var n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i={},l={RequestCookies:()=>m,ResponseCookies:()=>g,parseCookie:()=>d,parseSetCookie:()=>c,stringifyCookie:()=>p};for(var u in l)n(i,u,{get:l[u],enumerable:!0});function p(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function d(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function c(e){if(!e)return;let[[t,r],...n]=d(e),{domain:a,expires:s,httponly:o,maxage:i,path:l,samesite:u,secure:p,partitioned:c,priority:m}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,x,v={name:t,value:decodeURIComponent(r),domain:a,...s&&{expires:new Date(s)},...o&&{httpOnly:!0},..."string"==typeof i&&{maxAge:Number(i)},path:l,...u&&{sameSite:h.includes(g=(g=u).toLowerCase())?g:void 0},...p&&{secure:!0},...m&&{priority:f.includes(x=(x=m).toLowerCase())?x:void 0},...c&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of s(t))o.call(e,i)||void 0===i||n(e,i,{get:()=>t[i],enumerable:!(r=a(t,i))||r.enumerable});return e})(n({},"__esModule",{value:!0}),i);var h=["strict","lax","none"],f=["low","medium","high"],m=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of d(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>p(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>p(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},g=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,s,o=[],i=0;function l(){for(;i<e.length&&/\s/.test(e.charAt(i));)i+=1;return i<e.length}for(;i<e.length;){for(t=i,s=!1;l();)if(","===(r=e.charAt(i))){for(n=i,i+=1,l(),a=i;i<e.length&&"="!==(r=e.charAt(i))&&";"!==r&&","!==r;)i+=1;i<e.length&&"="===e.charAt(i)?(s=!0,i=a,o.push(e.substring(t,n)),t=i):i=n+1}else i+=1;(!s||i>=e.length)&&o.push(e.substring(t,e.length))}return o}(a)){const t=c(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=p(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(p).join("; ")}}},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},88480,e=>{"use strict";var t=e.i(239441),r=e.i(449055),n=e.i(391328),a=e.i(6352),s=e.i(746789),o=e.i(423437),i=e.i(178820),l=e.i(569191),u=e.i(576251),p=e.i(199962),d=e.i(547545),c=e.i(664046),h=e.i(235691),f=e.i(298907),m=e.i(110763),g=e.i(193695);e.i(673243);var x=e.i(236167),v=e.i(766576),y=e.i(612069),R=e.i(463857);async function w(e,{params:t}){let{toolId:r}=await t,n=await (0,y.getToolById)(r);if(!n)return v.NextResponse.json({error:"Tool not found"},{status:404});let a=await (0,R.getInstalledTool)(r);return v.NextResponse.json({tool:n,installed:a??null})}async function C(e,{params:t}){let{toolId:r}=await t,n=await (0,y.getToolById)(r);if(!n)return v.NextResponse.json({error:"Tool not found"},{status:404});if(n.comingSoon)return v.NextResponse.json({error:`${n.name} is coming soon.`},{status:400});if(await (0,R.isToolInstalled)(r))return v.NextResponse.json({status:"already-installed"});try{return await (0,R.installTool)(r),v.NextResponse.json({status:"installed"},{status:201})}catch(t){let e=t instanceof Error?t.message:"Install failed.";return(e.includes("npm install")||e.includes("Command failed")||e.includes("npm ERR!"))&&(console.error("[Marketplace] Tool installation failed:",e),e="Failed to install the tool. Please check your connection or try again later."),v.NextResponse.json({error:e},{status:500})}}async function A(e,{params:t}){let{toolId:r}=await t;return await (0,R.uninstallTool)(r),v.NextResponse.json({status:"uninstalled"})}e.s(["DELETE",0,A,"GET",0,w,"POST",0,C,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],764975);var b=e.i(764975);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/marketplace/[toolId]/route",pathname:"/api/marketplace/[toolId]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/marketplace/[toolId]/route.ts",nextConfigOutput:"standalone",userland:b,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:k,serverHooks:S}=E;async function j(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),E.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/marketplace/[toolId]/route";v=v.replace(/\/index$/,"")||"/";let y=await E.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,deploymentId:w,params:C,nextConfig:A,parsedUrl:b,isDraftMode:_,prerenderManifest:k,routerServerContext:S,isOnDemandRevalidate:j,revalidateOnlyGenerated:O,resolvedPathname:T,clientReferenceManifest:N,serverActionsManifest:P}=y,q=(0,i.normalizeAppPath)(v),I=!!(k.dynamicRoutes[q]||k.routes[T]),$=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,b,!1):t.end("This page could not be found"),null);if(I&&!_){let e=!!k.routes[T],t=k.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await $();throw new g.NoFallbackError}}let D=null;!I||E.isDev||_||(D="/index"===(D=T)?"/":D);let M=!0===E.isDev||!I,U=I&&!M;P&&N&&(0,o.setManifestsSingleton)({page:v,clientReferenceManifest:N,serverActionsManifest:P});let H=e.method||"GET",B=(0,s.getTracer)(),F=B.getActiveScopeSpan(),L=!!(null==S?void 0:S.isWrappedByNextServer),K=!!(0,a.getRequestMeta)(e,"minimalMode"),G=(0,a.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,A,k,K);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let z={params:C,previewProps:k.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:M,incrementalCache:G,cacheLifeProfiles:A.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>E.onRequestError(e,t,n,a,S)},sharedContext:{buildId:R,deploymentId:w}},V=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let a,o=async e=>E.handle(X,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=B.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.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),a&&a!==e&&(a.setAttribute("http.route",n),a.updateName(t))}else e.updateName(`${H} ${v}`)}),i=async a=>{var s,i;let l=async({previousCacheEntry:r})=>{try{if(!K&&j&&O&&!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=z.renderOpts.fetchMetrics;let i=z.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let l=z.renderOpts.collectedTags;if(!I)return await (0,c.sendResponse)(V,W,s,z.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,n=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:x.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 E.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:j})},!1,S),t}},u=await E.handleResponse({req:e,nextConfig:A,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:K});if(!I)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(i=u.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",j?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&I||p.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(V,W,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};L&&F?await i(F):(a=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(p.BaseServerSpan.handleRequest,{spanName:`${H} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},i),void 0,!L))}catch(t){if(t instanceof g.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:j})},!1,S),I)throw t;return await (0,c.sendResponse)(V,W,new Response(null,{status:500})),null}}e.s(["handler",0,j,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:k})},"routeModule",0,E,"serverHooks",0,S,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,k],88480)}];
1
+ module.exports=[750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},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"))},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"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},797569,(e,t,r)=>{"use strict";t.exports=e.r(918622)},243712,(e,t,r)=>{"use strict";t.exports=e.r(797569).vendored["react-rsc"].React},938516,(e,t,r)=>{"use strict";var n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i={},l={RequestCookies:()=>m,ResponseCookies:()=>g,parseCookie:()=>d,parseSetCookie:()=>c,stringifyCookie:()=>p};for(var u in l)n(i,u,{get:l[u],enumerable:!0});function p(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function d(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function c(e){if(!e)return;let[[t,r],...n]=d(e),{domain:a,expires:s,httponly:o,maxage:i,path:l,samesite:u,secure:p,partitioned:c,priority:m}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,x,v={name:t,value:decodeURIComponent(r),domain:a,...s&&{expires:new Date(s)},...o&&{httpOnly:!0},..."string"==typeof i&&{maxAge:Number(i)},path:l,...u&&{sameSite:h.includes(g=(g=u).toLowerCase())?g:void 0},...p&&{secure:!0},...m&&{priority:f.includes(x=(x=m).toLowerCase())?x:void 0},...c&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of s(t))o.call(e,i)||void 0===i||n(e,i,{get:()=>t[i],enumerable:!(r=a(t,i))||r.enumerable});return e})(n({},"__esModule",{value:!0}),i);var h=["strict","lax","none"],f=["low","medium","high"],m=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of d(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>p(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>p(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},g=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,s,o=[],i=0;function l(){for(;i<e.length&&/\s/.test(e.charAt(i));)i+=1;return i<e.length}for(;i<e.length;){for(t=i,s=!1;l();)if(","===(r=e.charAt(i))){for(n=i,i+=1,l(),a=i;i<e.length&&"="!==(r=e.charAt(i))&&";"!==r&&","!==r;)i+=1;i<e.length&&"="===e.charAt(i)?(s=!0,i=a,o.push(e.substring(t,n)),t=i):i=n+1}else i+=1;(!s||i>=e.length)&&o.push(e.substring(t,e.length))}return o}(a)){const t=c(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=p(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(p).join("; ")}}},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},88480,e=>{"use strict";var t=e.i(239441),r=e.i(449055),n=e.i(391328),a=e.i(6352),s=e.i(746789),o=e.i(423437),i=e.i(178820),l=e.i(569191),u=e.i(576251),p=e.i(199962),d=e.i(547545),c=e.i(664046),h=e.i(235691),f=e.i(298907),m=e.i(110763),g=e.i(193695);e.i(673243);var x=e.i(236167),v=e.i(766576),y=e.i(612069),R=e.i(463857);async function w(e,{params:t}){let{toolId:r}=await t,n=await (0,y.getToolById)(r);if(!n)return v.NextResponse.json({error:"Tool not found"},{status:404});let a=await (0,R.getInstalledTool)(r);return v.NextResponse.json({tool:n,installed:a??null})}async function C(e,{params:t}){let{toolId:r}=await t,n=await (0,y.getToolById)(r);if(!n)return v.NextResponse.json({error:"Tool not found"},{status:404});if(n.comingSoon)return v.NextResponse.json({error:`${n.name} is coming soon.`},{status:400});if(await (0,R.isToolInstalled)(r))return v.NextResponse.json({status:"already-installed"});try{return await (0,R.installTool)(r),v.NextResponse.json({status:"installed"},{status:201})}catch(t){let e=t instanceof Error?t.message:"Install failed.";return(e.includes("npm install")||e.includes("Command failed")||e.includes("npm ERR!"))&&(console.error("[Marketplace] Tool installation failed:",e),e="Failed to install the tool. Please check your connection or try again later."),v.NextResponse.json({error:e},{status:500})}}async function _(e,{params:t}){let{toolId:r}=await t;return await (0,R.uninstallTool)(r),v.NextResponse.json({status:"uninstalled"})}e.s(["DELETE",0,_,"GET",0,w,"POST",0,C,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],764975);var A=e.i(764975);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/marketplace/[toolId]/route",pathname:"/api/marketplace/[toolId]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/marketplace/[toolId]/route.ts",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:k,serverHooks:S}=b;async function j(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),b.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/marketplace/[toolId]/route";v=v.replace(/\/index$/,"")||"/";let y=await b.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,deploymentId:w,params:C,nextConfig:_,parsedUrl:A,isDraftMode:E,prerenderManifest:k,routerServerContext:S,isOnDemandRevalidate:j,revalidateOnlyGenerated:O,resolvedPathname:T,clientReferenceManifest:N,serverActionsManifest:P}=y,q=(0,i.normalizeAppPath)(v),I=!!(k.dynamicRoutes[q]||k.routes[T]),$=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,A,!1):t.end("This page could not be found"),null);if(I&&!E){let e=!!k.routes[T],t=k.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await $();throw new g.NoFallbackError}}let D=null;!I||b.isDev||E||(D="/index"===(D=T)?"/":D);let M=!0===b.isDev||!I,U=I&&!M;P&&N&&(0,o.setManifestsSingleton)({page:v,clientReferenceManifest:N,serverActionsManifest:P});let H=e.method||"GET",B=(0,s.getTracer)(),F=B.getActiveScopeSpan(),L=!!(null==S?void 0:S.isWrappedByNextServer),K=!!(0,a.getRequestMeta)(e,"minimalMode"),G=(0,a.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,_,k,K);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let z={params:C,previewProps:k.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:M,incrementalCache:G,cacheLifeProfiles:_.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>b.onRequestError(e,t,n,a,S)},sharedContext:{buildId:R,deploymentId:w}},V=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let a,o=async e=>b.handle(X,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=B.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.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),a&&a!==e&&(a.setAttribute("http.route",n),a.updateName(t))}else e.updateName(`${H} ${v}`)}),i=async a=>{var s,i;let l=async({previousCacheEntry:r})=>{try{if(!K&&j&&O&&!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=z.renderOpts.fetchMetrics;let i=z.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let l=z.renderOpts.collectedTags;if(!I)return await (0,c.sendResponse)(V,W,s,z.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,n=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:x.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 b.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:j})},!1,S),t}},u=await b.handleResponse({req:e,nextConfig:_,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:K});if(!I)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(i=u.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",j?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&I||p.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(V,W,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};L&&F?await i(F):(a=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(p.BaseServerSpan.handleRequest,{spanName:`${H} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},i),void 0,!L))}catch(t){if(t instanceof g.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:j})},!1,S),I)throw t;return await (0,c.sendResponse)(V,W,new Response(null,{status:500})),null}}e.s(["handler",0,j,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:k})},"routeModule",0,b,"serverHooks",0,S,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,k],88480)},484620,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0c80bj0._.js"].map(t=>e.l(t))).then(()=>t(504740)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0g_q-44._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1wy6wes._.js.map