larkup 0.1.22 → 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 (115) 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 +1 -1
  68. package/.next/server/chunks/[root-of-the-server]__00nqa2u._.js +2 -2
  69. package/.next/server/chunks/[root-of-the-server]__02cpmox._.js +2 -2
  70. package/.next/server/chunks/[root-of-the-server]__02p-tv7._.js +1 -1
  71. package/.next/server/chunks/[root-of-the-server]__02t_0g7._.js +1 -1
  72. package/.next/server/chunks/[root-of-the-server]__04kopvt._.js +1 -1
  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 +1 -1
  75. package/.next/server/chunks/[root-of-the-server]__05x8tmf._.js +1 -1
  76. package/.next/server/chunks/[root-of-the-server]__06l96vc._.js +1 -1
  77. package/.next/server/chunks/[root-of-the-server]__06ohoeu._.js +1 -1
  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 +1 -1
  80. package/.next/server/chunks/[root-of-the-server]__0exyn0q._.js +1 -1
  81. package/.next/server/chunks/[root-of-the-server]__0fcf_rl._.js +1 -1
  82. package/.next/server/chunks/[root-of-the-server]__0f~eq1-._.js +1 -1
  83. package/.next/server/chunks/[root-of-the-server]__0ljy49-._.js +2 -2
  84. package/.next/server/chunks/[root-of-the-server]__0n0nerw._.js +1 -1
  85. package/.next/server/chunks/[root-of-the-server]__0oh5wgp._.js +1 -1
  86. package/.next/server/chunks/[root-of-the-server]__0oyc7s4._.js +2 -2
  87. package/.next/server/chunks/[root-of-the-server]__0pg~eys._.js +1 -1
  88. package/.next/server/chunks/[root-of-the-server]__0qtx78g._.js +1 -1
  89. package/.next/server/chunks/[root-of-the-server]__0r03jcl._.js +2 -2
  90. package/.next/server/chunks/[root-of-the-server]__0sb7d93._.js +1 -1
  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 +1 -1
  93. package/.next/server/chunks/[root-of-the-server]__0v03x56._.js +2 -2
  94. package/.next/server/chunks/[root-of-the-server]__0v4bbce._.js +1 -1
  95. package/.next/server/chunks/[root-of-the-server]__0vcdpoc._.js +1 -1
  96. package/.next/server/chunks/[root-of-the-server]__0wvxpqf._.js +1 -1
  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 +1 -1
  100. package/.next/server/chunks/[root-of-the-server]__0~q2fro._.js +1 -1
  101. package/.next/server/chunks/[root-of-the-server]__10d58x4._.js +2 -2
  102. package/.next/server/chunks/[root-of-the-server]__12kvuvp._.js +1 -1
  103. package/.next/server/chunks/ssr/_0s5_0n1._.js +1 -1
  104. package/.next/server/middleware-build-manifest.js +3 -3
  105. package/.next/server/pages/404.html +1 -1
  106. package/.next/server/pages/500.html +1 -1
  107. package/.next/static/chunks/0u4n0ggeto75y.js +1 -0
  108. package/CHANGELOG.md +6 -0
  109. package/components/onboarding/simple-setup.tsx +2 -2
  110. package/components/onboarding/welcome-screen.tsx +2 -2
  111. package/package.json +1 -1
  112. package/.next/static/chunks/0ho7lc.x2uknx.js +0 -1
  113. /package/.next/static/{r6jTeoDnymfOosNztAlzL → Fb01QU1MyWBHc7U1LHf5y}/_buildManifest.js +0 -0
  114. /package/.next/static/{r6jTeoDnymfOosNztAlzL → Fb01QU1MyWBHc7U1LHf5y}/_clientMiddlewareManifest.js +0 -0
  115. /package/.next/static/{r6jTeoDnymfOosNztAlzL → 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),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,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=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 h(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function g(e){return await b(),h(async()=>e(await A()??c))}function y(e){return a.default.join(d,e)}function f(e,t){return`./.larkup/servers/${e}/${t}`}async function v(e){try{return await t.promises.access(e),!0}catch{return!1}}async function w(e,r){if(await v(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 A(){try{let e=await t.promises.readFile(u,"utf8");return{...c,...JSON.parse(e)}}catch{return null}}async function S(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 A();return e||h(E)}async function E(){let e=await A();if(e)return e;if(!await v(a.default.join(l,"config.json")))return S(c);let n=(0,r.randomUUID)(),s=y(n);for(let e of(await t.promises.mkdir(s,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await w(a.default.join(l,e),a.default.join(s,e));await w(a.default.join(l,"lancedb"),a.default.join(s,"lancedb")),await w(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:f(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 S({username:null,activeServerId:n,servers:[d],mode:null})}async function C(){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 C();if(!e)return null;let a=y(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function R(){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 O("my-larkup");return y(a.id)}async function x(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 T(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await x(t);)t++;return t}function O(e){return g(async n=>{let s=(0,r.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await T(n),createdAt:o,updatedAt:o},d=y(s);await t.promises.mkdir(d,{recursive:!0});let u={};if(n.activeServerId)try{let e=await t.promises.readFile(a.default.join(y(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:f(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 S(c),{workspace:c,server:l}})}e.s(["createServer",0,O,"deleteServer",0,function(e){return g(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(y(e),{recursive:!0,force:!0}),S({...a,servers:r,activeServerId:n})})},"getActiveServer",0,C,"getDataDir",0,I,"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 S({...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)?S({...t,activeServerId:e}):t)},"setMode",0,function(e){return g(async t=>S({...t,mode:e}))},"setUsername",0,function(e){return g(async t=>S({...t,username:e.trim()||null}))}],192441)},367165,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(638725),n=e.i(192441);async function s(){let e=await (0,n.getDataDir)();if(!e)return r.DEFAULT_CONFIG;try{let n=await t.promises.readFile(a.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={...r.DEFAULT_CONFIG,...s,embeddingModelId:o??r.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:i,chunking:{...r.DEFAULT_CONFIG.chunking,...s.chunking},storeConfig:{...r.DEFAULT_CONFIG.storeConfig,...s.storeConfig}};return delete l.customEmbedding,l}catch{return r.DEFAULT_CONFIG}}async function i(e){let r=await (0,n.requireDataDir)(),s={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(r,"config.json"),JSON.stringify(s,null,2),"utf8"),s}e.s(["readConfig",0,s,"writeConfig",0,i])},844915,e=>{"use strict";var t=e.i(891294);async function a(){return t.ALL_MODELS}async function r(e){return(await a()).filter(t=>t.type===e)}async function n(e){let t=await a(),r=e?t.filter(t=>t.type===e):t,n=new Map;for(let e of r)n.set(e.owned_by,(n.get(e.owned_by)??0)+1);return Array.from(n.entries()).map(([e,t])=>({id:e,name:s[e]||e.charAt(0).toUpperCase()+e.slice(1),modelCount:t})).sort((e,t)=>t.modelCount-e.modelCount)}let s={openai:"OpenAI",anthropic:"Anthropic",google:"Google",meta:"Meta",mistral:"Mistral",cohere:"Cohere",deepseek:"DeepSeek",amazon:"Amazon",xai:"xAI",perplexity:"Perplexity",alibaba:"Alibaba",groq:"Groq","together-ai":"Together AI",fireworks:"Fireworks",cerebras:"Cerebras",voyage:"Voyage AI",jina:"Jina AI",nomic:"Nomic",bfl:"Black Forest Labs","arcee-ai":"Arcee AI",luma:"Luma",minimax:"MiniMax",elevenlabs:"ElevenLabs"};e.s(["getAllModels",0,a,"getAllProviders",0,n,"getModelsByType",0,r])},336321,e=>{"use strict";function t(e,t){return"vercel_ai_gateway"===t?e:e.filter(e=>e.provider?.toLowerCase()===t.toLowerCase())}e.s(["getChatModel",0,function(e,t){return e.find(e=>e.id===t)},"getChatModelsForProvider",0,t,"getDefaultChatModel",0,function(e,a){let r=t(e,a),n={openai:"openai/gpt-5",anthropic:"anthropic/claude-3.5-sonnet-latest",google:"google/gemini-2.5-pro",mistral:"mistral/mistral-large-latest",deepseek:"deepseek/deepseek-chat",cohere:"cohere/command-r-plus",meta:"meta/llama-4-maverick",xai:"xai/grok-3-mini",vercel_ai_gateway:"anthropic/claude-3.5-sonnet-latest"}[a];return r.find(e=>e.id===n)??r[0]},"toChatDescriptor",0,function(e){return{id:e.id,name:e.name,provider:e.owned_by,context_window:e.context_window,max_tokens:e.max_tokens,tags:e.tags,description:e.description}}])},476063,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),h=e.i(454415),g=e.i(37125),y=e.i(193695);e.i(530058);var f=e.i(605998),v=e.i(686296),w=e.i(367165),A=e.i(489694),S=e.i(192441),b=e.i(585071),E=e.i(523554),C=e.i(506848),I=e.i(868776),R=e.i(336321),x=e.i(844915),T=e.i(898201),O=e.i(150036),N=e.i(528565),D=e.i(380766),_=e.i(129286),k=e.i(354748),U=e.i(188184);async function M(e){var t,a;return t=new URL(e.url).searchParams.get("serverId"),a=async()=>{let e=await (0,w.readConfig)(),t=await (0,A.readRun)();if(e.chatSuggestions&&e.chatSuggestions.length>0)return v.NextResponse.json({suggestions:e.chatSuggestions});if(!(t?.status==="completed"&&(t.totalChunks??0)>0))return v.NextResponse.json({suggestions:["What is this corpus about?","Summarize the key concepts"]});try{let t=await (0,E.embedQuery)(e,"overview summary"),a=await (0,b.createAdapter)(e),r=await a.query(t,5,"overview summary"),n=r?.map(e=>e.text)?.join("\n\n")?.slice(0,3e3),s=e.chatProvider||e.embeddingProvider,i=e.chatModelId||"openai/gpt-4o-mini",o=(await (0,x.getModelsByType)("language")).map(R.toChatDescriptor),l=(0,R.getChatModel)(o,i),d="vercel_ai_gateway"===s?"vercel_ai_gateway":l?.provider||s,u=function(e,t,a,r){if(t.startsWith("custom:")){let e=t.slice(7),n=(r??[]).find(t=>t.modelName===e);if(n)return(0,U.createOpenAICompatible)({name:"custom_chat_provider",baseURL:n.baseUrl,apiKey:n.apiKey||a||void 0})(n.modelName)}let n=t.includes("/")?t.split("/").slice(1).join("/"):t;switch(e){case"google":return(0,O.createGoogleGenerativeAI)({apiKey:a})(n);case"cohere":return(0,N.createCohere)({apiKey:a})(n);case"mistral":return(0,D.createMistral)({apiKey:a})(n);case"deepseek":return(0,_.createDeepSeek)({apiKey:a})(n);case"vercel_ai_gateway":return(0,k.createGateway)({apiKey:a})(t);default:return(0,T.createOpenAI)({apiKey:a})(n)}}(d,i,e.chatApiKey||e.embeddingApiKey,e.customChatModels),{object:c}=await (0,C.generateObject)({model:u,system:"You are an AI that suggests 3 very short and concise questions a user could ask based on the provided text.",prompt:`Text:
58
- ${n}`,schema:I.z.object({suggestions:I.z.array(I.z.string()).length(3)})});return e.chatSuggestions=c.suggestions,await (0,w.writeConfig)(e),v.NextResponse.json({suggestions:c.suggestions})}catch(e){return console.error("Failed to generate suggestions:",e.message),v.NextResponse.json({suggestions:["What is this corpus about?","Summarize the key concepts"]})}},t?(0,S.runWithServer)(t,a):a()}e.s(["POST",0,M,"dynamic",0,"force-dynamic"],945556);var P=e.i(945556);let L=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/chat/suggestions/route",pathname:"/api/chat/suggestions",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/chat/suggestions/route.ts",nextConfigOutput:"standalone",userland:P,...{}}),{workAsyncStorage:j,workUnitAsyncStorage:K,serverHooks:F}=L;async function q(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),L.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/chat/suggestions/route";v=v.replace(/\/index$/,"")||"/";let w=await L.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:S,params:b,nextConfig:E,parsedUrl:C,isDraftMode:I,prerenderManifest:R,routerServerContext:x,isOnDemandRevalidate:T,revalidateOnlyGenerated:O,resolvedPathname:N,clientReferenceManifest:D,serverActionsManifest:_}=w,k=(0,o.normalizeAppPath)(v),U=!!(R.dynamicRoutes[k]||R.routes[N]),M=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,C,!1):t.end("This page could not be found"),null);if(U&&!I){let e=!!R.routes[N],t=R.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await M();throw new y.NoFallbackError}}let P=null;!U||L.isDev||I||(P="/index"===(P=N)?"/":P);let j=!0===L.isDev||!U,K=U&&!j;_&&D&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:D,serverActionsManifest:_});let F=e.method||"GET",q=(0,s.getTracer)(),H=q.getActiveScopeSpan(),z=!!(null==x?void 0:x.isWrappedByNextServer),G=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await L.getIncrementalCache(e,E,R,G);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Y={params:b,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:j,incrementalCache:W,cacheLifeProfiles:E.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>L.onRequestError(e,t,r,n,x)},sharedContext:{buildId:A,deploymentId:S}},V=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),$=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let n,i=async e=>L.handle($,Y).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=`${F} ${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(`${F} ${v}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:a})=>{try{if(!G&&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(!U)return await (0,p.sendResponse)(V,B,s,Y.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[g.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>=g.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,r=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:Y.renderOpts.collectedExpire;return{value:{kind:f.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 L.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:T})},!1,x),t}},d=await L.handleResponse({req:e,nextConfig:E,cacheKey:P,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:G});if(!U)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==f.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});G||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 G&&U||u.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(V,B,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};z&&H?await o(H):(n=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},o),void 0,!z))}catch(t){if(t instanceof y.NoFallbackError||await L.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:T})},!1,x),U)throw t;return await (0,p.sendResponse)(V,B,new Response(null,{status:500})),null}}e.s(["handler",0,q,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:K})},"routeModule",0,L,"serverHooks",0,F,"workAsyncStorage",0,j,"workUnitAsyncStorage",0,K],476063)},77149,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_stream_0g9s3ok._.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]__0yo._sm._.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)))},225970,e=>{e.v(e=>Promise.resolve().then(()=>e(65048)))},953341,e=>{e.v(t=>Promise.all(["server/chunks/0ozc_@vercel_oidc_dist_token_0m1934l.js"].map(t=>e.l(t))).then(()=>t(624299)))},313282,e=>{e.v(t=>Promise.all(["server/chunks/packages_core_src_analytics-store_ts_03tqnqs._.js"].map(t=>e.l(t))).then(()=>t(43697)))}];
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"),u=a.default.join(l,"servers"),d=a.default.join(l,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new n.AsyncLocalStorage,m=Promise.resolve();function h(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function g(e){return await b(),h(async()=>e(await A()??c))}function y(e){return a.default.join(u,e)}function f(e,t){return`./.larkup/servers/${e}/${t}`}async function v(e){try{return await t.promises.access(e),!0}catch{return!1}}async function w(e,r){if(await v(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 A(){try{let e=await t.promises.readFile(d,"utf8");return{...c,...JSON.parse(e)}}catch{return null}}async function S(e){return await t.promises.mkdir(l,{recursive:!0}),await t.promises.writeFile(d,JSON.stringify(e,null,2),"utf8"),e}async function b(){let e=await A();return e||h(E)}async function E(){let e=await A();if(e)return e;if(!await v(a.default.join(l,"config.json")))return S(c);let n=(0,r.randomUUID)(),s=y(n);for(let e of(await t.promises.mkdir(s,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await w(a.default.join(l,e),a.default.join(s,e));await w(a.default.join(l,"lancedb"),a.default.join(s,"lancedb")),await w(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:f(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(r,null,2),"utf8")}catch{}let o=new Date().toISOString(),u={id:n,name:i,port:8080,createdAt:o,updatedAt:o};return S({username:null,activeServerId:n,servers:[u],mode:null})}async function C(){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 C();if(!e)return null;let a=y(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function R(){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 O("my-larkup");return y(a.id)}async function x(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 T(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await x(t);)t++;return t}function O(e){return g(async n=>{let s=(0,r.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await T(n),createdAt:o,updatedAt:o},u=y(s);await t.promises.mkdir(u,{recursive:!0});let d={};if(n.activeServerId)try{let e=await t.promises.readFile(a.default.join(y(n.activeServerId),"config.json"),"utf8");d=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(u,"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:f(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,d),null,2),"utf8");let c={...n,servers:[...n.servers,l],activeServerId:s};return await S(c),{workspace:c,server:l}})}e.s(["createServer",0,O,"deleteServer",0,function(e){return g(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(y(e),{recursive:!0,force:!0}),S({...a,servers:r,activeServerId:n})})},"getActiveServer",0,C,"getDataDir",0,I,"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 S({...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)?S({...t,activeServerId:e}):t)},"setMode",0,function(e){return g(async t=>S({...t,mode:e}))},"setUsername",0,function(e){return g(async t=>S({...t,username:e.trim()||null}))}],192441)},367165,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(638725),n=e.i(192441);async function s(){let e=await (0,n.getDataDir)();if(!e)return r.DEFAULT_CONFIG;try{let n=await t.promises.readFile(a.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={...r.DEFAULT_CONFIG,...s,embeddingModelId:o??r.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:i,chunking:{...r.DEFAULT_CONFIG.chunking,...s.chunking},storeConfig:{...r.DEFAULT_CONFIG.storeConfig,...s.storeConfig}};return delete l.customEmbedding,l}catch{return r.DEFAULT_CONFIG}}async function i(e){let r=await (0,n.requireDataDir)(),s={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(r,"config.json"),JSON.stringify(s,null,2),"utf8"),s}e.s(["readConfig",0,s,"writeConfig",0,i])},844915,e=>{"use strict";var t=e.i(891294);async function a(){return t.ALL_MODELS}async function r(e){return(await a()).filter(t=>t.type===e)}async function n(e){let t=await a(),r=e?t.filter(t=>t.type===e):t,n=new Map;for(let e of r)n.set(e.owned_by,(n.get(e.owned_by)??0)+1);return Array.from(n.entries()).map(([e,t])=>({id:e,name:s[e]||e.charAt(0).toUpperCase()+e.slice(1),modelCount:t})).sort((e,t)=>t.modelCount-e.modelCount)}let s={openai:"OpenAI",anthropic:"Anthropic",google:"Google",meta:"Meta",mistral:"Mistral",cohere:"Cohere",deepseek:"DeepSeek",amazon:"Amazon",xai:"xAI",perplexity:"Perplexity",alibaba:"Alibaba",groq:"Groq","together-ai":"Together AI",fireworks:"Fireworks",cerebras:"Cerebras",voyage:"Voyage AI",jina:"Jina AI",nomic:"Nomic",bfl:"Black Forest Labs","arcee-ai":"Arcee AI",luma:"Luma",minimax:"MiniMax",elevenlabs:"ElevenLabs"};e.s(["getAllModels",0,a,"getAllProviders",0,n,"getModelsByType",0,r])},336321,e=>{"use strict";function t(e,t){return"vercel_ai_gateway"===t?e:e.filter(e=>e.provider?.toLowerCase()===t.toLowerCase())}e.s(["getChatModel",0,function(e,t){return e.find(e=>e.id===t)},"getChatModelsForProvider",0,t,"getDefaultChatModel",0,function(e,a){let r=t(e,a),n={openai:"openai/gpt-5",anthropic:"anthropic/claude-3.5-sonnet-latest",google:"google/gemini-2.5-pro",mistral:"mistral/mistral-large-latest",deepseek:"deepseek/deepseek-chat",cohere:"cohere/command-r-plus",meta:"meta/llama-4-maverick",xai:"xai/grok-3-mini",vercel_ai_gateway:"anthropic/claude-3.5-sonnet-latest"}[a];return r.find(e=>e.id===n)??r[0]},"toChatDescriptor",0,function(e){return{id:e.id,name:e.name,provider:e.owned_by,context_window:e.context_window,max_tokens:e.max_tokens,tags:e.tags,description:e.description}}])},476063,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),u=e.i(135958),d=e.i(86520),c=e.i(970949),p=e.i(741165),m=e.i(106898),h=e.i(454415),g=e.i(37125),y=e.i(193695);e.i(530058);var f=e.i(605998),v=e.i(686296),w=e.i(367165),A=e.i(489694),S=e.i(192441),b=e.i(585071),E=e.i(523554),C=e.i(506848),I=e.i(868776),R=e.i(336321),x=e.i(844915),T=e.i(898201),O=e.i(150036),N=e.i(528565),D=e.i(380766),_=e.i(129286),k=e.i(354748),U=e.i(188184);async function M(e){var t,a;return t=new URL(e.url).searchParams.get("serverId"),a=async()=>{let e=await (0,w.readConfig)(),t=await (0,A.readRun)();if(e.chatSuggestions&&e.chatSuggestions.length>0)return v.NextResponse.json({suggestions:e.chatSuggestions});if(!(t?.status==="completed"&&(t.totalChunks??0)>0))return v.NextResponse.json({suggestions:["What is this corpus about?","Summarize the key concepts"]});try{let t=await (0,E.embedQuery)(e,"overview summary"),a=await (0,b.createAdapter)(e),r=await a.query(t,5,"overview summary"),n=r?.map(e=>e.text)?.join("\n\n")?.slice(0,3e3),s=e.chatProvider||e.embeddingProvider,i=e.chatModelId||"openai/gpt-4o-mini",o=(await (0,x.getModelsByType)("language")).map(R.toChatDescriptor),l=(0,R.getChatModel)(o,i),u="vercel_ai_gateway"===s?"vercel_ai_gateway":l?.provider||s,d=function(e,t,a,r){if(t.startsWith("custom:")){let e=t.slice(7),n=(r??[]).find(t=>t.modelName===e);if(n)return(0,U.createOpenAICompatible)({name:"custom_chat_provider",baseURL:n.baseUrl,apiKey:n.apiKey||a||void 0})(n.modelName)}let n=t.includes("/")?t.split("/").slice(1).join("/"):t;switch(e){case"google":return(0,O.createGoogleGenerativeAI)({apiKey:a})(n);case"cohere":return(0,N.createCohere)({apiKey:a})(n);case"mistral":return(0,D.createMistral)({apiKey:a})(n);case"deepseek":return(0,_.createDeepSeek)({apiKey:a})(n);case"vercel_ai_gateway":return(0,k.createGateway)({apiKey:a})(t);default:return(0,T.createOpenAI)({apiKey:a})(n)}}(u,i,e.chatApiKey||e.embeddingApiKey,e.customChatModels),{object:c}=await (0,C.generateObject)({model:d,system:"You are an AI that suggests 3 very short and concise questions a user could ask based on the provided text.",prompt:`Text:
58
+ ${n}`,schema:I.z.object({suggestions:I.z.array(I.z.string()).length(3)})});return e.chatSuggestions=c.suggestions,await (0,w.writeConfig)(e),v.NextResponse.json({suggestions:c.suggestions})}catch(e){return console.error("Failed to generate suggestions:",e.message),v.NextResponse.json({suggestions:["What is this corpus about?","Summarize the key concepts"]})}},t?(0,S.runWithServer)(t,a):a()}e.s(["POST",0,M,"dynamic",0,"force-dynamic"],945556);var P=e.i(945556);let L=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/chat/suggestions/route",pathname:"/api/chat/suggestions",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/chat/suggestions/route.ts",nextConfigOutput:"standalone",userland:P,...{}}),{workAsyncStorage:j,workUnitAsyncStorage:K,serverHooks:F}=L;async function q(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),L.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/chat/suggestions/route";v=v.replace(/\/index$/,"")||"/";let w=await L.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:S,params:b,nextConfig:E,parsedUrl:C,isDraftMode:I,prerenderManifest:R,routerServerContext:x,isOnDemandRevalidate:T,revalidateOnlyGenerated:O,resolvedPathname:N,clientReferenceManifest:D,serverActionsManifest:_}=w,k=(0,o.normalizeAppPath)(v),U=!!(R.dynamicRoutes[k]||R.routes[N]),M=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,C,!1):t.end("This page could not be found"),null);if(U&&!I){let e=!!R.routes[N],t=R.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await M();throw new y.NoFallbackError}}let P=null;!U||L.isDev||I||(P="/index"===(P=N)?"/":P);let j=!0===L.isDev||!U,K=U&&!j;_&&D&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:D,serverActionsManifest:_});let F=e.method||"GET",q=(0,s.getTracer)(),H=q.getActiveScopeSpan(),z=!!(null==x?void 0:x.isWrappedByNextServer),G=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await L.getIncrementalCache(e,E,R,G);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let Y={params:b,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:j,incrementalCache:W,cacheLifeProfiles:E.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>L.onRequestError(e,t,r,n,x)},sharedContext:{buildId:A,deploymentId:S}},V=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),$=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>L.handle($,Y).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")!==d.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=`${F} ${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(`${F} ${v}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:a})=>{try{if(!G&&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(!U)return await (0,p.sendResponse)(V,B,s,Y.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[g.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>=g.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,r=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:Y.renderOpts.collectedExpire;return{value:{kind:f.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 L.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:T})},!1,x),t}},u=await L.handleResponse({req:e,nextConfig:E,cacheKey:P,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:G});if(!U)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});G||t.setHeader("x-nextjs-cache",T?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,m.fromNodeOutgoingHttpHeaders)(u.value.headers);return G&&U||d.delete(g.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(V,B,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};z&&H?await o(H):(n=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},o),void 0,!z))}catch(t){if(t instanceof y.NoFallbackError||await L.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:T})},!1,x),U)throw t;return await (0,p.sendResponse)(V,B,new Response(null,{status:500})),null}}e.s(["handler",0,q,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:K})},"routeModule",0,L,"serverHooks",0,F,"workAsyncStorage",0,j,"workUnitAsyncStorage",0,K],476063)},77149,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_stream_0g9s3ok._.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]__0yo._sm._.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)))},225970,e=>{e.v(e=>Promise.resolve().then(()=>e(65048)))},953341,e=>{e.v(t=>Promise.all(["server/chunks/0ozc_@vercel_oidc_dist_token_0m1934l.js"].map(t=>e.l(t))).then(()=>t(624299)))},313282,e=>{e.v(t=>Promise.all(["server/chunks/packages_core_src_analytics-store_ts_03tqnqs._.js"].map(t=>e.l(t))).then(()=>t(43697)))}];
59
59
 
60
60
  //# sourceMappingURL=%5Broot-of-the-server%5D__0t36t5o._.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),s=e.i(478500),n=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()},i=`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),s=e.i(478500),n=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()},i=`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.
@@ -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"),u=a.default.join(l,"servers"),d=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 g(e){return await E(),m(async()=>e(await S()??c))}function y(e){return a.default.join(u,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(d,"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(d,JSON.stringify(e,null,2),"utf8"),e}async function E(){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 A(c);let n=(0,r.randomUUID)(),s=y(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:f(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(r,null,2),"utf8")}catch{}let o=new Date().toISOString(),u={id:n,name:i,port:8080,createdAt:o,updatedAt:o};return A({username:null,activeServerId:n,servers:[u],mode:null})}async function b(){let e=await E(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function I(){let e=await b();if(!e)return null;let a=y(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function T(){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 N("my-larkup");return y(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 O(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await C(t);)t++;return t}function N(e){return g(async n=>{let s=(0,r.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await O(n),createdAt:o,updatedAt:o},u=y(s);await t.promises.mkdir(u,{recursive:!0});let d={};if(n.activeServerId)try{let e=await t.promises.readFile(a.default.join(y(n.activeServerId),"config.json"),"utf8");d=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(u,"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:f(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,d),null,2),"utf8");let c={...n,servers:[...n.servers,l],activeServerId:s};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),n=a.activeServerId===e?r[0]?.id??null:a.activeServerId;return await t.promises.rm(y(e),{recursive:!0,force:!0}),A({...a,servers:r,activeServerId:n})})},"getActiveServer",0,b,"getDataDir",0,I,"getWorkspace",0,E,"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,T,"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),n=e.i(192441);async function s(){let e=await (0,n.getDataDir)();if(!e)return r.DEFAULT_CONFIG;try{let n=await t.promises.readFile(a.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={...r.DEFAULT_CONFIG,...s,embeddingModelId:o??r.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:i,chunking:{...r.DEFAULT_CONFIG.chunking,...s.chunking},storeConfig:{...r.DEFAULT_CONFIG.storeConfig,...s.storeConfig}};return delete l.customEmbedding,l}catch{return r.DEFAULT_CONFIG}}async function i(e){let r=await (0,n.requireDataDir)(),s={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(r,"config.json"),JSON.stringify(s,null,2),"utf8"),s}e.s(["readConfig",0,s,"writeConfig",0,i])},508582,e=>{"use strict";var t=e.i(686296),a=e.i(367165);async function r(e){let r,n=(await (0,a.readConfig)()).tavilyApiKey;if(!n)return t.NextResponse.json({error:"Tavily search is not configured. Set TAVILY_API_KEY in your environment.",configured:!1},{status:503});try{r=await e.json()}catch{return t.NextResponse.json({error:"Invalid request body."},{status:400})}let{query:s,page:i=1}=r;if(!s?.trim())return t.NextResponse.json({error:"A search query is required."},{status:400});if(i>1)return t.NextResponse.json({items:[],totalResults:0,totalResultsIsEstimate:!0,currentPage:i,totalPages:1,hasMore:!1,query:s.trim()});try{let e=await fetch("https://api.tavily.com/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({api_key:n,query:s.trim(),search_depth:"basic"}),cache:"no-store"}),a=await e.json();if(!e.ok||a.error){let r=a.error??`Tavily API error (${e.status})`;return t.NextResponse.json({error:r},{status:e.status})}let r=(a.results??[]).map(e=>({url:e.url,title:e.title,description:e.content})),i=r.length;return t.NextResponse.json({items:r,totalResults:i,totalResultsIsEstimate:!0,currentPage:1,totalPages:1,hasMore:!1,query:s.trim()})}catch(a){let e=a instanceof Error?a.message:"Tavily search failed.";return t.NextResponse.json({error:e},{status:500})}}async function n(){let e=!!(await (0,a.readConfig)()).tavilyApiKey;return t.NextResponse.json({configured:e})}e.s(["GET",0,n,"POST",0,r,"dynamic",0,"force-dynamic","runtime",0,"nodejs"])},545582,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),u=e.i(135958),d=e.i(86520),c=e.i(970949),p=e.i(741165),h=e.i(106898),m=e.i(454415),g=e.i(37125),y=e.i(193695);e.i(530058);var f=e.i(605998),w=e.i(508582);let v=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/search/tavily/route",pathname:"/api/search/tavily",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/search/tavily/route.ts",nextConfigOutput:"standalone",userland:w,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:A,serverHooks:E}=v;async function R(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),v.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/search/tavily/route";w=w.replace(/\/index$/,"")||"/";let S=await v.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:E,params:R,nextConfig:b,parsedUrl:I,isDraftMode:T,prerenderManifest:C,routerServerContext:O,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,resolvedPathname:D,clientReferenceManifest:U,serverActionsManifest:P}=S,j=(0,o.normalizeAppPath)(w),M=!!(C.dynamicRoutes[j]||C.routes[D]),k=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,I,!1):t.end("This page could not be found"),null);if(M&&!T){let e=!!C.routes[D],t=C.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await k();throw new y.NoFallbackError}}let L=null;!M||v.isDev||T||(L="/index"===(L=D)?"/":L);let q=!0===v.isDev||!M,F=M&&!q;P&&U&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:U,serverActionsManifest:P});let K=e.method||"GET",_=(0,s.getTracer)(),H=_.getActiveScopeSpan(),G=!!(null==O?void 0:O.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),z=(0,n.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,b,C,W);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let Y={params:R,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:q,incrementalCache:z,cacheLifeProfiles:b.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>v.onRequestError(e,t,r,n,O)},sharedContext:{buildId:A,deploymentId:E}},V=new l.NodeNextRequest(e),$=new l.NodeNextResponse(t),B=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>v.handle(B,Y).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")!==d.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(!W&&N&&x&&!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(!M)return await (0,p.sendResponse)(V,$,s,Y.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[g.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>=g.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,r=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:Y.renderOpts.collectedExpire;return{value:{kind:f.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 v.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,O),t}},u=await v.handleResponse({req:e,nextConfig:b,cacheKey:L,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:W});if(!M)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return W&&M||d.delete(g.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(V,$,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};G&&H?await o(H):(n=_.getActiveScopeSpan(),await _.withPropagatedContext(e.headers,()=>_.trace(d.BaseServerSpan.handleRequest,{spanName:`${K} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},o),void 0,!G))}catch(t){if(t instanceof y.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,O),M)throw t;return await (0,p.sendResponse)(V,$,new Response(null,{status:500})),null}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:A})},"routeModule",0,v,"serverHooks",0,E,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,A])}];
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"),u=a.default.join(l,"servers"),d=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 g(e){return await E(),m(async()=>e(await S()??c))}function y(e){return a.default.join(u,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(d,"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(d,JSON.stringify(e,null,2),"utf8"),e}async function E(){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 A(c);let n=(0,r.randomUUID)(),s=y(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:f(n,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(r,null,2),"utf8")}catch{}let o=new Date().toISOString(),u={id:n,name:i,port:8080,createdAt:o,updatedAt:o};return A({username:null,activeServerId:n,servers:[u],mode:null})}async function b(){let e=await E(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function I(){let e=await b();if(!e)return null;let a=y(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function T(){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 N("my-larkup");return y(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 O(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await C(t);)t++;return t}function N(e){return g(async n=>{let s=(0,r.randomUUID)(),o=new Date().toISOString(),l={id:s,name:e.trim()||"Untitled server",port:await O(n),createdAt:o,updatedAt:o},u=y(s);await t.promises.mkdir(u,{recursive:!0});let d={};if(n.activeServerId)try{let e=await t.promises.readFile(a.default.join(y(n.activeServerId),"config.json"),"utf8");d=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(u,"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:f(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,d),null,2),"utf8");let c={...n,servers:[...n.servers,l],activeServerId:s};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),n=a.activeServerId===e?r[0]?.id??null:a.activeServerId;return await t.promises.rm(y(e),{recursive:!0,force:!0}),A({...a,servers:r,activeServerId:n})})},"getActiveServer",0,b,"getDataDir",0,I,"getWorkspace",0,E,"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,T,"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),n=e.i(192441);async function s(){let e=await (0,n.getDataDir)();if(!e)return r.DEFAULT_CONFIG;try{let n=await t.promises.readFile(a.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={...r.DEFAULT_CONFIG,...s,embeddingModelId:o??r.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:i,chunking:{...r.DEFAULT_CONFIG.chunking,...s.chunking},storeConfig:{...r.DEFAULT_CONFIG.storeConfig,...s.storeConfig}};return delete l.customEmbedding,l}catch{return r.DEFAULT_CONFIG}}async function i(e){let r=await (0,n.requireDataDir)(),s={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(r,"config.json"),JSON.stringify(s,null,2),"utf8"),s}e.s(["readConfig",0,s,"writeConfig",0,i])},508582,e=>{"use strict";var t=e.i(686296),a=e.i(367165);async function r(e){let r,n=(await (0,a.readConfig)()).tavilyApiKey;if(!n)return t.NextResponse.json({error:"Tavily search is not configured. Set TAVILY_API_KEY in your environment.",configured:!1},{status:503});try{r=await e.json()}catch{return t.NextResponse.json({error:"Invalid request body."},{status:400})}let{query:s,page:i=1}=r;if(!s?.trim())return t.NextResponse.json({error:"A search query is required."},{status:400});if(i>1)return t.NextResponse.json({items:[],totalResults:0,totalResultsIsEstimate:!0,currentPage:i,totalPages:1,hasMore:!1,query:s.trim()});try{let e=await fetch("https://api.tavily.com/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({api_key:n,query:s.trim(),search_depth:"basic"}),cache:"no-store"}),a=await e.json();if(!e.ok||a.error){let r=a.error??`Tavily API error (${e.status})`;return t.NextResponse.json({error:r},{status:e.status})}let r=(a.results??[]).map(e=>({url:e.url,title:e.title,description:e.content})),i=r.length;return t.NextResponse.json({items:r,totalResults:i,totalResultsIsEstimate:!0,currentPage:1,totalPages:1,hasMore:!1,query:s.trim()})}catch(a){let e=a instanceof Error?a.message:"Tavily search failed.";return t.NextResponse.json({error:e},{status:500})}}async function n(){let e=!!(await (0,a.readConfig)()).tavilyApiKey;return t.NextResponse.json({configured:e})}e.s(["GET",0,n,"POST",0,r,"dynamic",0,"force-dynamic","runtime",0,"nodejs"])},545582,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),u=e.i(135958),d=e.i(86520),c=e.i(970949),p=e.i(741165),h=e.i(106898),m=e.i(454415),g=e.i(37125),y=e.i(193695);e.i(530058);var f=e.i(605998),w=e.i(508582);let v=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/search/tavily/route",pathname:"/api/search/tavily",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/search/tavily/route.ts",nextConfigOutput:"standalone",userland:w,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:A,serverHooks:E}=v;async function R(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),v.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/search/tavily/route";w=w.replace(/\/index$/,"")||"/";let S=await v.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:E,params:R,nextConfig:b,parsedUrl:I,isDraftMode:T,prerenderManifest:C,routerServerContext:O,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,resolvedPathname:D,clientReferenceManifest:U,serverActionsManifest:P}=S,j=(0,o.normalizeAppPath)(w),k=!!(C.dynamicRoutes[j]||C.routes[D]),M=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,I,!1):t.end("This page could not be found"),null);if(k&&!T){let e=!!C.routes[D],t=C.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await M();throw new y.NoFallbackError}}let L=null;!k||v.isDev||T||(L="/index"===(L=D)?"/":L);let q=!0===v.isDev||!k,F=k&&!q;P&&U&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:U,serverActionsManifest:P});let K=e.method||"GET",_=(0,s.getTracer)(),H=_.getActiveScopeSpan(),G=!!(null==O?void 0:O.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),z=(0,n.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,b,C,W);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let Y={params:R,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:q,incrementalCache:z,cacheLifeProfiles:b.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>v.onRequestError(e,t,r,n,O)},sharedContext:{buildId:A,deploymentId:E}},V=new l.NodeNextRequest(e),$=new l.NodeNextResponse(t),B=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>v.handle(B,Y).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")!==d.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(!W&&N&&x&&!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)(V,$,s,Y.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[g.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>=g.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,r=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:Y.renderOpts.collectedExpire;return{value:{kind:f.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 v.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,O),t}},u=await v.handleResponse({req:e,nextConfig:b,cacheKey:L,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:W});if(!k)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return W&&k||d.delete(g.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(V,$,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};G&&H?await o(H):(n=_.getActiveScopeSpan(),await _.withPropagatedContext(e.headers,()=>_.trace(d.BaseServerSpan.handleRequest,{spanName:`${K} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},o),void 0,!G))}catch(t){if(t instanceof y.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,O),k)throw t;return await (0,p.sendResponse)(V,$,new Response(null,{status:500})),null}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:A})},"routeModule",0,v,"serverHooks",0,E,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,A])}];
58
58
 
59
59
  //# sourceMappingURL=%5Broot-of-the-server%5D__0v03x56._.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),o=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()},i=`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),o=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()},i=`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.
@@ -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.
@@ -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.
@@ -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),n=e.i(666680),i=e.i(478500),r=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),n=e.i(666680),i=e.i(478500),r=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 d=a.default.join(process.cwd(),".larkup"),l=a.default.join(d,"servers"),u=a.default.join(d,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new i.AsyncLocalStorage,m=Promise.resolve();function g(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function h(e){return await x(),g(async()=>e(await b()??c))}function y(e){return a.default.join(l,e)}function f(e,t){return`./.larkup/servers/${e}/${t}`}async function v(e){try{return await t.promises.access(e),!0}catch{return!1}}async function w(e,n){if(await v(e)){await t.promises.mkdir(a.default.dirname(n),{recursive:!0});try{await t.promises.rename(e,n)}catch{await t.promises.cp(e,n,{recursive:!0}),await t.promises.rm(e,{recursive:!0,force:!0})}}}async function b(){try{let e=await t.promises.readFile(u,"utf8");return{...c,...JSON.parse(e)}}catch{return null}}async function I(e){return await t.promises.mkdir(d,{recursive:!0}),await t.promises.writeFile(u,JSON.stringify(e,null,2),"utf8"),e}async function x(){let e=await b();return e||g(A)}async function A(){let e=await b();if(e)return e;if(!await v(a.default.join(d,"config.json")))return I(c);let i=(0,n.randomUUID)(),r=y(i);for(let e of(await t.promises.mkdir(r,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await w(a.default.join(d,e),a.default.join(r,e));await w(a.default.join(d,"lancedb"),a.default.join(r,"lancedb")),await w(a.default.join(d,"generated-server"),a.default.join(r,"generated-server"));let o="Default server";try{let e=a.default.join(r,"config.json"),n=JSON.parse(await t.promises.readFile(e,"utf8"));n.projectName&&(o=n.projectName),"lancedb"===n.vectorStore&&(n.storeConfig?.mode??"local")==="local"&&(n.storeConfig={...n.storeConfig,dbPath:f(i,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(n,null,2),"utf8")}catch{}let s=new Date().toISOString(),l={id:i,name:o,port:8080,createdAt:s,updatedAt:s};return I({username:null,activeServerId:i,servers:[l],mode:null})}async function S(){let e=await x(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function E(){let e=await S();if(!e)return null;let a=y(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function T(){let e=await E();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:a}=await O("my-larkup");return y(a.id)}async function C(e){return new Promise(t=>{let a=r.default.createServer();a.once("error",()=>t(!1)),a.once("listening",()=>{a.close(()=>t(!0))}),a.listen(e,"127.0.0.1")})}async function R(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await C(t);)t++;return t}function O(e){return h(async i=>{let r=(0,n.randomUUID)(),s=new Date().toISOString(),d={id:r,name:e.trim()||"Untitled server",port:await R(i),createdAt:s,updatedAt:s},l=y(r);await t.promises.mkdir(l,{recursive:!0});let u={};if(i.activeServerId)try{let e=await t.promises.readFile(a.default.join(y(i.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(l,"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()}}(r,d.name,u),null,2),"utf8");let c={...i,servers:[...i.servers,d],activeServerId:r};return await I(c),{workspace:c,server:d}})}e.s(["createServer",0,O,"deleteServer",0,function(e){return h(async a=>{let n=a.servers.filter(t=>t.id!==e),i=a.activeServerId===e?n[0]?.id??null:a.activeServerId;return await t.promises.rm(y(e),{recursive:!0,force:!0}),I({...a,servers:n,activeServerId:i})})},"getActiveServer",0,S,"getDataDir",0,E,"getWorkspace",0,x,"renameServer",0,function(e,t){return h(async a=>{let n=a.servers.map(a=>a.id===e?{...a,name:t.trim()||a.name,updatedAt:new Date().toISOString()}:a);return I({...a,servers:n})})},"requireDataDir",0,T,"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)?I({...t,activeServerId:e}):t)},"setMode",0,function(e){return h(async t=>I({...t,mode:e}))},"setUsername",0,function(e){return h(async t=>I({...t,username:e.trim()||null}))}],192441)},367165,e=>{"use strict";var t=e.i(902157),a=e.i(750227),n=e.i(638725),i=e.i(192441);async function r(){let e=await (0,i.getDataDir)();if(!e)return n.DEFAULT_CONFIG;try{let i=await t.promises.readFile(a.default.join(e,"config.json"),"utf8"),r=JSON.parse(i),o=r.customEmbeddings,s=r.embeddingModelId;if(r.customEmbedding&&!o?.length){let e=r.customEmbedding;o=[e],"custom"===s&&(s=`custom:${e.modelName}`)}let d={...n.DEFAULT_CONFIG,...r,embeddingModelId:s??n.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:o,chunking:{...n.DEFAULT_CONFIG.chunking,...r.chunking},storeConfig:{...n.DEFAULT_CONFIG.storeConfig,...r.storeConfig}};return delete d.customEmbedding,d}catch{return n.DEFAULT_CONFIG}}async function o(e){let n=await (0,i.requireDataDir)(),r={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(n,"config.json"),JSON.stringify(r,null,2),"utf8"),r}e.s(["readConfig",0,r,"writeConfig",0,o])},399828,e=>{"use strict";let t={"openai/text-embedding-3-small":{dimensions:1536,maxInputTokens:8191},"openai/text-embedding-3-large":{dimensions:3072,maxInputTokens:8191},"openai/text-embedding-ada-002":{dimensions:1536,maxInputTokens:8191},"google/gemini-embedding-2":{dimensions:768,maxInputTokens:2048},"google/gemini-embedding-001":{dimensions:768,maxInputTokens:2048},"cohere/embed-english-v3.0":{dimensions:1024,maxInputTokens:512},"cohere/embed-multilingual-v3.0":{dimensions:1024,maxInputTokens:512},"voyage/voyage-3":{dimensions:1024,maxInputTokens:32e3},"voyage/voyage-3-lite":{dimensions:512,maxInputTokens:32e3},"voyage/voyage-code-3":{dimensions:1024,maxInputTokens:32e3},"mistral/mistral-embed":{dimensions:1024,maxInputTokens:8192},"jina/jina-embeddings-v3":{dimensions:1024,maxInputTokens:8192},"jina/jina-clip-v2":{dimensions:1024,maxInputTokens:8192},"nomic/nomic-embed-text-v1.5":{dimensions:768,maxInputTokens:8192}},a=[{id:"openai/text-embedding-3-small",label:"text-embedding-3-small",provider:"openai",dimensions:1536,maxInputTokens:8191,description:"Fast, cheap, strong general-purpose default."},{id:"openai/text-embedding-3-large",label:"text-embedding-3-large",provider:"openai",dimensions:3072,maxInputTokens:8191,description:"Highest quality OpenAI embeddings, larger vectors."},{id:"openai/text-embedding-ada-002",label:"text-embedding-ada-002",provider:"openai",dimensions:1536,maxInputTokens:8191,description:"Legacy model — kept for backward compatibility."},{id:"google/gemini-embedding-001",label:"gemini-embedding-001",provider:"google",dimensions:768,maxInputTokens:2048,description:"Gemini embedding 001."},{id:"cohere/embed-english-v3.0",label:"embed-english-v3.0",provider:"cohere",dimensions:1024,maxInputTokens:512,description:"Tuned for retrieval; great for English-heavy corpora."},{id:"cohere/embed-multilingual-v3.0",label:"embed-multilingual-v3.0",provider:"cohere",dimensions:1024,maxInputTokens:512,description:"100+ language multilingual retrieval embeddings."},{id:"voyage/voyage-3",label:"voyage-3",provider:"voyage",dimensions:1024,maxInputTokens:32e3,description:"Voyage's best general-purpose retrieval model."},{id:"voyage/voyage-3-lite",label:"voyage-3-lite",provider:"voyage",dimensions:512,maxInputTokens:32e3,description:"Optimized for latency and cost with strong performance."},{id:"voyage/voyage-code-3",label:"voyage-code-3",provider:"voyage",dimensions:1024,maxInputTokens:32e3,description:"Specialized for code retrieval tasks."},{id:"mistral/mistral-embed",label:"mistral-embed",provider:"mistral",dimensions:1024,maxInputTokens:8192,description:"Mistral's efficient embedding model for retrieval."},{id:"jina/jina-embeddings-v3",label:"jina-embeddings-v3",provider:"jina",dimensions:1024,maxInputTokens:8192,description:"Multilingual, task-specific embeddings from Jina AI."},{id:"jina/jina-clip-v2",label:"jina-clip-v2",provider:"jina",dimensions:1024,maxInputTokens:8192,description:"Multimodal embeddings for text and images."},{id:"nomic/nomic-embed-text-v1.5",label:"nomic-embed-text-v1.5",provider:"nomic",dimensions:768,maxInputTokens:8192,description:"Open-source, highly capable text embeddings."}];e.s(["EMBEDDING_DIMENSIONS",0,t,"EMBEDDING_MODELS",0,a,"getEmbeddingModel",0,function(e){return a.find(t=>t.id===e)},"getEmbeddingModelsForProvider",0,function(e,t){return"vercel_ai_gateway"===t?e:e.filter(e=>e.provider?.toLowerCase()===t.toLowerCase())},"toEmbeddingDescriptor",0,function(e){let a=t[e.id],n=e.id.split("/")[0]||e.owned_by;return{id:e.id,label:e.name||e.id.split("/").slice(1).join("/"),provider:n,dimensions:a?.dimensions??e.context_window??768,maxInputTokens:a?.maxInputTokens??e.max_tokens??2048,description:e.description||""}}])},489694,e=>{"use strict";var t=e.i(902157),a=e.i(750227),n=e.i(192441);let i=Promise.resolve();function r(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,"index-run.json"):null}async function s(){let e=await o(!1);if(!e)return null;try{let a=await t.promises.readFile(e,"utf8");return JSON.parse(a)}catch{return null}}async function d(){let e=await s();return!!(e&&("chunking"===e.status||"embedding"===e.status||"upserting"===e.status))}e.s(["claimRun",0,function(e){return r(async()=>{let a=await s();if(a&&("chunking"===a.status||"embedding"===a.status||"upserting"===a.status))throw Error("An indexing run is already in progress.");let n=await o(!0),i={...e,updatedAt:new Date().toISOString()};return n&&await t.promises.writeFile(n,JSON.stringify(i,null,2),"utf8"),i})},"isRunning",0,d,"patchRun",0,function(e,a){return r(async()=>{let n=await s();if(!n||a&&n.id!==a)return null;let i={...n,...e,updatedAt:new Date().toISOString()},r=await o(!0);return r&&await t.promises.writeFile(r,JSON.stringify(i,null,2),"utf8"),i})},"readRun",0,s])},844915,e=>{"use strict";var t=e.i(891294);async function a(){return t.ALL_MODELS}async function n(e){return(await a()).filter(t=>t.type===e)}async function i(e){let t=await a(),n=e?t.filter(t=>t.type===e):t,i=new Map;for(let e of n)i.set(e.owned_by,(i.get(e.owned_by)??0)+1);return Array.from(i.entries()).map(([e,t])=>({id:e,name:r[e]||e.charAt(0).toUpperCase()+e.slice(1),modelCount:t})).sort((e,t)=>t.modelCount-e.modelCount)}let r={openai:"OpenAI",anthropic:"Anthropic",google:"Google",meta:"Meta",mistral:"Mistral",cohere:"Cohere",deepseek:"DeepSeek",amazon:"Amazon",xai:"xAI",perplexity:"Perplexity",alibaba:"Alibaba",groq:"Groq","together-ai":"Together AI",fireworks:"Fireworks",cerebras:"Cerebras",voyage:"Voyage AI",jina:"Jina AI",nomic:"Nomic",bfl:"Black Forest Labs","arcee-ai":"Arcee AI",luma:"Luma",minimax:"MiniMax",elevenlabs:"ElevenLabs"};e.s(["getAllModels",0,a,"getAllProviders",0,i,"getModelsByType",0,n])},336321,e=>{"use strict";function t(e,t){return"vercel_ai_gateway"===t?e:e.filter(e=>e.provider?.toLowerCase()===t.toLowerCase())}e.s(["getChatModel",0,function(e,t){return e.find(e=>e.id===t)},"getChatModelsForProvider",0,t,"getDefaultChatModel",0,function(e,a){let n=t(e,a),i={openai:"openai/gpt-5",anthropic:"anthropic/claude-3.5-sonnet-latest",google:"google/gemini-2.5-pro",mistral:"mistral/mistral-large-latest",deepseek:"deepseek/deepseek-chat",cohere:"cohere/command-r-plus",meta:"meta/llama-4-maverick",xai:"xai/grok-3-mini",vercel_ai_gateway:"anthropic/claude-3.5-sonnet-latest"}[a];return n.find(e=>e.id===i)??n[0]},"toChatDescriptor",0,function(e){return{id:e.id,name:e.name,provider:e.owned_by,context_window:e.context_window,max_tokens:e.max_tokens,tags:e.tags,description:e.description}}])},922175,e=>{"use strict";var t=e.i(850492),a=e.i(891119),n=e.i(697373),i=e.i(765700),r=e.i(601263),o=e.i(706859),s=e.i(947547),d=e.i(819797),l=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),y=e.i(193695);e.i(530058);var f=e.i(605998),v=e.i(686296),w=e.i(367165),b=e.i(489694),I=e.i(192441),x=e.i(844915),A=e.i(336321),S=e.i(399828);async function E(e){var t,a;return t=new URL(e.url).searchParams.get("serverId"),a=async()=>{let t=await (0,w.readConfig)(),a=await (0,b.readRun)(),n=a?.status==="completed"&&(a.totalChunks??0)>0,i=!!(t.chatApiKey||t.embeddingApiKey),r=[];i||r.push("You Can't start chatting.You have to set AI Models API Key in Settings.");let o=new URL(e.url).searchParams.get("provider")||t.chatProvider||t.embeddingProvider,[s,d]=await Promise.all([(0,x.getModelsByType)("language"),(0,x.getModelsByType)("embedding")]),l=s.map(A.toChatDescriptor),u=(0,A.getChatModelsForProvider)(l,o);"custom"===o&&t.customChatModels&&u.push(...t.customChatModels.map(e=>({id:`custom:${e.modelName}`,name:e.modelName,provider:"custom",tags:["custom"]})));let c=(0,A.getDefaultChatModel)(l,o),p=t.chatModelId||("custom"===o&&t.customChatModels?.[0]?`custom:${t.customChatModels[0].modelName}`:c?.id)||"openai/gpt-4o-mini",m=d.map(S.toEmbeddingDescriptor),g=new Set(m.map(e=>e.id)),h=[...m,...S.EMBEDDING_MODELS.filter(e=>!g.has(e.id))],y=t.embeddingProvider||o;return(0,S.getEmbeddingModelsForProvider)(h,y),v.NextResponse.json({ready:i,indexed:n,blockers:r,provider:o,chatModelId:p,availableModels:u.map(e=>({id:e.id,label:e.name,provider:e.provider,context_window:e.context_window,tags:e.tags})),availableEmbeddingModels:h.map(e=>({id:e.id,label:e.label,provider:e.provider,dimensions:e.dimensions,maxInputTokens:e.maxInputTokens,description:e.description})),suggestions:t.chatSuggestions||[]})},t?(0,I.runWithServer)(t,a):a()}e.s(["GET",0,E,"dynamic",0,"force-dynamic"],130494);var T=e.i(130494);let C=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/chat/status/route",pathname:"/api/chat/status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/chat/status/route.ts",nextConfigOutput:"standalone",userland:T,...{}}),{workAsyncStorage:R,workUnitAsyncStorage:O,serverHooks:N}=C;async function k(e,t,n){n.requestMeta&&(0,i.setRequestMeta)(e,n.requestMeta),C.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/chat/status/route";v=v.replace(/\/index$/,"")||"/";let w=await C.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:b,deploymentId:I,params:x,nextConfig:A,parsedUrl:S,isDraftMode:E,prerenderManifest:T,routerServerContext:R,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,resolvedPathname:k,clientReferenceManifest:D,serverActionsManifest:M}=w,U=(0,s.normalizeAppPath)(v),P=!!(T.dynamicRoutes[U]||T.routes[k]),L=async()=>((null==R?void 0:R.render404)?await R.render404(e,t,S,!1):t.end("This page could not be found"),null);if(P&&!E){let e=!!T.routes[k],t=T.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await L();throw new y.NoFallbackError}}let j=null;!P||C.isDev||E||(j="/index"===(j=k)?"/":j);let _=!0===C.isDev||!P,F=P&&!_;M&&D&&(0,o.setManifestsSingleton)({page:v,clientReferenceManifest:D,serverActionsManifest:M});let q=e.method||"GET",K=(0,r.getTracer)(),H=K.getActiveScopeSpan(),G=!!(null==R?void 0:R.isWrappedByNextServer),z=!!(0,i.getRequestMeta)(e,"minimalMode"),W=(0,i.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,A,T,z);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let B={params:x,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:_,incrementalCache:W,cacheLifeProfiles:A.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,i)=>C.onRequestError(e,t,n,i,R)},sharedContext:{buildId:b,deploymentId:I}},Y=new d.NodeNextRequest(e),V=new d.NodeNextResponse(t),J=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(t));try{let i,o=async e=>C.handle(J,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=K.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 n=a.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",n),i.updateName(t))}else e.updateName(`${q} ${v}`)}),s=async i=>{var r,s;let d=async({previousCacheEntry:a})=>{try{if(!z&&O&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await o(i);e.fetchMetrics=B.renderOpts.fetchMetrics;let s=B.renderOpts.pendingWaitUntil;s&&n.waitUntil&&(n.waitUntil(s),s=void 0);let d=B.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(Y,V,r,B.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(r.headers);d&&(t[h.NEXT_CACHE_TAGS_HEADER]=d),!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,n=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:O})},!1,R),t}},l=await C.handleResponse({req:e,nextConfig:A,cacheKey:j,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:z});if(!P)return null;if((null==l||null==(r=l.value)?void 0:r.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(s=l.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});z||t.setHeader("x-nextjs-cache",O?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(l.value.headers);return z&&P||u.delete(h.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,g.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(Y,V,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};G&&H?await s(H):(i=K.getActiveScopeSpan(),await K.withPropagatedContext(e.headers,()=>K.trace(u.BaseServerSpan.handleRequest,{spanName:`${q} ${v}`,kind:r.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},s),void 0,!G))}catch(t){if(t instanceof y.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:O})},!1,R),P)throw t;return await (0,p.sendResponse)(Y,V,new Response(null,{status:500})),null}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:O})},"routeModule",0,C,"serverHooks",0,N,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,O],922175)}];
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 d=a.default.join(process.cwd(),".larkup"),l=a.default.join(d,"servers"),u=a.default.join(d,"workspace.json"),c={username:null,activeServerId:null,servers:[],mode:null},p=new i.AsyncLocalStorage,m=Promise.resolve();function g(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function h(e){return await x(),g(async()=>e(await b()??c))}function y(e){return a.default.join(l,e)}function f(e,t){return`./.larkup/servers/${e}/${t}`}async function v(e){try{return await t.promises.access(e),!0}catch{return!1}}async function w(e,n){if(await v(e)){await t.promises.mkdir(a.default.dirname(n),{recursive:!0});try{await t.promises.rename(e,n)}catch{await t.promises.cp(e,n,{recursive:!0}),await t.promises.rm(e,{recursive:!0,force:!0})}}}async function b(){try{let e=await t.promises.readFile(u,"utf8");return{...c,...JSON.parse(e)}}catch{return null}}async function I(e){return await t.promises.mkdir(d,{recursive:!0}),await t.promises.writeFile(u,JSON.stringify(e,null,2),"utf8"),e}async function x(){let e=await b();return e||g(A)}async function A(){let e=await b();if(e)return e;if(!await v(a.default.join(d,"config.json")))return I(c);let i=(0,n.randomUUID)(),r=y(i);for(let e of(await t.promises.mkdir(r,{recursive:!0}),["config.json","documents.json","jobs.json","index-run.json","server-local.json"]))await w(a.default.join(d,e),a.default.join(r,e));await w(a.default.join(d,"lancedb"),a.default.join(r,"lancedb")),await w(a.default.join(d,"generated-server"),a.default.join(r,"generated-server"));let o="Default server";try{let e=a.default.join(r,"config.json"),n=JSON.parse(await t.promises.readFile(e,"utf8"));n.projectName&&(o=n.projectName),"lancedb"===n.vectorStore&&(n.storeConfig?.mode??"local")==="local"&&(n.storeConfig={...n.storeConfig,dbPath:f(i,"lancedb")}),await t.promises.writeFile(e,JSON.stringify(n,null,2),"utf8")}catch{}let s=new Date().toISOString(),l={id:i,name:o,port:8080,createdAt:s,updatedAt:s};return I({username:null,activeServerId:i,servers:[l],mode:null})}async function S(){let e=await x(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function E(){let e=await S();if(!e)return null;let a=y(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function T(){let e=await E();if(e)return e;let t=p.getStore()?.serverId;if(t)throw Error(`Server "${t}" no longer exists.`);let{server:a}=await O("my-larkup");return y(a.id)}async function C(e){return new Promise(t=>{let a=r.default.createServer();a.once("error",()=>t(!1)),a.once("listening",()=>{a.close(()=>t(!0))}),a.listen(e,"127.0.0.1")})}async function R(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await C(t);)t++;return t}function O(e){return h(async i=>{let r=(0,n.randomUUID)(),s=new Date().toISOString(),d={id:r,name:e.trim()||"Untitled server",port:await R(i),createdAt:s,updatedAt:s},l=y(r);await t.promises.mkdir(l,{recursive:!0});let u={};if(i.activeServerId)try{let e=await t.promises.readFile(a.default.join(y(i.activeServerId),"config.json"),"utf8");u=JSON.parse(e)}catch{}await t.promises.writeFile(a.default.join(l,"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()}}(r,d.name,u),null,2),"utf8");let c={...i,servers:[...i.servers,d],activeServerId:r};return await I(c),{workspace:c,server:d}})}e.s(["createServer",0,O,"deleteServer",0,function(e){return h(async a=>{let n=a.servers.filter(t=>t.id!==e),i=a.activeServerId===e?n[0]?.id??null:a.activeServerId;return await t.promises.rm(y(e),{recursive:!0,force:!0}),I({...a,servers:n,activeServerId:i})})},"getActiveServer",0,S,"getDataDir",0,E,"getWorkspace",0,x,"renameServer",0,function(e,t){return h(async a=>{let n=a.servers.map(a=>a.id===e?{...a,name:t.trim()||a.name,updatedAt:new Date().toISOString()}:a);return I({...a,servers:n})})},"requireDataDir",0,T,"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)?I({...t,activeServerId:e}):t)},"setMode",0,function(e){return h(async t=>I({...t,mode:e}))},"setUsername",0,function(e){return h(async t=>I({...t,username:e.trim()||null}))}],192441)},367165,e=>{"use strict";var t=e.i(902157),a=e.i(750227),n=e.i(638725),i=e.i(192441);async function r(){let e=await (0,i.getDataDir)();if(!e)return n.DEFAULT_CONFIG;try{let i=await t.promises.readFile(a.default.join(e,"config.json"),"utf8"),r=JSON.parse(i),o=r.customEmbeddings,s=r.embeddingModelId;if(r.customEmbedding&&!o?.length){let e=r.customEmbedding;o=[e],"custom"===s&&(s=`custom:${e.modelName}`)}let d={...n.DEFAULT_CONFIG,...r,embeddingModelId:s??n.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:o,chunking:{...n.DEFAULT_CONFIG.chunking,...r.chunking},storeConfig:{...n.DEFAULT_CONFIG.storeConfig,...r.storeConfig}};return delete d.customEmbedding,d}catch{return n.DEFAULT_CONFIG}}async function o(e){let n=await (0,i.requireDataDir)(),r={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(n,"config.json"),JSON.stringify(r,null,2),"utf8"),r}e.s(["readConfig",0,r,"writeConfig",0,o])},399828,e=>{"use strict";let t={"openai/text-embedding-3-small":{dimensions:1536,maxInputTokens:8191},"openai/text-embedding-3-large":{dimensions:3072,maxInputTokens:8191},"openai/text-embedding-ada-002":{dimensions:1536,maxInputTokens:8191},"google/gemini-embedding-2":{dimensions:768,maxInputTokens:2048},"google/gemini-embedding-001":{dimensions:768,maxInputTokens:2048},"cohere/embed-english-v3.0":{dimensions:1024,maxInputTokens:512},"cohere/embed-multilingual-v3.0":{dimensions:1024,maxInputTokens:512},"voyage/voyage-3":{dimensions:1024,maxInputTokens:32e3},"voyage/voyage-3-lite":{dimensions:512,maxInputTokens:32e3},"voyage/voyage-code-3":{dimensions:1024,maxInputTokens:32e3},"mistral/mistral-embed":{dimensions:1024,maxInputTokens:8192},"jina/jina-embeddings-v3":{dimensions:1024,maxInputTokens:8192},"jina/jina-clip-v2":{dimensions:1024,maxInputTokens:8192},"nomic/nomic-embed-text-v1.5":{dimensions:768,maxInputTokens:8192}},a=[{id:"openai/text-embedding-3-small",label:"text-embedding-3-small",provider:"openai",dimensions:1536,maxInputTokens:8191,description:"Fast, cheap, strong general-purpose default."},{id:"openai/text-embedding-3-large",label:"text-embedding-3-large",provider:"openai",dimensions:3072,maxInputTokens:8191,description:"Highest quality OpenAI embeddings, larger vectors."},{id:"openai/text-embedding-ada-002",label:"text-embedding-ada-002",provider:"openai",dimensions:1536,maxInputTokens:8191,description:"Legacy model — kept for backward compatibility."},{id:"google/gemini-embedding-001",label:"gemini-embedding-001",provider:"google",dimensions:768,maxInputTokens:2048,description:"Gemini embedding 001."},{id:"cohere/embed-english-v3.0",label:"embed-english-v3.0",provider:"cohere",dimensions:1024,maxInputTokens:512,description:"Tuned for retrieval; great for English-heavy corpora."},{id:"cohere/embed-multilingual-v3.0",label:"embed-multilingual-v3.0",provider:"cohere",dimensions:1024,maxInputTokens:512,description:"100+ language multilingual retrieval embeddings."},{id:"voyage/voyage-3",label:"voyage-3",provider:"voyage",dimensions:1024,maxInputTokens:32e3,description:"Voyage's best general-purpose retrieval model."},{id:"voyage/voyage-3-lite",label:"voyage-3-lite",provider:"voyage",dimensions:512,maxInputTokens:32e3,description:"Optimized for latency and cost with strong performance."},{id:"voyage/voyage-code-3",label:"voyage-code-3",provider:"voyage",dimensions:1024,maxInputTokens:32e3,description:"Specialized for code retrieval tasks."},{id:"mistral/mistral-embed",label:"mistral-embed",provider:"mistral",dimensions:1024,maxInputTokens:8192,description:"Mistral's efficient embedding model for retrieval."},{id:"jina/jina-embeddings-v3",label:"jina-embeddings-v3",provider:"jina",dimensions:1024,maxInputTokens:8192,description:"Multilingual, task-specific embeddings from Jina AI."},{id:"jina/jina-clip-v2",label:"jina-clip-v2",provider:"jina",dimensions:1024,maxInputTokens:8192,description:"Multimodal embeddings for text and images."},{id:"nomic/nomic-embed-text-v1.5",label:"nomic-embed-text-v1.5",provider:"nomic",dimensions:768,maxInputTokens:8192,description:"Open-source, highly capable text embeddings."}];e.s(["EMBEDDING_DIMENSIONS",0,t,"EMBEDDING_MODELS",0,a,"getEmbeddingModel",0,function(e){return a.find(t=>t.id===e)},"getEmbeddingModelsForProvider",0,function(e,t){return"vercel_ai_gateway"===t?e:e.filter(e=>e.provider?.toLowerCase()===t.toLowerCase())},"toEmbeddingDescriptor",0,function(e){let a=t[e.id],n=e.id.split("/")[0]||e.owned_by;return{id:e.id,label:e.name||e.id.split("/").slice(1).join("/"),provider:n,dimensions:a?.dimensions??e.context_window??768,maxInputTokens:a?.maxInputTokens??e.max_tokens??2048,description:e.description||""}}])},489694,e=>{"use strict";var t=e.i(902157),a=e.i(750227),n=e.i(192441);let i=Promise.resolve();function r(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,"index-run.json"):null}async function s(){let e=await o(!1);if(!e)return null;try{let a=await t.promises.readFile(e,"utf8");return JSON.parse(a)}catch{return null}}async function d(){let e=await s();return!!(e&&("chunking"===e.status||"embedding"===e.status||"upserting"===e.status))}e.s(["claimRun",0,function(e){return r(async()=>{let a=await s();if(a&&("chunking"===a.status||"embedding"===a.status||"upserting"===a.status))throw Error("An indexing run is already in progress.");let n=await o(!0),i={...e,updatedAt:new Date().toISOString()};return n&&await t.promises.writeFile(n,JSON.stringify(i,null,2),"utf8"),i})},"isRunning",0,d,"patchRun",0,function(e,a){return r(async()=>{let n=await s();if(!n||a&&n.id!==a)return null;let i={...n,...e,updatedAt:new Date().toISOString()},r=await o(!0);return r&&await t.promises.writeFile(r,JSON.stringify(i,null,2),"utf8"),i})},"readRun",0,s])},844915,e=>{"use strict";var t=e.i(891294);async function a(){return t.ALL_MODELS}async function n(e){return(await a()).filter(t=>t.type===e)}async function i(e){let t=await a(),n=e?t.filter(t=>t.type===e):t,i=new Map;for(let e of n)i.set(e.owned_by,(i.get(e.owned_by)??0)+1);return Array.from(i.entries()).map(([e,t])=>({id:e,name:r[e]||e.charAt(0).toUpperCase()+e.slice(1),modelCount:t})).sort((e,t)=>t.modelCount-e.modelCount)}let r={openai:"OpenAI",anthropic:"Anthropic",google:"Google",meta:"Meta",mistral:"Mistral",cohere:"Cohere",deepseek:"DeepSeek",amazon:"Amazon",xai:"xAI",perplexity:"Perplexity",alibaba:"Alibaba",groq:"Groq","together-ai":"Together AI",fireworks:"Fireworks",cerebras:"Cerebras",voyage:"Voyage AI",jina:"Jina AI",nomic:"Nomic",bfl:"Black Forest Labs","arcee-ai":"Arcee AI",luma:"Luma",minimax:"MiniMax",elevenlabs:"ElevenLabs"};e.s(["getAllModels",0,a,"getAllProviders",0,i,"getModelsByType",0,n])},336321,e=>{"use strict";function t(e,t){return"vercel_ai_gateway"===t?e:e.filter(e=>e.provider?.toLowerCase()===t.toLowerCase())}e.s(["getChatModel",0,function(e,t){return e.find(e=>e.id===t)},"getChatModelsForProvider",0,t,"getDefaultChatModel",0,function(e,a){let n=t(e,a),i={openai:"openai/gpt-5",anthropic:"anthropic/claude-3.5-sonnet-latest",google:"google/gemini-2.5-pro",mistral:"mistral/mistral-large-latest",deepseek:"deepseek/deepseek-chat",cohere:"cohere/command-r-plus",meta:"meta/llama-4-maverick",xai:"xai/grok-3-mini",vercel_ai_gateway:"anthropic/claude-3.5-sonnet-latest"}[a];return n.find(e=>e.id===i)??n[0]},"toChatDescriptor",0,function(e){return{id:e.id,name:e.name,provider:e.owned_by,context_window:e.context_window,max_tokens:e.max_tokens,tags:e.tags,description:e.description}}])},922175,e=>{"use strict";var t=e.i(850492),a=e.i(891119),n=e.i(697373),i=e.i(765700),r=e.i(601263),o=e.i(706859),s=e.i(947547),d=e.i(819797),l=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),y=e.i(193695);e.i(530058);var f=e.i(605998),v=e.i(686296),w=e.i(367165),b=e.i(489694),I=e.i(192441),x=e.i(844915),A=e.i(336321),S=e.i(399828);async function E(e){var t,a;return t=new URL(e.url).searchParams.get("serverId"),a=async()=>{let t=await (0,w.readConfig)(),a=await (0,b.readRun)(),n=a?.status==="completed"&&(a.totalChunks??0)>0,i=!!(t.chatApiKey||t.embeddingApiKey),r=[];i||r.push("You Can't start chatting.You have to set AI Models API Key in Settings.");let o=new URL(e.url).searchParams.get("provider")||t.chatProvider||t.embeddingProvider,[s,d]=await Promise.all([(0,x.getModelsByType)("language"),(0,x.getModelsByType)("embedding")]),l=s.map(A.toChatDescriptor),u=(0,A.getChatModelsForProvider)(l,o);"custom"===o&&t.customChatModels&&u.push(...t.customChatModels.map(e=>({id:`custom:${e.modelName}`,name:e.modelName,provider:"custom",tags:["custom"]})));let c=(0,A.getDefaultChatModel)(l,o),p=t.chatModelId||("custom"===o&&t.customChatModels?.[0]?`custom:${t.customChatModels[0].modelName}`:c?.id)||"openai/gpt-4o-mini",m=d.map(S.toEmbeddingDescriptor),g=new Set(m.map(e=>e.id)),h=[...m,...S.EMBEDDING_MODELS.filter(e=>!g.has(e.id))],y=t.embeddingProvider||o;return(0,S.getEmbeddingModelsForProvider)(h,y),v.NextResponse.json({ready:i,indexed:n,blockers:r,provider:o,chatModelId:p,availableModels:u.map(e=>({id:e.id,label:e.name,provider:e.provider,context_window:e.context_window,tags:e.tags})),availableEmbeddingModels:h.map(e=>({id:e.id,label:e.label,provider:e.provider,dimensions:e.dimensions,maxInputTokens:e.maxInputTokens,description:e.description})),suggestions:t.chatSuggestions||[]})},t?(0,I.runWithServer)(t,a):a()}e.s(["GET",0,E,"dynamic",0,"force-dynamic"],130494);var T=e.i(130494);let C=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/chat/status/route",pathname:"/api/chat/status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/chat/status/route.ts",nextConfigOutput:"standalone",userland:T,...{}}),{workAsyncStorage:R,workUnitAsyncStorage:O,serverHooks:k}=C;async function N(e,t,n){n.requestMeta&&(0,i.setRequestMeta)(e,n.requestMeta),C.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/chat/status/route";v=v.replace(/\/index$/,"")||"/";let w=await C.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:b,deploymentId:I,params:x,nextConfig:A,parsedUrl:S,isDraftMode:E,prerenderManifest:T,routerServerContext:R,isOnDemandRevalidate:O,revalidateOnlyGenerated:k,resolvedPathname:N,clientReferenceManifest:D,serverActionsManifest:M}=w,U=(0,s.normalizeAppPath)(v),P=!!(T.dynamicRoutes[U]||T.routes[N]),L=async()=>((null==R?void 0:R.render404)?await R.render404(e,t,S,!1):t.end("This page could not be found"),null);if(P&&!E){let e=!!T.routes[N],t=T.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await L();throw new y.NoFallbackError}}let j=null;!P||C.isDev||E||(j="/index"===(j=N)?"/":j);let _=!0===C.isDev||!P,F=P&&!_;M&&D&&(0,o.setManifestsSingleton)({page:v,clientReferenceManifest:D,serverActionsManifest:M});let q=e.method||"GET",K=(0,r.getTracer)(),H=K.getActiveScopeSpan(),G=!!(null==R?void 0:R.isWrappedByNextServer),z=!!(0,i.getRequestMeta)(e,"minimalMode"),W=(0,i.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,A,T,z);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let B={params:x,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:_,incrementalCache:W,cacheLifeProfiles:A.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,i)=>C.onRequestError(e,t,n,i,R)},sharedContext:{buildId:b,deploymentId:I}},Y=new d.NodeNextRequest(e),V=new d.NodeNextResponse(t),J=l.NextRequestAdapter.fromNodeNextRequest(Y,(0,l.signalFromNodeResponse)(t));try{let i,o=async e=>C.handle(J,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=K.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 n=a.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",n),i.updateName(t))}else e.updateName(`${q} ${v}`)}),s=async i=>{var r,s;let d=async({previousCacheEntry:a})=>{try{if(!z&&O&&k&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await o(i);e.fetchMetrics=B.renderOpts.fetchMetrics;let s=B.renderOpts.pendingWaitUntil;s&&n.waitUntil&&(n.waitUntil(s),s=void 0);let d=B.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(Y,V,r,B.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(r.headers);d&&(t[h.NEXT_CACHE_TAGS_HEADER]=d),!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,n=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:O})},!1,R),t}},l=await C.handleResponse({req:e,nextConfig:A,cacheKey:j,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:z});if(!P)return null;if((null==l||null==(r=l.value)?void 0:r.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(s=l.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});z||t.setHeader("x-nextjs-cache",O?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,m.fromNodeOutgoingHttpHeaders)(l.value.headers);return z&&P||u.delete(h.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,g.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(Y,V,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};G&&H?await s(H):(i=K.getActiveScopeSpan(),await K.withPropagatedContext(e.headers,()=>K.trace(u.BaseServerSpan.handleRequest,{spanName:`${q} ${v}`,kind:r.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},s),void 0,!G))}catch(t){if(t instanceof y.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:O})},!1,R),P)throw t;return await (0,p.sendResponse)(Y,V,new Response(null,{status:500})),null}}e.s(["handler",0,N,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:O})},"routeModule",0,C,"serverHooks",0,k,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,O],922175)}];
58
58
 
59
59
  //# sourceMappingURL=%5Broot-of-the-server%5D__0wyl7x5._.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 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,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 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 E(),h(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 E(){let e=await S();return e||h(b)}async function b(){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 R(){let e=await E(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function I(){let e=await R();if(!e)return null;let a=f(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function C(){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 N("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 O(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await T(t);)t++;return t}function N(e){return g(async n=>{let i=(0,r.randomUUID)(),o=new Date().toISOString(),l={id:i,name:e.trim()||"Untitled server",port:await O(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,N,"deleteServer",0,function(e){return g(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,R,"getDataDir",0,I,"getWorkspace",0,E,"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,C,"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),n=e.i(192441);async function i(){let e=await (0,n.getDataDir)();if(!e)return r.DEFAULT_CONFIG;try{let n=await t.promises.readFile(a.default.join(e,"config.json"),"utf8"),i=JSON.parse(n),s=i.customEmbeddings,o=i.embeddingModelId;if(i.customEmbedding&&!s?.length){let e=i.customEmbedding;s=[e],"custom"===o&&(o=`custom:${e.modelName}`)}let l={...r.DEFAULT_CONFIG,...i,embeddingModelId:o??r.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:s,chunking:{...r.DEFAULT_CONFIG.chunking,...i.chunking},storeConfig:{...r.DEFAULT_CONFIG.storeConfig,...i.storeConfig}};return delete l.customEmbedding,l}catch{return r.DEFAULT_CONFIG}}async function s(e){let r=await (0,n.requireDataDir)(),i={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(r,"config.json"),JSON.stringify(i,null,2),"utf8"),i}e.s(["readConfig",0,i,"writeConfig",0,s])},38862,e=>{"use strict";var t=e.i(686296),a=e.i(367165);async function r(e){let r,n=(await (0,a.readConfig)()).bingApiKey;if(!n)return t.NextResponse.json({error:"Bing search is not configured. Set BING_API_KEY in your environment.",configured:!1},{status:503});try{r=await e.json()}catch{return t.NextResponse.json({error:"Invalid request body."},{status:400})}let{query:i,page:s=1}=r;if(!i?.trim())return t.NextResponse.json({error:"A search query is required."},{status:400});let o=Math.max(1,Math.min(s,10)),l=(o-1)*10;try{let e=await fetch(`https://serpapi.com/search.json?engine=bing&q=${encodeURIComponent(i.trim())}&first=${l+1}&api_key=${n}`,{method:"GET",cache:"no-store"}),a=await e.json();if(!e.ok||a.error){let r=a.error??`Bing (SerpApi) error (${e.status})`;return t.NextResponse.json({error:r},{status:e.status})}let r=(a.organic_results??[]).map(e=>({url:e.link,title:e.title,description:e.snippet})),s=r.length>=10&&o<10,d=s?o+1:o;return t.NextResponse.json({items:r,totalResults:100,totalResultsIsEstimate:!0,currentPage:o,totalPages:d,hasMore:s,query:i.trim()})}catch(a){let e=a instanceof Error?a.message:"Bing search failed.";return t.NextResponse.json({error:e},{status:500})}}async function n(){let e=!!(await (0,a.readConfig)()).bingApiKey;return t.NextResponse.json({configured:e})}e.s(["GET",0,n,"POST",0,r,"dynamic",0,"force-dynamic","runtime",0,"nodejs"])},540310,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),h=e.i(454415),g=e.i(37125),f=e.i(193695);e.i(530058);var y=e.i(605998),w=e.i(38862);let v=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/search/bing/route",pathname:"/api/search/bing",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/search/bing/route.ts",nextConfigOutput:"standalone",userland:w,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:A,serverHooks:E}=v;async function b(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),v.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/search/bing/route";w=w.replace(/\/index$/,"")||"/";let S=await v.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:E,params:b,nextConfig:R,parsedUrl:I,isDraftMode:C,prerenderManifest:T,routerServerContext:O,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,resolvedPathname:D,clientReferenceManifest:U,serverActionsManifest:P}=S,j=(0,o.normalizeAppPath)(w),k=!!(T.dynamicRoutes[j]||T.routes[D]),M=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,I,!1):t.end("This page could not be found"),null);if(k&&!C){let e=!!T.routes[D],t=T.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(R.adapterPath)return await M();throw new f.NoFallbackError}}let L=null;!k||v.isDev||C||(L="/index"===(L=D)?"/":L);let q=!0===v.isDev||!k,F=k&&!q;P&&U&&(0,s.setManifestsSingleton)({page:w,clientReferenceManifest:U,serverActionsManifest:P});let K=e.method||"GET",_=(0,i.getTracer)(),H=_.getActiveScopeSpan(),G=!!(null==O?void 0:O.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),z=(0,n.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,R,T,W);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let Y={params:b,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:q,incrementalCache:z,cacheLifeProfiles:R.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>v.onRequestError(e,t,r,n,O)},sharedContext:{buildId:A,deploymentId:E}},B=new l.NodeNextRequest(e),$=new l.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let n,s=async e=>v.handle(V,Y).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}`)}),o=async n=>{var i,o;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 s(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)(B,$,i,Y.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[g.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>=g.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,r=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:Y.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 v.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,O),t}},d=await v.handleResponse({req:e,nextConfig:R,cacheKey:L,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,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",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,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return W&&k||u.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,$,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};G&&H?await o(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}},o),void 0,!G))}catch(t){if(t instanceof f.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,O),k)throw t;return await (0,p.sendResponse)(B,$,new Response(null,{status:500})),null}}e.s(["handler",0,b,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:A})},"routeModule",0,v,"serverHooks",0,E,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,A])}];
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 h(e){let t=m.then(e,e);return m=t.catch(()=>{}),t}async function g(e){return await E(),h(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 E(){let e=await S();return e||h(b)}async function b(){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 R(){let e=await E(),t=p.getStore()?.serverId??e.activeServerId;return t?e.servers.find(e=>e.id===t)??null:null}async function I(){let e=await R();if(!e)return null;let a=f(e.id);return await t.promises.mkdir(a,{recursive:!0}),a}async function C(){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 N("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 O(e){let t=Math.max(8079,...e.servers.map(e=>e.port))+1;for(;!await T(t);)t++;return t}function N(e){return g(async n=>{let i=(0,r.randomUUID)(),o=new Date().toISOString(),l={id:i,name:e.trim()||"Untitled server",port:await O(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,N,"deleteServer",0,function(e){return g(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,R,"getDataDir",0,I,"getWorkspace",0,E,"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,C,"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),n=e.i(192441);async function i(){let e=await (0,n.getDataDir)();if(!e)return r.DEFAULT_CONFIG;try{let n=await t.promises.readFile(a.default.join(e,"config.json"),"utf8"),i=JSON.parse(n),s=i.customEmbeddings,o=i.embeddingModelId;if(i.customEmbedding&&!s?.length){let e=i.customEmbedding;s=[e],"custom"===o&&(o=`custom:${e.modelName}`)}let l={...r.DEFAULT_CONFIG,...i,embeddingModelId:o??r.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:s,chunking:{...r.DEFAULT_CONFIG.chunking,...i.chunking},storeConfig:{...r.DEFAULT_CONFIG.storeConfig,...i.storeConfig}};return delete l.customEmbedding,l}catch{return r.DEFAULT_CONFIG}}async function s(e){let r=await (0,n.requireDataDir)(),i={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(r,"config.json"),JSON.stringify(i,null,2),"utf8"),i}e.s(["readConfig",0,i,"writeConfig",0,s])},38862,e=>{"use strict";var t=e.i(686296),a=e.i(367165);async function r(e){let r,n=(await (0,a.readConfig)()).bingApiKey;if(!n)return t.NextResponse.json({error:"Bing search is not configured. Set BING_API_KEY in your environment.",configured:!1},{status:503});try{r=await e.json()}catch{return t.NextResponse.json({error:"Invalid request body."},{status:400})}let{query:i,page:s=1}=r;if(!i?.trim())return t.NextResponse.json({error:"A search query is required."},{status:400});let o=Math.max(1,Math.min(s,10)),l=(o-1)*10;try{let e=await fetch(`https://serpapi.com/search.json?engine=bing&q=${encodeURIComponent(i.trim())}&first=${l+1}&api_key=${n}`,{method:"GET",cache:"no-store"}),a=await e.json();if(!e.ok||a.error){let r=a.error??`Bing (SerpApi) error (${e.status})`;return t.NextResponse.json({error:r},{status:e.status})}let r=(a.organic_results??[]).map(e=>({url:e.link,title:e.title,description:e.snippet})),s=r.length>=10&&o<10,d=s?o+1:o;return t.NextResponse.json({items:r,totalResults:100,totalResultsIsEstimate:!0,currentPage:o,totalPages:d,hasMore:s,query:i.trim()})}catch(a){let e=a instanceof Error?a.message:"Bing search failed.";return t.NextResponse.json({error:e},{status:500})}}async function n(){let e=!!(await (0,a.readConfig)()).bingApiKey;return t.NextResponse.json({configured:e})}e.s(["GET",0,n,"POST",0,r,"dynamic",0,"force-dynamic","runtime",0,"nodejs"])},540310,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),h=e.i(454415),g=e.i(37125),f=e.i(193695);e.i(530058);var y=e.i(605998),w=e.i(38862);let v=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/search/bing/route",pathname:"/api/search/bing",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/search/bing/route.ts",nextConfigOutput:"standalone",userland:w,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:A,serverHooks:E}=v;async function b(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),v.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/search/bing/route";w=w.replace(/\/index$/,"")||"/";let S=await v.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:E,params:b,nextConfig:R,parsedUrl:I,isDraftMode:C,prerenderManifest:T,routerServerContext:O,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,resolvedPathname:D,clientReferenceManifest:U,serverActionsManifest:P}=S,k=(0,o.normalizeAppPath)(w),j=!!(T.dynamicRoutes[k]||T.routes[D]),M=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,I,!1):t.end("This page could not be found"),null);if(j&&!C){let e=!!T.routes[D],t=T.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(R.adapterPath)return await M();throw new f.NoFallbackError}}let L=null;!j||v.isDev||C||(L="/index"===(L=D)?"/":L);let q=!0===v.isDev||!j,F=j&&!q;P&&U&&(0,s.setManifestsSingleton)({page:w,clientReferenceManifest:U,serverActionsManifest:P});let K=e.method||"GET",_=(0,i.getTracer)(),H=_.getActiveScopeSpan(),G=!!(null==O?void 0:O.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),z=(0,n.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,R,T,W);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let Y={params:b,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:q,incrementalCache:z,cacheLifeProfiles:R.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>v.onRequestError(e,t,r,n,O)},sharedContext:{buildId:A,deploymentId:E}},B=new l.NodeNextRequest(e),$=new l.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let n,s=async e=>v.handle(V,Y).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}`)}),o=async n=>{var i,o;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 s(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(!j)return await (0,p.sendResponse)(B,$,i,Y.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[g.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>=g.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,r=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:Y.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 v.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,O),t}},d=await v.handleResponse({req:e,nextConfig:R,cacheKey:L,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:W});if(!j)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",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,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return W&&j||u.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,$,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};G&&H?await o(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}},o),void 0,!G))}catch(t){if(t instanceof f.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,O),j)throw t;return await (0,p.sendResponse)(B,$,new Response(null,{status:500})),null}}e.s(["handler",0,b,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:A})},"routeModule",0,v,"serverHooks",0,E,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,A])}];
58
58
 
59
59
  //# sourceMappingURL=%5Broot-of-the-server%5D__0yx8vxp._.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 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.
@@ -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"))},478500,(e,t,r)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},761095,(e,t,r)=>{t.exports=e.x("node:net",()=>require("node:net"))},192441,638725,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(666680),n=e.i(478500),o=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()},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,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"))},478500,(e,t,r)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},761095,(e,t,r)=>{t.exports=e.x("node:net",()=>require("node:net"))},192441,638725,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(666680),n=e.i(478500),o=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()},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.