larkup 0.1.21 → 0.1.23

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 (119) 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 +12 -12
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +16 -16
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
  18. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  19. package/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  21. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  23. package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/analytics.html +1 -1
  25. package/.next/server/app/analytics.rsc +17 -17
  26. package/.next/server/app/analytics.segments/_full.segment.rsc +17 -17
  27. package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
  28. package/.next/server/app/analytics.segments/_index.segment.rsc +11 -11
  29. package/.next/server/app/analytics.segments/_tree.segment.rsc +1 -1
  30. package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +3 -3
  31. package/.next/server/app/analytics.segments/analytics.segment.rsc +3 -3
  32. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/chat.html +1 -1
  34. package/.next/server/app/chat.rsc +17 -17
  35. package/.next/server/app/chat.segments/_full.segment.rsc +17 -17
  36. package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
  37. package/.next/server/app/chat.segments/_index.segment.rsc +11 -11
  38. package/.next/server/app/chat.segments/_tree.segment.rsc +1 -1
  39. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +3 -3
  40. package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
  41. package/.next/server/app/data/page_client-reference-manifest.js +1 -1
  42. package/.next/server/app/data.html +1 -1
  43. package/.next/server/app/data.rsc +17 -17
  44. package/.next/server/app/data.segments/_full.segment.rsc +17 -17
  45. package/.next/server/app/data.segments/_head.segment.rsc +4 -4
  46. package/.next/server/app/data.segments/_index.segment.rsc +11 -11
  47. package/.next/server/app/data.segments/_tree.segment.rsc +1 -1
  48. package/.next/server/app/data.segments/data/__PAGE__.segment.rsc +3 -3
  49. package/.next/server/app/data.segments/data.segment.rsc +3 -3
  50. package/.next/server/app/index.html +1 -1
  51. package/.next/server/app/index.rsc +16 -16
  52. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  53. package/.next/server/app/index.segments/_full.segment.rsc +16 -16
  54. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  55. package/.next/server/app/index.segments/_index.segment.rsc +11 -11
  56. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  57. package/.next/server/app/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/settings.html +1 -1
  60. package/.next/server/app/settings.rsc +18 -18
  61. package/.next/server/app/settings.segments/_full.segment.rsc +18 -18
  62. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  63. package/.next/server/app/settings.segments/_index.segment.rsc +11 -11
  64. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  65. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  66. package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  67. package/.next/server/chunks/[root-of-the-server]__0036943._.js +2 -2
  68. package/.next/server/chunks/[root-of-the-server]__00nqa2u._.js +2 -2
  69. package/.next/server/chunks/[root-of-the-server]__02cpmox._.js +3 -3
  70. package/.next/server/chunks/[root-of-the-server]__02p-tv7._.js +3 -3
  71. package/.next/server/chunks/[root-of-the-server]__02t_0g7._.js +2 -2
  72. package/.next/server/chunks/[root-of-the-server]__04kopvt._.js +3 -3
  73. package/.next/server/chunks/[root-of-the-server]__04l~ip-._.js +2 -2
  74. package/.next/server/chunks/[root-of-the-server]__04visk8._.js +2 -2
  75. package/.next/server/chunks/[root-of-the-server]__05x8tmf._.js +2 -2
  76. package/.next/server/chunks/[root-of-the-server]__06l96vc._.js +2 -2
  77. package/.next/server/chunks/[root-of-the-server]__06ohoeu._.js +2 -2
  78. package/.next/server/chunks/[root-of-the-server]__07_1411._.js +2 -2
  79. package/.next/server/chunks/[root-of-the-server]__0acpo9m._.js +2 -2
  80. package/.next/server/chunks/[root-of-the-server]__0exyn0q._.js +2 -2
  81. package/.next/server/chunks/[root-of-the-server]__0fcf_rl._.js +2 -2
  82. package/.next/server/chunks/[root-of-the-server]__0f~eq1-._.js +2 -2
  83. package/.next/server/chunks/[root-of-the-server]__0ljy49-._.js +2 -2
  84. package/.next/server/chunks/[root-of-the-server]__0n0nerw._.js +2 -2
  85. package/.next/server/chunks/[root-of-the-server]__0oh5wgp._.js +2 -2
  86. package/.next/server/chunks/[root-of-the-server]__0oyc7s4._.js +3 -3
  87. package/.next/server/chunks/[root-of-the-server]__0pg~eys._.js +2 -2
  88. package/.next/server/chunks/[root-of-the-server]__0qtx78g._.js +2 -2
  89. package/.next/server/chunks/[root-of-the-server]__0r03jcl._.js +2 -2
  90. package/.next/server/chunks/[root-of-the-server]__0sb7d93._.js +2 -2
  91. package/.next/server/chunks/[root-of-the-server]__0t36t5o._.js +3 -3
  92. package/.next/server/chunks/[root-of-the-server]__0t_hp52._.js +2 -2
  93. package/.next/server/chunks/[root-of-the-server]__0v03x56._.js +2 -2
  94. package/.next/server/chunks/[root-of-the-server]__0v4bbce._.js +2 -2
  95. package/.next/server/chunks/[root-of-the-server]__0vcdpoc._.js +2 -2
  96. package/.next/server/chunks/[root-of-the-server]__0wvxpqf._.js +2 -2
  97. package/.next/server/chunks/[root-of-the-server]__0wyl7x5._.js +2 -2
  98. package/.next/server/chunks/[root-of-the-server]__0yx8vxp._.js +2 -2
  99. package/.next/server/chunks/[root-of-the-server]__0zh8t6z._.js +2 -2
  100. package/.next/server/chunks/[root-of-the-server]__0~q2fro._.js +2 -2
  101. package/.next/server/chunks/[root-of-the-server]__10d58x4._.js +2 -2
  102. package/.next/server/chunks/[root-of-the-server]__12kvuvp._.js +2 -2
  103. package/.next/server/chunks/packages_core_src_generator_generate-server_ts_0mt.je3._.js +3 -5
  104. package/.next/server/chunks/ssr/_0s5_0n1._.js +1 -1
  105. package/.next/server/chunks/ssr/packages_core_src_generator_generate-server_ts_0o.y7vi._.js +3 -5
  106. package/.next/server/middleware-build-manifest.js +3 -3
  107. package/.next/server/pages/404.html +1 -1
  108. package/.next/server/pages/500.html +1 -1
  109. package/.next/static/chunks/0u4n0ggeto75y.js +1 -0
  110. package/CHANGELOG.md +12 -0
  111. package/bin/larkup.js +43 -15
  112. package/components/onboarding/simple-setup.tsx +2 -2
  113. package/components/onboarding/welcome-screen.tsx +2 -2
  114. package/next-env.d.ts +1 -1
  115. package/package.json +17 -17
  116. package/.next/static/chunks/0ho7lc.x2uknx.js +0 -1
  117. /package/.next/static/{KqIuNxkoeAlhCusoxtMrS → Fb01QU1MyWBHc7U1LHf5y}/_buildManifest.js +0 -0
  118. /package/.next/static/{KqIuNxkoeAlhCusoxtMrS → Fb01QU1MyWBHc7U1LHf5y}/_clientMiddlewareManifest.js +0 -0
  119. /package/.next/static/{KqIuNxkoeAlhCusoxtMrS → Fb01QU1MyWBHc7U1LHf5y}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- module.exports=[750227,(e,t,a)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,a)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},478500,(e,t,a)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},761095,(e,t,a)=>{t.exports=e.x("node:net",()=>require("node:net"))},192441,638725,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),n=e.i(478500),i=e.i(761095);let s={projectName:"my-rag",embeddingProvider:"openai",embeddingApiKey:"",embeddingModelId:"openai/text-embedding-3-small",indexType:"hybrid",chunking:{chunkSize:512,chunkOverlap:64,strategy:"recursive"},vectorStore:"lancedb",storeConfig:{mode:"local",dbPath:"./.larkup/lancedb",tableName:"documents"},topK:5,serperApiKey:"",webSearchEnabled:!1,webSearchProvider:"tavily",tavilyApiKey:"",googleApiKey:"",braveApiKey:"",bingApiKey:"",exaApiKey:"",chatModelId:"",chatApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",toolConfigs:{},updatedAt:new Date(0).toISOString()},o=`You are a powerful data analysis assistant with access to a knowledge base, corpus introspection tools, tabular data tools, and a code sandbox.
1
+ module.exports=[750227,(e,t,a)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,a)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},478500,(e,t,a)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},761095,(e,t,a)=>{t.exports=e.x("node:net",()=>require("node:net"))},192441,638725,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),n=e.i(478500),i=e.i(761095);let s={projectName:"my-larkup",embeddingProvider:"openai",embeddingApiKey:"",embeddingModelId:"openai/text-embedding-3-small",indexType:"hybrid",chunking:{chunkSize:512,chunkOverlap:64,strategy:"recursive"},vectorStore:"lancedb",storeConfig:{mode:"local",dbPath:"./.larkup/lancedb",tableName:"documents"},topK:5,serperApiKey:"",webSearchEnabled:!1,webSearchProvider:"tavily",tavilyApiKey:"",googleApiKey:"",braveApiKey:"",bingApiKey:"",exaApiKey:"",chatModelId:"",chatApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",toolConfigs:{},updatedAt:new Date(0).toISOString()},o=`You are a powerful data analysis assistant with access to a knowledge base, corpus introspection tools, tabular data tools, and a code sandbox.
2
2
 
3
3
  You have these tools:
4
4
  1. "searchKnowledgeBase" — semantic search over the RAG knowledge base. Returns top-K most relevant document chunks.
@@ -54,10 +54,10 @@ RESPONSE FORMATTING (Analytics Style):
54
54
  - Structure complex responses logically (e.g., Summary -> Key Metrics -> Breakdown).
55
55
  - If your findings contain a small table of data, format it cleanly using Markdown tables.
56
56
  - DO NOT hallucinate facts; rely strictly on the provided query results.
57
- - End with a one-sentence synthesis if appropriate, avoiding filler words.`;e.s(["DEFAULT_CONFIG",0,s,"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=a.default.join(process.cwd(),".larkup"),d=a.default.join(l,"servers"),u=a.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,m=Promise.resolve();function g(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function h(e){return await b(),g(async()=>e(await S()??c))}function f(e){return a.default.join(d,e)}function y(e,t){return`./.larkup/servers/${e}/${t}`}async function w(e){try{return await t.promises.access(e),!0}catch{return!1}}async function v(e,r){if(await w(e)){await t.promises.mkdir(a.default.dirname(r),{recursive:!0});try{await t.promises.rename(e,r)}catch{await t.promises.cp(e,r,{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 A(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||g(E)}async function E(){let e=await S();if(e)return e;if(!await w(a.default.join(l,"config.json")))return A(c);let n=(0,r.randomUUID)(),i=f(n);for(let e of(await t.promises.mkdir(i,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await v(a.default.join(l,e),a.default.join(i,e));await v(a.default.join(l,"lancedb"),a.default.join(i,"lancedb")),await v(a.default.join(l,"generated-server"),a.default.join(i,"generated-server"));let s="Default server";try{let e=a.default.join(i,"config.json"),r=JSON.parse(await t.promises.readFile(e,"utf8"));r.projectName&&(s=r.projectName),"lancedb"===r.vectorStore&&(r.storeConfig?.mode??"local")==="local"&&(r.storeConfig={...r.storeConfig,dbPath:y(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(r,null,2),"utf8")}catch{}let o=new Date().toISOString(),d={id:n,name:s,port:8080,createdAt:o,updatedAt:o};return A({username:null,activeServerId:n,servers:[d],mode:null})}async function I(){let e=await b(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function R(){let e=await I();if(!e)return null;let a=f(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function x(){let e=await R();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:a}=await D("My RAG server");return f(a.id)}async function T(e){return new Promise(t=>{let a=i.default.createServer();a.once("error",()=>t(!1)),a.once("listening",()=>{a.close(()=>t(!0))}),a.listen(e,"127.0.0.1")})}async function C(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await T(t);)t++;return t}function D(e){return h(async n=>{let i=(0,r.randomUUID)(),o=new Date().toISOString(),l={id:i,name:e.trim()||"Untitled server",port:await C(n),createdAt:o,updatedAt:o},d=f(i);await t.promises.mkdir(d,{recursive:!0});let u={};if(n.activeServerId)try{let e=await t.promises.readFile(a.default.join(f(n.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(d,"config.json"),JSON.stringify(function(e,t,a={}){return{...s,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-rag",storeConfig:{mode:"local",dbPath:y(e,"lancedb")},embeddingApiKey:a.embeddingApiKey??s.embeddingApiKey,customEmbeddings:a.customEmbeddings??s.customEmbeddings,chatApiKey:a.chatApiKey??s.chatApiKey,customChatModels:a.customChatModels??s.customChatModels,serperApiKey:a.serperApiKey??s.serperApiKey,firecrawlApiKey:a.firecrawlApiKey??s.firecrawlApiKey,updatedAt:new Date().toISOString()}}(i,l.name,u),null,2),"utf8");let c={...n,servers:[...n.servers,l],activeServerId:i};return await A(c),{workspace:c,server:l}})}e.s(["createServer",0,D,"deleteServer",0,function(e){return h(async a=>{let r=a.servers.filter(t=>t.id!==e),n=a.activeServerId===e?r[0]?.id??null:a.activeServerId;return await t.promises.rm(f(e),{recursive:!0,force:!0}),A({...a,servers:r,activeServerId:n})})},"getActiveServer",0,I,"getDataDir",0,R,"getWorkspace",0,b,"renameServer",0,function(e,t){return h(async a=>{let r=a.servers.map(a=>a.id===e?{...a,name:t.trim()||a.name,updatedAt:new Date().toISOString()}:a);return A({...a,servers:r})})},"requireDataDir",0,x,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return h(async t=>t.servers.some(t=>t.id===e)?A({...t,activeServerId:e}):t)},"setMode",0,function(e){return h(async t=>A({...t,mode:e}))},"setUsername",0,function(e){return h(async t=>A({...t,username:e.trim()||null}))}],192441)},839554,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),n=e.i(192441);let i=Promise.resolve();function s(e){let t=i.then(e,e);return i=t.catch(()=>{}),t}async function o(e){let t=e?await (0,n.requireDataDir)():await (0,n.getDataDir)();return t?a.default.join(t,"media-assets.json"):null}async function l(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid media asset store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let n=await o(!0);if(!n)return;let i=a.default.join(a.default.dirname(n),`.${a.default.basename(n)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(i,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(i,n)}catch(e){throw await t.promises.unlink(i).catch(()=>{}),e}}let u=["download","extract","transcribe","vision","synthesize","index"],c={download:10,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function p(e){return u.map(t=>({stage:t,status:"waiting",updatedAt:e}))}function m(e){return void 0!==e&&Number.isFinite(e)?Math.max(0,e):void 0}function g(e){let t=m(e);return void 0===t?void 0:Math.min(100,t)}function h(e){return Math.floor(m(e.processingRevision)??0)+1}async function f(){let e=await l(),t={image:0,video:0,audio:0},a={pending:0,processing:0,completed:0,failed:0},r=0;for(let n of e)t[n.type]++,a[n.processingStatus]++,r+=n.fileSize;return{total:e.length,byType:t,byStatus:a,totalBytes:r}}async function y(e){return(await l()).find(t=>t.id===e)}e.s(["addMediaAssets",0,function(e){return s(async()=>{let t=await l(),a=new Date().toISOString(),n=e.map(e=>({id:(0,r.randomUUID)(),type:e.type,fileName:e.fileName,mimeType:e.mimeType,storageUri:e.storageUri,thumbnailUri:e.thumbnailUri,originalUrl:e.originalUrl,fileSize:e.fileSize,dimensions:e.dimensions,durationSecs:e.durationSecs,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:a,updatedAt:a}));return t.push(...n),await d(t),n})},"claimMediaAsset",0,function(e){return s(async()=>{let t=await l(),a=t.findIndex(t=>t.id===e);if(a<0||"processing"===t[a].processingStatus||"Queued for background processing..."===t[a].processingMessage)return;let r=new Date().toISOString();return t[a]={...t[a],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:1,processingSteps:p(r),processingRevision:h(t[a]),processingHeartbeatAt:r,updatedAt:r},await d(t),t[a]})},"deleteMediaAsset",0,function(e){return s(async()=>{let t=await l();await d(t.filter(t=>t.id!==e))})},"deleteMediaAssets",0,function(e){return s(async()=>{let t=await l(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"getMediaAsset",0,y,"mediaStats",0,f,"readMediaAssets",0,l,"recoverStaleMediaAssets",0,function(e=3e5){return s(async()=>{let t=await l(),a=Date.now()-e,r="The background worker stopped. Retry to resume media processing.",n=0;for(let e=0;e<t.length;e++){let i=t[e],s="processing"===i.processingStatus,o="pending"===i.processingStatus&&"Queued for background processing..."===i.processingMessage,l=i.processingHeartbeatAt??i.updatedAt;if((s||o)&&new Date(l).getTime()<a){let a=new Date().toISOString(),s=i.processingSteps?.map(e=>"running"===e.status?{...e,status:"failed",message:r,updatedAt:a,finishedAt:a}:e);t[e]={...i,processingStatus:"failed",processingError:r,processingMessage:void 0,processingProgress:void 0,processingSteps:s,processingRevision:h(i),processingHeartbeatAt:a,updatedAt:a},n++}}return n>0&&await d(t),n})},"updateMediaAsset",0,function(e,t){return s(async()=>{let a=await l(),r=a.findIndex(t=>t.id===e);if(r<0)return;let n=a[r];return a[r]={...n,...t,documentIds:t.documentIds??n.documentIds,pendingDocumentIds:t.pendingDocumentIds??n.pendingDocumentIds,supersededDocumentIds:t.supersededDocumentIds??n.supersededDocumentIds,updatedAt:new Date().toISOString()},await d(a),a[r]})},"updateMediaStage",0,function(e,t,a){return s(async()=>{let r,n,i=await l(),s=i.findIndex(t=>t.id===e);if(s<0)return;let o=new Date().toISOString(),u=i[s],f=new Map((u.processingSteps??[]).map(e=>[e.stage,e])),y=p(o).map(e=>f.get(e.stage)??e),w=y.findIndex(e=>e.stage===t),v=y[w],S=new Set(["completed","skipped","failed"]),A=a.status??v.status,b=S.has(v.status)||"running"===v.status&&"waiting"===A?v.status:A,E=g(v.percent),I=g(a.percent),R=void 0===I?E:Math.max(E??0,I),x=m(v.current),T=m(a.current),C=void 0===T?x:Math.max(x??0,T),D=void 0===a.total?m(v.total):m(a.total);void 0!==C&&void 0!==D&&(D=Math.max(D,C))>0&&(R=Math.max(R??0,Math.min(100,C/D*100))),"completed"===b&&(R=100,void 0!==D&&(C=D));let O=S.has(b),N={...v,...a,stage:t,status:b,percent:R,current:C,total:D,startedAt:a.startedAt??v.startedAt??("running"===b||O?o:void 0),updatedAt:o,finishedAt:O?a.finishedAt??v.finishedAt??o:void 0};y[w]=N;let M=Math.max(g(u.processingProgress)??0,0===(n=(r=y.filter(e=>"skipped"!==e.status)).reduce((e,t)=>e+c[t.stage],0))?100:Math.round(r.reduce((e,t)=>e+c[t.stage]*function(e){if("completed"===e.status)return 100;if("waiting"===e.status||"skipped"===e.status)return 0;let t=g(e.percent);return void 0!==t?t:void 0!==e.current&&void 0!==e.total&&Number.isFinite(e.current)&&Number.isFinite(e.total)&&e.total>0?Math.min(100,Math.max(0,e.current/e.total*100)):0}(t)/100,0)/n*100)),U=[...y].reverse().find(e=>"running"===e.status&&e.message)?.message,P="running"===N.status?N.message??a.message??u.processingMessage:U??a.message??N.message??u.processingMessage;return i[s]={...u,processingSteps:y,processingProgress:M,processingMessage:P,processingRevision:h(u),processingHeartbeatAt:o,updatedAt:o},await d(i),i[s]})}])},941486,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(192441);class n{id="local";name="Local Storage";async mediaDir(){let e=await (0,r.requireDataDir)(),n=a.default.join(e,"media");return await t.promises.mkdir(n,{recursive:!0}),n}async store(e,r,n){let i=await this.mediaDir(),s=a.default.join(i,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.writeFile(s,r),`local://${e}`}async storeFile(e,r,n){let i=await this.mediaDir(),s=a.default.join(i,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.copyFile(r,s),`local://${e}`}async retrieve(e){let a=await this.resolvePath(e);if(!a)throw Error(`Unsupported local storage URI: ${e}`);return t.promises.readFile(a)}async resolvePath(e){if(!e.startsWith("local://"))return;let t=e.slice(8),r=await this.mediaDir(),n=a.default.resolve(r,t),i=a.default.relative(r,n);if(i.startsWith("..")||a.default.isAbsolute(i))throw Error("Invalid local storage URI");return n}async delete(e){let r=e.replace("local://",""),n=await this.mediaDir();try{await t.promises.unlink(a.default.join(n,r))}catch{}}async stats(){try{let e=await this.mediaDir();return await i(e)}catch{return{usedBytes:0,fileCount:0}}}}async function i(e){let r=0,n=0;async function i(e){let s;try{s=await t.promises.readdir(e,{withFileTypes:!0})}catch{return}for(let o of s){let s=a.default.join(e,o.name);if(o.isDirectory())await i(s);else try{let e=await t.promises.stat(s);r+=e.size,n++}catch{}}}return await i(e),{usedBytes:r,fileCount:n}}e.s(["createStorageProvider",0,function(e){return new n}])},977715,e=>{"use strict";var t=e.i(850492),a=e.i(891119),r=e.i(697373),n=e.i(765700),i=e.i(601263),s=e.i(706859),o=e.i(947547),l=e.i(819797),d=e.i(135958),u=e.i(86520),c=e.i(970949),p=e.i(741165),m=e.i(106898),g=e.i(454415),h=e.i(37125),f=e.i(193695);e.i(530058);var y=e.i(605998),w=e.i(839554),v=e.i(941486),S=e.i(192441);let A=new TextEncoder;async function b(e,t){let a=await (0,w.readMediaAssets)(),r=e?a.filter(t=>t.type===e):a;r.sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());let n={total:a.length,byType:{image:0,video:0,audio:0},byStatus:{pending:0,processing:0,completed:0,failed:0},totalBytes:0};for(let e of a)n.byType[e.type]++,n.byStatus[e.processingStatus]++,n.totalBytes+=e.fileSize;return{assets:r,stats:n,storage:t}}async function E(e){let t,a,r=new URL(e.url),n=r.searchParams.get("type"),i=r.searchParams.get("serverId"),s="image"===n||"video"===n||"audio"===n?n:null,o=e=>i?(0,S.runWithServer)(i,e):e();return await o(()=>(0,w.recoverStaleMediaAssets)()),new Response(new ReadableStream({async start(e){let r="",n=!1,i={usedBytes:0,fileCount:0},l=0,d=async()=>{if(!n){n=!0;try{if(Date.now()-l>3e4){try{let e=await o(()=>(0,v.createStorageProvider)().stats());i={usedBytes:e.usedBytes,fileCount:e.fileCount}}catch{}l=Date.now()}let t=await o(()=>b(s,i)),a=JSON.stringify(t);if(a!==r){r=a;let n=Math.max(0,...t.assets.map(e=>e.processingRevision??0));e.enqueue(A.encode(`id: ${n}
57
+ - End with a one-sentence synthesis if appropriate, avoiding filler words.`;e.s(["DEFAULT_CONFIG",0,s,"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=a.default.join(process.cwd(),".larkup"),d=a.default.join(l,"servers"),u=a.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,m=Promise.resolve();function g(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function h(e){return await b(),g(async()=>e(await S()??c))}function f(e){return a.default.join(d,e)}function y(e,t){return`./.larkup/servers/${e}/${t}`}async function w(e){try{return await t.promises.access(e),!0}catch{return!1}}async function v(e,r){if(await w(e)){await t.promises.mkdir(a.default.dirname(r),{recursive:!0});try{await t.promises.rename(e,r)}catch{await t.promises.cp(e,r,{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 A(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||g(E)}async function E(){let e=await S();if(e)return e;if(!await w(a.default.join(l,"config.json")))return A(c);let n=(0,r.randomUUID)(),i=f(n);for(let e of(await t.promises.mkdir(i,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await v(a.default.join(l,e),a.default.join(i,e));await v(a.default.join(l,"lancedb"),a.default.join(i,"lancedb")),await v(a.default.join(l,"generated-server"),a.default.join(i,"generated-server"));let s="Default server";try{let e=a.default.join(i,"config.json"),r=JSON.parse(await t.promises.readFile(e,"utf8"));r.projectName&&(s=r.projectName),"lancedb"===r.vectorStore&&(r.storeConfig?.mode??"local")==="local"&&(r.storeConfig={...r.storeConfig,dbPath:y(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(r,null,2),"utf8")}catch{}let o=new Date().toISOString(),d={id:n,name:s,port:8080,createdAt:o,updatedAt:o};return A({username:null,activeServerId:n,servers:[d],mode:null})}async function I(){let e=await b(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function R(){let e=await I();if(!e)return null;let a=f(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function x(){let e=await R();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:a}=await D("my-larkup");return f(a.id)}async function T(e){return new Promise(t=>{let a=i.default.createServer();a.once("error",()=>t(!1)),a.once("listening",()=>{a.close(()=>t(!0))}),a.listen(e,"127.0.0.1")})}async function C(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await T(t);)t++;return t}function D(e){return h(async n=>{let i=(0,r.randomUUID)(),o=new Date().toISOString(),l={id:i,name:e.trim()||"Untitled server",port:await C(n),createdAt:o,updatedAt:o},d=f(i);await t.promises.mkdir(d,{recursive:!0});let u={};if(n.activeServerId)try{let e=await t.promises.readFile(a.default.join(f(n.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(d,"config.json"),JSON.stringify(function(e,t,a={}){return{...s,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup",storeConfig:{mode:"local",dbPath:y(e,"lancedb")},embeddingApiKey:a.embeddingApiKey??s.embeddingApiKey,customEmbeddings:a.customEmbeddings??s.customEmbeddings,chatApiKey:a.chatApiKey??s.chatApiKey,customChatModels:a.customChatModels??s.customChatModels,serperApiKey:a.serperApiKey??s.serperApiKey,firecrawlApiKey:a.firecrawlApiKey??s.firecrawlApiKey,updatedAt:new Date().toISOString()}}(i,l.name,u),null,2),"utf8");let c={...n,servers:[...n.servers,l],activeServerId:i};return await A(c),{workspace:c,server:l}})}e.s(["createServer",0,D,"deleteServer",0,function(e){return h(async a=>{let r=a.servers.filter(t=>t.id!==e),n=a.activeServerId===e?r[0]?.id??null:a.activeServerId;return await t.promises.rm(f(e),{recursive:!0,force:!0}),A({...a,servers:r,activeServerId:n})})},"getActiveServer",0,I,"getDataDir",0,R,"getWorkspace",0,b,"renameServer",0,function(e,t){return h(async a=>{let r=a.servers.map(a=>a.id===e?{...a,name:t.trim()||a.name,updatedAt:new Date().toISOString()}:a);return A({...a,servers:r})})},"requireDataDir",0,x,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return h(async t=>t.servers.some(t=>t.id===e)?A({...t,activeServerId:e}):t)},"setMode",0,function(e){return h(async t=>A({...t,mode:e}))},"setUsername",0,function(e){return h(async t=>A({...t,username:e.trim()||null}))}],192441)},839554,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),n=e.i(192441);let i=Promise.resolve();function s(e){let t=i.then(e,e);return i=t.catch(()=>{}),t}async function o(e){let t=e?await (0,n.requireDataDir)():await (0,n.getDataDir)();return t?a.default.join(t,"media-assets.json"):null}async function l(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid media asset store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let n=await o(!0);if(!n)return;let i=a.default.join(a.default.dirname(n),`.${a.default.basename(n)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(i,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(i,n)}catch(e){throw await t.promises.unlink(i).catch(()=>{}),e}}let u=["download","extract","transcribe","vision","synthesize","index"],c={download:10,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function p(e){return u.map(t=>({stage:t,status:"waiting",updatedAt:e}))}function m(e){return void 0!==e&&Number.isFinite(e)?Math.max(0,e):void 0}function g(e){let t=m(e);return void 0===t?void 0:Math.min(100,t)}function h(e){return Math.floor(m(e.processingRevision)??0)+1}async function f(){let e=await l(),t={image:0,video:0,audio:0},a={pending:0,processing:0,completed:0,failed:0},r=0;for(let n of e)t[n.type]++,a[n.processingStatus]++,r+=n.fileSize;return{total:e.length,byType:t,byStatus:a,totalBytes:r}}async function y(e){return(await l()).find(t=>t.id===e)}e.s(["addMediaAssets",0,function(e){return s(async()=>{let t=await l(),a=new Date().toISOString(),n=e.map(e=>({id:(0,r.randomUUID)(),type:e.type,fileName:e.fileName,mimeType:e.mimeType,storageUri:e.storageUri,thumbnailUri:e.thumbnailUri,originalUrl:e.originalUrl,fileSize:e.fileSize,dimensions:e.dimensions,durationSecs:e.durationSecs,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:a,updatedAt:a}));return t.push(...n),await d(t),n})},"claimMediaAsset",0,function(e){return s(async()=>{let t=await l(),a=t.findIndex(t=>t.id===e);if(a<0||"processing"===t[a].processingStatus||"Queued for background processing..."===t[a].processingMessage)return;let r=new Date().toISOString();return t[a]={...t[a],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:1,processingSteps:p(r),processingRevision:h(t[a]),processingHeartbeatAt:r,updatedAt:r},await d(t),t[a]})},"deleteMediaAsset",0,function(e){return s(async()=>{let t=await l();await d(t.filter(t=>t.id!==e))})},"deleteMediaAssets",0,function(e){return s(async()=>{let t=await l(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"getMediaAsset",0,y,"mediaStats",0,f,"readMediaAssets",0,l,"recoverStaleMediaAssets",0,function(e=3e5){return s(async()=>{let t=await l(),a=Date.now()-e,r="The background worker stopped. Retry to resume media processing.",n=0;for(let e=0;e<t.length;e++){let i=t[e],s="processing"===i.processingStatus,o="pending"===i.processingStatus&&"Queued for background processing..."===i.processingMessage,l=i.processingHeartbeatAt??i.updatedAt;if((s||o)&&new Date(l).getTime()<a){let a=new Date().toISOString(),s=i.processingSteps?.map(e=>"running"===e.status?{...e,status:"failed",message:r,updatedAt:a,finishedAt:a}:e);t[e]={...i,processingStatus:"failed",processingError:r,processingMessage:void 0,processingProgress:void 0,processingSteps:s,processingRevision:h(i),processingHeartbeatAt:a,updatedAt:a},n++}}return n>0&&await d(t),n})},"updateMediaAsset",0,function(e,t){return s(async()=>{let a=await l(),r=a.findIndex(t=>t.id===e);if(r<0)return;let n=a[r];return a[r]={...n,...t,documentIds:t.documentIds??n.documentIds,pendingDocumentIds:t.pendingDocumentIds??n.pendingDocumentIds,supersededDocumentIds:t.supersededDocumentIds??n.supersededDocumentIds,updatedAt:new Date().toISOString()},await d(a),a[r]})},"updateMediaStage",0,function(e,t,a){return s(async()=>{let r,n,i=await l(),s=i.findIndex(t=>t.id===e);if(s<0)return;let o=new Date().toISOString(),u=i[s],f=new Map((u.processingSteps??[]).map(e=>[e.stage,e])),y=p(o).map(e=>f.get(e.stage)??e),w=y.findIndex(e=>e.stage===t),v=y[w],S=new Set(["completed","skipped","failed"]),A=a.status??v.status,b=S.has(v.status)||"running"===v.status&&"waiting"===A?v.status:A,E=g(v.percent),I=g(a.percent),R=void 0===I?E:Math.max(E??0,I),x=m(v.current),T=m(a.current),C=void 0===T?x:Math.max(x??0,T),D=void 0===a.total?m(v.total):m(a.total);void 0!==C&&void 0!==D&&(D=Math.max(D,C))>0&&(R=Math.max(R??0,Math.min(100,C/D*100))),"completed"===b&&(R=100,void 0!==D&&(C=D));let O=S.has(b),N={...v,...a,stage:t,status:b,percent:R,current:C,total:D,startedAt:a.startedAt??v.startedAt??("running"===b||O?o:void 0),updatedAt:o,finishedAt:O?a.finishedAt??v.finishedAt??o:void 0};y[w]=N;let M=Math.max(g(u.processingProgress)??0,0===(n=(r=y.filter(e=>"skipped"!==e.status)).reduce((e,t)=>e+c[t.stage],0))?100:Math.round(r.reduce((e,t)=>e+c[t.stage]*function(e){if("completed"===e.status)return 100;if("waiting"===e.status||"skipped"===e.status)return 0;let t=g(e.percent);return void 0!==t?t:void 0!==e.current&&void 0!==e.total&&Number.isFinite(e.current)&&Number.isFinite(e.total)&&e.total>0?Math.min(100,Math.max(0,e.current/e.total*100)):0}(t)/100,0)/n*100)),U=[...y].reverse().find(e=>"running"===e.status&&e.message)?.message,P="running"===N.status?N.message??a.message??u.processingMessage:U??a.message??N.message??u.processingMessage;return i[s]={...u,processingSteps:y,processingProgress:M,processingMessage:P,processingRevision:h(u),processingHeartbeatAt:o,updatedAt:o},await d(i),i[s]})}])},941486,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(192441);class n{id="local";name="Local Storage";async mediaDir(){let e=await (0,r.requireDataDir)(),n=a.default.join(e,"media");return await t.promises.mkdir(n,{recursive:!0}),n}async store(e,r,n){let i=await this.mediaDir(),s=a.default.join(i,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.writeFile(s,r),`local://${e}`}async storeFile(e,r,n){let i=await this.mediaDir(),s=a.default.join(i,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.copyFile(r,s),`local://${e}`}async retrieve(e){let a=await this.resolvePath(e);if(!a)throw Error(`Unsupported local storage URI: ${e}`);return t.promises.readFile(a)}async resolvePath(e){if(!e.startsWith("local://"))return;let t=e.slice(8),r=await this.mediaDir(),n=a.default.resolve(r,t),i=a.default.relative(r,n);if(i.startsWith("..")||a.default.isAbsolute(i))throw Error("Invalid local storage URI");return n}async delete(e){let r=e.replace("local://",""),n=await this.mediaDir();try{await t.promises.unlink(a.default.join(n,r))}catch{}}async stats(){try{let e=await this.mediaDir();return await i(e)}catch{return{usedBytes:0,fileCount:0}}}}async function i(e){let r=0,n=0;async function i(e){let s;try{s=await t.promises.readdir(e,{withFileTypes:!0})}catch{return}for(let o of s){let s=a.default.join(e,o.name);if(o.isDirectory())await i(s);else try{let e=await t.promises.stat(s);r+=e.size,n++}catch{}}}return await i(e),{usedBytes:r,fileCount:n}}e.s(["createStorageProvider",0,function(e){return new n}])},977715,e=>{"use strict";var t=e.i(850492),a=e.i(891119),r=e.i(697373),n=e.i(765700),i=e.i(601263),s=e.i(706859),o=e.i(947547),l=e.i(819797),d=e.i(135958),u=e.i(86520),c=e.i(970949),p=e.i(741165),m=e.i(106898),g=e.i(454415),h=e.i(37125),f=e.i(193695);e.i(530058);var y=e.i(605998),w=e.i(839554),v=e.i(941486),S=e.i(192441);let A=new TextEncoder;async function b(e,t){let a=await (0,w.readMediaAssets)(),r=e?a.filter(t=>t.type===e):a;r.sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());let n={total:a.length,byType:{image:0,video:0,audio:0},byStatus:{pending:0,processing:0,completed:0,failed:0},totalBytes:0};for(let e of a)n.byType[e.type]++,n.byStatus[e.processingStatus]++,n.totalBytes+=e.fileSize;return{assets:r,stats:n,storage:t}}async function E(e){let t,a,r=new URL(e.url),n=r.searchParams.get("type"),i=r.searchParams.get("serverId"),s="image"===n||"video"===n||"audio"===n?n:null,o=e=>i?(0,S.runWithServer)(i,e):e();return await o(()=>(0,w.recoverStaleMediaAssets)()),new Response(new ReadableStream({async start(e){let r="",n=!1,i={usedBytes:0,fileCount:0},l=0,d=async()=>{if(!n){n=!0;try{if(Date.now()-l>3e4){try{let e=await o(()=>(0,v.createStorageProvider)().stats());i={usedBytes:e.usedBytes,fileCount:e.fileCount}}catch{}l=Date.now()}let t=await o(()=>b(s,i)),a=JSON.stringify(t);if(a!==r){r=a;let n=Math.max(0,...t.assets.map(e=>e.processingRevision??0));e.enqueue(A.encode(`id: ${n}
58
58
  event: media-update
59
59
  data: ${a}
60
60
 
61
- `))}}catch{}finally{n=!1}}};await d(),t=setInterval(()=>void d(),1e3),a=setInterval(()=>e.enqueue(A.encode(": keep-alive\n\n")),15e3)},cancel(){t&&clearInterval(t),a&&clearInterval(a)}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["GET",0,E,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],222694);var I=e.i(222694);let R=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/media/stream/route",pathname:"/api/media/stream",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/media/stream/route.ts",nextConfigOutput:"standalone",userland:I,...{}}),{workAsyncStorage:x,workUnitAsyncStorage:T,serverHooks:C}=R;async function D(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),R.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/media/stream/route";w=w.replace(/\/index$/,"")||"/";let v=await R.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,deploymentId:A,params:b,nextConfig:E,parsedUrl:I,isDraftMode:x,prerenderManifest:T,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:O,resolvedPathname:N,clientReferenceManifest:M,serverActionsManifest:U}=v,P=(0,o.normalizeAppPath)(w),k=!!(T.dynamicRoutes[P]||T.routes[N]),j=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,I,!1):t.end("This page could not be found"),null);if(k&&!x){let e=!!T.routes[N],t=T.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await j();throw new f.NoFallbackError}}let q=null;!k||R.isDev||x||(q="/index"===(q=N)?"/":q);let L=!0===R.isDev||!k,F=k&&!L;U&&M&&(0,s.setManifestsSingleton)({page:w,clientReferenceManifest:M,serverActionsManifest:U});let K=e.method||"GET",H=(0,i.getTracer)(),_=H.getActiveScopeSpan(),z=!!(null==C?void 0:C.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),$=(0,n.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,E,T,W);null==$||$.resetRequestCache(),globalThis.__incrementalCache=$;let B={params:b,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:L,incrementalCache:$,cacheLifeProfiles:E.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>R.onRequestError(e,t,r,n,C)},sharedContext:{buildId:S,deploymentId:A}},G=new l.NodeNextRequest(e),Y=new l.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(G,(0,d.signalFromNodeResponse)(t));try{let n,s=async e=>R.handle(V,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=H.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${K} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${K} ${w}`)}),o=async n=>{var i,o;let l=async({previousCacheEntry:a})=>{try{if(!W&&D&&O&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(n);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=B.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(G,Y,i,B.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,r=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:D})},!1,C),t}},d=await R.handleResponse({req:e,nextConfig:E,cacheKey:q,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:W});if(!k)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return W&&k||u.delete(h.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,g.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(G,Y,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};z&&_?await o(_):(n=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${K} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},o),void 0,!z))}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:D})},!1,C),k)throw t;return await (0,p.sendResponse)(G,Y,new Response(null,{status:500})),null}}e.s(["handler",0,D,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:T})},"routeModule",0,R,"serverHooks",0,C,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,T],977715)}];
61
+ `))}}catch{}finally{n=!1}}};await d(),t=setInterval(()=>void d(),1e3),a=setInterval(()=>e.enqueue(A.encode(": keep-alive\n\n")),15e3)},cancel(){t&&clearInterval(t),a&&clearInterval(a)}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["GET",0,E,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],222694);var I=e.i(222694);let R=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/media/stream/route",pathname:"/api/media/stream",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/media/stream/route.ts",nextConfigOutput:"standalone",userland:I,...{}}),{workAsyncStorage:x,workUnitAsyncStorage:T,serverHooks:C}=R;async function D(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),R.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/media/stream/route";w=w.replace(/\/index$/,"")||"/";let v=await R.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,deploymentId:A,params:b,nextConfig:E,parsedUrl:I,isDraftMode:x,prerenderManifest:T,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:O,resolvedPathname:N,clientReferenceManifest:M,serverActionsManifest:U}=v,P=(0,o.normalizeAppPath)(w),k=!!(T.dynamicRoutes[P]||T.routes[N]),j=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,I,!1):t.end("This page could not be found"),null);if(k&&!x){let e=!!T.routes[N],t=T.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await j();throw new f.NoFallbackError}}let q=null;!k||R.isDev||x||(q="/index"===(q=N)?"/":q);let L=!0===R.isDev||!k,F=k&&!L;U&&M&&(0,s.setManifestsSingleton)({page:w,clientReferenceManifest:M,serverActionsManifest:U});let K=e.method||"GET",H=(0,i.getTracer)(),_=H.getActiveScopeSpan(),z=!!(null==C?void 0:C.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),$=(0,n.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,E,T,W);null==$||$.resetRequestCache(),globalThis.__incrementalCache=$;let B={params:b,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:L,incrementalCache:$,cacheLifeProfiles:E.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>R.onRequestError(e,t,r,n,C)},sharedContext:{buildId:S,deploymentId:A}},Y=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(Y,(0,d.signalFromNodeResponse)(t));try{let n,s=async e=>R.handle(V,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=H.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${K} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${K} ${w}`)}),o=async n=>{var i,o;let l=async({previousCacheEntry:a})=>{try{if(!W&&D&&O&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(n);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=B.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(Y,G,i,B.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,r=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:D})},!1,C),t}},d=await R.handleResponse({req:e,nextConfig:E,cacheKey:q,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:W});if(!k)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return W&&k||u.delete(h.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,g.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(Y,G,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};z&&_?await o(_):(n=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${K} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},o),void 0,!z))}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:D})},!1,C),k)throw t;return await (0,p.sendResponse)(Y,G,new Response(null,{status:500})),null}}e.s(["handler",0,D,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:T})},"routeModule",0,R,"serverHooks",0,C,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,T],977715)}];
62
62
 
