larkup 0.1.28 → 0.1.30

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 (163) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/diagnostics/route-bundle-stats.json +22 -22
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/_not-found.html +1 -1
  17. package/.next/server/app/_not-found.rsc +16 -16
  18. package/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
  19. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  20. package/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  22. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  23. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  24. package/.next/server/app/analytics/page.js.nft.json +1 -1
  25. package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/analytics.html +1 -1
  27. package/.next/server/app/analytics.rsc +17 -17
  28. package/.next/server/app/analytics.segments/_full.segment.rsc +17 -17
  29. package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
  30. package/.next/server/app/analytics.segments/_index.segment.rsc +11 -11
  31. package/.next/server/app/analytics.segments/_tree.segment.rsc +1 -1
  32. package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +3 -3
  33. package/.next/server/app/analytics.segments/analytics.segment.rsc +3 -3
  34. package/.next/server/app/api/chat/route.js +8 -9
  35. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  36. package/.next/server/app/api/config/test-provider/route.js +4 -4
  37. package/.next/server/app/api/config/test-provider/route.js.nft.json +1 -1
  38. package/.next/server/app/api/config/verify/route.js +3 -3
  39. package/.next/server/app/api/config/verify/route.js.nft.json +1 -1
  40. package/.next/server/app/api/marketplace/[toolId]/route.js +1 -1
  41. package/.next/server/app/api/marketplace/[toolId]/route.js.nft.json +1 -1
  42. package/.next/server/app/api/marketplace/route.js +1 -1
  43. package/.next/server/app/api/marketplace/route.js.nft.json +1 -1
  44. package/.next/server/app/api/media/process/route.js +2 -2
  45. package/.next/server/app/api/media/process/route.js.nft.json +1 -1
  46. package/.next/server/app/api/media/route.js +1 -1
  47. package/.next/server/app/api/media/route.js.nft.json +1 -1
  48. package/.next/server/app/chat/page.js.nft.json +1 -1
  49. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/chat.html +1 -1
  51. package/.next/server/app/chat.rsc +17 -17
  52. package/.next/server/app/chat.segments/_full.segment.rsc +17 -17
  53. package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
  54. package/.next/server/app/chat.segments/_index.segment.rsc +11 -11
  55. package/.next/server/app/chat.segments/_tree.segment.rsc +1 -1
  56. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +3 -3
  57. package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
  58. package/.next/server/app/data/page.js.nft.json +1 -1
  59. package/.next/server/app/data/page_client-reference-manifest.js +1 -1
  60. package/.next/server/app/data.html +1 -1
  61. package/.next/server/app/data.rsc +17 -17
  62. package/.next/server/app/data.segments/_full.segment.rsc +17 -17
  63. package/.next/server/app/data.segments/_head.segment.rsc +4 -4
  64. package/.next/server/app/data.segments/_index.segment.rsc +11 -11
  65. package/.next/server/app/data.segments/_tree.segment.rsc +1 -1
  66. package/.next/server/app/data.segments/data/__PAGE__.segment.rsc +3 -3
  67. package/.next/server/app/data.segments/data.segment.rsc +3 -3
  68. package/.next/server/app/index.html +1 -1
  69. package/.next/server/app/index.rsc +16 -16
  70. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  71. package/.next/server/app/index.segments/_full.segment.rsc +16 -16
  72. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  73. package/.next/server/app/index.segments/_index.segment.rsc +11 -11
  74. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  75. package/.next/server/app/page.js.nft.json +1 -1
  76. package/.next/server/app/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/settings/page.js.nft.json +1 -1
  78. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  79. package/.next/server/app/settings.html +1 -1
  80. package/.next/server/app/settings.rsc +18 -18
  81. package/.next/server/app/settings.segments/_full.segment.rsc +18 -18
  82. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  83. package/.next/server/app/settings.segments/_index.segment.rsc +11 -11
  84. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  85. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  86. package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  87. package/.next/server/chunks/0598_next_dist_esm_build_templates_app-route_0kbcuk-.js +4 -3
  88. package/.next/server/chunks/0598_next_dist_esm_build_templates_app-route_1f4h7rr.js +1 -1
  89. package/.next/server/chunks/[root-of-the-server]__067hiof._.js +18 -6
  90. package/.next/server/chunks/[root-of-the-server]__0a_0ywc._.js +18 -6
  91. package/.next/server/chunks/[root-of-the-server]__0c80bj0._.js +3 -0
  92. package/.next/server/chunks/{[root-of-the-server]__1m7m2x7._.js → [root-of-the-server]__0drkoru._.js} +2 -2
  93. package/.next/server/chunks/{[root-of-the-server]__0vnm6_8._.js → [root-of-the-server]__0kmh740._.js} +6 -6
  94. package/.next/server/chunks/{[root-of-the-server]__0ou70-v._.js → [root-of-the-server]__0nfenje._.js} +1 -1
  95. package/.next/server/chunks/[root-of-the-server]__0omd-x0._.js +3 -0
  96. package/.next/server/chunks/[root-of-the-server]__0u17zp8._.js +18 -6
  97. package/.next/server/chunks/{[root-of-the-server]__1s1zui-._.js → [root-of-the-server]__10v5qsi._.js} +1 -1
  98. package/.next/server/chunks/{[root-of-the-server]__1xuhh_i._.js → [root-of-the-server]__16jk_se._.js} +2 -2
  99. package/.next/server/chunks/[root-of-the-server]__1ahdfq9._.js +19 -7
  100. package/.next/server/chunks/[root-of-the-server]__1idgvjh._.js +172 -0
  101. package/.next/server/chunks/[root-of-the-server]__1ip05r1._.js +1 -1
  102. package/.next/server/chunks/[root-of-the-server]__1jc54o2._.js +3 -0
  103. package/.next/server/chunks/{[root-of-the-server]__0748x7h._.js → [root-of-the-server]__1lhls88._.js} +1 -1
  104. package/.next/server/chunks/[root-of-the-server]__1o3rcbz._.js +2 -1
  105. package/.next/server/chunks/{[root-of-the-server]__10gcb7d._.js → [root-of-the-server]__1qh2h5v._.js} +2 -2
  106. package/.next/server/chunks/[root-of-the-server]__1s9is1o._.js +2 -1
  107. package/.next/server/chunks/[root-of-the-server]__1vsvck0._.js +18 -6
  108. package/.next/server/chunks/{[root-of-the-server]__0g_q-44._.js → [root-of-the-server]__1wy6wes._.js} +2 -2
  109. package/.next/server/chunks/[root-of-the-server]__1zptg4z._.js +2 -1
  110. package/.next/server/chunks/{packages_1f4dx4h._.js → packages_1ggqion._.js} +2 -2
  111. package/.next/server/chunks/packages_core_src_generator_server-runtime_ts_1_68l7t._.js +4 -4
  112. package/.next/server/chunks/packages_marketplace_src_125_g2p._.js +1 -1
  113. package/.next/server/chunks/{packages_vector-stores_src_064-9ay._.js → packages_vector-stores_src_1fib7u-._.js} +2 -2
  114. package/.next/server/chunks/ssr/{[root-of-the-server]__0wdatpx._.js → [root-of-the-server]__0m21fli._.js} +1 -1
  115. package/.next/server/chunks/ssr/{[root-of-the-server]__1r9ap67._.js → [root-of-the-server]__0t8ud_u._.js} +1 -1
  116. package/.next/server/chunks/ssr/{[root-of-the-server]__046ldu_._.js → [root-of-the-server]__0xyo3ni._.js} +1 -1
  117. package/.next/server/chunks/ssr/{_0k81--x._.js → _0ckxy33._.js} +2 -2
  118. package/.next/server/chunks/ssr/_169pdlf._.js +6 -6
  119. package/.next/server/chunks/ssr/_1hetwwu._.js +4 -3
  120. package/.next/server/chunks/ssr/_1yqlx1m._.js +1 -1
  121. package/.next/server/chunks/ssr/apps_web_components_analytics_analytics-dashboard_tsx_1056-z3._.js +1 -1
  122. package/.next/server/chunks/ssr/apps_web_lib_pdf-images_ts_13-l5wa._.js +1 -1
  123. package/.next/server/functions-config-manifest.json +3 -1
  124. package/.next/server/middleware-build-manifest.js +3 -3
  125. package/.next/server/pages/404.html +1 -1
  126. package/.next/server/pages/500.html +1 -1
  127. package/.next/static/chunks/{3bpr59xr-_rv7.js → 0ge3nirnmx_np.js} +1 -1
  128. package/.next/static/chunks/{0rgt7-bqxonef.js → 1uzf7x2okeuab.js} +6 -6
  129. package/.next/static/chunks/{3g_wl1fri6jb-.js → 21_6-9hjj2i68.js} +1 -1
  130. package/.next/static/chunks/2ib3e0xrrdait.js +1 -0
  131. package/.next/static/chunks/2jrpgzxyrmuqp.js +121 -0
  132. package/.next/static/chunks/390ds7l_plpmd.js +1 -0
  133. package/.next/static/chunks/{3een1tiktxr6a.js → 3zw6tgf7mxo39.js} +1 -1
  134. package/CHANGELOG.md +22 -0
  135. package/app/api/chat/route.ts +1 -0
  136. package/app/api/chat/tools.ts +5 -1
  137. package/app/api/config/test-provider/route.ts +16 -18
  138. package/app/api/config/verify/route.ts +5 -7
  139. package/app/api/describe-image/route.ts +12 -4
  140. package/app/api/firecrawl/local/route.ts +1 -1
  141. package/app/api/jobs/route.ts +1 -2
  142. package/app/api/marketplace/[toolId]/route.ts +1 -0
  143. package/components/analytics/analytics-dashboard.tsx +1 -1
  144. package/components/data/firecrawl-notice.tsx +49 -98
  145. package/components/data/media-panel.tsx +34 -5
  146. package/components/data/scrape-panel.tsx +17 -1
  147. package/components/data/upload-panel.tsx +2 -1
  148. package/components/onboarding/welcome-screen.tsx +45 -15
  149. package/components/settings/general-section.tsx +15 -10
  150. package/components/settings/marketplace-section.tsx +14 -2
  151. package/components/settings/server-section.tsx +3 -3
  152. package/lib/error-formatter.ts +19 -4
  153. package/lib/pdf-images.ts +20 -5
  154. package/package.json +7 -7
  155. package/.next/server/chunks/[root-of-the-server]__00r1kgp._.js +0 -143
  156. package/.next/server/chunks/[root-of-the-server]__064gb96._.js +0 -3
  157. package/.next/server/chunks/_0ce9vcg._.js +0 -32
  158. package/.next/static/chunks/00z1f-adeq1lg.js +0 -1
  159. package/.next/static/chunks/0k405nomf6s4e.js +0 -120
  160. package/.next/static/chunks/13hmtkhrbm4t3.js +0 -1
  161. /package/.next/static/{bDwMIFYSTVBKUJkJJx77o → Laf7YhpONHOZXSCw6POiL}/_buildManifest.js +0 -0
  162. /package/.next/static/{bDwMIFYSTVBKUJkJJx77o → Laf7YhpONHOZXSCw6POiL}/_clientMiddlewareManifest.js +0 -0
  163. /package/.next/static/{bDwMIFYSTVBKUJkJJx77o → Laf7YhpONHOZXSCw6POiL}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[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,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,a={},l={RequestCookies:()=>g,ResponseCookies:()=>m,parseCookie:()=>d,parseSetCookie:()=>p,stringifyCookie:()=>u};for(var c in l)n(a,c,{get:l[c],enumerable:!0});function u(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,o]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=o?o:"true"))}catch{}}return t}function p(e){if(!e)return;let[[t,r],...n]=d(e),{domain:o,expires:i,httponly:s,maxage:a,path:l,samesite:c,secure:u,partitioned:p,priority:g}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var m,y,v={name:t,value:decodeURIComponent(r),domain:o,...i&&{expires:new Date(i)},...s&&{httpOnly:!0},..."string"==typeof a&&{maxAge:Number(a)},path:l,...c&&{sameSite:f.includes(m=(m=c).toLowerCase())?m:void 0},...u&&{secure:!0},...g&&{priority:h.includes(y=(y=g).toLowerCase())?y:void 0},...p&&{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 a of i(t))s.call(e,a)||void 0===a||n(e,a,{get:()=>t[a],enumerable:!(r=o(t,a))||r.enumerable});return e})(n({},"__esModule",{value:!0}),a);var f=["strict","lax","none"],h=["low","medium","high"],g=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])=>u(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])=>u(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("; ")}},m=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const o=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(o)?o:function(e){if(!e)return[];var t,r,n,o,i,s=[],a=0;function l(){for(;a<e.length&&/\s/.test(e.charAt(a));)a+=1;return a<e.length}for(;a<e.length;){for(t=a,i=!1;l();)if(","===(r=e.charAt(a))){for(n=a,a+=1,l(),o=a;a<e.length&&"="!==(r=e.charAt(a))&&";"!==r&&","!==r;)a+=1;a<e.length&&"="===e.charAt(a)?(i=!0,a=o,s.push(e.substring(t,n)),t=a):a=n+1}else a+=1;(!i||a>=e.length)&&s.push(e.substring(t,e.length))}return s}(o)){const t=p(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,o=this._parsed;return o.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=u(r);t.append("set-cookie",e)}}(o,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(u).join("; ")}}},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 n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,a={},l={VercelOidcTokenError:()=>u};for(var c in l)n(a,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of i(t))s.call(e,a)||void 0===a||n(e,a,{get:()=>t[a],enumerable:!(r=o(t,a))||r.enumerable});return e})(n({},"__esModule",{value:!0}),a);class u extends Error{constructor(e,t){super(e),this.name="VercelOidcTokenError",this.cause=t}toString(){return this.cause?`${this.name}: ${this.message}: ${this.cause}`:`${this.name}: ${this.message}`}}},33015,(e,t,r)=>{"use strict";var n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,a={},l={AccessTokenMissingError:()=>u,RefreshAccessTokenFailedError:()=>d};for(var c in l)n(a,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of i(t))s.call(e,a)||void 0===a||n(e,a,{get:()=>t[a],enumerable:!(r=o(t,a))||r.enumerable});return e})(n({},"__esModule",{value:!0}),a);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 n=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of s(t))l.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},u=(e,t,r)=>(r=null!=e?n(a(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)),d={},p={findRootDir:()=>v,getUserDataDir:()=>b};for(var f in p)o(d,f,{get:p[f],enumerable:!0});t.exports=c(o({},"__esModule",{value:!0}),d);var h=u(e.r(814747)),g=u(e.r(522734)),m=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(g.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 b(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(m.default.platform()){case"darwin":return h.default.join(m.default.homedir(),"Library/Application Support");case"linux":return h.default.join(m.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 n=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of s(t))l.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},u=(e,t,r)=>(r=null!=e?n(a(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)),d={},p={isValidAccessToken:()=>w,readAuthConfig:()=>v,writeAuthConfig:()=>b};for(var f in p)o(d,f,{get:p[f],enumerable:!0});t.exports=c(o({},"__esModule",{value:!0}),d);var h=u(e.r(522734)),g=u(e.r(814747)),m=e.r(65048);function y(){let e=(0,m.getVercelDataDir)();if(!e)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return g.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 b(e){let t=y(),r=g.dirname(t);h.existsSync(r)||h.mkdirSync(r,{mode:504,recursive:!0}),h.writeFileSync(t,JSON.stringify(e,null,2),{mode:384})}function w(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 n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,a={},l={processTokenResponse:()=>g,refreshTokenRequest:()=>h};for(var c in l)n(a,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of i(t))s.call(e,a)||void 0===a||n(e,a,{get:()=>t[a],enumerable:!(r=o(t,a))||r.enumerable});return e})(n({},"__esModule",{value:!0}),a);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 g(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 n=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of s(t))l.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},u=(e,t,r)=>(r=null!=e?n(a(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)),d={},p={assertVercelOidcTokenResponse:()=>j,findProjectInfo:()=>_,getTokenPayload:()=>P,getVercelDataDir:()=>x,getVercelOidcToken:()=>k,getVercelToken:()=>O,isExpired:()=>R,loadToken:()=>E,saveToken:()=>A};for(var f in p)o(d,f,{get:p[f],enumerable:!0});t.exports=c(o({},"__esModule",{value:!0}),d);var h=u(e.r(814747)),g=u(e.r(522734)),m=e.r(310470),y=e.r(250216),v=e.r(775427),b=e.r(371746),w=e.r(33015);function x(){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 w.AccessTokenMissingError;if((0,v.isValidAccessToken)(t,e?.expirationBufferMs))return t.token;if(!t.refreshToken)throw(0,v.writeAuthConfig)({}),new w.RefreshAccessTokenFailedError("No refresh token available");try{let e=await (0,b.refreshTokenRequest)({refresh_token:t.refreshToken}),[r,n]=await (0,b.processTokenResponse)(e);if(r||!n)throw(0,v.writeAuthConfig)({}),new w.RefreshAccessTokenFailedError(r);let o={token:n.access_token,expiresAt:Math.floor(Date.now()/1e3)+n.expires_in};return n.refresh_token&&(o.refreshToken=n.refresh_token),(0,v.writeAuthConfig)(o),o.token}catch(e){if((0,v.writeAuthConfig)({}),e instanceof w.AccessTokenMissingError||e instanceof w.RefreshAccessTokenFailedError)throw e;throw new w.RefreshAccessTokenFailedError(e)}}async function k(e,t,r){let n=`https://api.vercel.com/v1/projects/${t}/token?source=vercel-oidc-refresh${r?`&teamId=${r}`:""}`,o=await fetch(n,{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!o.ok)throw new m.VercelOidcTokenError(`Failed to refresh OIDC token: ${o.statusText}`);let i=await o.json();return j(i),i}function j(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 m.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let t=h.join(e,".vercel","project.json");if(!g.existsSync(t))throw new m.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let r=JSON.parse(g.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 A(e,t){let r=(0,y.getUserDataDir)();if(!r)throw new m.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let n=h.join(r,"com.vercel.token",`${t}.json`),o=JSON.stringify(e);g.mkdirSync(h.dirname(n),{mode:504,recursive:!0}),g.writeFileSync(n,o),g.chmodSync(n,432)}function E(e){let t=(0,y.getUserDataDir)();if(!t)throw new m.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let r=h.join(t,"com.vercel.token",`${e}.json`);if(!g.existsSync(r))return null;let n=JSON.parse(g.readFileSync(r,"utf8"));return j(n),n}function P(e){let t=e.split(".");if(3!==t.length)throw new m.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let r=t[1].replace(/-/g,"+").replace(/_/g,"/"),n=r.padEnd(r.length+(4-r.length%4)%4,"=");return JSON.parse(Buffer.from(n,"base64").toString("utf8"))}function R(e,t=0){return 1e3*e.exp<Date.now()+t}},600373,e=>{"use strict";var t=e.i(416487),r=e.i(256485),n=e.i(528909),o=e.i(733164),i=e.i(731699),s=e.i(235072),a=e.i(344963);e.s(["getAIModel",0,function(e){let l=e.embeddingModelId;l.includes("/")&&(l=l.split("/")[1]);let c=e.embeddingApiKey?.trim()||"NO_API_KEY_PROVIDED_FROM_UI";if(e.embeddingModelId.startsWith("custom:")){let t=e.embeddingModelId.slice(7),n=(e.customEmbeddings??[]).find(e=>e.modelName===t);if(n)return(0,r.createOpenAICompatible)({name:"custom_provider",baseURL:n.baseUrl,apiKey:n.apiKey||e.embeddingApiKey||void 0}).embeddingModel(n.modelName)}return"deepseek"===e.embeddingProvider?(0,n.createDeepSeek)({apiKey:c}).embeddingModel(l):"google"===e.embeddingProvider?(0,o.createGoogleGenerativeAI)({apiKey:c}).textEmbeddingModel(l):"cohere"===e.embeddingProvider?(0,i.createCohere)({apiKey:c}).embedding(l):"mistral"===e.embeddingProvider?(0,s.createMistral)({apiKey:c}).embedding(l):"vercel_ai_gateway"===e.embeddingProvider?(0,a.createGateway)({apiKey:c}).embedding(e.embeddingModelId):(0,t.createOpenAI)({apiKey:c}).embedding(l)}])},243781,e=>{"use strict";var t=e.i(239441),r=e.i(449055),n=e.i(391328),o=e.i(6352),i=e.i(746789),s=e.i(423437),a=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),g=e.i(110763),m=e.i(193695);e.i(673243);var y=e.i(236167),v=e.i(766576),b=e.i(214312),w=e.i(600373);async function x(e){let t;try{t=await e.json()}catch{return v.NextResponse.json({error:"Invalid JSON body"},{status:400})}let{embeddingProvider:r,embeddingModelId:n}=t;if(!r||!n)return v.NextResponse.json({error:"Missing required fields: embeddingProvider or embeddingModelId"},{status:400});try{let e=(0,w.getAIModel)(t),{embedding:r}=await (0,b.embed)({model:e,value:"test connection"});return v.NextResponse.json({success:!0,dimensions:r.length})}catch(e){return v.NextResponse.json({error:e instanceof Error?e.message:"Connection failed. Please check your API key."},{status:400})}}e.s(["POST",0,x,"runtime",0,"nodejs"],730004);var O=e.i(730004);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/config/test-provider/route",pathname:"/api/config/test-provider",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/config/test-provider/route.ts",nextConfigOutput:"standalone",userland:O,...{}}),{workAsyncStorage:j,workUnitAsyncStorage:_,serverHooks:A}=k;async function E(e,t,n){n.requestMeta&&(0,o.setRequestMeta)(e,n.requestMeta),k.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/config/test-provider/route";v=v.replace(/\/index$/,"")||"/";let b=await k.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:O,nextConfig:j,parsedUrl:_,isDraftMode:A,prerenderManifest:E,routerServerContext:P,isOnDemandRevalidate:R,revalidateOnlyGenerated:T,resolvedPathname:C,clientReferenceManifest:S,serverActionsManifest:D}=b,M=(0,a.normalizeAppPath)(v),I=!!(E.dynamicRoutes[M]||E.routes[C]),N=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,_,!1):t.end("This page could not be found"),null);if(I&&!A){let e=!!E.routes[C],t=E.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(j.adapterPath)return await N();throw new m.NoFallbackError}}let $=null;!I||k.isDev||A||($="/index"===($=C)?"/":$);let U=!0===k.isDev||!I,q=I&&!U;D&&S&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:S,serverActionsManifest:D});let V=e.method||"GET",F=(0,i.getTracer)(),H=F.getActiveScopeSpan(),K=!!(null==P?void 0:P.isWrappedByNextServer),L=!!(0,o.getRequestMeta)(e,"minimalMode"),B=(0,o.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,j,E,L);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let J={params:O,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:U,incrementalCache:B,cacheLifeProfiles:j.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,o)=>k.onRequestError(e,t,n,o,P)},sharedContext:{buildId:w,deploymentId:x}},G=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(G,(0,c.signalFromNodeResponse)(t));try{let o,s=async e=>k.handle(X,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==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 n=r.get("next.route");if(n){let t=`${V} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),o&&o!==e&&(o.setAttribute("http.route",n),o.updateName(t))}else e.updateName(`${V} ${v}`)}),a=async o=>{var i,a;let l=async({previousCacheEntry:r})=>{try{if(!L&&R&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(o);e.fetchMetrics=J.renderOpts.fetchMetrics;let a=J.renderOpts.pendingWaitUntil;a&&n.waitUntil&&(n.waitUntil(a),a=void 0);let l=J.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(G,z,i,J.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,n=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:R})},!1,P),t}},c=await k.handleResponse({req:e,nextConfig:j,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:R,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:L});if(!I)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(a=c.value)?void 0:a.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",R?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&I||u.delete(g.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)(G,z,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};K&&H?await a(H):(o=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${V} ${v}`,kind:i.SpanKind.SERVER,attributes:{"http.method":V,"http.target":e.url}},a),void 0,!K))}catch(t){if(t instanceof m.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:R})},!1,P),I)throw t;return await (0,p.sendResponse)(G,z,new Response(null,{status:500})),null}}e.s(["handler",0,E,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:_})},"routeModule",0,k,"serverHooks",0,A,"workAsyncStorage",0,j,"workUnitAsyncStorage",0,_],243781)},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)))}];
1
+ module.exports=[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,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,a={},l={RequestCookies:()=>g,ResponseCookies:()=>m,parseCookie:()=>d,parseSetCookie:()=>p,stringifyCookie:()=>u};for(var c in l)n(a,c,{get:l[c],enumerable:!0});function u(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,o]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=o?o:"true"))}catch{}}return t}function p(e){if(!e)return;let[[t,r],...n]=d(e),{domain:o,expires:i,httponly:s,maxage:a,path:l,samesite:c,secure:u,partitioned:p,priority:g}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var m,y,v={name:t,value:decodeURIComponent(r),domain:o,...i&&{expires:new Date(i)},...s&&{httpOnly:!0},..."string"==typeof a&&{maxAge:Number(a)},path:l,...c&&{sameSite:f.includes(m=(m=c).toLowerCase())?m:void 0},...u&&{secure:!0},...g&&{priority:h.includes(y=(y=g).toLowerCase())?y:void 0},...p&&{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 a of i(t))s.call(e,a)||void 0===a||n(e,a,{get:()=>t[a],enumerable:!(r=o(t,a))||r.enumerable});return e})(n({},"__esModule",{value:!0}),a);var f=["strict","lax","none"],h=["low","medium","high"],g=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])=>u(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])=>u(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("; ")}},m=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const o=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(o)?o:function(e){if(!e)return[];var t,r,n,o,i,s=[],a=0;function l(){for(;a<e.length&&/\s/.test(e.charAt(a));)a+=1;return a<e.length}for(;a<e.length;){for(t=a,i=!1;l();)if(","===(r=e.charAt(a))){for(n=a,a+=1,l(),o=a;a<e.length&&"="!==(r=e.charAt(a))&&";"!==r&&","!==r;)a+=1;a<e.length&&"="===e.charAt(a)?(i=!0,a=o,s.push(e.substring(t,n)),t=a):a=n+1}else a+=1;(!i||a>=e.length)&&s.push(e.substring(t,e.length))}return s}(o)){const t=p(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,o=this._parsed;return o.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=u(r);t.append("set-cookie",e)}}(o,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(u).join("; ")}}},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 n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,a={},l={VercelOidcTokenError:()=>u};for(var c in l)n(a,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of i(t))s.call(e,a)||void 0===a||n(e,a,{get:()=>t[a],enumerable:!(r=o(t,a))||r.enumerable});return e})(n({},"__esModule",{value:!0}),a);class u extends Error{constructor(e,t){super(e),this.name="VercelOidcTokenError",this.cause=t}toString(){return this.cause?`${this.name}: ${this.message}: ${this.cause}`:`${this.name}: ${this.message}`}}},33015,(e,t,r)=>{"use strict";var n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,a={},l={AccessTokenMissingError:()=>u,RefreshAccessTokenFailedError:()=>d};for(var c in l)n(a,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of i(t))s.call(e,a)||void 0===a||n(e,a,{get:()=>t[a],enumerable:!(r=o(t,a))||r.enumerable});return e})(n({},"__esModule",{value:!0}),a);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 n=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of s(t))l.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},u=(e,t,r)=>(r=null!=e?n(a(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)),d={},p={findRootDir:()=>v,getUserDataDir:()=>b};for(var f in p)o(d,f,{get:p[f],enumerable:!0});t.exports=c(o({},"__esModule",{value:!0}),d);var h=u(e.r(814747)),g=u(e.r(522734)),m=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(g.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 b(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(m.default.platform()){case"darwin":return h.default.join(m.default.homedir(),"Library/Application Support");case"linux":return h.default.join(m.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 n=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of s(t))l.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},u=(e,t,r)=>(r=null!=e?n(a(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)),d={},p={isValidAccessToken:()=>w,readAuthConfig:()=>v,writeAuthConfig:()=>b};for(var f in p)o(d,f,{get:p[f],enumerable:!0});t.exports=c(o({},"__esModule",{value:!0}),d);var h=u(e.r(522734)),g=u(e.r(814747)),m=e.r(65048);function y(){let e=(0,m.getVercelDataDir)();if(!e)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return g.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 b(e){let t=y(),r=g.dirname(t);h.existsSync(r)||h.mkdirSync(r,{mode:504,recursive:!0}),h.writeFileSync(t,JSON.stringify(e,null,2),{mode:384})}function w(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 n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,a={},l={processTokenResponse:()=>g,refreshTokenRequest:()=>h};for(var c in l)n(a,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of i(t))s.call(e,a)||void 0===a||n(e,a,{get:()=>t[a],enumerable:!(r=o(t,a))||r.enumerable});return e})(n({},"__esModule",{value:!0}),a);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 g(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 n=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of s(t))l.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},u=(e,t,r)=>(r=null!=e?n(a(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)),d={},p={assertVercelOidcTokenResponse:()=>j,findProjectInfo:()=>_,getTokenPayload:()=>P,getVercelDataDir:()=>k,getVercelOidcToken:()=>O,getVercelToken:()=>x,isExpired:()=>R,loadToken:()=>E,saveToken:()=>A};for(var f in p)o(d,f,{get:p[f],enumerable:!0});t.exports=c(o({},"__esModule",{value:!0}),d);var h=u(e.r(814747)),g=u(e.r(522734)),m=e.r(310470),y=e.r(250216),v=e.r(775427),b=e.r(371746),w=e.r(33015);function k(){let e=(0,y.getUserDataDir)();return e?h.join(e,"com.vercel.cli"):null}async function x(e){let t=(0,v.readAuthConfig)();if(!t?.token)throw new w.AccessTokenMissingError;if((0,v.isValidAccessToken)(t,e?.expirationBufferMs))return t.token;if(!t.refreshToken)throw(0,v.writeAuthConfig)({}),new w.RefreshAccessTokenFailedError("No refresh token available");try{let e=await (0,b.refreshTokenRequest)({refresh_token:t.refreshToken}),[r,n]=await (0,b.processTokenResponse)(e);if(r||!n)throw(0,v.writeAuthConfig)({}),new w.RefreshAccessTokenFailedError(r);let o={token:n.access_token,expiresAt:Math.floor(Date.now()/1e3)+n.expires_in};return n.refresh_token&&(o.refreshToken=n.refresh_token),(0,v.writeAuthConfig)(o),o.token}catch(e){if((0,v.writeAuthConfig)({}),e instanceof w.AccessTokenMissingError||e instanceof w.RefreshAccessTokenFailedError)throw e;throw new w.RefreshAccessTokenFailedError(e)}}async function O(e,t,r){let n=`https://api.vercel.com/v1/projects/${t}/token?source=vercel-oidc-refresh${r?`&teamId=${r}`:""}`,o=await fetch(n,{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!o.ok)throw new m.VercelOidcTokenError(`Failed to refresh OIDC token: ${o.statusText}`);let i=await o.json();return j(i),i}function j(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 m.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let t=h.join(e,".vercel","project.json");if(!g.existsSync(t))throw new m.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let r=JSON.parse(g.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 A(e,t){let r=(0,y.getUserDataDir)();if(!r)throw new m.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let n=h.join(r,"com.vercel.token",`${t}.json`),o=JSON.stringify(e);g.mkdirSync(h.dirname(n),{mode:504,recursive:!0}),g.writeFileSync(n,o),g.chmodSync(n,432)}function E(e){let t=(0,y.getUserDataDir)();if(!t)throw new m.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let r=h.join(t,"com.vercel.token",`${e}.json`);if(!g.existsSync(r))return null;let n=JSON.parse(g.readFileSync(r,"utf8"));return j(n),n}function P(e){let t=e.split(".");if(3!==t.length)throw new m.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let r=t[1].replace(/-/g,"+").replace(/_/g,"/"),n=r.padEnd(r.length+(4-r.length%4)%4,"=");return JSON.parse(Buffer.from(n,"base64").toString("utf8"))}function R(e,t=0){return 1e3*e.exp<Date.now()+t}},600373,e=>{"use strict";var t=e.i(416487),r=e.i(256485),n=e.i(528909),o=e.i(733164),i=e.i(731699),s=e.i(235072),a=e.i(344963);e.s(["getAIModel",0,function(e){let l=e.embeddingModelId;l.includes("/")&&(l=l.split("/")[1]);let c=e.embeddingApiKey?.trim()||"NO_API_KEY_PROVIDED_FROM_UI";if(e.embeddingModelId.startsWith("custom:")){let t=e.embeddingModelId.slice(7),n=(e.customEmbeddings??[]).find(e=>e.modelName===t);if(n)return(0,r.createOpenAICompatible)({name:"custom_provider",baseURL:n.baseUrl,apiKey:n.apiKey||e.embeddingApiKey||void 0}).embeddingModel(n.modelName)}return"deepseek"===e.embeddingProvider?(0,n.createDeepSeek)({apiKey:c}).embeddingModel(l):"google"===e.embeddingProvider?(0,o.createGoogleGenerativeAI)({apiKey:c}).textEmbeddingModel(l):"cohere"===e.embeddingProvider?(0,i.createCohere)({apiKey:c}).embedding(l):"mistral"===e.embeddingProvider?(0,s.createMistral)({apiKey:c}).embedding(l):"vercel_ai_gateway"===e.embeddingProvider?(0,a.createGateway)({apiKey:c}).embedding(e.embeddingModelId):(0,t.createOpenAI)({apiKey:c}).embedding(l)}])},192389,e=>{"use strict";e.s(["formatErrorMessage",0,function(e){let t=e instanceof Error?e.message:String(e),r=t.toLowerCase();return r.includes("authentication failed")||r.includes("invalid api key")||r.includes("invalid api_key")||r.includes("invalid token")||r.includes("unauthorized")||r.includes("status code 401")?"Authentication failed. Check the API key for the selected provider.":t.includes("Is the docker daemon running?")?"Docker is not running. Please make sure the Docker daemon is started.":t.includes("fetch failed")||t.includes("Failed to fetch")?"Network error. Please check your connection and try again.":t}])},243781,e=>{"use strict";var t=e.i(239441),r=e.i(449055),n=e.i(391328),o=e.i(6352),i=e.i(746789),s=e.i(423437),a=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),g=e.i(110763),m=e.i(193695);e.i(673243);var y=e.i(236167),v=e.i(766576),b=e.i(214312),w=e.i(600373),k=e.i(192389);async function x(e){let t;try{t=await e.json()}catch{return v.NextResponse.json({error:"Invalid JSON body"},{status:400})}let{embeddingProvider:r,embeddingModelId:n}=t;if(!r||!n)return v.NextResponse.json({error:"Missing required fields: embeddingProvider or embeddingModelId"},{status:400});try{let e=(0,w.getAIModel)(t),{embedding:r}=await (0,b.embed)({model:e,value:"test connection"});return v.NextResponse.json({success:!0,dimensions:r.length})}catch(e){return v.NextResponse.json({error:(0,k.formatErrorMessage)(e)},{status:400})}}e.s(["POST",0,x,"runtime",0,"nodejs"],730004);var O=e.i(730004);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/config/test-provider/route",pathname:"/api/config/test-provider",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/config/test-provider/route.ts",nextConfigOutput:"standalone",userland:O,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:A,serverHooks:E}=j;async function P(e,t,n){n.requestMeta&&(0,o.setRequestMeta)(e,n.requestMeta),j.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/config/test-provider/route";v=v.replace(/\/index$/,"")||"/";let b=await j.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,deploymentId:k,params:x,nextConfig:O,parsedUrl:_,isDraftMode:A,prerenderManifest:E,routerServerContext:P,isOnDemandRevalidate:R,revalidateOnlyGenerated:T,resolvedPathname:C,clientReferenceManifest:S,serverActionsManifest:D}=b,M=(0,a.normalizeAppPath)(v),I=!!(E.dynamicRoutes[M]||E.routes[C]),N=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,_,!1):t.end("This page could not be found"),null);if(I&&!A){let e=!!E.routes[C],t=E.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(O.adapterPath)return await N();throw new m.NoFallbackError}}let $=null;!I||j.isDev||A||($="/index"===($=C)?"/":$);let U=!0===j.isDev||!I,q=I&&!U;D&&S&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:S,serverActionsManifest:D});let V=e.method||"GET",F=(0,i.getTracer)(),H=F.getActiveScopeSpan(),K=!!(null==P?void 0:P.isWrappedByNextServer),L=!!(0,o.getRequestMeta)(e,"minimalMode"),B=(0,o.getRequestMeta)(e,"incrementalCache")||await j.getIncrementalCache(e,O,E,L);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let J={params:x,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!O.experimental.authInterrupts},cacheComponents:!!O.cacheComponents,supportsDynamicResponse:U,incrementalCache:B,cacheLifeProfiles:O.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,o)=>j.onRequestError(e,t,n,o,P)},sharedContext:{buildId:w,deploymentId:k}},G=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(G,(0,c.signalFromNodeResponse)(t));try{let o,s=async e=>j.handle(X,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==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 n=r.get("next.route");if(n){let t=`${V} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),o&&o!==e&&(o.setAttribute("http.route",n),o.updateName(t))}else e.updateName(`${V} ${v}`)}),a=async o=>{var i,a;let l=async({previousCacheEntry:r})=>{try{if(!L&&R&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(o);e.fetchMetrics=J.renderOpts.fetchMetrics;let a=J.renderOpts.pendingWaitUntil;a&&n.waitUntil&&(n.waitUntil(a),a=void 0);let l=J.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(G,z,i,J.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,n=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:R})},!1,P),t}},c=await j.handleResponse({req:e,nextConfig:O,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:R,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:L});if(!I)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(a=c.value)?void 0:a.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",R?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&I||u.delete(g.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)(G,z,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};K&&H?await a(H):(o=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${V} ${v}`,kind:i.SpanKind.SERVER,attributes:{"http.method":V,"http.target":e.url}},a),void 0,!K))}catch(t){if(t instanceof m.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:R})},!1,P),I)throw t;return await (0,p.sendResponse)(G,z,new Response(null,{status:500})),null}}e.s(["handler",0,P,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:A})},"routeModule",0,j,"serverHooks",0,E,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,A],243781)},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)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__10gcb7d._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1qh2h5v._.js.map
@@ -41,6 +41,7 @@ CRITICAL RULES FOR IMAGES AND KNOWLEDGE BASE:
41
41
  - If the user asks a detailed or structural question about an image (e.g., "what columns are in the film table in the diagram?", "how many items are listed?"), you MUST use the "analyzeImageDeeply" tool. Pass the 'imageUrl' and a detailed prompt to get the exact information you need directly from the image before answering.
42
42
  - Do not hallucinate or guess details about images. If the high-level summary doesn't contain the answer, use analyzeImageDeeply.
43
43
  - IF A QUESTION PLAUSIBLY REFERS TO CONTENT THE USER INDEXED, search the knowledge base once before answering. Do not search for unrelated general questions, and do not repeat a search when prior results already contain the answer.
44
+ - Questions about the user's preferences, files, database, diagrams, or anything the assistant "has" are always plausibly about indexed content. Search before answering instead of relying on general knowledge.
44
45
  - FOR INDEXED AUDIO OR VIDEO: search when the requested fact is not already available in the conversation. For follow-up requests to show or play a known moment, call presentMedia directly with the earlier result's mediaAssetId and timestamps.
45
46
  - FOR WINNER, RESULT, OR OUTCOME QUESTIONS: inspect both the semantic matches and any returned endingContext. Prefer an explicit final announcement, final scoreboard, or celebration over an earlier lead; a participant leading mid-match is not proof they won.
46
47
  - MEDIA CITATIONS: present at most one best media item by default. Use presentMedia when the user explicitly asks for a preview or when one preview materially supports the answer. Never display every media search hit.
@@ -56,6 +57,6 @@ RESPONSE FORMATTING (Analytics Style):
56
57
  - Structure complex responses logically (e.g., Summary -> Key Metrics -> Breakdown).
57
58
  - If your findings contain a small table of data, format it cleanly using Markdown tables.
58
59
  - DO NOT hallucinate facts; rely strictly on the provided query results.
59
- - End with a one-sentence synthesis if appropriate, avoiding filler words.`;e.s(["DEFAULT_CONFIG",0,i,"DEFAULT_DEPLOYMENT_CONFIG",0,{type:"rag-only",authMode:"none",enabledToolIds:[],widgetStyle:{primaryColor:"#000000",position:"bottom-right",title:"Chat with AI",welcomeMessage:"Hi! How can I help you today?",placeholder:"Type a message...",darkMode:!1,borderRadius:"lg"},allowedOrigins:["*"]},"DEFAULT_SYSTEM_PROMPT",0,o],638725);let l=r.default.join(process.cwd(),".larkup"),d=r.default.join(l,"servers"),u=r.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,m=Promise.resolve();function h(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function y(e){return await A(),h(async()=>e(await S()??c))}function f(e){return r.default.join(d,e)}function g(e,t){return`./.larkup/servers/${e}/${t}`}async function v(e){try{return await t.promises.access(e),!0}catch{return!1}}async function w(e,a){if(await v(e)){await t.promises.mkdir(r.default.dirname(a),{recursive:!0});try{await t.promises.rename(e,a)}catch{await t.promises.cp(e,a,{recursive:!0}),await t.promises.rm(e,{recursive:!0,force:!0})}}}async function S(){try{let e=await t.promises.readFile(u,"utf8");return{...c,...JSON.parse(e)}}catch{return null}}async function x(e){return await t.promises.mkdir(l,{recursive:!0}),await t.promises.writeFile(u,JSON.stringify(e,null,2),"utf8"),e}async function A(){let e=await S();return e||h(b)}async function b(){let e=await S();if(e)return e;if(!await v(r.default.join(l,"config.json")))return x(c);let n=(0,a.randomUUID)(),s=f(n);for(let e of(await t.promises.mkdir(s,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await w(r.default.join(l,e),r.default.join(s,e));await w(r.default.join(l,"lancedb"),r.default.join(s,"lancedb")),await w(r.default.join(l,"generated-server"),r.default.join(s,"generated-server"));let i="Default server";try{let e=r.default.join(s,"config.json"),a=JSON.parse(await t.promises.readFile(e,"utf8"));a.projectName&&(i=a.projectName),"lancedb"===a.vectorStore&&(a.storeConfig?.mode??"local")==="local"&&(a.storeConfig={...a.storeConfig,dbPath:g(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(a,null,2),"utf8")}catch{}let o=new Date().toISOString(),d={id:n,name:i,port:8080,createdAt:o,updatedAt:o};return x({username:null,activeServerId:n,servers:[d],mode:null})}async function O(){let e=await A(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function I(){let e=await O();if(!e)return null;let r=f(e.id);return await t.promises.mkdir(r,{recursive:!0}),r}async function E(){let e=await I();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:r}=await N("my-larkup");return f(r.id)}async function C(e){return new Promise(t=>{let r=s.default.createServer();r.once("error",()=>t(!1)),r.once("listening",()=>{r.close(()=>t(!0))}),r.listen(e,"127.0.0.1")})}async function T(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await C(t);)t++;return t}function N(e){return y(async n=>{let s=(0,a.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await T(n),createdAt:o,updatedAt:o},d=f(s);await t.promises.mkdir(d,{recursive:!0});let u={};if(n.activeServerId)try{let e=await t.promises.readFile(r.default.join(f(n.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(r.default.join(d,"config.json"),JSON.stringify(function(e,t,r={}){return{...i,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup",storeConfig:{mode:"local",dbPath:g(e,"lancedb")},embeddingApiKey:r.embeddingApiKey??i.embeddingApiKey,customEmbeddings:r.customEmbeddings??i.customEmbeddings,chatApiKey:r.chatApiKey??i.chatApiKey,customChatModels:r.customChatModels??i.customChatModels,serperApiKey:r.serperApiKey??i.serperApiKey,firecrawlApiKey:r.firecrawlApiKey??i.firecrawlApiKey,updatedAt:new Date().toISOString()}}(s,l.name,u),null,2),"utf8");let c={...n,servers:[...n.servers,l],activeServerId:s};return await x(c),{workspace:c,server:l}})}e.s(["createServer",0,N,"deleteServer",0,function(e){return y(async r=>{let a=r.servers.filter(t=>t.id!==e),n=r.activeServerId===e?a[0]?.id??null:r.activeServerId;return await t.promises.rm(f(e),{recursive:!0,force:!0}),x({...r,servers:a,activeServerId:n})})},"getActiveServer",0,O,"getDataDir",0,I,"getWorkspace",0,A,"renameServer",0,function(e,t){return y(async r=>{let a=r.servers.map(r=>r.id===e?{...r,name:t.trim()||r.name,updatedAt:new Date().toISOString()}:r);return x({...r,servers:a})})},"requireDataDir",0,E,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return y(async t=>t.servers.some(t=>t.id===e)?x({...t,activeServerId:e}):t)},"setMode",0,function(e){return y(async t=>x({...t,mode:e}))},"setUsername",0,function(e){return y(async t=>x({...t,username:e.trim()||null}))}],192441)}];
60
+ - End with a one-sentence synthesis if appropriate, avoiding filler words.`;e.s(["DEFAULT_CONFIG",0,i,"DEFAULT_DEPLOYMENT_CONFIG",0,{type:"rag-only",authMode:"none",enabledToolIds:[],widgetStyle:{primaryColor:"#000000",position:"bottom-right",title:"Chat with AI",welcomeMessage:"Hi! How can I help you today?",placeholder:"Type a message...",darkMode:!1,borderRadius:"lg"},allowedOrigins:["*"]},"DEFAULT_SYSTEM_PROMPT",0,o],638725);let l=r.default.join(process.cwd(),".larkup"),d=r.default.join(l,"servers"),u=r.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,m=Promise.resolve();function h(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function y(e){return await b(),h(async()=>e(await S()??c))}function f(e){return r.default.join(d,e)}function g(e,t){return`./.larkup/servers/${e}/${t}`}async function v(e){try{return await t.promises.access(e),!0}catch{return!1}}async function w(e,a){if(await v(e)){await t.promises.mkdir(r.default.dirname(a),{recursive:!0});try{await t.promises.rename(e,a)}catch{await t.promises.cp(e,a,{recursive:!0}),await t.promises.rm(e,{recursive:!0,force:!0})}}}async function S(){try{let e=await t.promises.readFile(u,"utf8");return{...c,...JSON.parse(e)}}catch{return null}}async function x(e){return await t.promises.mkdir(l,{recursive:!0}),await t.promises.writeFile(u,JSON.stringify(e,null,2),"utf8"),e}async function b(){let e=await S();return e||h(A)}async function A(){let e=await S();if(e)return e;if(!await v(r.default.join(l,"config.json")))return x(c);let n=(0,a.randomUUID)(),s=f(n);for(let e of(await t.promises.mkdir(s,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await w(r.default.join(l,e),r.default.join(s,e));await w(r.default.join(l,"lancedb"),r.default.join(s,"lancedb")),await w(r.default.join(l,"generated-server"),r.default.join(s,"generated-server"));let i="Default server";try{let e=r.default.join(s,"config.json"),a=JSON.parse(await t.promises.readFile(e,"utf8"));a.projectName&&(i=a.projectName),"lancedb"===a.vectorStore&&(a.storeConfig?.mode??"local")==="local"&&(a.storeConfig={...a.storeConfig,dbPath:g(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(a,null,2),"utf8")}catch{}let o=new Date().toISOString(),d={id:n,name:i,port:8080,createdAt:o,updatedAt:o};return x({username:null,activeServerId:n,servers:[d],mode:null})}async function O(){let e=await b(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function I(){let e=await O();if(!e)return null;let r=f(e.id);return await t.promises.mkdir(r,{recursive:!0}),r}async function E(){let e=await I();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:r}=await N("my-larkup");return f(r.id)}async function C(e){return new Promise(t=>{let r=s.default.createServer();r.once("error",()=>t(!1)),r.once("listening",()=>{r.close(()=>t(!0))}),r.listen(e,"127.0.0.1")})}async function T(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await C(t);)t++;return t}function N(e){return y(async n=>{let s=(0,a.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await T(n),createdAt:o,updatedAt:o},d=f(s);await t.promises.mkdir(d,{recursive:!0});let u={};if(n.activeServerId)try{let e=await t.promises.readFile(r.default.join(f(n.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(r.default.join(d,"config.json"),JSON.stringify(function(e,t,r={}){return{...i,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup",storeConfig:{mode:"local",dbPath:g(e,"lancedb")},embeddingApiKey:r.embeddingApiKey??i.embeddingApiKey,customEmbeddings:r.customEmbeddings??i.customEmbeddings,chatApiKey:r.chatApiKey??i.chatApiKey,customChatModels:r.customChatModels??i.customChatModels,serperApiKey:r.serperApiKey??i.serperApiKey,firecrawlApiKey:r.firecrawlApiKey??i.firecrawlApiKey,updatedAt:new Date().toISOString()}}(s,l.name,u),null,2),"utf8");let c={...n,servers:[...n.servers,l],activeServerId:s};return await x(c),{workspace:c,server:l}})}e.s(["createServer",0,N,"deleteServer",0,function(e){return y(async r=>{let a=r.servers.filter(t=>t.id!==e),n=r.activeServerId===e?a[0]?.id??null:r.activeServerId;return await t.promises.rm(f(e),{recursive:!0,force:!0}),x({...r,servers:a,activeServerId:n})})},"getActiveServer",0,O,"getDataDir",0,I,"getWorkspace",0,b,"renameServer",0,function(e,t){return y(async r=>{let a=r.servers.map(r=>r.id===e?{...r,name:t.trim()||r.name,updatedAt:new Date().toISOString()}:r);return x({...r,servers:a})})},"requireDataDir",0,E,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return y(async t=>t.servers.some(t=>t.id===e)?x({...t,activeServerId:e}):t)},"setMode",0,function(e){return y(async t=>x({...t,mode:e}))},"setUsername",0,function(e){return y(async t=>x({...t,username:e.trim()||null}))}],192441)}];
60
61
 
61
62
  //# sourceMappingURL=%5Broot-of-the-server%5D__1s9is1o._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[324725,(e,r,t)=>{r.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"))},700259,e=>{"use strict";var r=e.i(902157),t=e.i(750227),a=e.i(761095),n=e.i(666680),i=e.i(874533),s=e.i(812057),o=e.i(367165);let c=(0,s.promisify)(i.exec);async function l(e,r){return c(e,{timeout:r,env:{...process.env,PATH:`${process.env.PATH||""}:/usr/local/bin:/opt/homebrew/bin:/bin:/usr/bin`}})}let u=t.default.join(process.cwd(),".larkup"),d=t.default.join(u,"firecrawl-local.json"),p=t.default.join(u,"firecrawl","docker-compose.yml"),w="ragtoolkit-firecrawl";async function m(e){return new Promise((r,t)=>{let n=a.default.createServer();n.listen(e,()=>{let e=n.address().port;n.close(()=>r(e))}),n.on("error",a=>{"EADDRINUSE"===a.code?m(0===e?0:e+1).then(r,t):t(a)})})}async function f(){try{let e=t.default.join(process.cwd(),"proxies.txt"),a=(await r.promises.readFile(e,"utf8")).split("\n").map(e=>e.trim()).filter(e=>e.length>0);if(a.length>0){let e=a[Math.floor(Math.random()*a.length)].split(":");if(e.length>=4)return{server:`http://${e[0]}:${e[1]}`,username:e[2],password:e[3]}}}catch(e){}let e=await (0,o.readConfig)();return e.useScraperProxy&&e.scraperProxyServer?{server:e.scraperProxyServer,username:e.scraperProxyUsername,password:e.scraperProxyPassword}:null}let h={running:!1,endpoint:"http://localhost:3002",apiKey:"",port:3002,project:w};async function y(){try{let e=await r.promises.readFile(d,"utf8");return{...h,...JSON.parse(e)}}catch{return h}}async function g(e){return await r.promises.mkdir(u,{recursive:!0}),await r.promises.writeFile(d,JSON.stringify(e,null,2),"utf8"),e}async function S(){try{await l("docker --version")}catch(e){return console.error("DOCKER ERR:",e),{docker:!1,compose:null}}try{return await l("docker compose version"),{docker:!0,compose:"docker compose"}}catch(e){console.error("DOCKER COMPOSE ERR:",e)}try{return await l("docker-compose version"),{docker:!0,compose:"docker-compose"}}catch{return{docker:!0,compose:null}}}async function k(){let{docker:e,compose:r}=await S();return e?r?{docker:!0,compose:!0,message:"Docker is ready."}:{docker:!0,compose:!1,message:"Docker is installed but the Compose plugin was not found. Install `docker compose` to launch Firecrawl locally."}:{docker:!1,compose:!1,message:"Docker isn't available on this machine. Install Docker Desktop (or the Docker engine) and make sure it's running."}}function E(e,r,t){let a=t?[`PROXY_SERVER: "${t.server}"`,...t.username&&t.password?[`PROXY_USERNAME: "${t.username}"`,`PROXY_PASSWORD: "${t.password}"`]:[]]:[],n=['PORT: "3000"',...a].map(e=>` ${e}`).join("\n"),i=['PORT: "3002"',...a,'HOST: "0.0.0.0"','REDIS_URL: "redis://redis:6379"','REDIS_RATE_LIMIT_URL: "redis://redis:6379"','PLAYWRIGHT_MICROSERVICE_URL: "http://playwright-service:3000/scrape"','USE_DB_AUTHENTICATION: "false"',`TEST_API_KEY: "${e}"`,`BULL_AUTH_KEY: "${e}"`,'DATABASE_URL: "postgresql://user:password@db:5432/postgres"','NUQ_DATABASE_URL: "postgresql://user:password@db:5432/postgres"','NUQ_RABBITMQ_URL: "amqp://user:password@rabbitmq:5672"'].map(e=>` ${e}`).join("\n");return`# Auto-generated by RAG Toolkit. Do not edit by hand.
1
+ module.exports=[324725,(e,r,t)=>{r.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"))},700259,e=>{"use strict";var r=e.i(902157),t=e.i(750227),a=e.i(761095),n=e.i(666680),i=e.i(874533),s=e.i(812057),o=e.i(367165);let c=(0,s.promisify)(i.exec);async function l(e,r){return c(e,{timeout:r,env:{...process.env,PATH:`${process.env.PATH||""}:/usr/local/bin:/opt/homebrew/bin:/bin:/usr/bin`}})}let d=t.default.join(process.cwd(),".larkup"),u=t.default.join(d,"firecrawl-local.json"),p=t.default.join(d,"firecrawl","docker-compose.yml"),w="ragtoolkit-firecrawl";async function m(e){return new Promise((r,t)=>{let n=a.default.createServer();n.listen(e,()=>{let e=n.address().port;n.close(()=>r(e))}),n.on("error",a=>{"EADDRINUSE"===a.code?m(0===e?0:e+1).then(r,t):t(a)})})}async function f(){try{let e=t.default.join(process.cwd(),"proxies.txt"),a=(await r.promises.readFile(e,"utf8")).split("\n").map(e=>e.trim()).filter(e=>e.length>0);if(a.length>0){let e=a[Math.floor(Math.random()*a.length)].split(":");if(e.length>=4)return{server:`http://${e[0]}:${e[1]}`,username:e[2],password:e[3]}}}catch(e){}let e=await (0,o.readConfig)();return e.useScraperProxy&&e.scraperProxyServer?{server:e.scraperProxyServer,username:e.scraperProxyUsername,password:e.scraperProxyPassword}:null}let h={running:!1,endpoint:"http://localhost:3002",apiKey:"",port:3002,project:w};async function y(){try{let e=await r.promises.readFile(u,"utf8");return{...h,...JSON.parse(e)}}catch{return h}}async function g(e){return await r.promises.mkdir(d,{recursive:!0}),await r.promises.writeFile(u,JSON.stringify(e,null,2),"utf8"),e}async function S(){try{await l("docker --version")}catch(e){return console.error("DOCKER ERR:",e),{docker:!1,compose:null}}try{return await l("docker compose version"),{docker:!0,compose:"docker compose"}}catch(e){console.error("DOCKER COMPOSE ERR:",e)}try{return await l("docker-compose version"),{docker:!0,compose:"docker-compose"}}catch{return{docker:!0,compose:null}}}async function k(){let{docker:e,compose:r}=await S();return e?r?{docker:!0,compose:!0,message:"Docker is ready."}:{docker:!0,compose:!1,message:"Docker is installed but the Compose plugin was not found. Install `docker compose` to launch Firecrawl locally."}:{docker:!1,compose:!1,message:"Docker isn't available on this machine. Install Docker Desktop (or the Docker engine) and make sure it's running."}}function v(e,r,t){let a=t?[`PROXY_SERVER: "${t.server}"`,...t.username&&t.password?[`PROXY_USERNAME: "${t.username}"`,`PROXY_PASSWORD: "${t.password}"`]:[]]:[],n=['PORT: "3000"',...a].map(e=>` ${e}`).join("\n"),i=['PORT: "3002"',...a,'HOST: "0.0.0.0"','REDIS_URL: "redis://redis:6379"','REDIS_RATE_LIMIT_URL: "redis://redis:6379"','PLAYWRIGHT_MICROSERVICE_URL: "http://playwright-service:3000/scrape"','USE_DB_AUTHENTICATION: "false"',`TEST_API_KEY: "${e}"`,`BULL_AUTH_KEY: "${e}"`,'DATABASE_URL: "postgresql://user:password@db:5432/postgres"','NUQ_DATABASE_URL: "postgresql://user:password@db:5432/postgres"','NUQ_RABBITMQ_URL: "amqp://user:password@rabbitmq:5672"'].map(e=>` ${e}`).join("\n");return`# Auto-generated by RAG Toolkit. Do not edit by hand.
2
2
  services:
3
3
  db:
4
4
  image: ghcr.io/firecrawl/nuq-postgres:latest
@@ -6,6 +6,11 @@ services:
6
6
  POSTGRES_USER: user
7
7
  POSTGRES_PASSWORD: password
8
8
  POSTGRES_DB: postgres
9
+ healthcheck:
10
+ test: ["CMD-SHELL", "pg_isready -U user -d postgres"]
11
+ interval: 5s
12
+ timeout: 5s
13
+ retries: 12
9
14
  restart: unless-stopped
10
15
 
11
16
  rabbitmq:
@@ -24,6 +29,11 @@ services:
24
29
  redis:
25
30
  image: redis:alpine
26
31
  command: redis-server --save "" --appendonly no
32
+ healthcheck:
33
+ test: ["CMD", "redis-cli", "ping"]
34
+ interval: 5s
35
+ timeout: 3s
36
+ retries: 12
27
37
  restart: unless-stopped
28
38
 
29
39
  playwright-service:
@@ -35,15 +45,17 @@ ${n}
35
45
  api:
36
46
  image: ghcr.io/firecrawl/firecrawl:latest
37
47
  depends_on:
38
- - db
39
- - rabbitmq
40
- - redis
41
- - playwright-service
48
+ db:
49
+ condition: service_healthy
50
+ rabbitmq:
51
+ condition: service_healthy
52
+ redis:
53
+ condition: service_healthy
42
54
  ports:
43
55
  - "${r}:3002"
44
56
  environment:
45
57
  ${i}
46
58
  restart: unless-stopped
47
- `}async function v(){let e=await k();if(!e.compose)return g({...await y(),running:!1,lastError:e.message});let{compose:a}=await S(),i=await y(),s=i.apiKey||`fc-local-${(0,n.randomUUID)()}`,o=i.port||3002,c=await f();await r.promises.mkdir(t.default.dirname(p),{recursive:!0}),await r.promises.writeFile(p,E(s,o,c),"utf8");try{await l(`${a} -p ${w} -f "${p}" up -d`,18e4)}catch(t){let e=t instanceof Error?t.message:"docker compose failed";if(!(e.includes("address already in use")||e.includes("Ports are not available")))return g({...i,apiKey:s,port:o,running:!1,lastError:e});try{o=await m(o+1),await r.promises.writeFile(p,E(s,o,c),"utf8"),await l(`${a} -p ${w} -f "${p}" up -d`,18e4)}catch(e){return g({...i,apiKey:s,port:o,running:!1,lastError:e instanceof Error?e.message:"docker compose retry failed"})}}let u=(0,r.existsSync)("/.dockerenv"),d=`http://${u?"host.docker.internal":"localhost"}:${o}`,h=await T(d,6e4);return g({running:h,endpoint:d,apiKey:s,port:o,project:w,startedAt:new Date().toISOString(),lastError:h?void 0:"Containers started but the API did not become healthy in time. It may still be warming up — try refreshing in a moment."})}async function R(){let{compose:e}=await S(),r=await y();if(e)try{await l(`${e} -p ${w} -f "${p}" down`,6e4)}catch{}return g({...r,running:!1,startedAt:void 0})}async function b(){let e=await y();if(!e.startedAt)return e;let r=await A(e.endpoint);return r!==e.running?g({...e,running:r}):e}async function A(e){try{return(await fetch(e,{method:"GET",signal:AbortSignal.timeout(4e3)})).status>0}catch{return!1}}async function T(e,r){let t=Date.now()+r;for(;Date.now()<t;){if(await A(e))return!0;await new Promise(e=>setTimeout(e,3e3))}return!1}let P="http://firecrawl-api:3002";async function D(){return"true"===process.env.DOCKER_ENV||"1"===process.env.DOCKER_BUILD||(0,r.existsSync)("/.dockerenv")?{available:await A(P),endpoint:P}:{available:!1,endpoint:""}}async function $(){let{available:e}=await D();return e?g({running:!0,endpoint:P,apiKey:`fc-docker-${(0,n.randomUUID)()}`,port:3002,project:"docker-sibling",startedAt:new Date().toISOString()}):g({...h,running:!1,lastError:"Firecrawl sibling service is not running. Restart with: docker compose --profile crawler up"})}e.s(["checkDocker",0,k,"checkDockerSibling",0,D,"connectDockerSibling",0,$,"readLocalState",0,y,"refreshLocalStatus",0,b,"startLocal",0,v,"stopLocal",0,R])},304368,e=>{"use strict";var r=e.i(367165),t=e.i(700259);class a extends Error{status;constructor(e,r){super(e),this.status=r,this.name="FirecrawlError"}}async function n(){let e=await (0,r.readConfig)();if("local"===(e.webCrawlerProvider||"local")){let e=await (0,t.readLocalState)();if(e.running&&e.apiKey)return{base:`${e.endpoint}/v1`,key:e.apiKey,mode:"local"};throw new a("Local Firecrawl is selected but not running. Launch a local instance from the UI.",401)}let n=e.firecrawlApiKey;if(n)return{base:"https://api.firecrawl.dev/v1",key:n,mode:"cloud"};throw new a("Cloud Firecrawl is selected but no API key is configured. Set FIRECRAWL_API_KEY in Settings.",401)}async function i(){let e=await (0,r.readConfig)();if("local"===(e.webCrawlerProvider||"local")){let e=await (0,t.readLocalState)();return!!(e.running&&e.apiKey)}return!!e.firecrawlApiKey}async function s(e,r){let{base:t,key:i}=await n(),s=await fetch(`${t}${e}`,{...r,headers:{Authorization:`Bearer ${i}`,"Content-Type":"application/json",...r?.headers??{}},cache:"no-store"}),o=await s.text(),l=o?c(o):{};if(!s.ok)throw new a(l?.error||`Firecrawl request failed (${s.status})`,s.status);return l}async function o(e){let{key:r}=await n(),t=await fetch(e,{headers:{Authorization:`Bearer ${r}`},cache:"no-store"}),i=await t.text(),s=i?c(i):{};if(!t.ok)throw new a(s?.error||`Firecrawl request failed (${t.status})`,t.status);return s}function c(e){try{return JSON.parse(e)}catch{return{}}}async function l(e,r=10){return((await s("/search",{method:"POST",body:JSON.stringify({query:e,limit:r})})).data??[]).map(e=>({url:e.url,title:e.title||e.url,description:e.description}))}let u={waitFor:1e4,onlyMainContent:!1,headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36","Accept-Language":"en-US,en;q=0.9","Sec-Ch-Ua":'"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"Windows"'}};async function d(e){let r=(await s("/scrape",{method:"POST",body:JSON.stringify({url:e,formats:["markdown"],...u})})).data??{};return{url:r.metadata?.sourceURL||e,title:r.metadata?.title||r.metadata?.ogTitle||e,markdown:r.markdown??""}}async function p(e,r){let t=await s("/crawl",{method:"POST",body:JSON.stringify({url:e,limit:r,allowExternalLinks:!1,scrapeOptions:{...u,formats:["markdown"],onlyMainContent:!0}})});if(!t.id)throw new a("Firecrawl did not return a crawl id");return t.id}async function w(e,r=!1){let t=r?await o(e):await s(`/crawl/${e}`,{method:"GET"});return{state:t.status??"scraping",total:t.total??0,completed:t.completed??0,next:t.next,pages:(t.data??[]).map(e=>({url:e.metadata?.sourceURL||e.metadata?.url||"",title:e.metadata?.title||e.metadata?.sourceURL||"Untitled",markdown:e.markdown??""}))}}async function m(e){try{await s(`/crawl/${e}`,{method:"DELETE"})}catch{}}e.s(["FirecrawlError",0,a,"cancelCrawl",0,m,"getCrawlStatus",0,w,"isFirecrawlConfigured",0,i,"scrapePage",0,d,"searchWeb",0,l,"startCrawl",0,p])},426237,e=>{"use strict";var r=e.i(766576),t=e.i(304368);async function a(){return r.NextResponse.json({configured:await (0,t.isFirecrawlConfigured)()})}async function n(e){try{let{query:a,limit:n}=await e.json();if(!a||!a.trim())return r.NextResponse.json({error:"A search query is required."},{status:400});let i=await (0,t.searchWeb)(a.trim(),Math.min(n??10,25));return r.NextResponse.json({results:i})}catch(n){let e=n instanceof t.FirecrawlError?n.status??500:500,a=n instanceof Error?n.message:"Search failed.";return r.NextResponse.json({error:a},{status:e})}}e.s(["GET",0,a,"POST",0,n,"dynamic",0,"force-dynamic","runtime",0,"nodejs"])}];
59
+ `}async function E(){let e=await k();if(!e.compose)return g({...await y(),running:!1,lastError:e.message});let{compose:a}=await S(),i=await y(),s=i.apiKey||`fc-local-${(0,n.randomUUID)()}`,o=i.port||3002,c=await f();await r.promises.mkdir(t.default.dirname(p),{recursive:!0}),await r.promises.writeFile(p,v(s,o,c),"utf8");try{await l(`${a} -p ${w} -f "${p}" up -d`,18e4)}catch(t){let e=t instanceof Error?t.message:"docker compose failed";if(!(e.includes("address already in use")||e.includes("Ports are not available")))return g({...i,apiKey:s,port:o,running:!1,lastError:e});try{o=await m(o+1),await r.promises.writeFile(p,v(s,o,c),"utf8"),await l(`${a} -p ${w} -f "${p}" up -d`,18e4)}catch(e){return g({...i,apiKey:s,port:o,running:!1,lastError:e instanceof Error?e.message:"docker compose retry failed"})}}let d=(0,r.existsSync)("/.dockerenv"),u=`http://${d?"host.docker.internal":"localhost"}:${o}`,h=await T(u,9e4);return g({running:h,endpoint:u,apiKey:s,port:o,project:w,startedAt:new Date().toISOString(),lastError:h?void 0:"Containers started but the API did not become healthy in time. It may still be warming up — try refreshing in a moment."})}async function b(){let{compose:e}=await S(),r=await y();if(e)try{await l(`${e} -p ${w} -f "${p}" down`,6e4)}catch{}return g({...r,running:!1,startedAt:void 0})}async function R(){let e=await y();if(!e.startedAt)return e;let r=await A(e.endpoint);return r!==e.running?g({...e,running:r}):e}async function A(e){try{return(await fetch(e,{method:"GET",signal:AbortSignal.timeout(4e3)})).status>0}catch{return!1}}async function T(e,r){let t=Date.now()+r;for(;Date.now()<t;){if(await A(e))return!0;await new Promise(e=>setTimeout(e,3e3))}return!1}let D="http://firecrawl-api:3002";async function _(){return"true"===process.env.DOCKER_ENV||"1"===process.env.DOCKER_BUILD||(0,r.existsSync)("/.dockerenv")?{available:await A(D),endpoint:D}:{available:!1,endpoint:""}}async function P(){let{available:e}=await _();return e?g({running:!0,endpoint:D,apiKey:`fc-docker-${(0,n.randomUUID)()}`,port:3002,project:"docker-sibling",startedAt:new Date().toISOString()}):g({...h,running:!1,lastError:"The web crawler service is not available in this Docker deployment."})}e.s(["checkDocker",0,k,"checkDockerSibling",0,_,"connectDockerSibling",0,P,"readLocalState",0,y,"refreshLocalStatus",0,R,"startLocal",0,E,"stopLocal",0,b])},304368,e=>{"use strict";var r=e.i(367165),t=e.i(700259);class a extends Error{status;constructor(e,r){super(e),this.status=r,this.name="FirecrawlError"}}async function n(){let e=await (0,r.readConfig)();if("local"===(e.webCrawlerProvider||"local")){let e=await (0,t.readLocalState)();if(e.running&&e.apiKey)return{base:`${e.endpoint}/v1`,key:e.apiKey,mode:"local"};throw new a("The selected web crawler is not running. Choose a crawler provider in Settings.",401)}let n=e.firecrawlApiKey;if(n)return{base:"https://api.firecrawl.dev/v1",key:n,mode:"cloud"};throw new a("The cloud web crawler needs an API key. Add it in Settings.",401)}async function i(){let e=await (0,r.readConfig)();if("local"===(e.webCrawlerProvider||"local")){let e=await (0,t.readLocalState)();return!!(e.running&&e.apiKey)}return!!e.firecrawlApiKey}async function s(e,r){let{base:t,key:i}=await n(),s=await fetch(`${t}${e}`,{...r,headers:{Authorization:`Bearer ${i}`,"Content-Type":"application/json",...r?.headers??{}},cache:"no-store"}),o=await s.text(),l=o?c(o):{};if(!s.ok)throw new a(l?.error||`Firecrawl request failed (${s.status})`,s.status);return l}async function o(e){let{key:r}=await n(),t=await fetch(e,{headers:{Authorization:`Bearer ${r}`},cache:"no-store"}),i=await t.text(),s=i?c(i):{};if(!t.ok)throw new a(s?.error||`Firecrawl request failed (${t.status})`,t.status);return s}function c(e){try{return JSON.parse(e)}catch{return{}}}async function l(e,r=10){return((await s("/search",{method:"POST",body:JSON.stringify({query:e,limit:r})})).data??[]).map(e=>({url:e.url,title:e.title||e.url,description:e.description}))}let d={waitFor:1e4,onlyMainContent:!1,headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36","Accept-Language":"en-US,en;q=0.9","Sec-Ch-Ua":'"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"Windows"'}};async function u(e){let r=(await s("/scrape",{method:"POST",body:JSON.stringify({url:e,formats:["markdown"],...d})})).data??{};return{url:r.metadata?.sourceURL||e,title:r.metadata?.title||r.metadata?.ogTitle||e,markdown:r.markdown??""}}async function p(e,r){let t=await s("/crawl",{method:"POST",body:JSON.stringify({url:e,limit:r,allowExternalLinks:!1,scrapeOptions:{...d,formats:["markdown"],onlyMainContent:!0}})});if(!t.id)throw new a("Firecrawl did not return a crawl id");return t.id}async function w(e,r=!1){let t=r?await o(e):await s(`/crawl/${e}`,{method:"GET"});return{state:t.status??"scraping",total:t.total??0,completed:t.completed??0,next:t.next,pages:(t.data??[]).map(e=>({url:e.metadata?.sourceURL||e.metadata?.url||"",title:e.metadata?.title||e.metadata?.sourceURL||"Untitled",markdown:e.markdown??""}))}}async function m(e){try{await s(`/crawl/${e}`,{method:"DELETE"})}catch{}}e.s(["FirecrawlError",0,a,"cancelCrawl",0,m,"getCrawlStatus",0,w,"isFirecrawlConfigured",0,i,"scrapePage",0,u,"searchWeb",0,l,"startCrawl",0,p])},426237,e=>{"use strict";var r=e.i(766576),t=e.i(304368);async function a(){return r.NextResponse.json({configured:await (0,t.isFirecrawlConfigured)()})}async function n(e){try{let{query:a,limit:n}=await e.json();if(!a||!a.trim())return r.NextResponse.json({error:"A search query is required."},{status:400});let i=await (0,t.searchWeb)(a.trim(),Math.min(n??10,25));return r.NextResponse.json({results:i})}catch(n){let e=n instanceof t.FirecrawlError?n.status??500:500,a=n instanceof Error?n.message:"Search failed.";return r.NextResponse.json({error:a},{status:e})}}e.s(["GET",0,a,"POST",0,n,"dynamic",0,"force-dynamic","runtime",0,"nodejs"])}];
48
60
 
49
61
  //# sourceMappingURL=%5Broot-of-the-server%5D__1vsvck0._.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","maxDuration",0,300,"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
@@ -41,6 +41,7 @@ CRITICAL RULES FOR IMAGES AND KNOWLEDGE BASE:
41
41
  - If the user asks a detailed or structural question about an image (e.g., "what columns are in the film table in the diagram?", "how many items are listed?"), you MUST use the "analyzeImageDeeply" tool. Pass the 'imageUrl' and a detailed prompt to get the exact information you need directly from the image before answering.
42
42
  - Do not hallucinate or guess details about images. If the high-level summary doesn't contain the answer, use analyzeImageDeeply.
43
43
  - IF A QUESTION PLAUSIBLY REFERS TO CONTENT THE USER INDEXED, search the knowledge base once before answering. Do not search for unrelated general questions, and do not repeat a search when prior results already contain the answer.
44
+ - Questions about the user's preferences, files, database, diagrams, or anything the assistant "has" are always plausibly about indexed content. Search before answering instead of relying on general knowledge.
44
45
  - FOR INDEXED AUDIO OR VIDEO: search when the requested fact is not already available in the conversation. For follow-up requests to show or play a known moment, call presentMedia directly with the earlier result's mediaAssetId and timestamps.
45
46
  - FOR WINNER, RESULT, OR OUTCOME QUESTIONS: inspect both the semantic matches and any returned endingContext. Prefer an explicit final announcement, final scoreboard, or celebration over an earlier lead; a participant leading mid-match is not proof they won.
46
47
  - MEDIA CITATIONS: present at most one best media item by default. Use presentMedia when the user explicitly asks for a preview or when one preview materially supports the answer. Never display every media search hit.
@@ -56,6 +57,6 @@ RESPONSE FORMATTING (Analytics Style):
56
57
  - Structure complex responses logically (e.g., Summary -> Key Metrics -> Breakdown).
57
58
  - If your findings contain a small table of data, format it cleanly using Markdown tables.
58
59
  - DO NOT hallucinate facts; rely strictly on the provided query results.
59
- - End with a one-sentence synthesis if appropriate, avoiding filler words.`;e.s(["DEFAULT_CONFIG",0,i,"DEFAULT_DEPLOYMENT_CONFIG",0,{type:"rag-only",authMode:"none",enabledToolIds:[],widgetStyle:{primaryColor:"#000000",position:"bottom-right",title:"Chat with AI",welcomeMessage:"Hi! How can I help you today?",placeholder:"Type a message...",darkMode:!1,borderRadius:"lg"},allowedOrigins:["*"]},"DEFAULT_SYSTEM_PROMPT",0,o],638725);let l=r.default.join(process.cwd(),".larkup"),d=r.default.join(l,"servers"),u=r.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,m=Promise.resolve();function h(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function y(e){return await A(),h(async()=>e(await S()??c))}function f(e){return r.default.join(d,e)}function g(e,t){return`./.larkup/servers/${e}/${t}`}async function v(e){try{return await t.promises.access(e),!0}catch{return!1}}async function w(e,a){if(await v(e)){await t.promises.mkdir(r.default.dirname(a),{recursive:!0});try{await t.promises.rename(e,a)}catch{await t.promises.cp(e,a,{recursive:!0}),await t.promises.rm(e,{recursive:!0,force:!0})}}}async function S(){try{let e=await t.promises.readFile(u,"utf8");return{...c,...JSON.parse(e)}}catch{return null}}async function x(e){return await t.promises.mkdir(l,{recursive:!0}),await t.promises.writeFile(u,JSON.stringify(e,null,2),"utf8"),e}async function A(){let e=await S();return e||h(b)}async function b(){let e=await S();if(e)return e;if(!await v(r.default.join(l,"config.json")))return x(c);let n=(0,a.randomUUID)(),s=f(n);for(let e of(await t.promises.mkdir(s,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await w(r.default.join(l,e),r.default.join(s,e));await w(r.default.join(l,"lancedb"),r.default.join(s,"lancedb")),await w(r.default.join(l,"generated-server"),r.default.join(s,"generated-server"));let i="Default server";try{let e=r.default.join(s,"config.json"),a=JSON.parse(await t.promises.readFile(e,"utf8"));a.projectName&&(i=a.projectName),"lancedb"===a.vectorStore&&(a.storeConfig?.mode??"local")==="local"&&(a.storeConfig={...a.storeConfig,dbPath:g(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(a,null,2),"utf8")}catch{}let o=new Date().toISOString(),d={id:n,name:i,port:8080,createdAt:o,updatedAt:o};return x({username:null,activeServerId:n,servers:[d],mode:null})}async function O(){let e=await A(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function I(){let e=await O();if(!e)return null;let r=f(e.id);return await t.promises.mkdir(r,{recursive:!0}),r}async function E(){let e=await I();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:r}=await N("my-larkup");return f(r.id)}async function C(e){return new Promise(t=>{let r=s.default.createServer();r.once("error",()=>t(!1)),r.once("listening",()=>{r.close(()=>t(!0))}),r.listen(e,"127.0.0.1")})}async function T(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await C(t);)t++;return t}function N(e){return y(async n=>{let s=(0,a.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await T(n),createdAt:o,updatedAt:o},d=f(s);await t.promises.mkdir(d,{recursive:!0});let u={};if(n.activeServerId)try{let e=await t.promises.readFile(r.default.join(f(n.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(r.default.join(d,"config.json"),JSON.stringify(function(e,t,r={}){return{...i,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup",storeConfig:{mode:"local",dbPath:g(e,"lancedb")},embeddingApiKey:r.embeddingApiKey??i.embeddingApiKey,customEmbeddings:r.customEmbeddings??i.customEmbeddings,chatApiKey:r.chatApiKey??i.chatApiKey,customChatModels:r.customChatModels??i.customChatModels,serperApiKey:r.serperApiKey??i.serperApiKey,firecrawlApiKey:r.firecrawlApiKey??i.firecrawlApiKey,updatedAt:new Date().toISOString()}}(s,l.name,u),null,2),"utf8");let c={...n,servers:[...n.servers,l],activeServerId:s};return await x(c),{workspace:c,server:l}})}e.s(["createServer",0,N,"deleteServer",0,function(e){return y(async r=>{let a=r.servers.filter(t=>t.id!==e),n=r.activeServerId===e?a[0]?.id??null:r.activeServerId;return await t.promises.rm(f(e),{recursive:!0,force:!0}),x({...r,servers:a,activeServerId:n})})},"getActiveServer",0,O,"getDataDir",0,I,"getWorkspace",0,A,"renameServer",0,function(e,t){return y(async r=>{let a=r.servers.map(r=>r.id===e?{...r,name:t.trim()||r.name,updatedAt:new Date().toISOString()}:r);return x({...r,servers:a})})},"requireDataDir",0,E,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return y(async t=>t.servers.some(t=>t.id===e)?x({...t,activeServerId:e}):t)},"setMode",0,function(e){return y(async t=>x({...t,mode:e}))},"setUsername",0,function(e){return y(async t=>x({...t,username:e.trim()||null}))}],192441)}];
60
+ - End with a one-sentence synthesis if appropriate, avoiding filler words.`;e.s(["DEFAULT_CONFIG",0,i,"DEFAULT_DEPLOYMENT_CONFIG",0,{type:"rag-only",authMode:"none",enabledToolIds:[],widgetStyle:{primaryColor:"#000000",position:"bottom-right",title:"Chat with AI",welcomeMessage:"Hi! How can I help you today?",placeholder:"Type a message...",darkMode:!1,borderRadius:"lg"},allowedOrigins:["*"]},"DEFAULT_SYSTEM_PROMPT",0,o],638725);let l=r.default.join(process.cwd(),".larkup"),d=r.default.join(l,"servers"),u=r.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,m=Promise.resolve();function h(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function y(e){return await b(),h(async()=>e(await S()??c))}function f(e){return r.default.join(d,e)}function g(e,t){return`./.larkup/servers/${e}/${t}`}async function v(e){try{return await t.promises.access(e),!0}catch{return!1}}async function w(e,a){if(await v(e)){await t.promises.mkdir(r.default.dirname(a),{recursive:!0});try{await t.promises.rename(e,a)}catch{await t.promises.cp(e,a,{recursive:!0}),await t.promises.rm(e,{recursive:!0,force:!0})}}}async function S(){try{let e=await t.promises.readFile(u,"utf8");return{...c,...JSON.parse(e)}}catch{return null}}async function x(e){return await t.promises.mkdir(l,{recursive:!0}),await t.promises.writeFile(u,JSON.stringify(e,null,2),"utf8"),e}async function b(){let e=await S();return e||h(A)}async function A(){let e=await S();if(e)return e;if(!await v(r.default.join(l,"config.json")))return x(c);let n=(0,a.randomUUID)(),s=f(n);for(let e of(await t.promises.mkdir(s,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await w(r.default.join(l,e),r.default.join(s,e));await w(r.default.join(l,"lancedb"),r.default.join(s,"lancedb")),await w(r.default.join(l,"generated-server"),r.default.join(s,"generated-server"));let i="Default server";try{let e=r.default.join(s,"config.json"),a=JSON.parse(await t.promises.readFile(e,"utf8"));a.projectName&&(i=a.projectName),"lancedb"===a.vectorStore&&(a.storeConfig?.mode??"local")==="local"&&(a.storeConfig={...a.storeConfig,dbPath:g(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(a,null,2),"utf8")}catch{}let o=new Date().toISOString(),d={id:n,name:i,port:8080,createdAt:o,updatedAt:o};return x({username:null,activeServerId:n,servers:[d],mode:null})}async function O(){let e=await b(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function I(){let e=await O();if(!e)return null;let r=f(e.id);return await t.promises.mkdir(r,{recursive:!0}),r}async function E(){let e=await I();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:r}=await N("my-larkup");return f(r.id)}async function C(e){return new Promise(t=>{let r=s.default.createServer();r.once("error",()=>t(!1)),r.once("listening",()=>{r.close(()=>t(!0))}),r.listen(e,"127.0.0.1")})}async function T(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await C(t);)t++;return t}function N(e){return y(async n=>{let s=(0,a.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await T(n),createdAt:o,updatedAt:o},d=f(s);await t.promises.mkdir(d,{recursive:!0});let u={};if(n.activeServerId)try{let e=await t.promises.readFile(r.default.join(f(n.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(r.default.join(d,"config.json"),JSON.stringify(function(e,t,r={}){return{...i,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup",storeConfig:{mode:"local",dbPath:g(e,"lancedb")},embeddingApiKey:r.embeddingApiKey??i.embeddingApiKey,customEmbeddings:r.customEmbeddings??i.customEmbeddings,chatApiKey:r.chatApiKey??i.chatApiKey,customChatModels:r.customChatModels??i.customChatModels,serperApiKey:r.serperApiKey??i.serperApiKey,firecrawlApiKey:r.firecrawlApiKey??i.firecrawlApiKey,updatedAt:new Date().toISOString()}}(s,l.name,u),null,2),"utf8");let c={...n,servers:[...n.servers,l],activeServerId:s};return await x(c),{workspace:c,server:l}})}e.s(["createServer",0,N,"deleteServer",0,function(e){return y(async r=>{let a=r.servers.filter(t=>t.id!==e),n=r.activeServerId===e?a[0]?.id??null:r.activeServerId;return await t.promises.rm(f(e),{recursive:!0,force:!0}),x({...r,servers:a,activeServerId:n})})},"getActiveServer",0,O,"getDataDir",0,I,"getWorkspace",0,b,"renameServer",0,function(e,t){return y(async r=>{let a=r.servers.map(r=>r.id===e?{...r,name:t.trim()||r.name,updatedAt:new Date().toISOString()}:r);return x({...r,servers:a})})},"requireDataDir",0,E,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return y(async t=>t.servers.some(t=>t.id===e)?x({...t,activeServerId:e}):t)},"setMode",0,function(e){return y(async t=>x({...t,mode:e}))},"setUsername",0,function(e){return y(async t=>x({...t,username:e.trim()||null}))}],192441)}];
60
61
 
61
62
  //# sourceMappingURL=%5Broot-of-the-server%5D__1zptg4z._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[585071,e=>{"use strict";var t=e.i(192441);async function i(i,n){let a={...i.storeConfig},s=await (0,t.getActiveServer)(),r=s?.id;if(r){let e=r.replace(/[^a-zA-Z0-9_-]/g,"_");"pinecone"===i.vectorStore?a.namespace=r:"chroma"===i.vectorStore?a.collectionName=`documents_${e}`:"lancedb"!==i.vectorStore&&i.vectorStore||(a.tableName=`documents_${e}`)}switch(i.vectorStore){case"pinecone":{let{PineconeAdapter:t}=await e.A(77149);return new t({apiKey:a.apiKey,indexName:a.indexName,namespace:a.namespace,sparseModel:a.sparseModel,indexType:i.indexType,onRateLimit:n})}case"chroma":{let{ChromaAdapter:t}=await e.A(195059);return new t({mode:a.mode,host:a.host,authToken:a.authToken,apiKey:a.apiKey,tenant:a.tenant,database:a.database,collectionName:a.collectionName,indexType:i.indexType})}default:{let{LanceDBAdapter:t}=await e.A(184904);return new t({mode:a.mode,dbPath:a.dbPath,uri:a.uri,apiKey:a.apiKey,s3Uri:a.s3Uri,s3Endpoint:a.s3Endpoint,s3Region:a.s3Region,s3AccessKeyId:a.s3AccessKeyId,s3SecretAccessKey:a.s3SecretAccessKey,tableName:a.tableName})}}}e.s(["createAdapter",0,i])},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}},i=[{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,i,"getEmbeddingModel",0,function(e){return i.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 i=t[e.id],n=e.id.split("/")[0]||e.owned_by;return{id:e.id,label:e.name||e.id.split("/").slice(1).join("/"),provider:n,dimensions:i?.dimensions??e.context_window??768,maxInputTokens:i?.maxInputTokens??e.max_tokens??2048,description:e.description||""}}])},489694,e=>{"use strict";var t=e.i(902157),i=e.i(750227),n=e.i(192441);let a=Promise.resolve();function s(e){let t=a.then(e,e);return a=t.catch(()=>{}),t}async function r(e){let t=e?await (0,n.requireDataDir)():await (0,n.getDataDir)();return t?i.default.join(t,"index-run.json"):null}async function d(){let e=await r(!1);if(!e)return null;try{let i=await t.promises.readFile(e,"utf8");return JSON.parse(i)}catch{return null}}async function o(){let e=await d();return!!(e&&("chunking"===e.status||"embedding"===e.status||"upserting"===e.status))}e.s(["claimRun",0,function(e){return s(async()=>{let i=await d();if(i&&("chunking"===i.status||"embedding"===i.status||"upserting"===i.status))throw Error("An indexing run is already in progress.");let n=await r(!0),a={...e,updatedAt:new Date().toISOString()};return n&&await t.promises.writeFile(n,JSON.stringify(a,null,2),"utf8"),a})},"isRunning",0,o,"patchRun",0,function(e,i){return s(async()=>{let n=await d();if(!n||i&&n.id!==i)return null;let a={...n,...e,updatedAt:new Date().toISOString()},s=await r(!0);return s&&await t.promises.writeFile(s,JSON.stringify(a,null,2),"utf8"),a})},"readRun",0,d])},600373,e=>{"use strict";var t=e.i(416487),i=e.i(256485),n=e.i(528909),a=e.i(733164),s=e.i(731699),r=e.i(235072),d=e.i(344963);e.s(["getAIModel",0,function(e){let o=e.embeddingModelId;o.includes("/")&&(o=o.split("/")[1]);let l=e.embeddingApiKey?.trim()||"NO_API_KEY_PROVIDED_FROM_UI";if(e.embeddingModelId.startsWith("custom:")){let t=e.embeddingModelId.slice(7),n=(e.customEmbeddings??[]).find(e=>e.modelName===t);if(n)return(0,i.createOpenAICompatible)({name:"custom_provider",baseURL:n.baseUrl,apiKey:n.apiKey||e.embeddingApiKey||void 0}).embeddingModel(n.modelName)}return"deepseek"===e.embeddingProvider?(0,n.createDeepSeek)({apiKey:l}).embeddingModel(o):"google"===e.embeddingProvider?(0,a.createGoogleGenerativeAI)({apiKey:l}).textEmbeddingModel(o):"cohere"===e.embeddingProvider?(0,s.createCohere)({apiKey:l}).embedding(o):"mistral"===e.embeddingProvider?(0,r.createMistral)({apiKey:l}).embedding(o):"vercel_ai_gateway"===e.embeddingProvider?(0,d.createGateway)({apiKey:l}).embedding(e.embeddingModelId):(0,t.createOpenAI)({apiKey:l}).embedding(o)}])},523554,e=>{"use strict";var t=e.i(214312),i=e.i(399828),n=e.i(600373);async function a(i,a){if(0===a.length)return{embeddings:[],dimensions:0};let s=(0,n.getAIModel)(i),{embeddings:r}=await (0,t.embedMany)({model:s,values:a}),d=a.reduce((e,t)=>e+Math.ceil(t.length/4),0),{trackUsageEvent:o,estimateCost:l}=await e.A(313282);return o({type:"embedding",embeddingModelId:i.embeddingModelId,embeddingTokens:d,chunkCount:a.length,estimatedCost:l(i.embeddingModelId,d,0),timestamp:new Date().toISOString()}),{embeddings:r,dimensions:r[0]?.length??0}}async function s(e,i){let a=(0,n.getAIModel)(e),{embedding:s}=await (0,t.embed)({model:a,value:i});return s}e.s(["embedQuery",0,s,"embedTexts",0,a,"expectedDimensions",0,function(e){if(e.embeddingModelId.startsWith("custom:")){let t=e.embeddingModelId.slice(7),i=(e.customEmbeddings??[]).find(e=>e.modelName===t);if(i)return i.dimensions??0}return(0,i.getEmbeddingModel)(e.embeddingModelId)?.dimensions??0}])},900263,e=>{"use strict";var t=e.i(666680),i=e.i(705252),n=e.i(489694);function a(e){return Math.max(1,Math.round(4*e))}let s=["\n\n","\n",". ","? ","! "," "];function r(e,t){let i=[];for(let n=0;n<e.length;n+=t)i.push(e.slice(n,n+t));return i}var d=e.i(523554),o=e.i(585071);async function l(e){let i=new Date().toISOString(),a={id:(0,t.randomUUID)(),status:"chunking",embeddingModelId:e.embeddingModelId,vectorStore:e.vectorStore,indexType:e.indexType,totalChunks:0,processedChunks:0,docCount:0,dimensions:(0,d.expectedDimensions)(e),startedAt:i,updatedAt:i};return(0,n.claimRun)(a)}async function m(e,t,l=null){let u=Date.now(),c=async t=>{let i=await (0,n.patchRun)(t,e);if(!i)throw Error("This index run no longer owns the active index lease.");return i};try{var g,p;let e=await (0,i.readDocuments)();if(l&&"completed"===l.status&&(e=e.filter(e=>"indexed"!==e.status)),0===e.length)return void(l?await c({status:"completed",docCount:0,finishedAt:new Date().toISOString(),durationMs:Date.now()-u}):await c({status:"failed",error:"The corpus is empty. Load documents before indexing.",finishedAt:new Date().toISOString()}));await c({status:"chunking",docCount:e.length});let n=(g=e,p=t.chunking,g.flatMap(e=>(function(e,t){let i=a(t.chunkSize),n=a(t.chunkOverlap),d=e.content?.trim()||"",o=[];if(d){var l;let a;switch(t.strategy){case"sentence":a=function(e,t){let i=e.match(/[^.!?]+[.!?]+[\s]*|[^.!?]+$/g)??[e],n=[],a="";for(let e of i){let i=a+e;i.length<=t?a=i:(a&&n.push(a.trim()),a=e.length>t?"":e,e.length>t&&n.push(...r(e,t)))}return a.trim()&&n.push(a.trim()),n}(d,i);break;case"fixed":a=r(d,i);break;default:a=function e(t,i){if(t.length<=i)return[t];for(let n of s){if(!t.includes(n))continue;let a=t.split(n),s=[],r="";for(let t of a){let a=r?r+n+t:t;a.length<=i?r=a:(r&&s.push(r),t.length>i?s.push(...e(t,i)):r=t)}if(r&&s.push(r),s.length>1)return s}return r(t,i)}(d,i)}let m=(l=a.map(e=>e.trim()).filter(Boolean),n<=0||l.length<=1?l:l.map((e,t)=>{if(0===t)return e;let i=l[t-1].slice(-n);return`${i} ${e}`.trim()}));o.push(...m.map((t,i)=>({id:`${e.id}#${i}`,documentId:e.id,index:i,text:t,title:e.title,url:e.url,source:e.source,charCount:t.length,metadata:e.metadata})))}if(e.metadata?.images&&Array.isArray(e.metadata.images)){let t=o.length;for(let i of e.metadata.images)o.push({id:`${e.id}#img${i.index}`,documentId:e.id,index:t++,text:i.description||`An image extracted from ${e.title} on page ${i.pageNumber}.`,title:`${e.title} - Image ${i.index+1}`,url:i.imageUrl||e.url,source:e.source,charCount:0,metadata:{isImage:!0,imageUrl:i.imageUrl,pageNumber:i.pageNumber,originalFile:e.title,description:i.description}})}return o})(e,p)));if(0===n.length)return void(l?await c({status:"completed",finishedAt:new Date().toISOString(),durationMs:Date.now()-u}):await c({status:"failed",error:"No chunks were produced from the corpus.",finishedAt:new Date().toISOString()}));await c({totalChunks:n.length,status:"embedding"});let m=await (0,o.createAdapter)(t,async(e,t)=>{await c({warning:`Sparse model rate-limited — pausing ${e}s (retry ${t}/3)…`})}),b=(0,d.expectedDimensions)(t),h=0,v=!1,f=0;for(let e=0;e<n.length;e+=64){let i=n.slice(e,e+64);f>0&&await new Promise(e=>setTimeout(e,f)),await c({status:"embedding"});let a=1,s=[],r=b;for(;;)try{let{embeddings:e,dimensions:n}=await (0,d.embedTexts)(t,i.map(e=>e.text));s=e,n&&(r=n);break}catch(e){if((e?.status===429||e?.statusCode===429||String(e?.message??"").includes("429")||String(e?.message??"").includes("rate limit")||String(e?.message??"").toLowerCase().includes("too many requests"))&&a<=3){let e=10*a;await c({warning:`Dense model rate-limited — pausing ${e}s (retry ${a}/3)…`}),await new Promise(t=>setTimeout(t,1e3*e)),f=Math.max(f,2e3),a++}else throw e}b=r,v||(await m.init(b),l||await m.reset(),v=!0,await c({dimensions:b}));let o=i.map((e,t)=>({id:e.id,vector:s[t],text:e.text,title:e.title,url:e.url,source:e.source,documentId:e.documentId,chunkIndex:e.index,metadata:e.metadata}));await c({status:"upserting"});let u=1;for(;;)try{await m.upsert(o);break}catch(e){if((e?.status===429||e?.statusCode===429||String(e?.message??"").includes("429")||String(e?.message??"").includes("rate limit")||String(e?.message??"").toLowerCase().includes("too many requests")||String(e?.message??"").includes("RESOURCE_EXHAUSTED"))&&u<=3){let e=10*u;await c({warning:`Vector store rate-limited — pausing ${e}s (retry ${u}/3)…`}),await new Promise(t=>setTimeout(t,1e3*e)),f=Math.max(f,2e3),u++}else throw e}h+=i.length,await c({processedChunks:h,status:"embedding",warning:void 0})}await c({status:"completed",processedChunks:h,dimensions:b,finishedAt:new Date().toISOString(),durationMs:Date.now()-u}),await (0,i.updateDocumentsStatus)(e.map(e=>e.id),"indexed")}catch(i){let t=i instanceof Error?i.message:"Indexing failed unexpectedly.";await (0,n.patchRun)({status:"failed",error:t,finishedAt:new Date().toISOString(),durationMs:Date.now()-u},e)}}e.s(["createRun",0,l,"runIndexer",0,m],900263)},77149,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_stream_0sl4nat._.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]__1s1zui-._.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)))}];
1
+ module.exports=[585071,e=>{"use strict";var t=e.i(192441);async function i(i,n){let a={...i.storeConfig},s=await (0,t.getActiveServer)(),r=s?.id;if(r){let e=r.replace(/[^a-zA-Z0-9_-]/g,"_");"pinecone"===i.vectorStore?a.namespace=r:"chroma"===i.vectorStore?a.collectionName=`documents_${e}`:"lancedb"!==i.vectorStore&&i.vectorStore||(a.tableName=`documents_${e}`)}switch(i.vectorStore){case"pinecone":{let{PineconeAdapter:t}=await e.A(77149);return new t({apiKey:a.apiKey,indexName:a.indexName,namespace:a.namespace,sparseModel:a.sparseModel,indexType:i.indexType,onRateLimit:n})}case"chroma":{let{ChromaAdapter:t}=await e.A(195059);return new t({mode:a.mode,host:a.host,authToken:a.authToken,apiKey:a.apiKey,tenant:a.tenant,database:a.database,collectionName:a.collectionName,indexType:i.indexType})}default:{let{LanceDBAdapter:t}=await e.A(184904);return new t({mode:a.mode,dbPath:a.dbPath,uri:a.uri,apiKey:a.apiKey,s3Uri:a.s3Uri,s3Endpoint:a.s3Endpoint,s3Region:a.s3Region,s3AccessKeyId:a.s3AccessKeyId,s3SecretAccessKey:a.s3SecretAccessKey,tableName:a.tableName})}}}e.s(["createAdapter",0,i])},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}},i=[{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,i,"getEmbeddingModel",0,function(e){return i.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 i=t[e.id],n=e.id.split("/")[0]||e.owned_by;return{id:e.id,label:e.name||e.id.split("/").slice(1).join("/"),provider:n,dimensions:i?.dimensions??e.context_window??768,maxInputTokens:i?.maxInputTokens??e.max_tokens??2048,description:e.description||""}}])},489694,e=>{"use strict";var t=e.i(902157),i=e.i(750227),n=e.i(192441);let a=Promise.resolve();function s(e){let t=a.then(e,e);return a=t.catch(()=>{}),t}async function r(e){let t=e?await (0,n.requireDataDir)():await (0,n.getDataDir)();return t?i.default.join(t,"index-run.json"):null}async function d(){let e=await r(!1);if(!e)return null;try{let i=await t.promises.readFile(e,"utf8");return JSON.parse(i)}catch{return null}}async function o(){let e=await d();return!!(e&&("chunking"===e.status||"embedding"===e.status||"upserting"===e.status))}e.s(["claimRun",0,function(e){return s(async()=>{let i=await d();if(i&&("chunking"===i.status||"embedding"===i.status||"upserting"===i.status))throw Error("An indexing run is already in progress.");let n=await r(!0),a={...e,updatedAt:new Date().toISOString()};return n&&await t.promises.writeFile(n,JSON.stringify(a,null,2),"utf8"),a})},"isRunning",0,o,"patchRun",0,function(e,i){return s(async()=>{let n=await d();if(!n||i&&n.id!==i)return null;let a={...n,...e,updatedAt:new Date().toISOString()},s=await r(!0);return s&&await t.promises.writeFile(s,JSON.stringify(a,null,2),"utf8"),a})},"readRun",0,d])},600373,e=>{"use strict";var t=e.i(416487),i=e.i(256485),n=e.i(528909),a=e.i(733164),s=e.i(731699),r=e.i(235072),d=e.i(344963);e.s(["getAIModel",0,function(e){let o=e.embeddingModelId;o.includes("/")&&(o=o.split("/")[1]);let l=e.embeddingApiKey?.trim()||"NO_API_KEY_PROVIDED_FROM_UI";if(e.embeddingModelId.startsWith("custom:")){let t=e.embeddingModelId.slice(7),n=(e.customEmbeddings??[]).find(e=>e.modelName===t);if(n)return(0,i.createOpenAICompatible)({name:"custom_provider",baseURL:n.baseUrl,apiKey:n.apiKey||e.embeddingApiKey||void 0}).embeddingModel(n.modelName)}return"deepseek"===e.embeddingProvider?(0,n.createDeepSeek)({apiKey:l}).embeddingModel(o):"google"===e.embeddingProvider?(0,a.createGoogleGenerativeAI)({apiKey:l}).textEmbeddingModel(o):"cohere"===e.embeddingProvider?(0,s.createCohere)({apiKey:l}).embedding(o):"mistral"===e.embeddingProvider?(0,r.createMistral)({apiKey:l}).embedding(o):"vercel_ai_gateway"===e.embeddingProvider?(0,d.createGateway)({apiKey:l}).embedding(e.embeddingModelId):(0,t.createOpenAI)({apiKey:l}).embedding(o)}])},523554,e=>{"use strict";var t=e.i(214312),i=e.i(399828),n=e.i(600373);async function a(i,a){if(0===a.length)return{embeddings:[],dimensions:0};let s=(0,n.getAIModel)(i),{embeddings:r}=await (0,t.embedMany)({model:s,values:a}),d=a.reduce((e,t)=>e+Math.ceil(t.length/4),0),{trackUsageEvent:o,estimateCost:l}=await e.A(313282);return o({type:"embedding",embeddingModelId:i.embeddingModelId,embeddingTokens:d,chunkCount:a.length,estimatedCost:l(i.embeddingModelId,d,0),timestamp:new Date().toISOString()}),{embeddings:r,dimensions:r[0]?.length??0}}async function s(e,i){let a=(0,n.getAIModel)(e),{embedding:s}=await (0,t.embed)({model:a,value:i});return s}e.s(["embedQuery",0,s,"embedTexts",0,a,"expectedDimensions",0,function(e){if(e.embeddingModelId.startsWith("custom:")){let t=e.embeddingModelId.slice(7),i=(e.customEmbeddings??[]).find(e=>e.modelName===t);if(i)return i.dimensions??0}return(0,i.getEmbeddingModel)(e.embeddingModelId)?.dimensions??0}])},900263,e=>{"use strict";var t=e.i(666680),i=e.i(705252),n=e.i(489694);function a(e){return Math.max(1,Math.round(4*e))}let s=["\n\n","\n",". ","? ","! "," "];function r(e,t){let i=[];for(let n=0;n<e.length;n+=t)i.push(e.slice(n,n+t));return i}var d=e.i(523554),o=e.i(585071);async function l(e){let i=new Date().toISOString(),a={id:(0,t.randomUUID)(),status:"chunking",embeddingModelId:e.embeddingModelId,vectorStore:e.vectorStore,indexType:e.indexType,totalChunks:0,processedChunks:0,docCount:0,dimensions:(0,d.expectedDimensions)(e),startedAt:i,updatedAt:i};return(0,n.claimRun)(a)}async function m(e,t,l=null){let u=Date.now(),c=async t=>{let i=await (0,n.patchRun)(t,e);if(!i)throw Error("This index run no longer owns the active index lease.");return i};try{var g,p;let e=await (0,i.readDocuments)();if(l&&"completed"===l.status&&(e=e.filter(e=>"indexed"!==e.status)),0===e.length)return void(l?await c({status:"completed",docCount:0,finishedAt:new Date().toISOString(),durationMs:Date.now()-u}):await c({status:"failed",error:"The corpus is empty. Load documents before indexing.",finishedAt:new Date().toISOString()}));await c({status:"chunking",docCount:e.length});let n=(g=e,p=t.chunking,g.flatMap(e=>(function(e,t){let i=a(t.chunkSize),n=a(t.chunkOverlap),d=e.content?.trim()||"",o=[];if(d){var l;let a;switch(t.strategy){case"sentence":a=function(e,t){let i=e.match(/[^.!?]+[.!?]+[\s]*|[^.!?]+$/g)??[e],n=[],a="";for(let e of i){let i=a+e;i.length<=t?a=i:(a&&n.push(a.trim()),a=e.length>t?"":e,e.length>t&&n.push(...r(e,t)))}return a.trim()&&n.push(a.trim()),n}(d,i);break;case"fixed":a=r(d,i);break;default:a=function e(t,i){if(t.length<=i)return[t];for(let n of s){if(!t.includes(n))continue;let a=t.split(n),s=[],r="";for(let t of a){let a=r?r+n+t:t;a.length<=i?r=a:(r&&s.push(r),t.length>i?s.push(...e(t,i)):r=t)}if(r&&s.push(r),s.length>1)return s}return r(t,i)}(d,i)}let m=(l=a.map(e=>e.trim()).filter(Boolean),n<=0||l.length<=1?l:l.map((e,t)=>{if(0===t)return e;let i=l[t-1].slice(-n);return`${i} ${e}`.trim()}));o.push(...m.map((t,i)=>({id:`${e.id}#${i}`,documentId:e.id,index:i,text:t,title:e.title,url:e.url,source:e.source,charCount:t.length,metadata:e.metadata})))}if(e.metadata?.images&&Array.isArray(e.metadata.images)){let t=o.length;for(let i of e.metadata.images)o.push({id:`${e.id}#img${i.index}`,documentId:e.id,index:t++,text:i.description||`An image extracted from ${e.title} on page ${i.pageNumber}.`,title:`${e.title} - Image ${i.index+1}`,url:i.imageUrl||e.url,source:e.source,charCount:0,metadata:{isImage:!0,imageUrl:i.imageUrl,pageNumber:i.pageNumber,originalFile:e.title,description:i.description}})}return o})(e,p)));if(0===n.length)return void(l?await c({status:"completed",finishedAt:new Date().toISOString(),durationMs:Date.now()-u}):await c({status:"failed",error:"No chunks were produced from the corpus.",finishedAt:new Date().toISOString()}));await c({totalChunks:n.length,status:"embedding"});let m=await (0,o.createAdapter)(t,async(e,t)=>{await c({warning:`Sparse model rate-limited — pausing ${e}s (retry ${t}/3)…`})}),b=(0,d.expectedDimensions)(t),h=0,v=!1,f=0;for(let e=0;e<n.length;e+=64){let i=n.slice(e,e+64);f>0&&await new Promise(e=>setTimeout(e,f)),await c({status:"embedding"});let a=1,s=[],r=b;for(;;)try{let{embeddings:e,dimensions:n}=await (0,d.embedTexts)(t,i.map(e=>e.text));s=e,n&&(r=n);break}catch(e){if((e?.status===429||e?.statusCode===429||String(e?.message??"").includes("429")||String(e?.message??"").includes("rate limit")||String(e?.message??"").toLowerCase().includes("too many requests"))&&a<=3){let e=10*a;await c({warning:`Dense model rate-limited — pausing ${e}s (retry ${a}/3)…`}),await new Promise(t=>setTimeout(t,1e3*e)),f=Math.max(f,2e3),a++}else throw e}b=r,v||(await m.init(b),l||await m.reset(),v=!0,await c({dimensions:b}));let o=i.map((e,t)=>({id:e.id,vector:s[t],text:e.text,title:e.title,url:e.url,source:e.source,documentId:e.documentId,chunkIndex:e.index,metadata:e.metadata}));await c({status:"upserting"});let u=1;for(;;)try{await m.upsert(o);break}catch(e){if((e?.status===429||e?.statusCode===429||String(e?.message??"").includes("429")||String(e?.message??"").includes("rate limit")||String(e?.message??"").toLowerCase().includes("too many requests")||String(e?.message??"").includes("RESOURCE_EXHAUSTED"))&&u<=3){let e=10*u;await c({warning:`Vector store rate-limited — pausing ${e}s (retry ${u}/3)…`}),await new Promise(t=>setTimeout(t,1e3*e)),f=Math.max(f,2e3),u++}else throw e}h+=i.length,await c({processedChunks:h,status:"embedding",warning:void 0})}await c({status:"completed",processedChunks:h,dimensions:b,finishedAt:new Date().toISOString(),durationMs:Date.now()-u}),await (0,i.updateDocumentsStatus)(e.map(e=>e.id),"indexed")}catch(i){let t=i instanceof Error?i.message:"Indexing failed unexpectedly.";await (0,n.patchRun)({status:"failed",error:t,finishedAt:new Date().toISOString(),durationMs:Date.now()-u},e)}}e.s(["createRun",0,l,"runIndexer",0,m],900263)},77149,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_stream_0sl4nat._.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]__0nfenje._.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)))}];
2
2
 
3
- //# sourceMappingURL=packages_1f4dx4h._.js.map
3
+ //# sourceMappingURL=packages_1ggqion._.js.map
@@ -1,5 +1,5 @@
1
- module.exports=[432970,e=>{"use strict";var t=e.i(902157),r=e.i(750227),o=e.i(874533),n=e.i(812057),a=e.i(171502),s=e.i(834648),i=e.i(979598),c=e.i(399828),d=e.i(192441);let l=(0,n.promisify)(o.exec);async function p(e){try{let{stdout:t}=await l(`lsof -ti tcp:${e}`);for(let e of t.split("\n").map(e=>e.trim()).filter(Boolean))try{process.kill(Number(e),9)}catch{}await new Promise(e=>setTimeout(e,300))}catch{}}async function u(){let e=await (0,d.getActiveServer)();return e?.port??8080}function m(e){return{running:!1,port:e,endpoint:`http://localhost:${e}`}}async function E(e){let t=e?await (0,d.requireDataDir)():await (0,d.getDataDir)();return t?r.default.join(t,"generated-agent-server"):null}async function f(e){let t=e?await (0,d.requireDataDir)():await (0,d.getDataDir)();return t?r.default.join(t,"agent-server-local.json"):null}async function g(e){let t=e?await (0,d.requireDataDir)():await (0,d.getDataDir)();return t?r.default.join(t,"generated-server"):null}async function _(e){let t=e?await (0,d.requireDataDir)():await (0,d.getDataDir)();return t?r.default.join(t,"server-local.json"):null}async function h(){let e=await u(),r=await _(!1);if(!r)return m(e);try{let o=await t.promises.readFile(r,"utf8");return{...m(e),...JSON.parse(o),port:e}}catch{return m(e)}}async function y(e){let r=await _(!0);return r&&await t.promises.writeFile(r,JSON.stringify(e,null,2),"utf8"),e}function A(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}async function I(e){let o=(0,a.generateServer)(e),n=await g(!0);if(!n)throw Error("No active server to emit to.");for(let e of(await t.promises.mkdir(n,{recursive:!0}),o.files)){let o=r.default.join(n,e.path);await t.promises.mkdir(r.default.dirname(o),{recursive:!0}),"base64"===e.encoding?await t.promises.writeFile(o,Buffer.from(e.contents,"base64")):await t.promises.writeFile(o,e.contents,"utf8")}return n}async function S(e){try{return(await fetch(`${e}/health`,{signal:AbortSignal.timeout(3e3)})).ok}catch{return!1}}async function N(e,n){let a,i=await u(),c=`http://localhost:${i}`,d=await h();if(d.pid&&A(d.pid))try{process.kill(d.pid,9)}catch{}await p(i);let E=await I(e);try{await l("npm install --omit=dev",{cwd:E,timeout:24e4,env:{...process.env,HOME:process.env.HOME||E,npm_config_cache:r.default.join(E,".npm-cache")}})}catch(t){let e=t instanceof Error?t.message:"npm install failed";return y({...m(i),lastError:e})}let f=e.storeConfig.dbPath||"./.larkup/lancedb",g=r.default.isAbsolute(f)?f:r.default.join(process.cwd(),f),_=r.default.join(E,"server.log");await t.promises.writeFile(_,"","utf8");let S=await t.promises.open(_,"a"),N=(0,o.spawn)("node",["server.mjs"],{cwd:E,detached:!0,stdio:["ignore",S.fd,S.fd],env:{...process.env,PORT:String(i),TOP_K:String(e.topK),SERVER_API_KEY:n||"",EMBEDDING_API_KEY:e.embeddingApiKey||process.env.EMBEDDING_API_KEY||process.env.OPENAI_API_KEY||"",CHAT_API_KEY:e.chatApiKey||e.customChatModels?.find(t=>t.modelName===e.chatModelId?.replace(/^custom:/,""))?.apiKey||process.env.CHAT_API_KEY||process.env.OPENAI_API_KEY||"",CHAT_MODEL:process.env.CHAT_MODEL||(0,s.resolveChatModel)(e),CHAT_BASE_URL:e.customChatModels?.find(t=>t.modelName===e.chatModelId?.replace(/^custom:/,""))?.baseUrl||process.env.CHAT_BASE_URL||"",OPENAI_API_KEY:e.embeddingApiKey||e.chatApiKey||process.env.OPENAI_API_KEY||"",ANTHROPIC_API_KEY:e.chatApiKey||e.embeddingApiKey||process.env.ANTHROPIC_API_KEY||"",COHERE_API_KEY:e.embeddingApiKey||e.chatApiKey||process.env.COHERE_API_KEY||"",GOOGLE_GENERATIVE_AI_API_KEY:e.embeddingApiKey||e.chatApiKey||process.env.GOOGLE_GENERATIVE_AI_API_KEY||"",PINECONE_API_KEY:e.storeConfig.apiKey||"",PINECONE_INDEX:e.storeConfig.indexName||"",PINECONE_NAMESPACE:e.storeConfig.namespace||"",PINECONE_SPARSE_MODEL:e.storeConfig.sparseModel||"",PINECONE_SPARSE_INDEX:e.storeConfig.sparseIndexName||"",LANCEDB_MODE:e.storeConfig.mode||"local",LANCEDB_PATH:g,LANCEDB_URI:e.storeConfig.uri||"",LANCEDB_API_KEY:e.storeConfig.apiKey||"",LANCEDB_S3_URI:e.storeConfig.s3Uri||"",AWS_ENDPOINT:e.storeConfig.s3Endpoint||"",AWS_REGION:e.storeConfig.s3Region||"",AWS_ACCESS_KEY_ID:e.storeConfig.s3AccessKeyId||"",AWS_SECRET_ACCESS_KEY:e.storeConfig.s3SecretAccessKey||"",LANCEDB_TABLE:e.storeConfig.tableName||"documents"}});N.unref(),await S.close();let v=await T(c,2e4);if(!v){a="The AI server failed to start within the expected time limit. Please try restarting.";try{let e=(await t.promises.readFile(_,"utf8")).trim();if(e){let t=e.split("\n").slice(-5).join("\n");a=`The AI server failed to start. Error details:
2
- ${t}`}}catch(e){}}return y({running:v,pid:N.pid,port:i,endpoint:c,generatedAt:new Date().toISOString(),startedAt:new Date().toISOString(),lastError:a})}async function v(){let e=await f(!1);if(!e)return m(8081);try{let r=await t.promises.readFile(e,"utf8");return{...m(8081),...JSON.parse(r),port:8081}}catch{return m(8081)}}async function w(e){let r=await f(!0);return r&&await t.promises.writeFile(r,JSON.stringify(e,null,2),"utf8"),e}async function D(o){let n=function(t){var r;let o,n,a,d=(0,i.getVectorStore)(t.vectorStore);(0,c.getEmbeddingModel)(t.embeddingModelId);let l="lancedb"===t.vectorStore&&(t.storeConfig.mode??"local")==="local",p={ai:s.AI_SDK_VERSION,zod:"^3.23.0",cheerio:"^1.0.0",cookie:"^0.6.0","@ai-sdk/openai":s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/openai"],...d.serverDependencies};t.embeddingModelId.startsWith("custom:")?p["@ai-sdk/openai-compatible"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/openai-compatible"]:"deepseek"===t.embeddingProvider?p["@ai-sdk/deepseek"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/deepseek"]:"google"===t.embeddingProvider?p["@ai-sdk/google"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/google"]:"cohere"===t.embeddingProvider?p["@ai-sdk/cohere"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/cohere"]:"mistral"===t.embeddingProvider?p["@ai-sdk/mistral"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/mistral"]:"vercel_ai_gateway"===t.embeddingProvider?p["@ai-sdk/gateway"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/gateway"]:(t.embeddingProvider,p["@ai-sdk/openai"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/openai"]);let u=[{key:"EMBEDDING_API_KEY",required:!0,help:"API key used to embed incoming queries."},{key:"PORT",required:!1,help:"Port to listen on (default 8080)."},{key:"SERVER_API_KEY",required:!1,help:"Bearer token to secure your server endpoints. If set, requests must include 'Authorization: Bearer <key>'."},{key:"TOP_K",required:!1,help:`Default number of documents to retrieve (default ${t.topK}).`}];"pinecone"===t.vectorStore?u.push({key:"PINECONE_API_KEY",required:!0,help:"Pinecone API key."},{key:"PINECONE_INDEX",required:!0,help:"Pinecone index name to query."},{key:"PINECONE_NAMESPACE",required:!1,help:"Pinecone namespace (default 'default')."},{key:"PINECONE_SPARSE_MODEL",required:!1,help:"Pinecone sparse model (for hybrid search)."},{key:"PINECONE_SPARSE_INDEX",required:!1,help:"Pinecone sparse index name (for hybrid search)."}):u.push({key:"LANCEDB_MODE",required:!1,help:"'local' (on-disk), 's3' (S3-compatible), or 'cloud' (default 'local')."},{key:"LANCEDB_PATH",required:!1,help:"On-disk path to the LanceDB tables (local mode)."},{key:"LANCEDB_TABLE",required:!1,help:"Table name holding the embedded chunks (default 'documents')."},{key:"LANCEDB_S3_URI",required:!1,help:"S3-compatible LanceDB URI (e.g. s3://bucket/prefix)."},{key:"AWS_ENDPOINT",required:!1,help:"S3-compatible endpoint (required for Cloudflare R2)."},{key:"AWS_REGION",required:!1,help:"S3 region (use auto for Cloudflare R2)."},{key:"AWS_ACCESS_KEY_ID",required:!1,help:"S3-compatible access key ID."},{key:"AWS_SECRET_ACCESS_KEY",required:!1,help:"S3-compatible secret access key."},{key:"LANCEDB_URI",required:!1,help:"LanceDB Cloud database URI (cloud mode)."},{key:"LANCEDB_API_KEY",required:!1,help:"LanceDB Cloud API key (cloud mode)."});let m={projectName:t.projectName,files:[],dependencies:p,envVars:u},E={name:t.projectName,version:"1.0.0",private:!0,type:"module",description:`Lightweight RAG server (${d.label}) generated by larkup`,scripts:{start:"node server.mjs",demo:"node demo.mjs"},dependencies:p,engines:{node:">=20"}},f=m.envVars.map(e=>{let r="";return"EMBEDDING_API_KEY"===e.key&&(r=t.embeddingApiKey||""),"AGENT_AUTH_MODE"===e.key&&(r=t.deployment?.authMode||"none"),"AGENT_JOIN_CODE"===e.key&&(r=t.deployment?.joinCode||""),"CHAT_API_KEY"===e.key&&(r=t.deployment?.chatApiKey||t.chatApiKey||""),"PINECONE_API_KEY"===e.key&&(r=t.storeConfig.apiKey||""),"PINECONE_INDEX"===e.key&&(r=t.storeConfig.indexName||""),"PINECONE_NAMESPACE"===e.key&&(r=t.storeConfig.namespace||""),"LANCEDB_MODE"===e.key&&(r=t.storeConfig.mode||"local"),"LANCEDB_URI"===e.key&&(r=t.storeConfig.uri||""),"LANCEDB_API_KEY"===e.key&&(r=t.storeConfig.apiKey||""),"LANCEDB_S3_URI"===e.key&&(r=t.storeConfig.s3Uri||""),"AWS_ENDPOINT"===e.key&&(r=t.storeConfig.s3Endpoint||""),"AWS_REGION"===e.key&&(r=t.storeConfig.s3Region||""),"AWS_ACCESS_KEY_ID"===e.key&&(r=t.storeConfig.s3AccessKeyId||""),"AWS_SECRET_ACCESS_KEY"===e.key&&(r=t.storeConfig.s3SecretAccessKey||""),`${e.key}=${r}`}).join("\n"),g=[{path:"package.json",contents:JSON.stringify(E,null,2)+"\n"},{path:"server.mjs",contents:`import { createServer } from "node:http"
1
+ module.exports=[432970,e=>{"use strict";var t=e.i(902157),r=e.i(750227),o=e.i(874533),n=e.i(812057),a=e.i(171502),s=e.i(834648),i=e.i(979598),c=e.i(399828),d=e.i(192441);let l=(0,n.promisify)(o.exec);async function p(e){try{let{stdout:t}=await l(`lsof -ti tcp:${e}`);for(let e of t.split("\n").map(e=>e.trim()).filter(Boolean))try{process.kill(Number(e),9)}catch{}await new Promise(e=>setTimeout(e,300))}catch{}}async function u(){let e=await (0,d.getActiveServer)();return e?.port??8080}function m(e){return{running:!1,port:e,endpoint:`http://localhost:${e}`}}async function E(e){let t=e?await (0,d.requireDataDir)():await (0,d.getDataDir)();return t?r.default.join(t,"generated-agent-server"):null}async function f(e){let t=e?await (0,d.requireDataDir)():await (0,d.getDataDir)();return t?r.default.join(t,"agent-server-local.json"):null}async function g(e){let t=e?await (0,d.requireDataDir)():await (0,d.getDataDir)();return t?r.default.join(t,"generated-server"):null}async function _(e){let t=e?await (0,d.requireDataDir)():await (0,d.getDataDir)();return t?r.default.join(t,"server-local.json"):null}async function h(){let e=await u(),r=await _(!1);if(!r)return m(e);try{let o=await t.promises.readFile(r,"utf8");return{...m(e),...JSON.parse(o),port:e}}catch{return m(e)}}async function y(e){let r=await _(!0);return r&&await t.promises.writeFile(r,JSON.stringify(e,null,2),"utf8"),e}async function A(e){let t=await (0,d.getActiveServer)();if(!t||e.vectorStore&&"lancedb"!==e.vectorStore)return e;let r=t.id.replace(/[^a-zA-Z0-9_-]/g,"_");return{...e,storeConfig:{...e.storeConfig,tableName:`documents_${r}`}}}function I(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}async function S(e){let o=(0,a.generateServer)(await A(e)),n=await g(!0);if(!n)throw Error("No active server to emit to.");for(let e of(await t.promises.mkdir(n,{recursive:!0}),o.files)){let o=r.default.join(n,e.path);await t.promises.mkdir(r.default.dirname(o),{recursive:!0}),"base64"===e.encoding?await t.promises.writeFile(o,Buffer.from(e.contents,"base64")):await t.promises.writeFile(o,e.contents,"utf8")}return n}async function v(e){try{return(await fetch(`${e}/health`,{signal:AbortSignal.timeout(3e3)})).ok}catch{return!1}}async function N(e,n){let a,i=await u(),c=`http://localhost:${i}`,d=await h();if(d.pid&&I(d.pid))try{process.kill(d.pid,9)}catch{}await p(i);let E=await A(e),f=await S(E);try{await l("npm install --omit=dev",{cwd:f,timeout:24e4,env:{...process.env,HOME:process.env.HOME||f,npm_config_cache:r.default.join(f,".npm-cache")}})}catch(t){let e=t instanceof Error?t.message:"npm install failed";return y({...m(i),lastError:e})}let g=E.storeConfig.dbPath||"./.larkup/lancedb",_=r.default.isAbsolute(g)?g:r.default.join(process.cwd(),g),v=r.default.join(f,"server.log");await t.promises.writeFile(v,"","utf8");let N=await t.promises.open(v,"a"),w=(0,o.spawn)("node",["server.mjs"],{cwd:f,detached:!0,stdio:["ignore",N.fd,N.fd],env:{...process.env,PORT:String(i),TOP_K:String(E.topK),SERVER_API_KEY:n||"",EMBEDDING_API_KEY:E.embeddingApiKey||process.env.EMBEDDING_API_KEY||process.env.OPENAI_API_KEY||"",CHAT_API_KEY:E.chatApiKey||E.customChatModels?.find(e=>e.modelName===E.chatModelId?.replace(/^custom:/,""))?.apiKey||process.env.CHAT_API_KEY||process.env.OPENAI_API_KEY||"",CHAT_MODEL:process.env.CHAT_MODEL||(0,s.resolveChatModel)(E),CHAT_BASE_URL:E.customChatModels?.find(e=>e.modelName===E.chatModelId?.replace(/^custom:/,""))?.baseUrl||process.env.CHAT_BASE_URL||"",OPENAI_API_KEY:E.embeddingApiKey||E.chatApiKey||process.env.OPENAI_API_KEY||"",ANTHROPIC_API_KEY:E.chatApiKey||E.embeddingApiKey||process.env.ANTHROPIC_API_KEY||"",COHERE_API_KEY:E.embeddingApiKey||E.chatApiKey||process.env.COHERE_API_KEY||"",GOOGLE_GENERATIVE_AI_API_KEY:E.embeddingApiKey||E.chatApiKey||process.env.GOOGLE_GENERATIVE_AI_API_KEY||"",PINECONE_API_KEY:E.storeConfig.apiKey||"",PINECONE_INDEX:E.storeConfig.indexName||"",PINECONE_NAMESPACE:E.storeConfig.namespace||"",PINECONE_SPARSE_MODEL:E.storeConfig.sparseModel||"",PINECONE_SPARSE_INDEX:E.storeConfig.sparseIndexName||"",LANCEDB_MODE:E.storeConfig.mode||"local",LANCEDB_PATH:_,LANCEDB_URI:E.storeConfig.uri||"",LANCEDB_API_KEY:E.storeConfig.apiKey||"",LANCEDB_S3_URI:E.storeConfig.s3Uri||"",AWS_ENDPOINT:E.storeConfig.s3Endpoint||"",AWS_REGION:E.storeConfig.s3Region||"",AWS_ACCESS_KEY_ID:E.storeConfig.s3AccessKeyId||"",AWS_SECRET_ACCESS_KEY:E.storeConfig.s3SecretAccessKey||"",LANCEDB_TABLE:E.storeConfig.tableName||"documents"}});w.unref(),await N.close();let D=await K(c,2e4);if(!D){a="The AI server failed to start within the expected time limit. Please try restarting.";try{let e=(await t.promises.readFile(v,"utf8")).trim();if(e){let t=e.split("\n").slice(-5).join("\n");a=`The AI server failed to start. Error details:
2
+ ${t}`}}catch(e){}}return y({running:D,pid:w.pid,port:i,endpoint:c,generatedAt:new Date().toISOString(),startedAt:new Date().toISOString(),lastError:a})}async function w(){let e=await f(!1);if(!e)return m(8081);try{let r=await t.promises.readFile(e,"utf8");return{...m(8081),...JSON.parse(r),port:8081}}catch{return m(8081)}}async function D(e){let r=await f(!0);return r&&await t.promises.writeFile(r,JSON.stringify(e,null,2),"utf8"),e}async function b(o){let n=function(t){var r;let o,n,a,d=(0,i.getVectorStore)(t.vectorStore);(0,c.getEmbeddingModel)(t.embeddingModelId);let l="lancedb"===t.vectorStore&&(t.storeConfig.mode??"local")==="local",p={ai:s.AI_SDK_VERSION,zod:"^3.23.0",cheerio:"^1.0.0",cookie:"^0.6.0","@ai-sdk/openai":s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/openai"],...d.serverDependencies};t.embeddingModelId.startsWith("custom:")?p["@ai-sdk/openai-compatible"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/openai-compatible"]:"deepseek"===t.embeddingProvider?p["@ai-sdk/deepseek"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/deepseek"]:"google"===t.embeddingProvider?p["@ai-sdk/google"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/google"]:"cohere"===t.embeddingProvider?p["@ai-sdk/cohere"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/cohere"]:"mistral"===t.embeddingProvider?p["@ai-sdk/mistral"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/mistral"]:"vercel_ai_gateway"===t.embeddingProvider?p["@ai-sdk/gateway"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/gateway"]:(t.embeddingProvider,p["@ai-sdk/openai"]=s.AI_SDK_PROVIDER_VERSIONS["@ai-sdk/openai"]);let u=[{key:"EMBEDDING_API_KEY",required:!0,help:"API key used to embed incoming queries."},{key:"PORT",required:!1,help:"Port to listen on (default 8080)."},{key:"SERVER_API_KEY",required:!1,help:"Bearer token to secure your server endpoints. If set, requests must include 'Authorization: Bearer <key>'."},{key:"TOP_K",required:!1,help:`Default number of documents to retrieve (default ${t.topK}).`}];"pinecone"===t.vectorStore?u.push({key:"PINECONE_API_KEY",required:!0,help:"Pinecone API key."},{key:"PINECONE_INDEX",required:!0,help:"Pinecone index name to query."},{key:"PINECONE_NAMESPACE",required:!1,help:"Pinecone namespace (default 'default')."},{key:"PINECONE_SPARSE_MODEL",required:!1,help:"Pinecone sparse model (for hybrid search)."},{key:"PINECONE_SPARSE_INDEX",required:!1,help:"Pinecone sparse index name (for hybrid search)."}):u.push({key:"LANCEDB_MODE",required:!1,help:"'local' (on-disk), 's3' (S3-compatible), or 'cloud' (default 'local')."},{key:"LANCEDB_PATH",required:!1,help:"On-disk path to the LanceDB tables (local mode)."},{key:"LANCEDB_TABLE",required:!1,help:"Table name holding the embedded chunks (default 'documents')."},{key:"LANCEDB_S3_URI",required:!1,help:"S3-compatible LanceDB URI (e.g. s3://bucket/prefix)."},{key:"AWS_ENDPOINT",required:!1,help:"S3-compatible endpoint (required for Cloudflare R2)."},{key:"AWS_REGION",required:!1,help:"S3 region (use auto for Cloudflare R2)."},{key:"AWS_ACCESS_KEY_ID",required:!1,help:"S3-compatible access key ID."},{key:"AWS_SECRET_ACCESS_KEY",required:!1,help:"S3-compatible secret access key."},{key:"LANCEDB_URI",required:!1,help:"LanceDB Cloud database URI (cloud mode)."},{key:"LANCEDB_API_KEY",required:!1,help:"LanceDB Cloud API key (cloud mode)."});let m={projectName:t.projectName,files:[],dependencies:p,envVars:u},E={name:t.projectName,version:"1.0.0",private:!0,type:"module",description:`Lightweight RAG server (${d.label}) generated by larkup`,scripts:{start:"node server.mjs",demo:"node demo.mjs"},dependencies:p,engines:{node:">=20"}},f=m.envVars.map(e=>{let r="";return"EMBEDDING_API_KEY"===e.key&&(r=t.embeddingApiKey||""),"AGENT_AUTH_MODE"===e.key&&(r=t.deployment?.authMode||"none"),"AGENT_JOIN_CODE"===e.key&&(r=t.deployment?.joinCode||""),"CHAT_API_KEY"===e.key&&(r=t.deployment?.chatApiKey||t.chatApiKey||""),"PINECONE_API_KEY"===e.key&&(r=t.storeConfig.apiKey||""),"PINECONE_INDEX"===e.key&&(r=t.storeConfig.indexName||""),"PINECONE_NAMESPACE"===e.key&&(r=t.storeConfig.namespace||""),"LANCEDB_MODE"===e.key&&(r=t.storeConfig.mode||"local"),"LANCEDB_URI"===e.key&&(r=t.storeConfig.uri||""),"LANCEDB_API_KEY"===e.key&&(r=t.storeConfig.apiKey||""),"LANCEDB_S3_URI"===e.key&&(r=t.storeConfig.s3Uri||""),"AWS_ENDPOINT"===e.key&&(r=t.storeConfig.s3Endpoint||""),"AWS_REGION"===e.key&&(r=t.storeConfig.s3Region||""),"AWS_ACCESS_KEY_ID"===e.key&&(r=t.storeConfig.s3AccessKeyId||""),"AWS_SECRET_ACCESS_KEY"===e.key&&(r=t.storeConfig.s3SecretAccessKey||""),`${e.key}=${r}`}).join("\n"),g=[{path:"package.json",contents:JSON.stringify(E,null,2)+"\n"},{path:"server.mjs",contents:`import { createServer } from "node:http"
3
3
  import fs from "node:fs"
4
4
  import path from "node:path"
5
5
  import { checkAuth, handleVerify } from "./auth.mjs"
@@ -642,7 +642,7 @@ vercel deploy
642
642
  - \`GET /corpus/summary\` → get corpus statistics (counts by source/status)
643
643
  - \`POST /corpus\` → get corpus documents with optional filtering
644
644
  - \`POST /corpus/export\` → export full corpus as CSV or JSONL
645
- `)}].map(e=>{var t;return{...e,language:(t=e.path).endsWith(".json")?"json":t.endsWith(".mjs")||t.endsWith(".js")?"javascript":t.endsWith(".md")?"markdown":t.endsWith("Dockerfile")?"dockerfile":t.endsWith(".yml")||t.endsWith(".yaml")?"yaml":"text"}});try{let t=e.r(902157),r=e.r(750227),o=r.resolve(process.cwd(),"public/favicon2.ico");if(t.existsSync(o))g.push({path:"public/favicon2.ico",contents:t.readFileSync(o).toString("base64"),language:"ico",encoding:"base64"});else{let e=r.resolve(process.cwd(),"apps/web/public/favicon2.ico");t.existsSync(e)&&g.push({path:"public/favicon2.ico",contents:t.readFileSync(e).toString("base64"),language:"ico",encoding:"base64"})}}catch(e){}return m.files=g,m}(o),a=await E(!0);if(!a)throw Error("No active server to emit to.");for(let e of(await t.promises.mkdir(a,{recursive:!0}),n.files)){let o=r.default.join(a,e.path);await t.promises.mkdir(r.default.dirname(o),{recursive:!0}),"base64"===e.encoding?await t.promises.writeFile(o,Buffer.from(e.contents,"base64")):await t.promises.writeFile(o,e.contents,"utf8")}return a}async function b(e,n){let a,s="http://localhost:8081",i=await v();if(i.pid&&A(i.pid))try{process.kill(i.pid,9)}catch{}await p(8081);let c=await D(e);try{await l("npm install --omit=dev",{cwd:c,timeout:24e4,env:{...process.env,HOME:process.env.HOME||c,npm_config_cache:r.default.join(c,".npm-cache")}})}catch(t){let e=t instanceof Error?t.message:"npm install failed";return w({...m(8081),lastError:e})}let d=e.storeConfig.dbPath||"./.larkup/lancedb",u=r.default.isAbsolute(d)?d:r.default.join(process.cwd(),d),E=r.default.join(c,"server.log");await t.promises.writeFile(E,"","utf8");let f=await t.promises.open(E,"a"),g=(0,o.spawn)("node",["server.mjs"],{cwd:c,detached:!0,stdio:["ignore",f.fd,f.fd],env:{...process.env,PORT:String(8081),TOP_K:String(e.topK),SERVER_API_KEY:n||"",AGENT_AUTH_MODE:e.deployment?.authMode||"none",AGENT_JOIN_CODE:e.deployment?.joinCode||"",CHAT_API_KEY:e.deployment?.chatApiKey||e.chatApiKey||process.env.OPENAI_API_KEY||"",EMBEDDING_API_KEY:e.embeddingApiKey||process.env.EMBEDDING_API_KEY||process.env.OPENAI_API_KEY||"",OPENAI_API_KEY:e.embeddingApiKey||e.chatApiKey||process.env.OPENAI_API_KEY||"",PINECONE_API_KEY:e.storeConfig.apiKey||"",PINECONE_INDEX:e.storeConfig.indexName||"",PINECONE_NAMESPACE:e.storeConfig.namespace||"",PINECONE_SPARSE_MODEL:e.storeConfig.sparseModel||"",PINECONE_SPARSE_INDEX:e.storeConfig.sparseIndexName||"",LANCEDB_MODE:e.storeConfig.mode||"local",LANCEDB_PATH:u,LANCEDB_URI:e.storeConfig.uri||"",LANCEDB_API_KEY:e.storeConfig.apiKey||"",LANCEDB_S3_URI:e.storeConfig.s3Uri||"",AWS_ENDPOINT:e.storeConfig.s3Endpoint||"",AWS_REGION:e.storeConfig.s3Region||"",AWS_ACCESS_KEY_ID:e.storeConfig.s3AccessKeyId||"",AWS_SECRET_ACCESS_KEY:e.storeConfig.s3SecretAccessKey||"",LANCEDB_TABLE:e.storeConfig.tableName||"documents"}});g.unref(),await f.close();let _=await T(s,2e4);if(!_){a="The AI agent server failed to start.";try{let e=(await t.promises.readFile(E,"utf8")).trim();if(e){let t=e.split("\n").slice(-5).join("\n");a=`The AI agent server failed to start. Error details:
646
- ${t}`}}catch(e){}}return w({running:_,pid:g.pid,port:8081,endpoint:s,generatedAt:new Date().toISOString(),startedAt:new Date().toISOString(),lastError:a})}async function P(){let e=await v(),t=e.port||8081;if(e.pid&&A(e.pid))try{process.kill(e.pid,9)}catch{}return await p(t),w({...e,running:!1,pid:void 0,startedAt:void 0})}async function O(){let e=await v();if(!e.startedAt)return e;let t=A(e.pid)&&await S(e.endpoint);return t!==e.running?w({...e,running:t}):e}async function C(){let e=await h(),t=e.port||8080;if(e.pid&&A(e.pid))try{process.kill(e.pid,9)}catch{}return await p(t),y({...e,running:!1,pid:void 0,startedAt:void 0})}async function k(){let e=await h();if(!e.startedAt)return e;let t=A(e.pid)&&await S(e.endpoint);return t!==e.running?y({...e,running:t}):e}async function T(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(await S(e))return!0;await new Promise(e=>setTimeout(e,1500))}return!1}e.s(["readAgentServerState",0,v,"readServerState",0,h,"refreshAgentServerStatus",0,O,"refreshServerStatus",0,k,"startAgentServer",0,b,"startServer",0,N,"stopAgentServer",0,P,"stopServer",0,C],432970)}];
645
+ `)}].map(e=>{var t;return{...e,language:(t=e.path).endsWith(".json")?"json":t.endsWith(".mjs")||t.endsWith(".js")?"javascript":t.endsWith(".md")?"markdown":t.endsWith("Dockerfile")?"dockerfile":t.endsWith(".yml")||t.endsWith(".yaml")?"yaml":"text"}});try{let t=e.r(902157),r=e.r(750227),o=r.resolve(process.cwd(),"public/favicon2.ico");if(t.existsSync(o))g.push({path:"public/favicon2.ico",contents:t.readFileSync(o).toString("base64"),language:"ico",encoding:"base64"});else{let e=r.resolve(process.cwd(),"apps/web/public/favicon2.ico");t.existsSync(e)&&g.push({path:"public/favicon2.ico",contents:t.readFileSync(e).toString("base64"),language:"ico",encoding:"base64"})}}catch(e){}return m.files=g,m}(o),a=await E(!0);if(!a)throw Error("No active server to emit to.");for(let e of(await t.promises.mkdir(a,{recursive:!0}),n.files)){let o=r.default.join(a,e.path);await t.promises.mkdir(r.default.dirname(o),{recursive:!0}),"base64"===e.encoding?await t.promises.writeFile(o,Buffer.from(e.contents,"base64")):await t.promises.writeFile(o,e.contents,"utf8")}return a}async function C(e,n){let a,s="http://localhost:8081",i=await w();if(i.pid&&I(i.pid))try{process.kill(i.pid,9)}catch{}await p(8081);let c=await b(e);try{await l("npm install --omit=dev",{cwd:c,timeout:24e4,env:{...process.env,HOME:process.env.HOME||c,npm_config_cache:r.default.join(c,".npm-cache")}})}catch(t){let e=t instanceof Error?t.message:"npm install failed";return D({...m(8081),lastError:e})}let d=e.storeConfig.dbPath||"./.larkup/lancedb",u=r.default.isAbsolute(d)?d:r.default.join(process.cwd(),d),E=r.default.join(c,"server.log");await t.promises.writeFile(E,"","utf8");let f=await t.promises.open(E,"a"),g=(0,o.spawn)("node",["server.mjs"],{cwd:c,detached:!0,stdio:["ignore",f.fd,f.fd],env:{...process.env,PORT:String(8081),TOP_K:String(e.topK),SERVER_API_KEY:n||"",AGENT_AUTH_MODE:e.deployment?.authMode||"none",AGENT_JOIN_CODE:e.deployment?.joinCode||"",CHAT_API_KEY:e.deployment?.chatApiKey||e.chatApiKey||process.env.OPENAI_API_KEY||"",EMBEDDING_API_KEY:e.embeddingApiKey||process.env.EMBEDDING_API_KEY||process.env.OPENAI_API_KEY||"",OPENAI_API_KEY:e.embeddingApiKey||e.chatApiKey||process.env.OPENAI_API_KEY||"",PINECONE_API_KEY:e.storeConfig.apiKey||"",PINECONE_INDEX:e.storeConfig.indexName||"",PINECONE_NAMESPACE:e.storeConfig.namespace||"",PINECONE_SPARSE_MODEL:e.storeConfig.sparseModel||"",PINECONE_SPARSE_INDEX:e.storeConfig.sparseIndexName||"",LANCEDB_MODE:e.storeConfig.mode||"local",LANCEDB_PATH:u,LANCEDB_URI:e.storeConfig.uri||"",LANCEDB_API_KEY:e.storeConfig.apiKey||"",LANCEDB_S3_URI:e.storeConfig.s3Uri||"",AWS_ENDPOINT:e.storeConfig.s3Endpoint||"",AWS_REGION:e.storeConfig.s3Region||"",AWS_ACCESS_KEY_ID:e.storeConfig.s3AccessKeyId||"",AWS_SECRET_ACCESS_KEY:e.storeConfig.s3SecretAccessKey||"",LANCEDB_TABLE:e.storeConfig.tableName||"documents"}});g.unref(),await f.close();let _=await K(s,2e4);if(!_){a="The AI agent server failed to start.";try{let e=(await t.promises.readFile(E,"utf8")).trim();if(e){let t=e.split("\n").slice(-5).join("\n");a=`The AI agent server failed to start. Error details:
646
+ ${t}`}}catch(e){}}return D({running:_,pid:g.pid,port:8081,endpoint:s,generatedAt:new Date().toISOString(),startedAt:new Date().toISOString(),lastError:a})}async function P(){let e=await w(),t=e.port||8081;if(e.pid&&I(e.pid))try{process.kill(e.pid,9)}catch{}return await p(t),D({...e,running:!1,pid:void 0,startedAt:void 0})}async function O(){let e=await w();if(!e.startedAt)return e;let t=I(e.pid)&&await v(e.endpoint);return t!==e.running?D({...e,running:t}):e}async function k(){let e=await h(),t=e.port||8080;if(e.pid&&I(e.pid))try{process.kill(e.pid,9)}catch{}return await p(t),y({...e,running:!1,pid:void 0,startedAt:void 0})}async function T(){let e=await h();if(!e.startedAt)return e;let t=I(e.pid)&&await v(e.endpoint);return t!==e.running?y({...e,running:t}):e}async function K(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(await v(e))return!0;await new Promise(e=>setTimeout(e,1500))}return!1}e.s(["readAgentServerState",0,w,"readServerState",0,h,"refreshAgentServerStatus",0,O,"refreshServerStatus",0,T,"startAgentServer",0,C,"startServer",0,N,"stopAgentServer",0,P,"stopServer",0,k],432970)}];
647
647
 
648
648
  //# sourceMappingURL=packages_core_src_generator_server-runtime_ts_1_68l7t._.js.map