63
63
  //# sourceMappingURL=%5Broot-of-the-server%5D__04kopvt._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[750227,(e,t,a)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,a)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},478500,(e,t,a)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},761095,(e,t,a)=>{t.exports=e.x("node:net",()=>require("node:net"))},192441,638725,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),n=e.i(478500),i=e.i(761095);let o={projectName:"my-rag",embeddingProvider:"openai",embeddingApiKey:"",embeddingModelId:"openai/text-embedding-3-small",indexType:"hybrid",chunking:{chunkSize:512,chunkOverlap:64,strategy:"recursive"},vectorStore:"lancedb",storeConfig:{mode:"local",dbPath:"./.larkup/lancedb",tableName:"documents"},topK:5,serperApiKey:"",webSearchEnabled:!1,webSearchProvider:"tavily",tavilyApiKey:"",googleApiKey:"",braveApiKey:"",bingApiKey:"",exaApiKey:"",chatModelId:"",chatApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",toolConfigs:{},updatedAt:new Date(0).toISOString()},s=`You are a powerful data analysis assistant with access to a knowledge base, corpus introspection tools, tabular data tools, and a code sandbox.
1
+ module.exports=[750227,(e,t,a)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,a)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},478500,(e,t,a)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},761095,(e,t,a)=>{t.exports=e.x("node:net",()=>require("node:net"))},192441,638725,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),n=e.i(478500),i=e.i(761095);let o={projectName:"my-larkup",embeddingProvider:"openai",embeddingApiKey:"",embeddingModelId:"openai/text-embedding-3-small",indexType:"hybrid",chunking:{chunkSize:512,chunkOverlap:64,strategy:"recursive"},vectorStore:"lancedb",storeConfig:{mode:"local",dbPath:"./.larkup/lancedb",tableName:"documents"},topK:5,serperApiKey:"",webSearchEnabled:!1,webSearchProvider:"tavily",tavilyApiKey:"",googleApiKey:"",braveApiKey:"",bingApiKey:"",exaApiKey:"",chatModelId:"",chatApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",toolConfigs:{},updatedAt:new Date(0).toISOString()},s=`You are a powerful data analysis assistant with access to a knowledge base, corpus introspection tools, tabular data tools, and a code sandbox.
2
2
 
3
3
  You have these tools:
4
4
  1. "searchKnowledgeBase" — semantic search over the RAG knowledge base. Returns top-K most relevant document chunks.
@@ -54,6 +54,6 @@ RESPONSE FORMATTING (Analytics Style):
54
54
  - Structure complex responses logically (e.g., Summary -> Key Metrics -> Breakdown).
55
55
  - If your findings contain a small table of data, format it cleanly using Markdown tables.
56
56
  - DO NOT hallucinate facts; rely strictly on the provided query results.
57
- - End with a one-sentence synthesis if appropriate, avoiding filler words.`;e.s(["DEFAULT_CONFIG",0,o,"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,s],638725);let l=a.default.join(process.cwd(),".larkup"),d=a.default.join(l,"servers"),u=a.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,h=Promise.resolve();function m(e){let t=h.then(e,e);return h=t.catch(()=>{}),t}async function y(e){return await A(),m(async()=>e(await S()??c))}function g(e){return a.default.join(d,e)}function f(e,t){return`./.larkup/servers/${e}/${t}`}async function w(e){try{return await t.promises.access(e),!0}catch{return!1}}async function v(e,r){if(await w(e)){await t.promises.mkdir(a.default.dirname(r),{recursive:!0});try{await t.promises.rename(e,r)}catch{await t.promises.cp(e,r,{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 E(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||m(R)}async function R(){let e=await S();if(e)return e;if(!await w(a.default.join(l,"config.json")))return E(c);let n=(0,r.randomUUID)(),i=g(n);for(let e of(await t.promises.mkdir(i,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await v(a.default.join(l,e),a.default.join(i,e));await v(a.default.join(l,"lancedb"),a.default.join(i,"lancedb")),await v(a.default.join(l,"generated-server"),a.default.join(i,"generated-server"));let o="Default server";try{let e=a.default.join(i,"config.json"),r=JSON.parse(await t.promises.readFile(e,"utf8"));r.projectName&&(o=r.projectName),"lancedb"===r.vectorStore&&(r.storeConfig?.mode??"local")==="local"&&(r.storeConfig={...r.storeConfig,dbPath:f(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(r,null,2),"utf8")}catch{}let s=new Date().toISOString(),d={id:n,name:o,port:8080,createdAt:s,updatedAt:s};return E({username:null,activeServerId:n,servers:[d],mode:null})}async function T(){let e=await A(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function b(){let e=await T();if(!e)return null;let a=g(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function C(){let e=await b();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:a}=await N("My RAG server");return g(a.id)}async function O(e){return new Promise(t=>{let a=i.default.createServer();a.once("error",()=>t(!1)),a.once("listening",()=>{a.close(()=>t(!0))}),a.listen(e,"127.0.0.1")})}async function I(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await O(t);)t++;return t}function N(e){return y(async n=>{let i=(0,r.randomUUID)(),s=new Date().toISOString(),l={id:i,name:e.trim()||"Untitled server",port:await I(n),createdAt:s,updatedAt:s},d=g(i);await t.promises.mkdir(d,{recursive:!0});let u={};if(n.activeServerId)try{let e=await t.promises.readFile(a.default.join(g(n.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(d,"config.json"),JSON.stringify(function(e,t,a={}){return{...o,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-rag",storeConfig:{mode:"local",dbPath:f(e,"lancedb")},embeddingApiKey:a.embeddingApiKey??o.embeddingApiKey,customEmbeddings:a.customEmbeddings??o.customEmbeddings,chatApiKey:a.chatApiKey??o.chatApiKey,customChatModels:a.customChatModels??o.customChatModels,serperApiKey:a.serperApiKey??o.serperApiKey,firecrawlApiKey:a.firecrawlApiKey??o.firecrawlApiKey,updatedAt:new Date().toISOString()}}(i,l.name,u),null,2),"utf8");let c={...n,servers:[...n.servers,l],activeServerId:i};return await E(c),{workspace:c,server:l}})}e.s(["createServer",0,N,"deleteServer",0,function(e){return y(async a=>{let r=a.servers.filter(t=>t.id!==e),n=a.activeServerId===e?r[0]?.id??null:a.activeServerId;return await t.promises.rm(g(e),{recursive:!0,force:!0}),E({...a,servers:r,activeServerId:n})})},"getActiveServer",0,T,"getDataDir",0,b,"getWorkspace",0,A,"renameServer",0,function(e,t){return y(async a=>{let r=a.servers.map(a=>a.id===e?{...a,name:t.trim()||a.name,updatedAt:new Date().toISOString()}:a);return E({...a,servers:r})})},"requireDataDir",0,C,"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)?E({...t,activeServerId:e}):t)},"setMode",0,function(e){return y(async t=>E({...t,mode:e}))},"setUsername",0,function(e){return y(async t=>E({...t,username:e.trim()||null}))}],192441)},886173,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(638725),n=e.i(192441);async function i(){let e=await (0,n.getDataDir)();if(!e)return r.DEFAULT_DEPLOYMENT_CONFIG;try{let n=await t.promises.readFile(a.default.join(e,"deployment.json"),"utf8"),i=JSON.parse(n);return{...r.DEFAULT_DEPLOYMENT_CONFIG,...i,widgetStyle:{...r.DEFAULT_DEPLOYMENT_CONFIG.widgetStyle,...i.widgetStyle}}}catch{return r.DEFAULT_DEPLOYMENT_CONFIG}}async function o(e){let r=await (0,n.requireDataDir)();return await t.promises.writeFile(a.default.join(r,"deployment.json"),JSON.stringify(e,null,2),"utf8"),e}e.s(["readDeploymentConfig",0,i,"writeDeploymentConfig",0,o])},260046,e=>{"use strict";var t=e.i(850492),a=e.i(891119),r=e.i(697373),n=e.i(765700),i=e.i(601263),o=e.i(706859),s=e.i(947547),l=e.i(819797),d=e.i(135958),u=e.i(86520),c=e.i(970949),p=e.i(741165),h=e.i(106898),m=e.i(454415),y=e.i(37125),g=e.i(193695);e.i(530058);var f=e.i(605998),w=e.i(686296),v=e.i(886173);async function S(){try{let e=await (0,v.readDeploymentConfig)();return w.NextResponse.json(e)}catch(e){return w.NextResponse.json({error:String(e)},{status:500})}}async function E(e){try{let t=await e.json(),a=await (0,v.writeDeploymentConfig)(t);return w.NextResponse.json(a)}catch(e){return w.NextResponse.json({error:String(e)},{status:500})}}e.s(["GET",0,S,"PUT",0,E,"dynamic",0,"force-dynamic"],439066);var A=e.i(439066);let R=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/deployment/config/route",pathname:"/api/deployment/config",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/deployment/config/route.ts",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:b,serverHooks:C}=R;async function O(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),R.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/deployment/config/route";w=w.replace(/\/index$/,"")||"/";let v=await R.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,deploymentId:E,params:A,nextConfig:T,parsedUrl:b,isDraftMode:C,prerenderManifest:O,routerServerContext:I,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,resolvedPathname:D,clientReferenceManifest:U,serverActionsManifest:P}=v,M=(0,s.normalizeAppPath)(w),L=!!(O.dynamicRoutes[M]||O.routes[D]),j=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,b,!1):t.end("This page could not be found"),null);if(L&&!C){let e=!!O.routes[D],t=O.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(T.adapterPath)return await j();throw new g.NoFallbackError}}let k=null;!L||R.isDev||C||(k="/index"===(k=D)?"/":k);let q=!0===R.isDev||!L,F=L&&!q;P&&U&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:U,serverActionsManifest:P});let K=e.method||"GET",_=(0,i.getTracer)(),H=_.getActiveScopeSpan(),G=!!(null==I?void 0:I.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),Y=(0,n.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,T,O,W);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let z={params:A,previewProps:O.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts},cacheComponents:!!T.cacheComponents,supportsDynamicResponse:q,incrementalCache:Y,cacheLifeProfiles:T.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>R.onRequestError(e,t,r,n,I)},sharedContext:{buildId:S,deploymentId:E}},V=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),$=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let n,o=async e=>R.handle($,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=_.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${K} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${K} ${w}`)}),s=async n=>{var i,s;let l=async({previousCacheEntry:a})=>{try{if(!W&&N&&x&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(n);e.fetchMetrics=z.renderOpts.fetchMetrics;let s=z.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let l=z.renderOpts.collectedTags;if(!L)return await (0,p.sendResponse)(V,B,i,z.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,r=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,I),t}},d=await R.handleResponse({req:e,nextConfig:T,cacheKey:k,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:W});if(!L)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(s=d.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return W&&L||u.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(V,B,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};G&&H?await s(H):(n=_.getActiveScopeSpan(),await _.withPropagatedContext(e.headers,()=>_.trace(u.BaseServerSpan.handleRequest,{spanName:`${K} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},s),void 0,!G))}catch(t){if(t instanceof g.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,I),L)throw t;return await (0,p.sendResponse)(V,B,new Response(null,{status:500})),null}}e.s(["handler",0,O,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:b})},"routeModule",0,R,"serverHooks",0,C,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,b],260046)}];
57
+ - End with a one-sentence synthesis if appropriate, avoiding filler words.`;e.s(["DEFAULT_CONFIG",0,o,"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,s],638725);let l=a.default.join(process.cwd(),".larkup"),d=a.default.join(l,"servers"),u=a.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,h=Promise.resolve();function m(e){let t=h.then(e,e);return h=t.catch(()=>{}),t}async function y(e){return await A(),m(async()=>e(await S()??c))}function g(e){return a.default.join(d,e)}function f(e,t){return`./.larkup/servers/${e}/${t}`}async function w(e){try{return await t.promises.access(e),!0}catch{return!1}}async function v(e,r){if(await w(e)){await t.promises.mkdir(a.default.dirname(r),{recursive:!0});try{await t.promises.rename(e,r)}catch{await t.promises.cp(e,r,{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 E(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||m(R)}async function R(){let e=await S();if(e)return e;if(!await w(a.default.join(l,"config.json")))return E(c);let n=(0,r.randomUUID)(),i=g(n);for(let e of(await t.promises.mkdir(i,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await v(a.default.join(l,e),a.default.join(i,e));await v(a.default.join(l,"lancedb"),a.default.join(i,"lancedb")),await v(a.default.join(l,"generated-server"),a.default.join(i,"generated-server"));let o="Default server";try{let e=a.default.join(i,"config.json"),r=JSON.parse(await t.promises.readFile(e,"utf8"));r.projectName&&(o=r.projectName),"lancedb"===r.vectorStore&&(r.storeConfig?.mode??"local")==="local"&&(r.storeConfig={...r.storeConfig,dbPath:f(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(r,null,2),"utf8")}catch{}let s=new Date().toISOString(),d={id:n,name:o,port:8080,createdAt:s,updatedAt:s};return E({username:null,activeServerId:n,servers:[d],mode:null})}async function T(){let e=await A(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function b(){let e=await T();if(!e)return null;let a=g(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function C(){let e=await b();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:a}=await N("my-larkup");return g(a.id)}async function O(e){return new Promise(t=>{let a=i.default.createServer();a.once("error",()=>t(!1)),a.once("listening",()=>{a.close(()=>t(!0))}),a.listen(e,"127.0.0.1")})}async function I(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await O(t);)t++;return t}function N(e){return y(async n=>{let i=(0,r.randomUUID)(),s=new Date().toISOString(),l={id:i,name:e.trim()||"Untitled server",port:await I(n),createdAt:s,updatedAt:s},d=g(i);await t.promises.mkdir(d,{recursive:!0});let u={};if(n.activeServerId)try{let e=await t.promises.readFile(a.default.join(g(n.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(d,"config.json"),JSON.stringify(function(e,t,a={}){return{...o,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup",storeConfig:{mode:"local",dbPath:f(e,"lancedb")},embeddingApiKey:a.embeddingApiKey??o.embeddingApiKey,customEmbeddings:a.customEmbeddings??o.customEmbeddings,chatApiKey:a.chatApiKey??o.chatApiKey,customChatModels:a.customChatModels??o.customChatModels,serperApiKey:a.serperApiKey??o.serperApiKey,firecrawlApiKey:a.firecrawlApiKey??o.firecrawlApiKey,updatedAt:new Date().toISOString()}}(i,l.name,u),null,2),"utf8");let c={...n,servers:[...n.servers,l],activeServerId:i};return await E(c),{workspace:c,server:l}})}e.s(["createServer",0,N,"deleteServer",0,function(e){return y(async a=>{let r=a.servers.filter(t=>t.id!==e),n=a.activeServerId===e?r[0]?.id??null:a.activeServerId;return await t.promises.rm(g(e),{recursive:!0,force:!0}),E({...a,servers:r,activeServerId:n})})},"getActiveServer",0,T,"getDataDir",0,b,"getWorkspace",0,A,"renameServer",0,function(e,t){return y(async a=>{let r=a.servers.map(a=>a.id===e?{...a,name:t.trim()||a.name,updatedAt:new Date().toISOString()}:a);return E({...a,servers:r})})},"requireDataDir",0,C,"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)?E({...t,activeServerId:e}):t)},"setMode",0,function(e){return y(async t=>E({...t,mode:e}))},"setUsername",0,function(e){return y(async t=>E({...t,username:e.trim()||null}))}],192441)},886173,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(638725),n=e.i(192441);async function i(){let e=await (0,n.getDataDir)();if(!e)return r.DEFAULT_DEPLOYMENT_CONFIG;try{let n=await t.promises.readFile(a.default.join(e,"deployment.json"),"utf8"),i=JSON.parse(n);return{...r.DEFAULT_DEPLOYMENT_CONFIG,...i,widgetStyle:{...r.DEFAULT_DEPLOYMENT_CONFIG.widgetStyle,...i.widgetStyle}}}catch{return r.DEFAULT_DEPLOYMENT_CONFIG}}async function o(e){let r=await (0,n.requireDataDir)();return await t.promises.writeFile(a.default.join(r,"deployment.json"),JSON.stringify(e,null,2),"utf8"),e}e.s(["readDeploymentConfig",0,i,"writeDeploymentConfig",0,o])},260046,e=>{"use strict";var t=e.i(850492),a=e.i(891119),r=e.i(697373),n=e.i(765700),i=e.i(601263),o=e.i(706859),s=e.i(947547),l=e.i(819797),d=e.i(135958),u=e.i(86520),c=e.i(970949),p=e.i(741165),h=e.i(106898),m=e.i(454415),y=e.i(37125),g=e.i(193695);e.i(530058);var f=e.i(605998),w=e.i(686296),v=e.i(886173);async function S(){try{let e=await (0,v.readDeploymentConfig)();return w.NextResponse.json(e)}catch(e){return w.NextResponse.json({error:String(e)},{status:500})}}async function E(e){try{let t=await e.json(),a=await (0,v.writeDeploymentConfig)(t);return w.NextResponse.json(a)}catch(e){return w.NextResponse.json({error:String(e)},{status:500})}}e.s(["GET",0,S,"PUT",0,E,"dynamic",0,"force-dynamic"],439066);var A=e.i(439066);let R=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/deployment/config/route",pathname:"/api/deployment/config",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/deployment/config/route.ts",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:b,serverHooks:C}=R;async function O(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),R.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/deployment/config/route";w=w.replace(/\/index$/,"")||"/";let v=await R.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,deploymentId:E,params:A,nextConfig:T,parsedUrl:b,isDraftMode:C,prerenderManifest:O,routerServerContext:I,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,resolvedPathname:D,clientReferenceManifest:U,serverActionsManifest:P}=v,M=(0,s.normalizeAppPath)(w),L=!!(O.dynamicRoutes[M]||O.routes[D]),k=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,b,!1):t.end("This page could not be found"),null);if(L&&!C){let e=!!O.routes[D],t=O.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(T.adapterPath)return await k();throw new g.NoFallbackError}}let j=null;!L||R.isDev||C||(j="/index"===(j=D)?"/":j);let q=!0===R.isDev||!L,F=L&&!q;P&&U&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:U,serverActionsManifest:P});let K=e.method||"GET",_=(0,i.getTracer)(),H=_.getActiveScopeSpan(),W=!!(null==I?void 0:I.isWrappedByNextServer),Y=!!(0,n.getRequestMeta)(e,"minimalMode"),z=(0,n.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,T,O,Y);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let G={params:A,previewProps:O.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts},cacheComponents:!!T.cacheComponents,supportsDynamicResponse:q,incrementalCache:z,cacheLifeProfiles:T.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>R.onRequestError(e,t,r,n,I)},sharedContext:{buildId:S,deploymentId:E}},V=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),$=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let n,o=async e=>R.handle($,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=_.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${K} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${K} ${w}`)}),s=async n=>{var i,s;let l=async({previousCacheEntry:a})=>{try{if(!Y&&N&&x&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(n);e.fetchMetrics=G.renderOpts.fetchMetrics;let s=G.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let l=G.renderOpts.collectedTags;if(!L)return await (0,p.sendResponse)(V,B,i,G.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,r=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,I),t}},d=await R.handleResponse({req:e,nextConfig:T,cacheKey:j,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:Y});if(!L)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(s=d.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});Y||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return Y&&L||u.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(V,B,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};W&&H?await s(H):(n=_.getActiveScopeSpan(),await _.withPropagatedContext(e.headers,()=>_.trace(u.BaseServerSpan.handleRequest,{spanName:`${K} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},s),void 0,!W))}catch(t){if(t instanceof g.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,I),L)throw t;return await (0,p.sendResponse)(V,B,new Response(null,{status:500})),null}}e.s(["handler",0,O,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:b})},"routeModule",0,R,"serverHooks",0,C,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,b],260046)}];
58
58
 
59
59
  //# sourceMappingURL=%5Broot-of-the-server%5D__04l~ip-._.js.map
@@ -1,4 +1,4 @@
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"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},761095,(e,t,r)=>{t.exports=e.x("node:net",()=>require("node:net"))},478500,(e,t,r)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},192441,638725,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(666680),n=e.i(478500),s=e.i(761095);let i={projectName:"my-rag",embeddingProvider:"openai",embeddingApiKey:"",embeddingModelId:"openai/text-embedding-3-small",indexType:"hybrid",chunking:{chunkSize:512,chunkOverlap:64,strategy:"recursive"},vectorStore:"lancedb",storeConfig:{mode:"local",dbPath:"./.larkup/lancedb",tableName:"documents"},topK:5,serperApiKey:"",webSearchEnabled:!1,webSearchProvider:"tavily",tavilyApiKey:"",googleApiKey:"",braveApiKey:"",bingApiKey:"",exaApiKey:"",chatModelId:"",chatApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",toolConfigs:{},updatedAt:new Date(0).toISOString()},o=`You are a powerful data analysis assistant with access to a knowledge base, corpus introspection tools, tabular data tools, and a code sandbox.
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"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},761095,(e,t,r)=>{t.exports=e.x("node:net",()=>require("node:net"))},478500,(e,t,r)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},192441,638725,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(666680),n=e.i(478500),s=e.i(761095);let i={projectName:"my-larkup",embeddingProvider:"openai",embeddingApiKey:"",embeddingModelId:"openai/text-embedding-3-small",indexType:"hybrid",chunking:{chunkSize:512,chunkOverlap:64,strategy:"recursive"},vectorStore:"lancedb",storeConfig:{mode:"local",dbPath:"./.larkup/lancedb",tableName:"documents"},topK:5,serperApiKey:"",webSearchEnabled:!1,webSearchProvider:"tavily",tavilyApiKey:"",googleApiKey:"",braveApiKey:"",bingApiKey:"",exaApiKey:"",chatModelId:"",chatApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",toolConfigs:{},updatedAt:new Date(0).toISOString()},o=`You are a powerful data analysis assistant with access to a knowledge base, corpus introspection tools, tabular data tools, and a code sandbox.
2
2
 
3
3
  You have these tools:
4
4
  1. "searchKnowledgeBase" — semantic search over the RAG knowledge base. Returns top-K most relevant document chunks.
@@ -54,7 +54,7 @@ RESPONSE FORMATTING (Analytics Style):
54
54
  - Structure complex responses logically (e.g., Summary -> Key Metrics -> Breakdown).
55
55
  - If your findings contain a small table of data, format it cleanly using Markdown tables.
56
56
  - DO NOT hallucinate facts; rely strictly on the provided query results.
57
- - 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"),c=r.default.join(l,"servers"),d=r.default.join(l,"workspace.json"),u={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 g(e){return await A(),h(async()=>e(await S()??u))}function f(e){return r.default.join(c,e)}function w(e,t){return`./.larkup/servers/${e}/${t}`}async function y(e){try{return await t.promises.access(e),!0}catch{return!1}}async function v(e,a){if(await y(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(d,"utf8");return{...u,...JSON.parse(e)}}catch{return null}}async function E(e){return await t.promises.mkdir(l,{recursive:!0}),await t.promises.writeFile(d,JSON.stringify(e,null,2),"utf8"),e}async function A(){let e=await S();return e||h(R)}async function R(){let e=await S();if(e)return e;if(!await y(r.default.join(l,"config.json")))return E(u);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 v(r.default.join(l,e),r.default.join(s,e));await v(r.default.join(l,"lancedb"),r.default.join(s,"lancedb")),await v(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:w(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(a,null,2),"utf8")}catch{}let o=new Date().toISOString(),c={id:n,name:i,port:8080,createdAt:o,updatedAt:o};return E({username:null,activeServerId:n,servers:[c],mode:null})}async function b(){let e=await A(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function T(){let e=await b();if(!e)return null;let r=f(e.id);return await t.promises.mkdir(r,{recursive:!0}),r}async function I(){let e=await T();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:r}=await D("My RAG server");return f(r.id)}async function O(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 C(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await O(t);)t++;return t}function D(e){return g(async n=>{let s=(0,a.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await C(n),createdAt:o,updatedAt:o},c=f(s);await t.promises.mkdir(c,{recursive:!0});let d={};if(n.activeServerId)try{let e=await t.promises.readFile(r.default.join(f(n.activeServerId),"config.json"),"utf8");d=JSON.parse(e)}catch{}await t.promises.writeFile(r.default.join(c,"config.json"),JSON.stringify(function(e,t,r={}){return{...i,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-rag",storeConfig:{mode:"local",dbPath:w(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,d),null,2),"utf8");let u={...n,servers:[...n.servers,l],activeServerId:s};return await E(u),{workspace:u,server:l}})}e.s(["createServer",0,D,"deleteServer",0,function(e){return g(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}),E({...r,servers:a,activeServerId:n})})},"getActiveServer",0,b,"getDataDir",0,T,"getWorkspace",0,A,"renameServer",0,function(e,t){return g(async r=>{let a=r.servers.map(r=>r.id===e?{...r,name:t.trim()||r.name,updatedAt:new Date().toISOString()}:r);return E({...r,servers:a})})},"requireDataDir",0,I,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return g(async t=>t.servers.some(t=>t.id===e)?E({...t,activeServerId:e}):t)},"setMode",0,function(e){return g(async t=>E({...t,mode:e}))},"setUsername",0,function(e){return g(async t=>E({...t,username:e.trim()||null}))}],192441)},367165,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(638725),n=e.i(192441);async function s(){let e=await (0,n.getDataDir)();if(!e)return a.DEFAULT_CONFIG;try{let n=await t.promises.readFile(r.default.join(e,"config.json"),"utf8"),s=JSON.parse(n),i=s.customEmbeddings,o=s.embeddingModelId;if(s.customEmbedding&&!i?.length){let e=s.customEmbedding;i=[e],"custom"===o&&(o=`custom:${e.modelName}`)}let l={...a.DEFAULT_CONFIG,...s,embeddingModelId:o??a.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:i,chunking:{...a.DEFAULT_CONFIG.chunking,...s.chunking},storeConfig:{...a.DEFAULT_CONFIG.storeConfig,...s.storeConfig}};return delete l.customEmbedding,l}catch{return a.DEFAULT_CONFIG}}async function i(e){let a=await (0,n.requireDataDir)(),s={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(r.default.join(a,"config.json"),JSON.stringify(s,null,2),"utf8"),s}e.s(["readConfig",0,s,"writeConfig",0,i])},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"))},700259,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(761095),n=e.i(666680),s=e.i(874533),i=e.i(812057),o=e.i(367165);let l=(0,i.promisify)(s.exec);async function c(e,t){return l(e,{timeout:t,env:{...process.env,PATH:`${process.env.PATH||""}:/usr/local/bin:/opt/homebrew/bin:/bin:/usr/bin`}})}let d=r.default.join(process.cwd(),".larkup"),u=r.default.join(d,"firecrawl-local.json"),p=r.default.join(d,"firecrawl","docker-compose.yml"),m="ragtoolkit-firecrawl";async function h(e){return new Promise((t,r)=>{let n=a.default.createServer();n.listen(e,()=>{let e=n.address().port;n.close(()=>t(e))}),n.on("error",a=>{"EADDRINUSE"===a.code?h(0===e?0:e+1).then(t,r):r(a)})})}async function g(){try{let e=r.default.join(process.cwd(),"proxies.txt"),a=(await t.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 f={running:!1,endpoint:"http://localhost:3002",apiKey:"",port:3002,project:m};async function w(){try{let e=await t.promises.readFile(u,"utf8");return{...f,...JSON.parse(e)}}catch{return f}}async function y(e){return await t.promises.mkdir(d,{recursive:!0}),await t.promises.writeFile(u,JSON.stringify(e,null,2),"utf8"),e}async function v(){try{await c("docker --version")}catch(e){return console.error("DOCKER ERR:",e),{docker:!1,compose:null}}try{return await c("docker compose version"),{docker:!0,compose:"docker compose"}}catch(e){console.error("DOCKER COMPOSE ERR:",e)}try{return await c("docker-compose version"),{docker:!0,compose:"docker-compose"}}catch{return{docker:!0,compose:null}}}async function S(){let{docker:e,compose:t}=await v();return e?t?{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,t,r){let a=r?[`PROXY_SERVER: "${r.server}"`,...r.username&&r.password?[`PROXY_USERNAME: "${r.username}"`,`PROXY_PASSWORD: "${r.password}"`]:[]]:[],n=['PORT: "3000"',...a].map(e=>` ${e}`).join("\n"),s=['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.
57
+ - 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"),c=r.default.join(l,"servers"),d=r.default.join(l,"workspace.json"),u={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 g(e){return await A(),h(async()=>e(await S()??u))}function f(e){return r.default.join(c,e)}function w(e,t){return`./.larkup/servers/${e}/${t}`}async function y(e){try{return await t.promises.access(e),!0}catch{return!1}}async function v(e,a){if(await y(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(d,"utf8");return{...u,...JSON.parse(e)}}catch{return null}}async function E(e){return await t.promises.mkdir(l,{recursive:!0}),await t.promises.writeFile(d,JSON.stringify(e,null,2),"utf8"),e}async function A(){let e=await S();return e||h(R)}async function R(){let e=await S();if(e)return e;if(!await y(r.default.join(l,"config.json")))return E(u);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 v(r.default.join(l,e),r.default.join(s,e));await v(r.default.join(l,"lancedb"),r.default.join(s,"lancedb")),await v(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:w(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(a,null,2),"utf8")}catch{}let o=new Date().toISOString(),c={id:n,name:i,port:8080,createdAt:o,updatedAt:o};return E({username:null,activeServerId:n,servers:[c],mode:null})}async function b(){let e=await A(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function T(){let e=await b();if(!e)return null;let r=f(e.id);return await t.promises.mkdir(r,{recursive:!0}),r}async function I(){let e=await T();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:r}=await D("my-larkup");return f(r.id)}async function O(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 C(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await O(t);)t++;return t}function D(e){return g(async n=>{let s=(0,a.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await C(n),createdAt:o,updatedAt:o},c=f(s);await t.promises.mkdir(c,{recursive:!0});let d={};if(n.activeServerId)try{let e=await t.promises.readFile(r.default.join(f(n.activeServerId),"config.json"),"utf8");d=JSON.parse(e)}catch{}await t.promises.writeFile(r.default.join(c,"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:w(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,d),null,2),"utf8");let u={...n,servers:[...n.servers,l],activeServerId:s};return await E(u),{workspace:u,server:l}})}e.s(["createServer",0,D,"deleteServer",0,function(e){return g(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}),E({...r,servers:a,activeServerId:n})})},"getActiveServer",0,b,"getDataDir",0,T,"getWorkspace",0,A,"renameServer",0,function(e,t){return g(async r=>{let a=r.servers.map(r=>r.id===e?{...r,name:t.trim()||r.name,updatedAt:new Date().toISOString()}:r);return E({...r,servers:a})})},"requireDataDir",0,I,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return g(async t=>t.servers.some(t=>t.id===e)?E({...t,activeServerId:e}):t)},"setMode",0,function(e){return g(async t=>E({...t,mode:e}))},"setUsername",0,function(e){return g(async t=>E({...t,username:e.trim()||null}))}],192441)},367165,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(638725),n=e.i(192441);async function s(){let e=await (0,n.getDataDir)();if(!e)return a.DEFAULT_CONFIG;try{let n=await t.promises.readFile(r.default.join(e,"config.json"),"utf8"),s=JSON.parse(n),i=s.customEmbeddings,o=s.embeddingModelId;if(s.customEmbedding&&!i?.length){let e=s.customEmbedding;i=[e],"custom"===o&&(o=`custom:${e.modelName}`)}let l={...a.DEFAULT_CONFIG,...s,embeddingModelId:o??a.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:i,chunking:{...a.DEFAULT_CONFIG.chunking,...s.chunking},storeConfig:{...a.DEFAULT_CONFIG.storeConfig,...s.storeConfig}};return delete l.customEmbedding,l}catch{return a.DEFAULT_CONFIG}}async function i(e){let a=await (0,n.requireDataDir)(),s={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(r.default.join(a,"config.json"),JSON.stringify(s,null,2),"utf8"),s}e.s(["readConfig",0,s,"writeConfig",0,i])},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"))},700259,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(761095),n=e.i(666680),s=e.i(874533),i=e.i(812057),o=e.i(367165);let l=(0,i.promisify)(s.exec);async function c(e,t){return l(e,{timeout:t,env:{...process.env,PATH:`${process.env.PATH||""}:/usr/local/bin:/opt/homebrew/bin:/bin:/usr/bin`}})}let d=r.default.join(process.cwd(),".larkup"),u=r.default.join(d,"firecrawl-local.json"),p=r.default.join(d,"firecrawl","docker-compose.yml"),m="ragtoolkit-firecrawl";async function h(e){return new Promise((t,r)=>{let n=a.default.createServer();n.listen(e,()=>{let e=n.address().port;n.close(()=>t(e))}),n.on("error",a=>{"EADDRINUSE"===a.code?h(0===e?0:e+1).then(t,r):r(a)})})}async function g(){try{let e=r.default.join(process.cwd(),"proxies.txt"),a=(await t.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 f={running:!1,endpoint:"http://localhost:3002",apiKey:"",port:3002,project:m};async function w(){try{let e=await t.promises.readFile(u,"utf8");return{...f,...JSON.parse(e)}}catch{return f}}async function y(e){return await t.promises.mkdir(d,{recursive:!0}),await t.promises.writeFile(u,JSON.stringify(e,null,2),"utf8"),e}async function v(){try{await c("docker --version")}catch(e){return console.error("DOCKER ERR:",e),{docker:!1,compose:null}}try{return await c("docker compose version"),{docker:!0,compose:"docker compose"}}catch(e){console.error("DOCKER COMPOSE ERR:",e)}try{return await c("docker-compose version"),{docker:!0,compose:"docker-compose"}}catch{return{docker:!0,compose:null}}}async function S(){let{docker:e,compose:t}=await v();return e?t?{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,t,r){let a=r?[`PROXY_SERVER: "${r.server}"`,...r.username&&r.password?[`PROXY_USERNAME: "${r.username}"`,`PROXY_PASSWORD: "${r.password}"`]:[]]:[],n=['PORT: "3000"',...a].map(e=>` ${e}`).join("\n"),s=['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.
58
58
  services:
59
59
  db:
60
60
  image: ghcr.io/firecrawl/nuq-postgres:latest
@@ -1,4 +1,4 @@
1
- module.exports=[750227,(e,t,a)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,a)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},478500,(e,t,a)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},761095,(e,t,a)=>{t.exports=e.x("node:net",()=>require("node:net"))},192441,638725,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(478500),n=e.i(761095);let s={projectName:"my-rag",embeddingProvider:"openai",embeddingApiKey:"",embeddingModelId:"openai/text-embedding-3-small",indexType:"hybrid",chunking:{chunkSize:512,chunkOverlap:64,strategy:"recursive"},vectorStore:"lancedb",storeConfig:{mode:"local",dbPath:"./.larkup/lancedb",tableName:"documents"},topK:5,serperApiKey:"",webSearchEnabled:!1,webSearchProvider:"tavily",tavilyApiKey:"",googleApiKey:"",braveApiKey:"",bingApiKey:"",exaApiKey:"",chatModelId:"",chatApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",toolConfigs:{},updatedAt:new Date(0).toISOString()},o=`You are a powerful data analysis assistant with access to a knowledge base, corpus introspection tools, tabular data tools, and a code sandbox.
1
+ module.exports=[750227,(e,t,a)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,a)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},478500,(e,t,a)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},761095,(e,t,a)=>{t.exports=e.x("node:net",()=>require("node:net"))},192441,638725,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(478500),n=e.i(761095);let s={projectName:"my-larkup",embeddingProvider:"openai",embeddingApiKey:"",embeddingModelId:"openai/text-embedding-3-small",indexType:"hybrid",chunking:{chunkSize:512,chunkOverlap:64,strategy:"recursive"},vectorStore:"lancedb",storeConfig:{mode:"local",dbPath:"./.larkup/lancedb",tableName:"documents"},topK:5,serperApiKey:"",webSearchEnabled:!1,webSearchProvider:"tavily",tavilyApiKey:"",googleApiKey:"",braveApiKey:"",bingApiKey:"",exaApiKey:"",chatModelId:"",chatApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",toolConfigs:{},updatedAt:new Date(0).toISOString()},o=`You are a powerful data analysis assistant with access to a knowledge base, corpus introspection tools, tabular data tools, and a code sandbox.
2
2
 
3
3
  You have these tools:
4
4
  1. "searchKnowledgeBase" — semantic search over the RAG knowledge base. Returns top-K most relevant document chunks.
@@ -54,6 +54,6 @@ RESPONSE FORMATTING (Analytics Style):
54
54
  - Structure complex responses logically (e.g., Summary -> Key Metrics -> Breakdown).
55
55
  - If your findings contain a small table of data, format it cleanly using Markdown tables.
56
56
  - DO NOT hallucinate facts; rely strictly on the provided query results.
57
- - End with a one-sentence synthesis if appropriate, avoiding filler words.`;e.s(["DEFAULT_CONFIG",0,s,"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=a.default.join(process.cwd(),".larkup"),d=a.default.join(l,"servers"),u=a.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new i.AsyncLocalStorage,m=Promise.resolve();function f(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function g(e){return await b(),f(async()=>e(await S()??c))}function h(e){return a.default.join(d,e)}function w(e,t){return`./.larkup/servers/${e}/${t}`}async function y(e){try{return await t.promises.access(e),!0}catch{return!1}}async function v(e,r){if(await y(e)){await t.promises.mkdir(a.default.dirname(r),{recursive:!0});try{await t.promises.rename(e,r)}catch{await t.promises.cp(e,r,{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 A(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||f(I)}async function I(){let e=await S();if(e)return e;if(!await y(a.default.join(l,"config.json")))return A(c);let i=(0,r.randomUUID)(),n=h(i);for(let e of(await t.promises.mkdir(n,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await v(a.default.join(l,e),a.default.join(n,e));await v(a.default.join(l,"lancedb"),a.default.join(n,"lancedb")),await v(a.default.join(l,"generated-server"),a.default.join(n,"generated-server"));let s="Default server";try{let e=a.default.join(n,"config.json"),r=JSON.parse(await t.promises.readFile(e,"utf8"));r.projectName&&(s=r.projectName),"lancedb"===r.vectorStore&&(r.storeConfig?.mode??"local")==="local"&&(r.storeConfig={...r.storeConfig,dbPath:w(i,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(r,null,2),"utf8")}catch{}let o=new Date().toISOString(),d={id:i,name:s,port:8080,createdAt:o,updatedAt:o};return A({username:null,activeServerId:i,servers:[d],mode:null})}async function E(){let e=await b(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function x(){let e=await E();if(!e)return null;let a=h(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function R(){let e=await x();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:a}=await N("My RAG server");return h(a.id)}async function D(e){return new Promise(t=>{let a=n.default.createServer();a.once("error",()=>t(!1)),a.once("listening",()=>{a.close(()=>t(!0))}),a.listen(e,"127.0.0.1")})}async function T(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await D(t);)t++;return t}function N(e){return g(async i=>{let n=(0,r.randomUUID)(),o=new Date().toISOString(),l={id:n,name:e.trim()||"Untitled server",port:await T(i),createdAt:o,updatedAt:o},d=h(n);await t.promises.mkdir(d,{recursive:!0});let u={};if(i.activeServerId)try{let e=await t.promises.readFile(a.default.join(h(i.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(d,"config.json"),JSON.stringify(function(e,t,a={}){return{...s,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-rag",storeConfig:{mode:"local",dbPath:w(e,"lancedb")},embeddingApiKey:a.embeddingApiKey??s.embeddingApiKey,customEmbeddings:a.customEmbeddings??s.customEmbeddings,chatApiKey:a.chatApiKey??s.chatApiKey,customChatModels:a.customChatModels??s.customChatModels,serperApiKey:a.serperApiKey??s.serperApiKey,firecrawlApiKey:a.firecrawlApiKey??s.firecrawlApiKey,updatedAt:new Date().toISOString()}}(n,l.name,u),null,2),"utf8");let c={...i,servers:[...i.servers,l],activeServerId:n};return await A(c),{workspace:c,server:l}})}e.s(["createServer",0,N,"deleteServer",0,function(e){return g(async a=>{let r=a.servers.filter(t=>t.id!==e),i=a.activeServerId===e?r[0]?.id??null:a.activeServerId;return await t.promises.rm(h(e),{recursive:!0,force:!0}),A({...a,servers:r,activeServerId:i})})},"getActiveServer",0,E,"getDataDir",0,x,"getWorkspace",0,b,"renameServer",0,function(e,t){return g(async a=>{let r=a.servers.map(a=>a.id===e?{...a,name:t.trim()||a.name,updatedAt:new Date().toISOString()}:a);return A({...a,servers:r})})},"requireDataDir",0,R,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return g(async t=>t.servers.some(t=>t.id===e)?A({...t,activeServerId:e}):t)},"setMode",0,function(e){return g(async t=>A({...t,mode:e}))},"setUsername",0,function(e){return g(async t=>A({...t,username:e.trim()||null}))}],192441)},367165,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(638725),i=e.i(192441);async function n(){let e=await (0,i.getDataDir)();if(!e)return r.DEFAULT_CONFIG;try{let i=await t.promises.readFile(a.default.join(e,"config.json"),"utf8"),n=JSON.parse(i),s=n.customEmbeddings,o=n.embeddingModelId;if(n.customEmbedding&&!s?.length){let e=n.customEmbedding;s=[e],"custom"===o&&(o=`custom:${e.modelName}`)}let l={...r.DEFAULT_CONFIG,...n,embeddingModelId:o??r.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:s,chunking:{...r.DEFAULT_CONFIG.chunking,...n.chunking},storeConfig:{...r.DEFAULT_CONFIG.storeConfig,...n.storeConfig}};return delete l.customEmbedding,l}catch{return r.DEFAULT_CONFIG}}async function s(e){let r=await (0,i.requireDataDir)(),n={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(r,"config.json"),JSON.stringify(n,null,2),"utf8"),n}e.s(["readConfig",0,n,"writeConfig",0,s])},874533,(e,t,a)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,a)=>{t.exports=e.x("node:util",()=>require("node:util"))},705252,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(192441);let n=Promise.resolve();function s(e){let t=n.then(e,e);return n=t.catch(()=>{}),t}async function o(e){let t=e?await (0,i.requireDataDir)():await (0,i.getDataDir)();return t?a.default.join(t,"documents.json"):null}async function l(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid document store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let i=await o(!0);if(!i)return;let n=a.default.join(a.default.dirname(i),`.${a.default.basename(i)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(n,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(n,i)}catch(e){throw await t.promises.unlink(n).catch(()=>{}),e}}function u(e){let t=e.content.trim();return{id:e.id??(0,r.randomUUID)(),title:e.title.trim()||"Untitled",url:e.url,source:e.source,content:t,charCount:t.length,jobId:e.jobId,metadata:e.metadata,status:"unindexed",createdAt:new Date().toISOString()}}async function c(){let e=await l(),t=e.reduce((e,t)=>e+t.charCount,0);return{docCount:e.length,charCount:t,bySource:e.reduce((e,t)=>(e[t.source]=(e[t.source]??0)+1,e),{})}}e.s(["addCrawledDocuments",0,function(e,t){return s(async()=>{let a=await l(),r=new Set(a.filter(e=>e.url).map(e=>e.url)),i=0;for(let n of t)!(n.url&&r.has(n.url))&&n.content.trim()&&(a.push(u({...n,jobId:e})),n.url&&r.add(n.url),i++);return i>0&&await d(a),i})},"addDocument",0,function(e){return s(async()=>{let t=await l(),a=u(e);return t.push(a),await d(t),a})},"addDocuments",0,function(e){return s(async()=>{if(0===e.length)return[];let t=await l(),a=e.map(u);return t.push(...a),await d(t),a})},"clearDocuments",0,function(){return s(async()=>{await d([])})},"corpusStats",0,c,"deleteDocument",0,function(e){return s(async()=>{let t=await l();await d(t.filter(t=>t.id!==e))})},"deleteDocuments",0,function(e){return s(async()=>{let t=await l(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"readDocuments",0,l,"replaceDocuments",0,function(e){return s(async()=>{let t=new Date().toISOString();await d(e.map(e=>({...e,status:"unindexed",createdAt:e.createdAt||t})))})},"updateDocument",0,function(e,t){return s(async()=>{let a=await l(),r=a.findIndex(t=>t.id===e);if(r<0)return;let i=a[r],n=void 0!==t.content?t.content.trim():i.content,s={...i,title:void 0!==t.title?t.title.trim()||"Untitled":i.title,content:n,charCount:n.length,url:void 0!==t.url?t.url||void 0:i.url,metadata:void 0!==t.metadata?t.metadata:i.metadata,status:"unindexed"};return a[r]=s,await d(a),s})},"updateDocumentsStatus",0,function(e,t){return s(async()=>{let a=await l(),r=new Set(e),i=!1;for(let e of a)r.has(e.id)&&(e.status=t,i=!0);i&&await d(a)})}])},585071,e=>{"use strict";var t=e.i(192441);async function a(a,r){let i={...a.storeConfig},n=await (0,t.getActiveServer)(),s=n?.id;if(s){let e=s.replace(/[^a-zA-Z0-9_-]/g,"_");"pinecone"===a.vectorStore?i.namespace=s:"chroma"===a.vectorStore?i.collectionName=`documents_${e}`:"lancedb"!==a.vectorStore&&a.vectorStore||(i.tableName=`documents_${e}`)}switch(a.vectorStore){case"pinecone":{let{PineconeAdapter:t}=await e.A(77149);return new t({apiKey:i.apiKey,indexName:i.indexName,namespace:i.namespace,sparseModel:i.sparseModel,indexType:a.indexType,onRateLimit:r})}case"chroma":{let{ChromaAdapter:t}=await e.A(195059);return new t({mode:i.mode,host:i.host,authToken:i.authToken,apiKey:i.apiKey,tenant:i.tenant,database:i.database,collectionName:i.collectionName,indexType:a.indexType})}default:{let{LanceDBAdapter:t}=await e.A(184904);return new t({mode:i.mode,dbPath:i.dbPath,uri:i.uri,apiKey:i.apiKey,s3Uri:i.s3Uri,s3Endpoint:i.s3Endpoint,s3Region:i.s3Region,s3AccessKeyId:i.s3AccessKeyId,s3SecretAccessKey:i.s3SecretAccessKey,tableName:i.tableName})}}}e.s(["createAdapter",0,a])},839554,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(192441);let n=Promise.resolve();function s(e){let t=n.then(e,e);return n=t.catch(()=>{}),t}async function o(e){let t=e?await (0,i.requireDataDir)():await (0,i.getDataDir)();return t?a.default.join(t,"media-assets.json"):null}async function l(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid media asset store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let i=await o(!0);if(!i)return;let n=a.default.join(a.default.dirname(i),`.${a.default.basename(i)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(n,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(n,i)}catch(e){throw await t.promises.unlink(n).catch(()=>{}),e}}let u=["download","extract","transcribe","vision","synthesize","index"],c={download:10,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function p(e){return u.map(t=>({stage:t,status:"waiting",updatedAt:e}))}function m(e){return void 0!==e&&Number.isFinite(e)?Math.max(0,e):void 0}function f(e){let t=m(e);return void 0===t?void 0:Math.min(100,t)}function g(e){return Math.floor(m(e.processingRevision)??0)+1}async function h(){let e=await l(),t={image:0,video:0,audio:0},a={pending:0,processing:0,completed:0,failed:0},r=0;for(let i of e)t[i.type]++,a[i.processingStatus]++,r+=i.fileSize;return{total:e.length,byType:t,byStatus:a,totalBytes:r}}async function w(e){return(await l()).find(t=>t.id===e)}e.s(["addMediaAssets",0,function(e){return s(async()=>{let t=await l(),a=new Date().toISOString(),i=e.map(e=>({id:(0,r.randomUUID)(),type:e.type,fileName:e.fileName,mimeType:e.mimeType,storageUri:e.storageUri,thumbnailUri:e.thumbnailUri,originalUrl:e.originalUrl,fileSize:e.fileSize,dimensions:e.dimensions,durationSecs:e.durationSecs,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:a,updatedAt:a}));return t.push(...i),await d(t),i})},"claimMediaAsset",0,function(e){return s(async()=>{let t=await l(),a=t.findIndex(t=>t.id===e);if(a<0||"processing"===t[a].processingStatus||"Queued for background processing..."===t[a].processingMessage)return;let r=new Date().toISOString();return t[a]={...t[a],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:1,processingSteps:p(r),processingRevision:g(t[a]),processingHeartbeatAt:r,updatedAt:r},await d(t),t[a]})},"deleteMediaAsset",0,function(e){return s(async()=>{let t=await l();await d(t.filter(t=>t.id!==e))})},"deleteMediaAssets",0,function(e){return s(async()=>{let t=await l(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"getMediaAsset",0,w,"mediaStats",0,h,"readMediaAssets",0,l,"recoverStaleMediaAssets",0,function(e=3e5){return s(async()=>{let t=await l(),a=Date.now()-e,r="The background worker stopped. Retry to resume media processing.",i=0;for(let e=0;e<t.length;e++){let n=t[e],s="processing"===n.processingStatus,o="pending"===n.processingStatus&&"Queued for background processing..."===n.processingMessage,l=n.processingHeartbeatAt??n.updatedAt;if((s||o)&&new Date(l).getTime()<a){let a=new Date().toISOString(),s=n.processingSteps?.map(e=>"running"===e.status?{...e,status:"failed",message:r,updatedAt:a,finishedAt:a}:e);t[e]={...n,processingStatus:"failed",processingError:r,processingMessage:void 0,processingProgress:void 0,processingSteps:s,processingRevision:g(n),processingHeartbeatAt:a,updatedAt:a},i++}}return i>0&&await d(t),i})},"updateMediaAsset",0,function(e,t){return s(async()=>{let a=await l(),r=a.findIndex(t=>t.id===e);if(r<0)return;let i=a[r];return a[r]={...i,...t,documentIds:t.documentIds??i.documentIds,pendingDocumentIds:t.pendingDocumentIds??i.pendingDocumentIds,supersededDocumentIds:t.supersededDocumentIds??i.supersededDocumentIds,updatedAt:new Date().toISOString()},await d(a),a[r]})},"updateMediaStage",0,function(e,t,a){return s(async()=>{let r,i,n=await l(),s=n.findIndex(t=>t.id===e);if(s<0)return;let o=new Date().toISOString(),u=n[s],h=new Map((u.processingSteps??[]).map(e=>[e.stage,e])),w=p(o).map(e=>h.get(e.stage)??e),y=w.findIndex(e=>e.stage===t),v=w[y],S=new Set(["completed","skipped","failed"]),A=a.status??v.status,b=S.has(v.status)||"running"===v.status&&"waiting"===A?v.status:A,I=f(v.percent),E=f(a.percent),x=void 0===E?I:Math.max(I??0,E),R=m(v.current),D=m(a.current),T=void 0===D?R:Math.max(R??0,D),N=void 0===a.total?m(v.total):m(a.total);void 0!==T&&void 0!==N&&(N=Math.max(N,T))>0&&(x=Math.max(x??0,Math.min(100,T/N*100))),"completed"===b&&(x=100,void 0!==N&&(T=N));let C=S.has(b),O={...v,...a,stage:t,status:b,percent:x,current:T,total:N,startedAt:a.startedAt??v.startedAt??("running"===b||C?o:void 0),updatedAt:o,finishedAt:C?a.finishedAt??v.finishedAt??o:void 0};w[y]=O;let U=Math.max(f(u.processingProgress)??0,0===(i=(r=w.filter(e=>"skipped"!==e.status)).reduce((e,t)=>e+c[t.stage],0))?100:Math.round(r.reduce((e,t)=>e+c[t.stage]*function(e){if("completed"===e.status)return 100;if("waiting"===e.status||"skipped"===e.status)return 0;let t=f(e.percent);return void 0!==t?t:void 0!==e.current&&void 0!==e.total&&Number.isFinite(e.current)&&Number.isFinite(e.total)&&e.total>0?Math.min(100,Math.max(0,e.current/e.total*100)):0}(t)/100,0)/i*100)),M=[...w].reverse().find(e=>"running"===e.status&&e.message)?.message,P="running"===O.status?O.message??a.message??u.processingMessage:M??a.message??O.message??u.processingMessage;return n[s]={...u,processingSteps:w,processingProgress:U,processingMessage:P,processingRevision:g(u),processingHeartbeatAt:o,updatedAt:o},await d(n),n[s]})}])},941486,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(192441);class i{id="local";name="Local Storage";async mediaDir(){let e=await (0,r.requireDataDir)(),i=a.default.join(e,"media");return await t.promises.mkdir(i,{recursive:!0}),i}async store(e,r,i){let n=await this.mediaDir(),s=a.default.join(n,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.writeFile(s,r),`local://${e}`}async storeFile(e,r,i){let n=await this.mediaDir(),s=a.default.join(n,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.copyFile(r,s),`local://${e}`}async retrieve(e){let a=await this.resolvePath(e);if(!a)throw Error(`Unsupported local storage URI: ${e}`);return t.promises.readFile(a)}async resolvePath(e){if(!e.startsWith("local://"))return;let t=e.slice(8),r=await this.mediaDir(),i=a.default.resolve(r,t),n=a.default.relative(r,i);if(n.startsWith("..")||a.default.isAbsolute(n))throw Error("Invalid local storage URI");return i}async delete(e){let r=e.replace("local://",""),i=await this.mediaDir();try{await t.promises.unlink(a.default.join(i,r))}catch{}}async stats(){try{let e=await this.mediaDir();return await n(e)}catch{return{usedBytes:0,fileCount:0}}}}async function n(e){let r=0,i=0;async function n(e){let s;try{s=await t.promises.readdir(e,{withFileTypes:!0})}catch{return}for(let o of s){let s=a.default.join(e,o.name);if(o.isDirectory())await n(s);else try{let e=await t.promises.stat(s);r+=e.size,i++}catch{}}}return await n(e),{usedBytes:r,fileCount:i}}e.s(["createStorageProvider",0,function(e){return new i}])},504740,e=>{"use strict";var t=e.i(463857);let a=new Map;async function r(e){if(a.has(e))return a.get(e);let r=await (0,t.getInstalledTool)(e);if(!r)return null;try{let t=function(e){switch(e.source){case"local":default:return e.packageName;case"registry":case"sandbox":return e.resolvedPath}}(r),i=await import(t);return a.set(e,i),i}catch(t){return console.error(`[marketplace] Failed to load tool "${e}":`,t),null}}e.s(["loadTool",0,r])},777866,e=>{"use strict";var t=e.i(850492),a=e.i(891119),r=e.i(697373),i=e.i(765700),n=e.i(601263),s=e.i(706859),o=e.i(947547),l=e.i(819797),d=e.i(135958),u=e.i(86520),c=e.i(970949),p=e.i(741165),m=e.i(106898),f=e.i(454415),g=e.i(37125),h=e.i(193695);e.i(530058);var w=e.i(605998),y=e.i(686296),v=e.i(839554),S=e.i(463857),A=e.i(504740),b=e.i(941486),I=e.i(705252),E=e.i(367165),x=e.i(585071),R=e.i(192441);async function D(e){return j(e,()=>T(e))}async function T(e){let t=new URL(e.url).searchParams.get("type");await (0,v.recoverStaleMediaAssets)();let[a,r]=await Promise.all([(0,v.readMediaAssets)(),(0,v.mediaStats)()]),i=t?a.filter(e=>e.type===t):a;i.sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());let n=(0,b.createStorageProvider)(),s=await n.stats();return y.NextResponse.json({assets:i,stats:r,storage:{usedBytes:s.usedBytes,fileCount:s.fileCount}})}async function N(e){return j(e,()=>C(e))}async function C(t){try{if(t.headers.get("content-type")?.includes("application/json"))return await O(t);let r=(await t.formData()).getAll("file");if(0===r.length)return y.NextResponse.json({error:"No files provided."},{status:400});let i=(0,b.createStorageProvider)(),n=[];for(let e of r){var a;let t=(a=e.type).startsWith("image/")?"image":a.startsWith("video/")?"video":a.startsWith("audio/")?"audio":null;if(!t)continue;let r=Buffer.from(await e.arrayBuffer()),s=e.name.split(".").pop()||"bin",o=`${t}s/${Date.now()}_${Math.random().toString(36).slice(2)}.${s}`,l=await i.store(o,r,e.type);n.push({type:t,fileName:e.name,mimeType:e.type,storageUri:l,fileSize:e.size})}if(0===n.length)return y.NextResponse.json({error:"No supported media files found."},{status:400});let{addMediaAssets:s}=await e.A(742957),o=await s(n);return y.NextResponse.json({assets:o,count:o.length},{status:201})}catch(t){let e=t instanceof Error?t.message:"Failed to upload media.";return y.NextResponse.json({error:e},{status:500})}}async function O(t){let a=await t.json(),r=[...new Set(a.urls?.map(e=>e.trim()).filter(Boolean)??[])];if(0===r.length||r.length>10)return y.NextResponse.json({error:"Provide between 1 and 10 media URLs."},{status:400});if(!await (0,S.isToolInstalled)("video-audio"))return y.NextResponse.json({error:"Install the Video & Audio tool before importing media URLs."},{status:409});let i=await (0,A.loadTool)("video-audio");if(!i?.importMediaUrl||!i?.inspectMediaUrl)return y.NextResponse.json({error:"The installed Video & Audio tool needs an update."},{status:409});if(a.estimateOnly){let e=[];for(let t of r){let r=await i.inspectMediaUrl(t);if(a.mediaType&&"unknown"!==r.mediaType&&r.mediaType!==a.mediaType)return y.NextResponse.json({error:`The URL points to ${r.mediaType}, not ${a.mediaType}.`},{status:400});e.push(r)}return y.NextResponse.json({estimates:e})}let{addMediaAssets:n}=await e.A(742957),s=r.map(e=>({type:a.mediaType||"video",fileName:"Importing URL...",mimeType:"application/octet-stream",storageUri:`pending://${e}`,fileSize:0,originalUrl:e})),o=await n(s);return y.NextResponse.json({assets:o,count:o.length},{status:201})}async function U(e){return j(e,()=>M(e))}async function M(t){let a=new URL(t.url),r=a.searchParams.get("id"),i=a.searchParams.get("ids"),n=(0,b.createStorageProvider)();if(r){let{getMediaAsset:t}=await e.A(742957),a=await t(r);if(a){if(P(a))return y.NextResponse.json({error:"Wait for the media indexing job to finish before deleting it."},{status:409});let e=F(a);await k(e),await n.delete(a.storageUri).catch(()=>{}),a.thumbnailUri&&await n.delete(a.thumbnailUri).catch(()=>{}),await (0,I.deleteDocuments)(e)}await (0,v.deleteMediaAsset)(r)}else if(i){let e=i.split(","),t=(await (0,v.readMediaAssets)()).filter(t=>e.includes(t.id));if(t.some(P))return y.NextResponse.json({error:"Wait for all selected media indexing jobs to finish before deleting them."},{status:409});for(let e of t){let t=F(e);await k(t),await n.delete(e.storageUri).catch(()=>{}),e.thumbnailUri&&await n.delete(e.thumbnailUri).catch(()=>{}),await (0,I.deleteDocuments)(t)}await (0,v.deleteMediaAssets)(e)}return y.NextResponse.json({ok:!0})}function P(e){return"processing"===e.processingStatus||"pending"===e.processingStatus&&"Queued for background processing..."===e.processingMessage}function j(e,t){let a=new URL(e.url).searchParams.get("serverId");return a?(0,R.runWithServer)(a,t):t()}async function k(e){if(0===e.length)return;let t=await (0,x.createAdapter)(await (0,E.readConfig)());await t.deleteByDocumentIds(e)}function F(e){return[...new Set([...e.documentIds,...e.pendingDocumentIds??[],...e.supersededDocumentIds??[]])]}e.s(["DELETE",0,U,"GET",0,D,"POST",0,N,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],98281);var L=e.i(98281);let _=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/media/route",pathname:"/api/media",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/media/route.ts",nextConfigOutput:"standalone",userland:L,...{}}),{workAsyncStorage:K,workUnitAsyncStorage:q,serverHooks:H}=_;async function $(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),_.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/media/route";y=y.replace(/\/index$/,"")||"/";let v=await _.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,deploymentId:A,params:b,nextConfig:I,parsedUrl:E,isDraftMode:x,prerenderManifest:R,routerServerContext:D,isOnDemandRevalidate:T,revalidateOnlyGenerated:N,resolvedPathname:C,clientReferenceManifest:O,serverActionsManifest:U}=v,M=(0,o.normalizeAppPath)(y),P=!!(R.dynamicRoutes[M]||R.routes[C]),j=async()=>((null==D?void 0:D.render404)?await D.render404(e,t,E,!1):t.end("This page could not be found"),null);if(P&&!x){let e=!!R.routes[C],t=R.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(I.adapterPath)return await j();throw new h.NoFallbackError}}let k=null;!P||_.isDev||x||(k="/index"===(k=C)?"/":k);let F=!0===_.isDev||!P,L=P&&!F;U&&O&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:O,serverActionsManifest:U});let K=e.method||"GET",q=(0,n.getTracer)(),H=q.getActiveScopeSpan(),$=!!(null==D?void 0:D.isWrappedByNextServer),z=!!(0,i.getRequestMeta)(e,"minimalMode"),W=(0,i.getRequestMeta)(e,"incrementalCache")||await _.getIncrementalCache(e,I,R,z);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let G={params:b,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:F,incrementalCache:W,cacheLifeProfiles:I.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,i)=>_.onRequestError(e,t,r,i,D)},sharedContext:{buildId:S,deploymentId:A}},B=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),Y=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let i,s=async e=>_.handle(Y,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=q.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${K} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",r),i.updateName(t))}else e.updateName(`${K} ${y}`)}),o=async i=>{var n,o;let l=async({previousCacheEntry:a})=>{try{if(!z&&T&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(i);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=G.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(B,V,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,r=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await _.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:T})},!1,D),t}},d=await _.handleResponse({req:e,nextConfig:I,cacheKey:k,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:N,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:z});if(!P)return null;if((null==d||null==(n=d.value)?void 0:n.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});z||t.setHeader("x-nextjs-cache",T?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return z&&P||u.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,V,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};$&&H?await o(H):(i=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(u.BaseServerSpan.handleRequest,{spanName:`${K} ${y}`,kind:n.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},o),void 0,!$))}catch(t){if(t instanceof h.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:T})},!1,D),P)throw t;return await (0,p.sendResponse)(B,V,new Response(null,{status:500})),null}}e.s(["handler",0,$,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:K,workUnitAsyncStorage:q})},"routeModule",0,_,"serverHooks",0,H,"workAsyncStorage",0,K,"workUnitAsyncStorage",0,q],777866)},627270,e=>{e.v(e=>Promise.resolve().then(()=>e(612069)))},77149,e=>{e.v(t=>Promise.all(["server/chunks/[externals]__01tm01i._.js","server/chunks/[root-of-the-server]__0cumfx6._.js"].map(t=>e.l(t))).then(()=>t(292483)))},195059,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0ns~dg6._.js"].map(t=>e.l(t))).then(()=>t(148089)))},184904,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0e_itje._.js"].map(t=>e.l(t))).then(()=>t(46465)))},742957,e=>{e.v(e=>Promise.resolve().then(()=>e(839554)))}];
57
+ - End with a one-sentence synthesis if appropriate, avoiding filler words.`;e.s(["DEFAULT_CONFIG",0,s,"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=a.default.join(process.cwd(),".larkup"),d=a.default.join(l,"servers"),u=a.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new i.AsyncLocalStorage,m=Promise.resolve();function f(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function g(e){return await b(),f(async()=>e(await S()??c))}function h(e){return a.default.join(d,e)}function w(e,t){return`./.larkup/servers/${e}/${t}`}async function y(e){try{return await t.promises.access(e),!0}catch{return!1}}async function v(e,r){if(await y(e)){await t.promises.mkdir(a.default.dirname(r),{recursive:!0});try{await t.promises.rename(e,r)}catch{await t.promises.cp(e,r,{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 A(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||f(I)}async function I(){let e=await S();if(e)return e;if(!await y(a.default.join(l,"config.json")))return A(c);let i=(0,r.randomUUID)(),n=h(i);for(let e of(await t.promises.mkdir(n,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await v(a.default.join(l,e),a.default.join(n,e));await v(a.default.join(l,"lancedb"),a.default.join(n,"lancedb")),await v(a.default.join(l,"generated-server"),a.default.join(n,"generated-server"));let s="Default server";try{let e=a.default.join(n,"config.json"),r=JSON.parse(await t.promises.readFile(e,"utf8"));r.projectName&&(s=r.projectName),"lancedb"===r.vectorStore&&(r.storeConfig?.mode??"local")==="local"&&(r.storeConfig={...r.storeConfig,dbPath:w(i,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(r,null,2),"utf8")}catch{}let o=new Date().toISOString(),d={id:i,name:s,port:8080,createdAt:o,updatedAt:o};return A({username:null,activeServerId:i,servers:[d],mode:null})}async function E(){let e=await b(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function x(){let e=await E();if(!e)return null;let a=h(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function R(){let e=await x();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:a}=await N("my-larkup");return h(a.id)}async function D(e){return new Promise(t=>{let a=n.default.createServer();a.once("error",()=>t(!1)),a.once("listening",()=>{a.close(()=>t(!0))}),a.listen(e,"127.0.0.1")})}async function T(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await D(t);)t++;return t}function N(e){return g(async i=>{let n=(0,r.randomUUID)(),o=new Date().toISOString(),l={id:n,name:e.trim()||"Untitled server",port:await T(i),createdAt:o,updatedAt:o},d=h(n);await t.promises.mkdir(d,{recursive:!0});let u={};if(i.activeServerId)try{let e=await t.promises.readFile(a.default.join(h(i.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(d,"config.json"),JSON.stringify(function(e,t,a={}){return{...s,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup",storeConfig:{mode:"local",dbPath:w(e,"lancedb")},embeddingApiKey:a.embeddingApiKey??s.embeddingApiKey,customEmbeddings:a.customEmbeddings??s.customEmbeddings,chatApiKey:a.chatApiKey??s.chatApiKey,customChatModels:a.customChatModels??s.customChatModels,serperApiKey:a.serperApiKey??s.serperApiKey,firecrawlApiKey:a.firecrawlApiKey??s.firecrawlApiKey,updatedAt:new Date().toISOString()}}(n,l.name,u),null,2),"utf8");let c={...i,servers:[...i.servers,l],activeServerId:n};return await A(c),{workspace:c,server:l}})}e.s(["createServer",0,N,"deleteServer",0,function(e){return g(async a=>{let r=a.servers.filter(t=>t.id!==e),i=a.activeServerId===e?r[0]?.id??null:a.activeServerId;return await t.promises.rm(h(e),{recursive:!0,force:!0}),A({...a,servers:r,activeServerId:i})})},"getActiveServer",0,E,"getDataDir",0,x,"getWorkspace",0,b,"renameServer",0,function(e,t){return g(async a=>{let r=a.servers.map(a=>a.id===e?{...a,name:t.trim()||a.name,updatedAt:new Date().toISOString()}:a);return A({...a,servers:r})})},"requireDataDir",0,R,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return g(async t=>t.servers.some(t=>t.id===e)?A({...t,activeServerId:e}):t)},"setMode",0,function(e){return g(async t=>A({...t,mode:e}))},"setUsername",0,function(e){return g(async t=>A({...t,username:e.trim()||null}))}],192441)},367165,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(638725),i=e.i(192441);async function n(){let e=await (0,i.getDataDir)();if(!e)return r.DEFAULT_CONFIG;try{let i=await t.promises.readFile(a.default.join(e,"config.json"),"utf8"),n=JSON.parse(i),s=n.customEmbeddings,o=n.embeddingModelId;if(n.customEmbedding&&!s?.length){let e=n.customEmbedding;s=[e],"custom"===o&&(o=`custom:${e.modelName}`)}let l={...r.DEFAULT_CONFIG,...n,embeddingModelId:o??r.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:s,chunking:{...r.DEFAULT_CONFIG.chunking,...n.chunking},storeConfig:{...r.DEFAULT_CONFIG.storeConfig,...n.storeConfig}};return delete l.customEmbedding,l}catch{return r.DEFAULT_CONFIG}}async function s(e){let r=await (0,i.requireDataDir)(),n={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(r,"config.json"),JSON.stringify(n,null,2),"utf8"),n}e.s(["readConfig",0,n,"writeConfig",0,s])},874533,(e,t,a)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,a)=>{t.exports=e.x("node:util",()=>require("node:util"))},705252,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(192441);let n=Promise.resolve();function s(e){let t=n.then(e,e);return n=t.catch(()=>{}),t}async function o(e){let t=e?await (0,i.requireDataDir)():await (0,i.getDataDir)();return t?a.default.join(t,"documents.json"):null}async function l(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid document store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let i=await o(!0);if(!i)return;let n=a.default.join(a.default.dirname(i),`.${a.default.basename(i)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(n,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(n,i)}catch(e){throw await t.promises.unlink(n).catch(()=>{}),e}}function u(e){let t=e.content.trim();return{id:e.id??(0,r.randomUUID)(),title:e.title.trim()||"Untitled",url:e.url,source:e.source,content:t,charCount:t.length,jobId:e.jobId,metadata:e.metadata,status:"unindexed",createdAt:new Date().toISOString()}}async function c(){let e=await l(),t=e.reduce((e,t)=>e+t.charCount,0);return{docCount:e.length,charCount:t,bySource:e.reduce((e,t)=>(e[t.source]=(e[t.source]??0)+1,e),{})}}e.s(["addCrawledDocuments",0,function(e,t){return s(async()=>{let a=await l(),r=new Set(a.filter(e=>e.url).map(e=>e.url)),i=0;for(let n of t)!(n.url&&r.has(n.url))&&n.content.trim()&&(a.push(u({...n,jobId:e})),n.url&&r.add(n.url),i++);return i>0&&await d(a),i})},"addDocument",0,function(e){return s(async()=>{let t=await l(),a=u(e);return t.push(a),await d(t),a})},"addDocuments",0,function(e){return s(async()=>{if(0===e.length)return[];let t=await l(),a=e.map(u);return t.push(...a),await d(t),a})},"clearDocuments",0,function(){return s(async()=>{await d([])})},"corpusStats",0,c,"deleteDocument",0,function(e){return s(async()=>{let t=await l();await d(t.filter(t=>t.id!==e))})},"deleteDocuments",0,function(e){return s(async()=>{let t=await l(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"readDocuments",0,l,"replaceDocuments",0,function(e){return s(async()=>{let t=new Date().toISOString();await d(e.map(e=>({...e,status:"unindexed",createdAt:e.createdAt||t})))})},"updateDocument",0,function(e,t){return s(async()=>{let a=await l(),r=a.findIndex(t=>t.id===e);if(r<0)return;let i=a[r],n=void 0!==t.content?t.content.trim():i.content,s={...i,title:void 0!==t.title?t.title.trim()||"Untitled":i.title,content:n,charCount:n.length,url:void 0!==t.url?t.url||void 0:i.url,metadata:void 0!==t.metadata?t.metadata:i.metadata,status:"unindexed"};return a[r]=s,await d(a),s})},"updateDocumentsStatus",0,function(e,t){return s(async()=>{let a=await l(),r=new Set(e),i=!1;for(let e of a)r.has(e.id)&&(e.status=t,i=!0);i&&await d(a)})}])},585071,e=>{"use strict";var t=e.i(192441);async function a(a,r){let i={...a.storeConfig},n=await (0,t.getActiveServer)(),s=n?.id;if(s){let e=s.replace(/[^a-zA-Z0-9_-]/g,"_");"pinecone"===a.vectorStore?i.namespace=s:"chroma"===a.vectorStore?i.collectionName=`documents_${e}`:"lancedb"!==a.vectorStore&&a.vectorStore||(i.tableName=`documents_${e}`)}switch(a.vectorStore){case"pinecone":{let{PineconeAdapter:t}=await e.A(77149);return new t({apiKey:i.apiKey,indexName:i.indexName,namespace:i.namespace,sparseModel:i.sparseModel,indexType:a.indexType,onRateLimit:r})}case"chroma":{let{ChromaAdapter:t}=await e.A(195059);return new t({mode:i.mode,host:i.host,authToken:i.authToken,apiKey:i.apiKey,tenant:i.tenant,database:i.database,collectionName:i.collectionName,indexType:a.indexType})}default:{let{LanceDBAdapter:t}=await e.A(184904);return new t({mode:i.mode,dbPath:i.dbPath,uri:i.uri,apiKey:i.apiKey,s3Uri:i.s3Uri,s3Endpoint:i.s3Endpoint,s3Region:i.s3Region,s3AccessKeyId:i.s3AccessKeyId,s3SecretAccessKey:i.s3SecretAccessKey,tableName:i.tableName})}}}e.s(["createAdapter",0,a])},839554,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(192441);let n=Promise.resolve();function s(e){let t=n.then(e,e);return n=t.catch(()=>{}),t}async function o(e){let t=e?await (0,i.requireDataDir)():await (0,i.getDataDir)();return t?a.default.join(t,"media-assets.json"):null}async function l(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid media asset store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let i=await o(!0);if(!i)return;let n=a.default.join(a.default.dirname(i),`.${a.default.basename(i)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(n,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(n,i)}catch(e){throw await t.promises.unlink(n).catch(()=>{}),e}}let u=["download","extract","transcribe","vision","synthesize","index"],c={download:10,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function p(e){return u.map(t=>({stage:t,status:"waiting",updatedAt:e}))}function m(e){return void 0!==e&&Number.isFinite(e)?Math.max(0,e):void 0}function f(e){let t=m(e);return void 0===t?void 0:Math.min(100,t)}function g(e){return Math.floor(m(e.processingRevision)??0)+1}async function h(){let e=await l(),t={image:0,video:0,audio:0},a={pending:0,processing:0,completed:0,failed:0},r=0;for(let i of e)t[i.type]++,a[i.processingStatus]++,r+=i.fileSize;return{total:e.length,byType:t,byStatus:a,totalBytes:r}}async function w(e){return(await l()).find(t=>t.id===e)}e.s(["addMediaAssets",0,function(e){return s(async()=>{let t=await l(),a=new Date().toISOString(),i=e.map(e=>({id:(0,r.randomUUID)(),type:e.type,fileName:e.fileName,mimeType:e.mimeType,storageUri:e.storageUri,thumbnailUri:e.thumbnailUri,originalUrl:e.originalUrl,fileSize:e.fileSize,dimensions:e.dimensions,durationSecs:e.durationSecs,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:a,updatedAt:a}));return t.push(...i),await d(t),i})},"claimMediaAsset",0,function(e){return s(async()=>{let t=await l(),a=t.findIndex(t=>t.id===e);if(a<0||"processing"===t[a].processingStatus||"Queued for background processing..."===t[a].processingMessage)return;let r=new Date().toISOString();return t[a]={...t[a],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:1,processingSteps:p(r),processingRevision:g(t[a]),processingHeartbeatAt:r,updatedAt:r},await d(t),t[a]})},"deleteMediaAsset",0,function(e){return s(async()=>{let t=await l();await d(t.filter(t=>t.id!==e))})},"deleteMediaAssets",0,function(e){return s(async()=>{let t=await l(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"getMediaAsset",0,w,"mediaStats",0,h,"readMediaAssets",0,l,"recoverStaleMediaAssets",0,function(e=3e5){return s(async()=>{let t=await l(),a=Date.now()-e,r="The background worker stopped. Retry to resume media processing.",i=0;for(let e=0;e<t.length;e++){let n=t[e],s="processing"===n.processingStatus,o="pending"===n.processingStatus&&"Queued for background processing..."===n.processingMessage,l=n.processingHeartbeatAt??n.updatedAt;if((s||o)&&new Date(l).getTime()<a){let a=new Date().toISOString(),s=n.processingSteps?.map(e=>"running"===e.status?{...e,status:"failed",message:r,updatedAt:a,finishedAt:a}:e);t[e]={...n,processingStatus:"failed",processingError:r,processingMessage:void 0,processingProgress:void 0,processingSteps:s,processingRevision:g(n),processingHeartbeatAt:a,updatedAt:a},i++}}return i>0&&await d(t),i})},"updateMediaAsset",0,function(e,t){return s(async()=>{let a=await l(),r=a.findIndex(t=>t.id===e);if(r<0)return;let i=a[r];return a[r]={...i,...t,documentIds:t.documentIds??i.documentIds,pendingDocumentIds:t.pendingDocumentIds??i.pendingDocumentIds,supersededDocumentIds:t.supersededDocumentIds??i.supersededDocumentIds,updatedAt:new Date().toISOString()},await d(a),a[r]})},"updateMediaStage",0,function(e,t,a){return s(async()=>{let r,i,n=await l(),s=n.findIndex(t=>t.id===e);if(s<0)return;let o=new Date().toISOString(),u=n[s],h=new Map((u.processingSteps??[]).map(e=>[e.stage,e])),w=p(o).map(e=>h.get(e.stage)??e),y=w.findIndex(e=>e.stage===t),v=w[y],S=new Set(["completed","skipped","failed"]),A=a.status??v.status,b=S.has(v.status)||"running"===v.status&&"waiting"===A?v.status:A,I=f(v.percent),E=f(a.percent),x=void 0===E?I:Math.max(I??0,E),R=m(v.current),D=m(a.current),T=void 0===D?R:Math.max(R??0,D),N=void 0===a.total?m(v.total):m(a.total);void 0!==T&&void 0!==N&&(N=Math.max(N,T))>0&&(x=Math.max(x??0,Math.min(100,T/N*100))),"completed"===b&&(x=100,void 0!==N&&(T=N));let C=S.has(b),O={...v,...a,stage:t,status:b,percent:x,current:T,total:N,startedAt:a.startedAt??v.startedAt??("running"===b||C?o:void 0),updatedAt:o,finishedAt:C?a.finishedAt??v.finishedAt??o:void 0};w[y]=O;let U=Math.max(f(u.processingProgress)??0,0===(i=(r=w.filter(e=>"skipped"!==e.status)).reduce((e,t)=>e+c[t.stage],0))?100:Math.round(r.reduce((e,t)=>e+c[t.stage]*function(e){if("completed"===e.status)return 100;if("waiting"===e.status||"skipped"===e.status)return 0;let t=f(e.percent);return void 0!==t?t:void 0!==e.current&&void 0!==e.total&&Number.isFinite(e.current)&&Number.isFinite(e.total)&&e.total>0?Math.min(100,Math.max(0,e.current/e.total*100)):0}(t)/100,0)/i*100)),M=[...w].reverse().find(e=>"running"===e.status&&e.message)?.message,P="running"===O.status?O.message??a.message??u.processingMessage:M??a.message??O.message??u.processingMessage;return n[s]={...u,processingSteps:w,processingProgress:U,processingMessage:P,processingRevision:g(u),processingHeartbeatAt:o,updatedAt:o},await d(n),n[s]})}])},941486,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(192441);class i{id="local";name="Local Storage";async mediaDir(){let e=await (0,r.requireDataDir)(),i=a.default.join(e,"media");return await t.promises.mkdir(i,{recursive:!0}),i}async store(e,r,i){let n=await this.mediaDir(),s=a.default.join(n,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.writeFile(s,r),`local://${e}`}async storeFile(e,r,i){let n=await this.mediaDir(),s=a.default.join(n,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.copyFile(r,s),`local://${e}`}async retrieve(e){let a=await this.resolvePath(e);if(!a)throw Error(`Unsupported local storage URI: ${e}`);return t.promises.readFile(a)}async resolvePath(e){if(!e.startsWith("local://"))return;let t=e.slice(8),r=await this.mediaDir(),i=a.default.resolve(r,t),n=a.default.relative(r,i);if(n.startsWith("..")||a.default.isAbsolute(n))throw Error("Invalid local storage URI");return i}async delete(e){let r=e.replace("local://",""),i=await this.mediaDir();try{await t.promises.unlink(a.default.join(i,r))}catch{}}async stats(){try{let e=await this.mediaDir();return await n(e)}catch{return{usedBytes:0,fileCount:0}}}}async function n(e){let r=0,i=0;async function n(e){let s;try{s=await t.promises.readdir(e,{withFileTypes:!0})}catch{return}for(let o of s){let s=a.default.join(e,o.name);if(o.isDirectory())await n(s);else try{let e=await t.promises.stat(s);r+=e.size,i++}catch{}}}return await n(e),{usedBytes:r,fileCount:i}}e.s(["createStorageProvider",0,function(e){return new i}])},504740,e=>{"use strict";var t=e.i(463857);let a=new Map;async function r(e){if(a.has(e))return a.get(e);let r=await (0,t.getInstalledTool)(e);if(!r)return null;try{let t=function(e){switch(e.source){case"local":default:return e.packageName;case"registry":case"sandbox":return e.resolvedPath}}(r),i=await import(t);return a.set(e,i),i}catch(t){return console.error(`[marketplace] Failed to load tool "${e}":`,t),null}}e.s(["loadTool",0,r])},777866,e=>{"use strict";var t=e.i(850492),a=e.i(891119),r=e.i(697373),i=e.i(765700),n=e.i(601263),s=e.i(706859),o=e.i(947547),l=e.i(819797),d=e.i(135958),u=e.i(86520),c=e.i(970949),p=e.i(741165),m=e.i(106898),f=e.i(454415),g=e.i(37125),h=e.i(193695);e.i(530058);var w=e.i(605998),y=e.i(686296),v=e.i(839554),S=e.i(463857),A=e.i(504740),b=e.i(941486),I=e.i(705252),E=e.i(367165),x=e.i(585071),R=e.i(192441);async function D(e){return j(e,()=>T(e))}async function T(e){let t=new URL(e.url).searchParams.get("type");await (0,v.recoverStaleMediaAssets)();let[a,r]=await Promise.all([(0,v.readMediaAssets)(),(0,v.mediaStats)()]),i=t?a.filter(e=>e.type===t):a;i.sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());let n=(0,b.createStorageProvider)(),s=await n.stats();return y.NextResponse.json({assets:i,stats:r,storage:{usedBytes:s.usedBytes,fileCount:s.fileCount}})}async function N(e){return j(e,()=>C(e))}async function C(t){try{if(t.headers.get("content-type")?.includes("application/json"))return await O(t);let r=(await t.formData()).getAll("file");if(0===r.length)return y.NextResponse.json({error:"No files provided."},{status:400});let i=(0,b.createStorageProvider)(),n=[];for(let e of r){var a;let t=(a=e.type).startsWith("image/")?"image":a.startsWith("video/")?"video":a.startsWith("audio/")?"audio":null;if(!t)continue;let r=Buffer.from(await e.arrayBuffer()),s=e.name.split(".").pop()||"bin",o=`${t}s/${Date.now()}_${Math.random().toString(36).slice(2)}.${s}`,l=await i.store(o,r,e.type);n.push({type:t,fileName:e.name,mimeType:e.type,storageUri:l,fileSize:e.size})}if(0===n.length)return y.NextResponse.json({error:"No supported media files found."},{status:400});let{addMediaAssets:s}=await e.A(742957),o=await s(n);return y.NextResponse.json({assets:o,count:o.length},{status:201})}catch(t){let e=t instanceof Error?t.message:"Failed to upload media.";return y.NextResponse.json({error:e},{status:500})}}async function O(t){let a=await t.json(),r=[...new Set(a.urls?.map(e=>e.trim()).filter(Boolean)??[])];if(0===r.length||r.length>10)return y.NextResponse.json({error:"Provide between 1 and 10 media URLs."},{status:400});if(!await (0,S.isToolInstalled)("video-audio"))return y.NextResponse.json({error:"Install the Video & Audio tool before importing media URLs."},{status:409});let i=await (0,A.loadTool)("video-audio");if(!i?.importMediaUrl||!i?.inspectMediaUrl)return y.NextResponse.json({error:"The installed Video & Audio tool needs an update."},{status:409});if(a.estimateOnly){let e=[];for(let t of r){let r=await i.inspectMediaUrl(t);if(a.mediaType&&"unknown"!==r.mediaType&&r.mediaType!==a.mediaType)return y.NextResponse.json({error:`The URL points to ${r.mediaType}, not ${a.mediaType}.`},{status:400});e.push(r)}return y.NextResponse.json({estimates:e})}let{addMediaAssets:n}=await e.A(742957),s=r.map(e=>({type:a.mediaType||"video",fileName:"Importing URL...",mimeType:"application/octet-stream",storageUri:`pending://${e}`,fileSize:0,originalUrl:e})),o=await n(s);return y.NextResponse.json({assets:o,count:o.length},{status:201})}async function U(e){return j(e,()=>M(e))}async function M(t){let a=new URL(t.url),r=a.searchParams.get("id"),i=a.searchParams.get("ids"),n=(0,b.createStorageProvider)();if(r){let{getMediaAsset:t}=await e.A(742957),a=await t(r);if(a){if(P(a))return y.NextResponse.json({error:"Wait for the media indexing job to finish before deleting it."},{status:409});let e=F(a);await k(e),await n.delete(a.storageUri).catch(()=>{}),a.thumbnailUri&&await n.delete(a.thumbnailUri).catch(()=>{}),await (0,I.deleteDocuments)(e)}await (0,v.deleteMediaAsset)(r)}else if(i){let e=i.split(","),t=(await (0,v.readMediaAssets)()).filter(t=>e.includes(t.id));if(t.some(P))return y.NextResponse.json({error:"Wait for all selected media indexing jobs to finish before deleting them."},{status:409});for(let e of t){let t=F(e);await k(t),await n.delete(e.storageUri).catch(()=>{}),e.thumbnailUri&&await n.delete(e.thumbnailUri).catch(()=>{}),await (0,I.deleteDocuments)(t)}await (0,v.deleteMediaAssets)(e)}return y.NextResponse.json({ok:!0})}function P(e){return"processing"===e.processingStatus||"pending"===e.processingStatus&&"Queued for background processing..."===e.processingMessage}function j(e,t){let a=new URL(e.url).searchParams.get("serverId");return a?(0,R.runWithServer)(a,t):t()}async function k(e){if(0===e.length)return;let t=await (0,x.createAdapter)(await (0,E.readConfig)());await t.deleteByDocumentIds(e)}function F(e){return[...new Set([...e.documentIds,...e.pendingDocumentIds??[],...e.supersededDocumentIds??[]])]}e.s(["DELETE",0,U,"GET",0,D,"POST",0,N,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],98281);var L=e.i(98281);let _=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/media/route",pathname:"/api/media",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/media/route.ts",nextConfigOutput:"standalone",userland:L,...{}}),{workAsyncStorage:K,workUnitAsyncStorage:q,serverHooks:H}=_;async function $(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),_.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/media/route";y=y.replace(/\/index$/,"")||"/";let v=await _.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,deploymentId:A,params:b,nextConfig:I,parsedUrl:E,isDraftMode:x,prerenderManifest:R,routerServerContext:D,isOnDemandRevalidate:T,revalidateOnlyGenerated:N,resolvedPathname:C,clientReferenceManifest:O,serverActionsManifest:U}=v,M=(0,o.normalizeAppPath)(y),P=!!(R.dynamicRoutes[M]||R.routes[C]),j=async()=>((null==D?void 0:D.render404)?await D.render404(e,t,E,!1):t.end("This page could not be found"),null);if(P&&!x){let e=!!R.routes[C],t=R.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(I.adapterPath)return await j();throw new h.NoFallbackError}}let k=null;!P||_.isDev||x||(k="/index"===(k=C)?"/":k);let F=!0===_.isDev||!P,L=P&&!F;U&&O&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:O,serverActionsManifest:U});let K=e.method||"GET",q=(0,n.getTracer)(),H=q.getActiveScopeSpan(),$=!!(null==D?void 0:D.isWrappedByNextServer),z=!!(0,i.getRequestMeta)(e,"minimalMode"),W=(0,i.getRequestMeta)(e,"incrementalCache")||await _.getIncrementalCache(e,I,R,z);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let G={params:b,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:F,incrementalCache:W,cacheLifeProfiles:I.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,i)=>_.onRequestError(e,t,r,i,D)},sharedContext:{buildId:S,deploymentId:A}},B=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),Y=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let i,s=async e=>_.handle(Y,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=q.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${K} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",r),i.updateName(t))}else e.updateName(`${K} ${y}`)}),o=async i=>{var n,o;let l=async({previousCacheEntry:a})=>{try{if(!z&&T&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(i);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=G.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(B,V,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,r=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await _.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:T})},!1,D),t}},d=await _.handleResponse({req:e,nextConfig:I,cacheKey:k,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:N,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:z});if(!P)return null;if((null==d||null==(n=d.value)?void 0:n.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});z||t.setHeader("x-nextjs-cache",T?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return z&&P||u.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,V,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};$&&H?await o(H):(i=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(u.BaseServerSpan.handleRequest,{spanName:`${K} ${y}`,kind:n.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},o),void 0,!$))}catch(t){if(t instanceof h.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:T})},!1,D),P)throw t;return await (0,p.sendResponse)(B,V,new Response(null,{status:500})),null}}e.s(["handler",0,$,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:K,workUnitAsyncStorage:q})},"routeModule",0,_,"serverHooks",0,H,"workAsyncStorage",0,K,"workUnitAsyncStorage",0,q],777866)},627270,e=>{e.v(e=>Promise.resolve().then(()=>e(612069)))},77149,e=>{e.v(t=>Promise.all(["server/chunks/[externals]__01tm01i._.js","server/chunks/[root-of-the-server]__0cumfx6._.js"].map(t=>e.l(t))).then(()=>t(292483)))},195059,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0ns~dg6._.js"].map(t=>e.l(t))).then(()=>t(148089)))},184904,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0e_itje._.js"].map(t=>e.l(t))).then(()=>t(46465)))},742957,e=>{e.v(e=>Promise.resolve().then(()=>e(839554)))}];
58
58
 
59
59
  //# sourceMappingURL=%5Broot-of-the-server%5D__05x8tmf._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[750227,(e,t,a)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,a)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},478500,(e,t,a)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},761095,(e,t,a)=>{t.exports=e.x("node:net",()=>require("node:net"))},192441,638725,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),n=e.i(478500),s=e.i(761095);let i={projectName:"my-rag",embeddingProvider:"openai",embeddingApiKey:"",embeddingModelId:"openai/text-embedding-3-small",indexType:"hybrid",chunking:{chunkSize:512,chunkOverlap:64,strategy:"recursive"},vectorStore:"lancedb",storeConfig:{mode:"local",dbPath:"./.larkup/lancedb",tableName:"documents"},topK:5,serperApiKey:"",webSearchEnabled:!1,webSearchProvider:"tavily",tavilyApiKey:"",googleApiKey:"",braveApiKey:"",bingApiKey:"",exaApiKey:"",chatModelId:"",chatApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",toolConfigs:{},updatedAt:new Date(0).toISOString()},o=`You are a powerful data analysis assistant with access to a knowledge base, corpus introspection tools, tabular data tools, and a code sandbox.
1
+ module.exports=[750227,(e,t,a)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,a)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},478500,(e,t,a)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},761095,(e,t,a)=>{t.exports=e.x("node:net",()=>require("node:net"))},192441,638725,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),n=e.i(478500),s=e.i(761095);let i={projectName:"my-larkup",embeddingProvider:"openai",embeddingApiKey:"",embeddingModelId:"openai/text-embedding-3-small",indexType:"hybrid",chunking:{chunkSize:512,chunkOverlap:64,strategy:"recursive"},vectorStore:"lancedb",storeConfig:{mode:"local",dbPath:"./.larkup/lancedb",tableName:"documents"},topK:5,serperApiKey:"",webSearchEnabled:!1,webSearchProvider:"tavily",tavilyApiKey:"",googleApiKey:"",braveApiKey:"",bingApiKey:"",exaApiKey:"",chatModelId:"",chatApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",toolConfigs:{},updatedAt:new Date(0).toISOString()},o=`You are a powerful data analysis assistant with access to a knowledge base, corpus introspection tools, tabular data tools, and a code sandbox.
2
2
 
3
3
  You have these tools:
4
4
  1. "searchKnowledgeBase" — semantic search over the RAG knowledge base. Returns top-K most relevant document chunks.
@@ -54,6 +54,6 @@ RESPONSE FORMATTING (Analytics Style):
54
54
  - Structure complex responses logically (e.g., Summary -> Key Metrics -> Breakdown).
55
55
  - If your findings contain a small table of data, format it cleanly using Markdown tables.
56
56
  - DO NOT hallucinate facts; rely strictly on the provided query results.
57
- - 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=a.default.join(process.cwd(),".larkup"),d=a.default.join(l,"servers"),u=a.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,m=Promise.resolve();function g(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function h(e){return await b(),g(async()=>e(await S()??c))}function f(e){return a.default.join(d,e)}function y(e,t){return`./.larkup/servers/${e}/${t}`}async function w(e){try{return await t.promises.access(e),!0}catch{return!1}}async function v(e,r){if(await w(e)){await t.promises.mkdir(a.default.dirname(r),{recursive:!0});try{await t.promises.rename(e,r)}catch{await t.promises.cp(e,r,{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 A(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||g(R)}async function R(){let e=await S();if(e)return e;if(!await w(a.default.join(l,"config.json")))return A(c);let n=(0,r.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 v(a.default.join(l,e),a.default.join(s,e));await v(a.default.join(l,"lancedb"),a.default.join(s,"lancedb")),await v(a.default.join(l,"generated-server"),a.default.join(s,"generated-server"));let i="Default server";try{let e=a.default.join(s,"config.json"),r=JSON.parse(await t.promises.readFile(e,"utf8"));r.projectName&&(i=r.projectName),"lancedb"===r.vectorStore&&(r.storeConfig?.mode??"local")==="local"&&(r.storeConfig={...r.storeConfig,dbPath:y(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(r,null,2),"utf8")}catch{}let o=new Date().toISOString(),d={id:n,name:i,port:8080,createdAt:o,updatedAt:o};return A({username:null,activeServerId:n,servers:[d],mode:null})}async function E(){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 E();if(!e)return null;let a=f(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function x(){let e=await I();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:a}=await T("My RAG server");return f(a.id)}async function C(e){return new Promise(t=>{let a=s.default.createServer();a.once("error",()=>t(!1)),a.once("listening",()=>{a.close(()=>t(!0))}),a.listen(e,"127.0.0.1")})}async function N(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await C(t);)t++;return t}function T(e){return h(async n=>{let s=(0,r.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await N(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(a.default.join(f(n.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(d,"config.json"),JSON.stringify(function(e,t,a={}){return{...i,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-rag",storeConfig:{mode:"local",dbPath:y(e,"lancedb")},embeddingApiKey:a.embeddingApiKey??i.embeddingApiKey,customEmbeddings:a.customEmbeddings??i.customEmbeddings,chatApiKey:a.chatApiKey??i.chatApiKey,customChatModels:a.customChatModels??i.customChatModels,serperApiKey:a.serperApiKey??i.serperApiKey,firecrawlApiKey:a.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 A(c),{workspace:c,server:l}})}e.s(["createServer",0,T,"deleteServer",0,function(e){return h(async a=>{let r=a.servers.filter(t=>t.id!==e),n=a.activeServerId===e?r[0]?.id??null:a.activeServerId;return await t.promises.rm(f(e),{recursive:!0,force:!0}),A({...a,servers:r,activeServerId:n})})},"getActiveServer",0,E,"getDataDir",0,I,"getWorkspace",0,b,"renameServer",0,function(e,t){return h(async a=>{let r=a.servers.map(a=>a.id===e?{...a,name:t.trim()||a.name,updatedAt:new Date().toISOString()}:a);return A({...a,servers:r})})},"requireDataDir",0,x,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return h(async t=>t.servers.some(t=>t.id===e)?A({...t,activeServerId:e}):t)},"setMode",0,function(e){return h(async t=>A({...t,mode:e}))},"setUsername",0,function(e){return h(async t=>A({...t,username:e.trim()||null}))}],192441)},839554,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),n=e.i(192441);let s=Promise.resolve();function i(e){let t=s.then(e,e);return s=t.catch(()=>{}),t}async function o(e){let t=e?await (0,n.requireDataDir)():await (0,n.getDataDir)();return t?a.default.join(t,"media-assets.json"):null}async function l(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid media asset store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let n=await o(!0);if(!n)return;let s=a.default.join(a.default.dirname(n),`.${a.default.basename(n)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(s,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(s,n)}catch(e){throw await t.promises.unlink(s).catch(()=>{}),e}}let u=["download","extract","transcribe","vision","synthesize","index"],c={download:10,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function p(e){return u.map(t=>({stage:t,status:"waiting",updatedAt:e}))}function m(e){return void 0!==e&&Number.isFinite(e)?Math.max(0,e):void 0}function g(e){let t=m(e);return void 0===t?void 0:Math.min(100,t)}function h(e){return Math.floor(m(e.processingRevision)??0)+1}async function f(){let e=await l(),t={image:0,video:0,audio:0},a={pending:0,processing:0,completed:0,failed:0},r=0;for(let n of e)t[n.type]++,a[n.processingStatus]++,r+=n.fileSize;return{total:e.length,byType:t,byStatus:a,totalBytes:r}}async function y(e){return(await l()).find(t=>t.id===e)}e.s(["addMediaAssets",0,function(e){return i(async()=>{let t=await l(),a=new Date().toISOString(),n=e.map(e=>({id:(0,r.randomUUID)(),type:e.type,fileName:e.fileName,mimeType:e.mimeType,storageUri:e.storageUri,thumbnailUri:e.thumbnailUri,originalUrl:e.originalUrl,fileSize:e.fileSize,dimensions:e.dimensions,durationSecs:e.durationSecs,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:a,updatedAt:a}));return t.push(...n),await d(t),n})},"claimMediaAsset",0,function(e){return i(async()=>{let t=await l(),a=t.findIndex(t=>t.id===e);if(a<0||"processing"===t[a].processingStatus||"Queued for background processing..."===t[a].processingMessage)return;let r=new Date().toISOString();return t[a]={...t[a],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:1,processingSteps:p(r),processingRevision:h(t[a]),processingHeartbeatAt:r,updatedAt:r},await d(t),t[a]})},"deleteMediaAsset",0,function(e){return i(async()=>{let t=await l();await d(t.filter(t=>t.id!==e))})},"deleteMediaAssets",0,function(e){return i(async()=>{let t=await l(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"getMediaAsset",0,y,"mediaStats",0,f,"readMediaAssets",0,l,"recoverStaleMediaAssets",0,function(e=3e5){return i(async()=>{let t=await l(),a=Date.now()-e,r="The background worker stopped. Retry to resume media processing.",n=0;for(let e=0;e<t.length;e++){let s=t[e],i="processing"===s.processingStatus,o="pending"===s.processingStatus&&"Queued for background processing..."===s.processingMessage,l=s.processingHeartbeatAt??s.updatedAt;if((i||o)&&new Date(l).getTime()<a){let a=new Date().toISOString(),i=s.processingSteps?.map(e=>"running"===e.status?{...e,status:"failed",message:r,updatedAt:a,finishedAt:a}:e);t[e]={...s,processingStatus:"failed",processingError:r,processingMessage:void 0,processingProgress:void 0,processingSteps:i,processingRevision:h(s),processingHeartbeatAt:a,updatedAt:a},n++}}return n>0&&await d(t),n})},"updateMediaAsset",0,function(e,t){return i(async()=>{let a=await l(),r=a.findIndex(t=>t.id===e);if(r<0)return;let n=a[r];return a[r]={...n,...t,documentIds:t.documentIds??n.documentIds,pendingDocumentIds:t.pendingDocumentIds??n.pendingDocumentIds,supersededDocumentIds:t.supersededDocumentIds??n.supersededDocumentIds,updatedAt:new Date().toISOString()},await d(a),a[r]})},"updateMediaStage",0,function(e,t,a){return i(async()=>{let r,n,s=await l(),i=s.findIndex(t=>t.id===e);if(i<0)return;let o=new Date().toISOString(),u=s[i],f=new Map((u.processingSteps??[]).map(e=>[e.stage,e])),y=p(o).map(e=>f.get(e.stage)??e),w=y.findIndex(e=>e.stage===t),v=y[w],S=new Set(["completed","skipped","failed"]),A=a.status??v.status,b=S.has(v.status)||"running"===v.status&&"waiting"===A?v.status:A,R=g(v.percent),E=g(a.percent),I=void 0===E?R:Math.max(R??0,E),x=m(v.current),C=m(a.current),N=void 0===C?x:Math.max(x??0,C),T=void 0===a.total?m(v.total):m(a.total);void 0!==N&&void 0!==T&&(T=Math.max(T,N))>0&&(I=Math.max(I??0,Math.min(100,N/T*100))),"completed"===b&&(I=100,void 0!==T&&(N=T));let O=S.has(b),D={...v,...a,stage:t,status:b,percent:I,current:N,total:T,startedAt:a.startedAt??v.startedAt??("running"===b||O?o:void 0),updatedAt:o,finishedAt:O?a.finishedAt??v.finishedAt??o:void 0};y[w]=D;let M=Math.max(g(u.processingProgress)??0,0===(n=(r=y.filter(e=>"skipped"!==e.status)).reduce((e,t)=>e+c[t.stage],0))?100:Math.round(r.reduce((e,t)=>e+c[t.stage]*function(e){if("completed"===e.status)return 100;if("waiting"===e.status||"skipped"===e.status)return 0;let t=g(e.percent);return void 0!==t?t:void 0!==e.current&&void 0!==e.total&&Number.isFinite(e.current)&&Number.isFinite(e.total)&&e.total>0?Math.min(100,Math.max(0,e.current/e.total*100)):0}(t)/100,0)/n*100)),U=[...y].reverse().find(e=>"running"===e.status&&e.message)?.message,P="running"===D.status?D.message??a.message??u.processingMessage:U??a.message??D.message??u.processingMessage;return s[i]={...u,processingSteps:y,processingProgress:M,processingMessage:P,processingRevision:h(u),processingHeartbeatAt:o,updatedAt:o},await d(s),s[i]})}])},941486,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(192441);class n{id="local";name="Local Storage";async mediaDir(){let e=await (0,r.requireDataDir)(),n=a.default.join(e,"media");return await t.promises.mkdir(n,{recursive:!0}),n}async store(e,r,n){let s=await this.mediaDir(),i=a.default.join(s,e);return await t.promises.mkdir(a.default.dirname(i),{recursive:!0}),await t.promises.writeFile(i,r),`local://${e}`}async storeFile(e,r,n){let s=await this.mediaDir(),i=a.default.join(s,e);return await t.promises.mkdir(a.default.dirname(i),{recursive:!0}),await t.promises.copyFile(r,i),`local://${e}`}async retrieve(e){let a=await this.resolvePath(e);if(!a)throw Error(`Unsupported local storage URI: ${e}`);return t.promises.readFile(a)}async resolvePath(e){if(!e.startsWith("local://"))return;let t=e.slice(8),r=await this.mediaDir(),n=a.default.resolve(r,t),s=a.default.relative(r,n);if(s.startsWith("..")||a.default.isAbsolute(s))throw Error("Invalid local storage URI");return n}async delete(e){let r=e.replace("local://",""),n=await this.mediaDir();try{await t.promises.unlink(a.default.join(n,r))}catch{}}async stats(){try{let e=await this.mediaDir();return await s(e)}catch{return{usedBytes:0,fileCount:0}}}}async function s(e){let r=0,n=0;async function s(e){let i;try{i=await t.promises.readdir(e,{withFileTypes:!0})}catch{return}for(let o of i){let i=a.default.join(e,o.name);if(o.isDirectory())await s(i);else try{let e=await t.promises.stat(i);r+=e.size,n++}catch{}}}return await s(e),{usedBytes:r,fileCount:n}}e.s(["createStorageProvider",0,function(e){return new n}])},969519,e=>{"use strict";var t=e.i(850492),a=e.i(891119),r=e.i(697373),n=e.i(765700),s=e.i(601263),i=e.i(706859),o=e.i(947547),l=e.i(819797),d=e.i(135958),u=e.i(86520),c=e.i(970949),p=e.i(741165),m=e.i(106898),g=e.i(454415),h=e.i(37125),f=e.i(193695);e.i(530058);var y=e.i(605998),w=e.i(686296),v=e.i(839554),S=e.i(941486),A=e.i(192441);async function b(e,t){return x(e,()=>R(e,t))}async function R(e,{params:t}){let{id:a}=await t,r="true"===new URL(e.url).searchParams.get("thumb"),n=await (0,v.getMediaAsset)(a);if(!n)return w.NextResponse.json({error:"Not found"},{status:404});let s=(0,S.createStorageProvider)(),i=r&&n.thumbnailUri?n.thumbnailUri:n.storageUri;try{let t=await s.retrieve(i),a=r?"image/webp":n.mimeType,o=r?null:e.headers.get("range");if(o){let e=/^bytes=(\d*)-(\d*)$/.exec(o);if(!e)return new w.NextResponse(null,{status:416,headers:{"Content-Range":`bytes */${t.length}`}});let r=!e[1]&&e[2]?Number(e[2]):null,n=null!==r?Math.max(0,t.length-r):e[1]?Number(e[1]):0,s=null!==r?t.length-1:e[2]?Math.min(Number(e[2]),t.length-1):t.length-1;if(n>s||n>=t.length)return new w.NextResponse(null,{status:416,headers:{"Content-Range":`bytes */${t.length}`}});let i=t.subarray(n,s+1);return new w.NextResponse(i,{status:206,headers:{"Content-Type":a,"Accept-Ranges":"bytes","Content-Range":`bytes ${n}-${s}/${t.length}`,"Content-Length":String(i.length),"Cache-Control":"public, max-age=31536000, immutable"}})}return new w.NextResponse(t,{headers:{"Content-Type":a,"Accept-Ranges":"bytes","Cache-Control":"public, max-age=31536000, immutable","Content-Length":String(t.length)}})}catch{return w.NextResponse.json({error:"File not found"},{status:404})}}async function E(e,t){return x(e,()=>I(e,t))}async function I(e,{params:t}){let{id:a}=await t;try{let t=await e.json(),r=await (0,v.updateMediaAsset)(a,t);if(!r)return w.NextResponse.json({error:"Not found"},{status:404});return w.NextResponse.json({asset:r})}catch(t){let e=t instanceof Error?t.message:"Update failed.";return w.NextResponse.json({error:e},{status:500})}}function x(e,t){let a=new URL(e.url).searchParams.get("serverId");return a?(0,A.runWithServer)(a,t):t()}e.s(["GET",0,b,"PATCH",0,E,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],202392);var C=e.i(202392);let N=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/media/[id]/route",pathname:"/api/media/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/media/[id]/route.ts",nextConfigOutput:"standalone",userland:C,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:O,serverHooks:D}=N;async function M(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/media/[id]/route";w=w.replace(/\/index$/,"")||"/";let v=await N.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,deploymentId:A,params:b,nextConfig:R,parsedUrl:E,isDraftMode:I,prerenderManifest:x,routerServerContext:C,isOnDemandRevalidate:T,revalidateOnlyGenerated:O,resolvedPathname:D,clientReferenceManifest:M,serverActionsManifest:U}=v,P=(0,o.normalizeAppPath)(w),k=!!(x.dynamicRoutes[P]||x.routes[D]),j=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,E,!1):t.end("This page could not be found"),null);if(k&&!I){let e=!!x.routes[D],t=x.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(R.adapterPath)return await j();throw new f.NoFallbackError}}let L=null;!k||N.isDev||I||(L="/index"===(L=D)?"/":L);let q=!0===N.isDev||!k,F=k&&!q;U&&M&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:M,serverActionsManifest:U});let K=e.method||"GET",H=(0,s.getTracer)(),_=H.getActiveScopeSpan(),z=!!(null==C?void 0:C.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await N.getIncrementalCache(e,R,x,$);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let G={params:b,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:q,incrementalCache:W,cacheLifeProfiles:R.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>N.onRequestError(e,t,r,n,C)},sharedContext:{buildId:S,deploymentId:A}},Y=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),B=d.NextRequestAdapter.fromNodeNextRequest(Y,(0,d.signalFromNodeResponse)(t));try{let n,i=async e=>N.handle(B,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=H.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${K} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${K} ${w}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:a})=>{try{if(!$&&T&&O&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=G.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(Y,V,s,G.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,r=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:T})},!1,C),t}},d=await N.handleResponse({req:e,nextConfig:R,cacheKey:L,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:$});if(!k)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",T?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return $&&k||u.delete(h.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,g.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(Y,V,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};z&&_?await o(_):(n=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${K} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},o),void 0,!z))}catch(t){if(t instanceof f.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:T})},!1,C),k)throw t;return await (0,p.sendResponse)(Y,V,new Response(null,{status:500})),null}}e.s(["handler",0,M,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:O})},"routeModule",0,N,"serverHooks",0,D,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,O],969519)}];
57
+ - 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=a.default.join(process.cwd(),".larkup"),d=a.default.join(l,"servers"),u=a.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,m=Promise.resolve();function g(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function h(e){return await b(),g(async()=>e(await S()??c))}function f(e){return a.default.join(d,e)}function y(e,t){return`./.larkup/servers/${e}/${t}`}async function w(e){try{return await t.promises.access(e),!0}catch{return!1}}async function v(e,r){if(await w(e)){await t.promises.mkdir(a.default.dirname(r),{recursive:!0});try{await t.promises.rename(e,r)}catch{await t.promises.cp(e,r,{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 A(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||g(R)}async function R(){let e=await S();if(e)return e;if(!await w(a.default.join(l,"config.json")))return A(c);let n=(0,r.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 v(a.default.join(l,e),a.default.join(s,e));await v(a.default.join(l,"lancedb"),a.default.join(s,"lancedb")),await v(a.default.join(l,"generated-server"),a.default.join(s,"generated-server"));let i="Default server";try{let e=a.default.join(s,"config.json"),r=JSON.parse(await t.promises.readFile(e,"utf8"));r.projectName&&(i=r.projectName),"lancedb"===r.vectorStore&&(r.storeConfig?.mode??"local")==="local"&&(r.storeConfig={...r.storeConfig,dbPath:y(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(r,null,2),"utf8")}catch{}let o=new Date().toISOString(),d={id:n,name:i,port:8080,createdAt:o,updatedAt:o};return A({username:null,activeServerId:n,servers:[d],mode:null})}async function E(){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 E();if(!e)return null;let a=f(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function x(){let e=await I();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:a}=await T("my-larkup");return f(a.id)}async function C(e){return new Promise(t=>{let a=s.default.createServer();a.once("error",()=>t(!1)),a.once("listening",()=>{a.close(()=>t(!0))}),a.listen(e,"127.0.0.1")})}async function N(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await C(t);)t++;return t}function T(e){return h(async n=>{let s=(0,r.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await N(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(a.default.join(f(n.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(d,"config.json"),JSON.stringify(function(e,t,a={}){return{...i,projectName:t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup",storeConfig:{mode:"local",dbPath:y(e,"lancedb")},embeddingApiKey:a.embeddingApiKey??i.embeddingApiKey,customEmbeddings:a.customEmbeddings??i.customEmbeddings,chatApiKey:a.chatApiKey??i.chatApiKey,customChatModels:a.customChatModels??i.customChatModels,serperApiKey:a.serperApiKey??i.serperApiKey,firecrawlApiKey:a.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 A(c),{workspace:c,server:l}})}e.s(["createServer",0,T,"deleteServer",0,function(e){return h(async a=>{let r=a.servers.filter(t=>t.id!==e),n=a.activeServerId===e?r[0]?.id??null:a.activeServerId;return await t.promises.rm(f(e),{recursive:!0,force:!0}),A({...a,servers:r,activeServerId:n})})},"getActiveServer",0,E,"getDataDir",0,I,"getWorkspace",0,b,"renameServer",0,function(e,t){return h(async a=>{let r=a.servers.map(a=>a.id===e?{...a,name:t.trim()||a.name,updatedAt:new Date().toISOString()}:a);return A({...a,servers:r})})},"requireDataDir",0,x,"runWithServer",0,function(e,t){return p.run({serverId:e},t)},"setActiveServer",0,function(e){return h(async t=>t.servers.some(t=>t.id===e)?A({...t,activeServerId:e}):t)},"setMode",0,function(e){return h(async t=>A({...t,mode:e}))},"setUsername",0,function(e){return h(async t=>A({...t,username:e.trim()||null}))}],192441)},839554,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),n=e.i(192441);let s=Promise.resolve();function i(e){let t=s.then(e,e);return s=t.catch(()=>{}),t}async function o(e){let t=e?await (0,n.requireDataDir)():await (0,n.getDataDir)();return t?a.default.join(t,"media-assets.json"):null}async function l(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid media asset store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let n=await o(!0);if(!n)return;let s=a.default.join(a.default.dirname(n),`.${a.default.basename(n)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(s,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(s,n)}catch(e){throw await t.promises.unlink(s).catch(()=>{}),e}}let u=["download","extract","transcribe","vision","synthesize","index"],c={download:10,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function p(e){return u.map(t=>({stage:t,status:"waiting",updatedAt:e}))}function m(e){return void 0!==e&&Number.isFinite(e)?Math.max(0,e):void 0}function g(e){let t=m(e);return void 0===t?void 0:Math.min(100,t)}function h(e){return Math.floor(m(e.processingRevision)??0)+1}async function f(){let e=await l(),t={image:0,video:0,audio:0},a={pending:0,processing:0,completed:0,failed:0},r=0;for(let n of e)t[n.type]++,a[n.processingStatus]++,r+=n.fileSize;return{total:e.length,byType:t,byStatus:a,totalBytes:r}}async function y(e){return(await l()).find(t=>t.id===e)}e.s(["addMediaAssets",0,function(e){return i(async()=>{let t=await l(),a=new Date().toISOString(),n=e.map(e=>({id:(0,r.randomUUID)(),type:e.type,fileName:e.fileName,mimeType:e.mimeType,storageUri:e.storageUri,thumbnailUri:e.thumbnailUri,originalUrl:e.originalUrl,fileSize:e.fileSize,dimensions:e.dimensions,durationSecs:e.durationSecs,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:a,updatedAt:a}));return t.push(...n),await d(t),n})},"claimMediaAsset",0,function(e){return i(async()=>{let t=await l(),a=t.findIndex(t=>t.id===e);if(a<0||"processing"===t[a].processingStatus||"Queued for background processing..."===t[a].processingMessage)return;let r=new Date().toISOString();return t[a]={...t[a],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:1,processingSteps:p(r),processingRevision:h(t[a]),processingHeartbeatAt:r,updatedAt:r},await d(t),t[a]})},"deleteMediaAsset",0,function(e){return i(async()=>{let t=await l();await d(t.filter(t=>t.id!==e))})},"deleteMediaAssets",0,function(e){return i(async()=>{let t=await l(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"getMediaAsset",0,y,"mediaStats",0,f,"readMediaAssets",0,l,"recoverStaleMediaAssets",0,function(e=3e5){return i(async()=>{let t=await l(),a=Date.now()-e,r="The background worker stopped. Retry to resume media processing.",n=0;for(let e=0;e<t.length;e++){let s=t[e],i="processing"===s.processingStatus,o="pending"===s.processingStatus&&"Queued for background processing..."===s.processingMessage,l=s.processingHeartbeatAt??s.updatedAt;if((i||o)&&new Date(l).getTime()<a){let a=new Date().toISOString(),i=s.processingSteps?.map(e=>"running"===e.status?{...e,status:"failed",message:r,updatedAt:a,finishedAt:a}:e);t[e]={...s,processingStatus:"failed",processingError:r,processingMessage:void 0,processingProgress:void 0,processingSteps:i,processingRevision:h(s),processingHeartbeatAt:a,updatedAt:a},n++}}return n>0&&await d(t),n})},"updateMediaAsset",0,function(e,t){return i(async()=>{let a=await l(),r=a.findIndex(t=>t.id===e);if(r<0)return;let n=a[r];return a[r]={...n,...t,documentIds:t.documentIds??n.documentIds,pendingDocumentIds:t.pendingDocumentIds??n.pendingDocumentIds,supersededDocumentIds:t.supersededDocumentIds??n.supersededDocumentIds,updatedAt:new Date().toISOString()},await d(a),a[r]})},"updateMediaStage",0,function(e,t,a){return i(async()=>{let r,n,s=await l(),i=s.findIndex(t=>t.id===e);if(i<0)return;let o=new Date().toISOString(),u=s[i],f=new Map((u.processingSteps??[]).map(e=>[e.stage,e])),y=p(o).map(e=>f.get(e.stage)??e),w=y.findIndex(e=>e.stage===t),v=y[w],S=new Set(["completed","skipped","failed"]),A=a.status??v.status,b=S.has(v.status)||"running"===v.status&&"waiting"===A?v.status:A,R=g(v.percent),E=g(a.percent),I=void 0===E?R:Math.max(R??0,E),x=m(v.current),C=m(a.current),N=void 0===C?x:Math.max(x??0,C),T=void 0===a.total?m(v.total):m(a.total);void 0!==N&&void 0!==T&&(T=Math.max(T,N))>0&&(I=Math.max(I??0,Math.min(100,N/T*100))),"completed"===b&&(I=100,void 0!==T&&(N=T));let O=S.has(b),D={...v,...a,stage:t,status:b,percent:I,current:N,total:T,startedAt:a.startedAt??v.startedAt??("running"===b||O?o:void 0),updatedAt:o,finishedAt:O?a.finishedAt??v.finishedAt??o:void 0};y[w]=D;let U=Math.max(g(u.processingProgress)??0,0===(n=(r=y.filter(e=>"skipped"!==e.status)).reduce((e,t)=>e+c[t.stage],0))?100:Math.round(r.reduce((e,t)=>e+c[t.stage]*function(e){if("completed"===e.status)return 100;if("waiting"===e.status||"skipped"===e.status)return 0;let t=g(e.percent);return void 0!==t?t:void 0!==e.current&&void 0!==e.total&&Number.isFinite(e.current)&&Number.isFinite(e.total)&&e.total>0?Math.min(100,Math.max(0,e.current/e.total*100)):0}(t)/100,0)/n*100)),M=[...y].reverse().find(e=>"running"===e.status&&e.message)?.message,P="running"===D.status?D.message??a.message??u.processingMessage:M??a.message??D.message??u.processingMessage;return s[i]={...u,processingSteps:y,processingProgress:U,processingMessage:P,processingRevision:h(u),processingHeartbeatAt:o,updatedAt:o},await d(s),s[i]})}])},941486,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(192441);class n{id="local";name="Local Storage";async mediaDir(){let e=await (0,r.requireDataDir)(),n=a.default.join(e,"media");return await t.promises.mkdir(n,{recursive:!0}),n}async store(e,r,n){let s=await this.mediaDir(),i=a.default.join(s,e);return await t.promises.mkdir(a.default.dirname(i),{recursive:!0}),await t.promises.writeFile(i,r),`local://${e}`}async storeFile(e,r,n){let s=await this.mediaDir(),i=a.default.join(s,e);return await t.promises.mkdir(a.default.dirname(i),{recursive:!0}),await t.promises.copyFile(r,i),`local://${e}`}async retrieve(e){let a=await this.resolvePath(e);if(!a)throw Error(`Unsupported local storage URI: ${e}`);return t.promises.readFile(a)}async resolvePath(e){if(!e.startsWith("local://"))return;let t=e.slice(8),r=await this.mediaDir(),n=a.default.resolve(r,t),s=a.default.relative(r,n);if(s.startsWith("..")||a.default.isAbsolute(s))throw Error("Invalid local storage URI");return n}async delete(e){let r=e.replace("local://",""),n=await this.mediaDir();try{await t.promises.unlink(a.default.join(n,r))}catch{}}async stats(){try{let e=await this.mediaDir();return await s(e)}catch{return{usedBytes:0,fileCount:0}}}}async function s(e){let r=0,n=0;async function s(e){let i;try{i=await t.promises.readdir(e,{withFileTypes:!0})}catch{return}for(let o of i){let i=a.default.join(e,o.name);if(o.isDirectory())await s(i);else try{let e=await t.promises.stat(i);r+=e.size,n++}catch{}}}return await s(e),{usedBytes:r,fileCount:n}}e.s(["createStorageProvider",0,function(e){return new n}])},969519,e=>{"use strict";var t=e.i(850492),a=e.i(891119),r=e.i(697373),n=e.i(765700),s=e.i(601263),i=e.i(706859),o=e.i(947547),l=e.i(819797),d=e.i(135958),u=e.i(86520),c=e.i(970949),p=e.i(741165),m=e.i(106898),g=e.i(454415),h=e.i(37125),f=e.i(193695);e.i(530058);var y=e.i(605998),w=e.i(686296),v=e.i(839554),S=e.i(941486),A=e.i(192441);async function b(e,t){return x(e,()=>R(e,t))}async function R(e,{params:t}){let{id:a}=await t,r="true"===new URL(e.url).searchParams.get("thumb"),n=await (0,v.getMediaAsset)(a);if(!n)return w.NextResponse.json({error:"Not found"},{status:404});let s=(0,S.createStorageProvider)(),i=r&&n.thumbnailUri?n.thumbnailUri:n.storageUri;try{let t=await s.retrieve(i),a=r?"image/webp":n.mimeType,o=r?null:e.headers.get("range");if(o){let e=/^bytes=(\d*)-(\d*)$/.exec(o);if(!e)return new w.NextResponse(null,{status:416,headers:{"Content-Range":`bytes */${t.length}`}});let r=!e[1]&&e[2]?Number(e[2]):null,n=null!==r?Math.max(0,t.length-r):e[1]?Number(e[1]):0,s=null!==r?t.length-1:e[2]?Math.min(Number(e[2]),t.length-1):t.length-1;if(n>s||n>=t.length)return new w.NextResponse(null,{status:416,headers:{"Content-Range":`bytes */${t.length}`}});let i=t.subarray(n,s+1);return new w.NextResponse(i,{status:206,headers:{"Content-Type":a,"Accept-Ranges":"bytes","Content-Range":`bytes ${n}-${s}/${t.length}`,"Content-Length":String(i.length),"Cache-Control":"public, max-age=31536000, immutable"}})}return new w.NextResponse(t,{headers:{"Content-Type":a,"Accept-Ranges":"bytes","Cache-Control":"public, max-age=31536000, immutable","Content-Length":String(t.length)}})}catch{return w.NextResponse.json({error:"File not found"},{status:404})}}async function E(e,t){return x(e,()=>I(e,t))}async function I(e,{params:t}){let{id:a}=await t;try{let t=await e.json(),r=await (0,v.updateMediaAsset)(a,t);if(!r)return w.NextResponse.json({error:"Not found"},{status:404});return w.NextResponse.json({asset:r})}catch(t){let e=t instanceof Error?t.message:"Update failed.";return w.NextResponse.json({error:e},{status:500})}}function x(e,t){let a=new URL(e.url).searchParams.get("serverId");return a?(0,A.runWithServer)(a,t):t()}e.s(["GET",0,b,"PATCH",0,E,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],202392);var C=e.i(202392);let N=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/media/[id]/route",pathname:"/api/media/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/media/[id]/route.ts",nextConfigOutput:"standalone",userland:C,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:O,serverHooks:D}=N;async function U(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/media/[id]/route";w=w.replace(/\/index$/,"")||"/";let v=await N.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,deploymentId:A,params:b,nextConfig:R,parsedUrl:E,isDraftMode:I,prerenderManifest:x,routerServerContext:C,isOnDemandRevalidate:T,revalidateOnlyGenerated:O,resolvedPathname:D,clientReferenceManifest:U,serverActionsManifest:M}=v,P=(0,o.normalizeAppPath)(w),k=!!(x.dynamicRoutes[P]||x.routes[D]),j=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,E,!1):t.end("This page could not be found"),null);if(k&&!I){let e=!!x.routes[D],t=x.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(R.adapterPath)return await j();throw new f.NoFallbackError}}let L=null;!k||N.isDev||I||(L="/index"===(L=D)?"/":L);let q=!0===N.isDev||!k,F=k&&!q;M&&U&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:U,serverActionsManifest:M});let K=e.method||"GET",H=(0,s.getTracer)(),_=H.getActiveScopeSpan(),z=!!(null==C?void 0:C.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await N.getIncrementalCache(e,R,x,$);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Y={params:b,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:q,incrementalCache:W,cacheLifeProfiles:R.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>N.onRequestError(e,t,r,n,C)},sharedContext:{buildId:S,deploymentId:A}},G=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),B=d.NextRequestAdapter.fromNodeNextRequest(G,(0,d.signalFromNodeResponse)(t));try{let n,i=async e=>N.handle(B,Y).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=H.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${K} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${K} ${w}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:a})=>{try{if(!$&&T&&O&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=Y.renderOpts.fetchMetrics;let o=Y.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=Y.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(G,V,s,Y.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,r=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:Y.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:T})},!1,C),t}},d=await N.handleResponse({req:e,nextConfig:R,cacheKey:L,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:$});if(!k)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",T?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return $&&k||u.delete(h.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,g.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(G,V,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};z&&_?await o(_):(n=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${K} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},o),void 0,!z))}catch(t){if(t instanceof f.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:T})},!1,C),k)throw t;return await (0,p.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,U,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:O})},"routeModule",0,N,"serverHooks",0,D,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,O],969519)}];
58
58
 
59
59
  //# sourceMappingURL=%5Broot-of-the-server%5D__06l96vc._.js.map