larkup 0.4.33 → 0.4.34
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.
- package/.next/standalone/apps/web/.next/BUILD_ID +1 -1
- package/.next/standalone/apps/web/.next/app-path-routes-manifest.json +6 -6
- package/.next/standalone/apps/web/.next/build-manifest.json +2 -2
- package/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/required-server-files.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/add/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/add.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/add.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/add.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/add.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/add.segments/add/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/api/analytics/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/chat/route.js +17 -17
- package/.next/standalone/apps/web/.next/server/app/api/connections/[channelId]/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/documents/move/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/gpu-activity/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/groups/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/marketplace/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/mcp/[connectionId]/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/mcp/[connectionId]/test/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/mcp/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/media/[id]/frame/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/media/[id]/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/media/jobs/[id]/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/media/stream/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/pdf-page/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/projects/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/tabular/query/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/tabular/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/upload-file/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/uploads/[...slug]/route.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/chat.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/chat.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/data/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/data.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/data.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/data.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/data.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/data.segments/data/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/index.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/widget-demo/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/widget-demo.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/widget-demo.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/widget-demo.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/widget-demo.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/widget-demo.segments/widget-demo/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app-paths-manifest.json +6 -6
- package/.next/standalone/apps/web/.next/server/chunks/309.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/7980.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/8251.js +1 -1
- package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
- package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
- package/.next/standalone/apps/web/.next/server/preview-props.json +3 -3
- package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/app/{layout-9488646cb4c66cc2.js → layout-f228024f0e979b5f.js} +1 -1
- package/.next/standalone/apps/web/package.json +1 -1
- package/.next/standalone/apps/web/server.js +1 -1
- package/package.json +2 -2
- /package/.next/standalone/apps/web/.next/static/{p_e6NjvpBe1keQgV1dGyZ → q5nI-oE0d9Y4_e7pFLgj7}/_buildManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{p_e6NjvpBe1keQgV1dGyZ → q5nI-oE0d9Y4_e7pFLgj7}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=492,a.ids=[492],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},8316:(a,b,c)=>{"use strict";c.d(b,{GX:()=>C,JH:()=>G,Nh:()=>A,fy:()=>z,me:()=>x,od:()=>B,uT:()=>F});var d=c(89112),e=c(77598),f=c(73024),g=c(76760),h=c.n(g),i=c(40707),j=c(71345);let k="__larkup_secret_set__",l=/^(authorization|proxy-authorization|cookie|set-cookie)$/i,m=/(token|secret|api[-_]?key|password|credential)/i,n=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function o(a){return h().join(a,"mcp-connections.json")}async function p(){let a=(0,d.i)();if(a)return await a.readState("mcp-connections")??[];let b=await (0,j.getProjectDataDir)();if(!b)return[];try{let a=JSON.parse(await f.promises.readFile(o(b),"utf8"));return Array.isArray(a)?a.filter(q).map(a=>({...a,transport:"sse"===a.transport?"sse":"http",connectionType:"proxy"===a.connectionType?"proxy":"direct",proxyAuthHeader:a.proxyAuthHeader??"Authorization"})):[]}catch{return[]}}function q(a){return!!a&&"object"==typeof a&&"string"==typeof a.id&&"string"==typeof a.name&&"string"==typeof a.url&&(void 0===a.transport||"http"===a.transport||"sse"===a.transport)&&(void 0===a.connectionType||"direct"===a.connectionType||"proxy"===a.connectionType)&&(void 0===a.proxyUrl||"string"==typeof a.proxyUrl)&&(void 0===a.proxyAuthToken||"string"==typeof a.proxyAuthToken)&&(void 0===a.proxyAuthHeader||"string"==typeof a.proxyAuthHeader)&&!!a.headers&&"object"==typeof a.headers&&"boolean"==typeof a.enabled&&"boolean"==typeof a.enabledForLocalChat&&"string"==typeof a.createdAt&&"string"==typeof a.updatedAt}async function r(a){let b=(0,d.i)();if(b)return void await b.writeState("mcp-connections",a);let c=await (0,j.requireProjectDataDir)();await f.promises.writeFile(o(c),JSON.stringify(a,null,2),"utf8")}function s(a){let b;if("string"!=typeof a||!a.trim())throw Error("MCP URL is required.");try{b=new URL(a.trim())}catch{throw Error("MCP URL must be a valid HTTP(S) URL.")}if(!["http:","https:"].includes(b.protocol)||b.username||b.password)throw Error("MCP URL must be an HTTP(S) URL without embedded credentials.");return b.toString()}function t(a,b){if("string"!=typeof a||!n.test(a.trim()))throw Error(`${b} must be a valid HTTP header name.`);return a.trim()}function u({connectionType:a,proxyUrl:b,proxyAuthHeader:c}){if("proxy"===a){if(void 0===b)throw Error("Proxy URL is required for proxy MCP connections.");s(b),t(c??"Authorization","Proxy auth header")}}function v(a){return{...a,proxyAuthToken:a.proxyAuthToken?k:a.proxyAuthToken,headers:Object.fromEntries(Object.entries(a.headers).map(([a,b])=>[a,(l.test(a)||m.test(a))&&b?k:b]))}}function w(a,b){let c=Object.fromEntries(Object.entries(void 0===b.headers?a.headers:function(a){if(void 0===a)return{};if(!a||"object"!=typeof a||Array.isArray(a))throw Error("MCP headers must be an object.");let b={};for(let[c,d]of Object.entries(a)){if(!n.test(c))throw Error(`Invalid MCP header name: ${c}`);if("string"!=typeof d)throw Error(`MCP header "${c}" must be text.`);if(/[\r\n]/.test(d))throw Error(`MCP header "${c}" cannot contain a newline.`);b[c]=d}return b}(b.headers)).map(([b,c])=>{if(c!==k)return[b,c];let d=Object.entries(a.headers).find(([a])=>a.toLowerCase()===b.toLowerCase())?.[1];return[b,d??""]})),d=void 0===b.connectionType?a.connectionType:function(a){if(void 0===a||"direct"===a)return"direct";if("proxy"===a)return"proxy";throw Error("MCP connection type must be Direct or Proxy.")}(b.connectionType),e=void 0===b.proxyUrl?a.proxyUrl:function(a){if("string"!=typeof a||a.trim())return s(a)}(b.proxyUrl),f=void 0===b.proxyAuthHeader?a.proxyAuthHeader??"Authorization":t(b.proxyAuthHeader,"Proxy auth header"),g=void 0===b.proxyAuthToken?a.proxyAuthToken:function(a){if(void 0!==a){if("string"!=typeof a)throw Error("Proxy auth token must be text.");if(/[\r\n]/.test(a))throw Error("Proxy auth token cannot contain a newline.");return a}}(b.proxyAuthToken),h=g===k?a.proxyAuthToken:g;return u({connectionType:d,proxyUrl:e,proxyAuthHeader:f}),{...a,name:void 0===b.name?a.name:"string"==typeof b.name&&b.name.trim()?b.name.trim().slice(0,120):(()=>{throw Error("MCP name is required.")})(),url:void 0===b.url?a.url:s(b.url),transport:void 0===b.transport?a.transport:function(a){if(void 0===a||"http"===a)return"http";if("sse"===a)return"sse";throw Error("MCP transport must be Streamable HTTP or SSE.")}(b.transport),connectionType:d,proxyUrl:e,proxyAuthToken:h,proxyAuthHeader:f,headers:c,enabled:void 0===b.enabled?a.enabled:!!b.enabled,enabledForLocalChat:void 0===b.enabledForLocalChat?a.enabledForLocalChat:!!b.enabledForLocalChat,updatedAt:new Date().toISOString()}}async function x(){return(await p()).map(v)}async function y(a){return(await p()).find(b=>b.id===a)??null}async function z(){return(await p()).filter(a=>a.enabled)}async function A(a){let b=new Date().toISOString(),c=w({id:(0,e.randomUUID)(),name:"",url:"",transport:"http",connectionType:"direct",proxyAuthHeader:"Authorization",headers:{},enabled:!0,enabledForLocalChat:!1,createdAt:b,updatedAt:b},a),d=await p();return d.push(c),await r(d),v(c)}async function B(a,b){let c=await p(),d=c.findIndex(b=>b.id===a);if(-1===d)return null;let e=w(c[d],b);return c[d]=e,await r(c),v(e)}async function C(a){let b=await p(),c=b.filter(b=>b.id!==a);return c.length!==b.length&&(await r(c),!0)}function D(a){if("proxy"!==a.connectionType)return{type:a.transport,url:a.url,headers:a.headers};u(a);let b=a.proxyAuthHeader??"Authorization",c=a.proxyAuthToken?{...Object.fromEntries(Object.entries(a.headers).filter(([a])=>a.toLowerCase()!==b.toLowerCase())),[b]:a.proxyAuthToken}:a.headers;return{type:a.transport,url:a.proxyUrl,headers:c}}async function E(a){let b=await (0,i.MT)({transport:D(a)});try{let c=await b.tools();return{tools:Object.fromEntries(Object.entries(c).map(([b,c])=>[`mcp_${a.id.replace(/-/g,"").slice(0,10)}_${b}`,c])),close:()=>b.close()}}catch(a){throw await b.close(),a}}async function F(a={}){let b=a.connectionIds?new Set(a.connectionIds):null,c=(await p()).filter(c=>c.enabled&&(a.forLocalChat?c.enabledForLocalChat:b?.has(c.id))),d=[],e={},f=[],g=[];for(let a of c)try{let b=await E(a);d.push(b),Object.assign(e,b.tools),f.push(a.id)}catch(b){g.push({connectionId:a.id,message:b instanceof Error?b.message:String(b)})}return{tools:e,connectedIds:f,failures:g,close:async()=>{await Promise.allSettled(d.map(a=>a.close()))}}}async function G(a){let b=await y(a);if(!b)throw Error("MCP connection not found.");let c=await (0,i.MT)({transport:D(b)});try{return{toolCount:Object.keys(await c.tools()).length}}finally{await c.close()}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33610:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>f,PUT:()=>e});var d=c(8316);async function e(a,{params:b}){try{let{connectionId:c}=await b,e=await (0,d.od)(c,await a.json());if(!e)return Response.json({error:"MCP connection not found"},{status:404});return Response.json(e)}catch(a){return Response.json({error:a instanceof Error?a.message:String(a)},{status:400})}}async function f(a,{params:b}){try{let{connectionId:a}=await b;if(!await (0,d.GX)(a))return Response.json({error:"MCP connection not found"},{status:404});return Response.json({success:!0})}catch(a){return Response.json({error:String(a)},{status:500})}}},33873:a=>{"use strict";a.exports=require("path")},35287:()=>{},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},54676:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(83377),e=c(74990),f=c(66469),g=c(24261),h=c(90095),i=c(44099),j=c(261),k=c(19461),l=c(55659),m=c(56845),n=c(45054),o=c(99168),p=c(60794),q=c(6200),r=c(93281),s=c(86439),t=c(82238),u=c(11215);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp/[connectionId]/route",pathname:"/api/mcp/[connectionId]",filename:"route",bundlePath:"app/api/mcp/[connectionId]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup/apps/web/app/api/mcp/[connectionId]/route.ts",nextConfigOutput:"standalone",userland:()=>c(33610),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp/[connectionId]/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71345:(a,b,c)=>{"use strict";c.d(b,{J:()=>H,Rm:()=>z,Zd:()=>x,_d:()=>A,eL:()=>E,gA:()=>D,getProjectDataDir:()=>B,oB:()=>F,requireProjectDataDir:()=>C,xx:()=>G,zd:()=>p});var d=c(89112),e=c(16698),f=c(77598),g=c(73024),h=c(77030),i=c.n(h),j=c(76760),k=c.n(j),l=c(83081);let m={activeProjectId:null,projects:[]},n=new e.AsyncLocalStorage,o=Promise.resolve();function p(){let a=process.env.LARKUP_DATA_DIR?.trim();return a?k().resolve(a):k().join(process.cwd(),".larkup")}function q(){return k().join(p(),"projects")}function r(a){let b=o.then(a,a);return o=b.catch(()=>void 0),b}async function s(){try{let a=await g.promises.readdir(q(),{withFileTypes:!0}),b=(await Promise.all(a.filter(a=>a.isDirectory()).map(async a=>{try{return JSON.parse(await g.promises.readFile(k().join(q(),a.name,"project.json"),"utf8"))}catch{return null}}))).filter(a=>null!==a);return{activeProjectId:b.find(a=>a.active)?.id??null,projects:b}}catch{return m}}async function t(a){return await g.promises.mkdir(q(),{recursive:!0}),await Promise.all(a.projects.map(async b=>{let c={...b,active:b.id===a.activeProjectId};await g.promises.mkdir(y(b.id),{recursive:!0}),await g.promises.writeFile(k().join(y(b.id),"project.json"),JSON.stringify(c,null,2),"utf8")})),a}async function u(a){return new Promise(b=>{let c=i().createServer();c.once("error",()=>b(!1)),c.once("listening",()=>c.close(()=>b(!0))),c.listen(a,"127.0.0.1")})}async function v(a){let b=Math.max(8079,...a.projects.map(a=>a.port))+1;for(;!await u(b);)b+=1;return b}function w(a){return a.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup"}function x(a,b){return n.run({projectId:a},b)}function y(a){return k().join(q(),a)}async function z(){return s()}async function A(){let a=(0,d.i)();if(a)return a.project;let b=await z(),c=n.getStore()?.projectId??b.activeProjectId;return b.projects.find(a=>a.id===c)??null}async function B(){if((0,d.i)())return null;let a=await A();if(!a)return null;let b=y(a.id);return await g.promises.mkdir(b,{recursive:!0}),b}async function C(){if((0,d.i)())throw Error("This operation requires a workspace storage adapter.");let a=await B();if(a)return a;if(n.getStore()?.projectId)throw Error(`Project "${n.getStore()?.projectId}" does not exist.`);let{project:b}=await D("My project");return y(b.id)}function D(a){return r(async()=>{let b,c=await s(),d=new Date().toISOString(),e={id:(0,f.randomUUID)(),name:a.trim()||"Untitled project",port:await v(c),createdAt:d,updatedAt:d},h=y(e.id);await g.promises.mkdir(k().join(h,"releases"),{recursive:!0}),await Promise.all([g.promises.writeFile(k().join(h,"project.json"),JSON.stringify({...e,active:!0},null,2),"utf8"),g.promises.writeFile(k().join(h,"config.json"),JSON.stringify((b=process.env.LARKUP_DATA_DIR?.trim(),{...l.P,projectName:w(e.name),storeConfig:{...l.P.storeConfig,mode:"local",dbPath:b?k().join(p(),"projects",e.id,"index"):`./.larkup/projects/${e.id}/index`},updatedAt:new Date().toISOString()}),null,2),"utf8"),g.promises.writeFile(k().join(h,"groups.json"),JSON.stringify([{id:"default",name:"Default",description:"Sources added without a specific group.",icon:"\uD83D\uDCDA",assistantEnabled:!0,createdAt:d,updatedAt:d}],null,2),"utf8"),g.promises.writeFile(k().join(h,"documents.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"deployments.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"automations.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"jobs.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"runtime.json"),"{}\n","utf8")]);let i={activeProjectId:e.id,projects:[...c.projects.map(a=>({...a,active:!1})),e]};return await t(i),{workspace:i,project:e}})}function E(a){return r(async()=>{let b=await s();return b.projects.some(b=>b.id===a)?t({...b,activeProjectId:a}):b})}function F(a,b){return r(async()=>{let c=await s(),d=c.projects.map(c=>c.id===a?{...c,name:b.trim()||c.name,updatedAt:new Date().toISOString()}:c),e=await t({...c,projects:d}),f=d.find(b=>b.id===a);if(f){let b=k().join(y(a),"config.json");try{let a=JSON.parse(await g.promises.readFile(b,"utf8"));await g.promises.writeFile(b,JSON.stringify({...a,projectName:w(f.name),updatedAt:new Date().toISOString()},null,2),"utf8")}catch{}}return e})}function G(a){return r(async()=>{let b=await s(),c=b.projects.filter(b=>b.id!==a);return await g.promises.rm(y(a),{recursive:!0,force:!0}),t({activeProjectId:b.activeProjectId===a?c[0]?.id??null:b.activeProjectId,projects:c})})}async function H(a){let b=q();if(a!==b)throw Error(`Confirmation must exactly match ${b}.`);await r(async()=>{await g.promises.rm(b,{recursive:!0,force:!0})})}},73024:a=>{"use strict";a.exports=require("node:fs")},75039:()=>{},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},83081:(a,b,c)=>{"use strict";c.d(b,{P:()=>d});let d={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:"",visionModelId:"",visionApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",defaultSandboxProvider:"local",sandboxProviderConfigs:{},toolConfigs:{},skills:[],updatedAt:new Date(0).toISOString()}},83377:(a,b,c)=>{"use strict";a.exports=c(44870)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89112:(a,b,c)=>{"use strict";c.d(b,{i:()=>e});let d=new(c(16698)).AsyncLocalStorage;function e(){return d.getStore()}},99168:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(11816),e=c(56249),f=c(60794);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2626,9331,7720,6736],()=>b(b.s=54676));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=492,a.ids=[492],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},8316:(a,b,c)=>{"use strict";c.d(b,{GX:()=>C,JH:()=>G,Nh:()=>A,fy:()=>z,me:()=>x,od:()=>B,uT:()=>F});var d=c(89112),e=c(77598),f=c(73024),g=c(76760),h=c.n(g),i=c(40707),j=c(71345);let k="__larkup_secret_set__",l=/^(authorization|proxy-authorization|cookie|set-cookie)$/i,m=/(token|secret|api[-_]?key|password|credential)/i,n=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function o(a){return h().join(a,"mcp-connections.json")}async function p(){let a=(0,d.i)();if(a)return await a.readState("mcp-connections")??[];let b=await (0,j.getProjectDataDir)();if(!b)return[];try{let a=JSON.parse(await f.promises.readFile(o(b),"utf8"));return Array.isArray(a)?a.filter(q).map(a=>({...a,transport:"sse"===a.transport?"sse":"http",connectionType:"proxy"===a.connectionType?"proxy":"direct",proxyAuthHeader:a.proxyAuthHeader??"Authorization"})):[]}catch{return[]}}function q(a){return!!a&&"object"==typeof a&&"string"==typeof a.id&&"string"==typeof a.name&&"string"==typeof a.url&&(void 0===a.transport||"http"===a.transport||"sse"===a.transport)&&(void 0===a.connectionType||"direct"===a.connectionType||"proxy"===a.connectionType)&&(void 0===a.proxyUrl||"string"==typeof a.proxyUrl)&&(void 0===a.proxyAuthToken||"string"==typeof a.proxyAuthToken)&&(void 0===a.proxyAuthHeader||"string"==typeof a.proxyAuthHeader)&&!!a.headers&&"object"==typeof a.headers&&"boolean"==typeof a.enabled&&"boolean"==typeof a.enabledForLocalChat&&"string"==typeof a.createdAt&&"string"==typeof a.updatedAt}async function r(a){let b=(0,d.i)();if(b)return void await b.writeState("mcp-connections",a);let c=await (0,j.requireProjectDataDir)();await f.promises.writeFile(o(c),JSON.stringify(a,null,2),"utf8")}function s(a){let b;if("string"!=typeof a||!a.trim())throw Error("MCP URL is required.");try{b=new URL(a.trim())}catch{throw Error("MCP URL must be a valid HTTP(S) URL.")}if(!["http:","https:"].includes(b.protocol)||b.username||b.password)throw Error("MCP URL must be an HTTP(S) URL without embedded credentials.");return b.toString()}function t(a,b){if("string"!=typeof a||!n.test(a.trim()))throw Error(`${b} must be a valid HTTP header name.`);return a.trim()}function u({connectionType:a,proxyUrl:b,proxyAuthHeader:c}){if("proxy"===a){if(void 0===b)throw Error("Proxy URL is required for proxy MCP connections.");s(b),t(c??"Authorization","Proxy auth header")}}function v(a){return{...a,proxyAuthToken:a.proxyAuthToken?k:a.proxyAuthToken,headers:Object.fromEntries(Object.entries(a.headers).map(([a,b])=>[a,(l.test(a)||m.test(a))&&b?k:b]))}}function w(a,b){let c=Object.fromEntries(Object.entries(void 0===b.headers?a.headers:function(a){if(void 0===a)return{};if(!a||"object"!=typeof a||Array.isArray(a))throw Error("MCP headers must be an object.");let b={};for(let[c,d]of Object.entries(a)){if(!n.test(c))throw Error(`Invalid MCP header name: ${c}`);if("string"!=typeof d)throw Error(`MCP header "${c}" must be text.`);if(/[\r\n]/.test(d))throw Error(`MCP header "${c}" cannot contain a newline.`);b[c]=d}return b}(b.headers)).map(([b,c])=>{if(c!==k)return[b,c];let d=Object.entries(a.headers).find(([a])=>a.toLowerCase()===b.toLowerCase())?.[1];return[b,d??""]})),d=void 0===b.connectionType?a.connectionType:function(a){if(void 0===a||"direct"===a)return"direct";if("proxy"===a)return"proxy";throw Error("MCP connection type must be Direct or Proxy.")}(b.connectionType),e=void 0===b.proxyUrl?a.proxyUrl:function(a){if("string"!=typeof a||a.trim())return s(a)}(b.proxyUrl),f=void 0===b.proxyAuthHeader?a.proxyAuthHeader??"Authorization":t(b.proxyAuthHeader,"Proxy auth header"),g=void 0===b.proxyAuthToken?a.proxyAuthToken:function(a){if(void 0!==a){if("string"!=typeof a)throw Error("Proxy auth token must be text.");if(/[\r\n]/.test(a))throw Error("Proxy auth token cannot contain a newline.");return a}}(b.proxyAuthToken),h=g===k?a.proxyAuthToken:g;return u({connectionType:d,proxyUrl:e,proxyAuthHeader:f}),{...a,name:void 0===b.name?a.name:"string"==typeof b.name&&b.name.trim()?b.name.trim().slice(0,120):(()=>{throw Error("MCP name is required.")})(),url:void 0===b.url?a.url:s(b.url),transport:void 0===b.transport?a.transport:function(a){if(void 0===a||"http"===a)return"http";if("sse"===a)return"sse";throw Error("MCP transport must be Streamable HTTP or SSE.")}(b.transport),connectionType:d,proxyUrl:e,proxyAuthToken:h,proxyAuthHeader:f,headers:c,enabled:void 0===b.enabled?a.enabled:!!b.enabled,enabledForLocalChat:void 0===b.enabledForLocalChat?a.enabledForLocalChat:!!b.enabledForLocalChat,updatedAt:new Date().toISOString()}}async function x(){return(await p()).map(v)}async function y(a){return(await p()).find(b=>b.id===a)??null}async function z(){return(await p()).filter(a=>a.enabled)}async function A(a){let b=new Date().toISOString(),c=w({id:(0,e.randomUUID)(),name:"",url:"",transport:"http",connectionType:"direct",proxyAuthHeader:"Authorization",headers:{},enabled:!0,enabledForLocalChat:!1,createdAt:b,updatedAt:b},a),d=await p();return d.push(c),await r(d),v(c)}async function B(a,b){let c=await p(),d=c.findIndex(b=>b.id===a);if(-1===d)return null;let e=w(c[d],b);return c[d]=e,await r(c),v(e)}async function C(a){let b=await p(),c=b.filter(b=>b.id!==a);return c.length!==b.length&&(await r(c),!0)}function D(a){if("proxy"!==a.connectionType)return{type:a.transport,url:a.url,headers:a.headers};u(a);let b=a.proxyAuthHeader??"Authorization",c=a.proxyAuthToken?{...Object.fromEntries(Object.entries(a.headers).filter(([a])=>a.toLowerCase()!==b.toLowerCase())),[b]:a.proxyAuthToken}:a.headers;return{type:a.transport,url:a.proxyUrl,headers:c}}async function E(a){let b=await (0,i.MT)({transport:D(a)});try{let c=await b.tools();return{tools:Object.fromEntries(Object.entries(c).map(([b,c])=>[`mcp_${a.id.replace(/-/g,"").slice(0,10)}_${b}`,c])),close:()=>b.close()}}catch(a){throw await b.close(),a}}async function F(a={}){let b=a.connectionIds?new Set(a.connectionIds):null,c=(await p()).filter(c=>c.enabled&&(a.forLocalChat?c.enabledForLocalChat:b?.has(c.id))),d=[],e={},f=[],g=[];for(let a of c)try{let b=await E(a);d.push(b),Object.assign(e,b.tools),f.push(a.id)}catch(b){g.push({connectionId:a.id,message:b instanceof Error?b.message:String(b)})}return{tools:e,connectedIds:f,failures:g,close:async()=>{await Promise.allSettled(d.map(a=>a.close()))}}}async function G(a){let b=await y(a);if(!b)throw Error("MCP connection not found.");let c=await (0,i.MT)({transport:D(b)});try{return{toolCount:Object.keys(await c.tools()).length}}finally{await c.close()}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33610:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>f,PUT:()=>e});var d=c(8316);async function e(a,{params:b}){try{let{connectionId:c}=await b,e=await (0,d.od)(c,await a.json());if(!e)return Response.json({error:"MCP connection not found"},{status:404});return Response.json(e)}catch(a){return Response.json({error:a instanceof Error?a.message:String(a)},{status:400})}}async function f(a,{params:b}){try{let{connectionId:a}=await b;if(!await (0,d.GX)(a))return Response.json({error:"MCP connection not found"},{status:404});return Response.json({success:!0})}catch(a){return Response.json({error:String(a)},{status:500})}}},33873:a=>{"use strict";a.exports=require("path")},35287:()=>{},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},54676:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(83377),e=c(74990),f=c(66469),g=c(24261),h=c(90095),i=c(44099),j=c(261),k=c(19461),l=c(55659),m=c(56845),n=c(45054),o=c(99168),p=c(60794),q=c(6200),r=c(93281),s=c(86439),t=c(82238),u=c(11215);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp/[connectionId]/route",pathname:"/api/mcp/[connectionId]",filename:"route",bundlePath:"app/api/mcp/[connectionId]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup/apps/web/app/api/mcp/[connectionId]/route.ts",nextConfigOutput:"standalone",userland:()=>c(33610),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp/[connectionId]/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71345:(a,b,c)=>{"use strict";c.d(b,{J:()=>H,Rm:()=>z,Zd:()=>x,_d:()=>A,eL:()=>E,gA:()=>D,getProjectDataDir:()=>B,oB:()=>F,requireProjectDataDir:()=>C,xx:()=>G,zd:()=>p});var d=c(89112),e=c(16698),f=c(77598),g=c(73024),h=c(77030),i=c.n(h),j=c(76760),k=c.n(j),l=c(83081);let m={activeProjectId:null,projects:[]},n=new e.AsyncLocalStorage,o=Promise.resolve();function p(){let a=process.env.LARKUP_DATA_DIR?.trim();return a?k().resolve(a):k().join(process.cwd(),".larkup")}function q(){return k().join(p(),"projects")}function r(a){let b=o.then(a,a);return o=b.catch(()=>void 0),b}async function s(){try{let a=await g.promises.readdir(q(),{withFileTypes:!0}),b=(await Promise.all(a.filter(a=>a.isDirectory()).map(async a=>{try{return JSON.parse(await g.promises.readFile(k().join(q(),a.name,"project.json"),"utf8"))}catch{return null}}))).filter(a=>null!==a);return{activeProjectId:b.find(a=>a.active)?.id??null,projects:b}}catch{return m}}async function t(a){return await g.promises.mkdir(q(),{recursive:!0}),await Promise.all(a.projects.map(async b=>{let c={...b,active:b.id===a.activeProjectId};await g.promises.mkdir(y(b.id),{recursive:!0}),await g.promises.writeFile(k().join(y(b.id),"project.json"),JSON.stringify(c,null,2),"utf8")})),a}async function u(a){return new Promise(b=>{let c=i().createServer();c.once("error",()=>b(!1)),c.once("listening",()=>c.close(()=>b(!0))),c.listen(a,"127.0.0.1")})}async function v(a){let b=Math.max(8079,...a.projects.map(a=>a.port))+1;for(;!await u(b);)b+=1;return b}function w(a){return a.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup"}function x(a,b){return n.run({projectId:a},b)}function y(a){return k().join(q(),a)}async function z(){return s()}async function A(){let a=(0,d.i)();if(a)return a.project;let b=await z(),c=n.getStore()?.projectId??b.activeProjectId;return b.projects.find(a=>a.id===c)??null}async function B(){if((0,d.i)())return null;let a=await A();if(!a)return null;let b=y(a.id);return await g.promises.mkdir(b,{recursive:!0}),b}async function C(){if((0,d.i)())throw Error("This operation requires a workspace storage adapter.");let a=await B();if(a)return a;if(n.getStore()?.projectId)throw Error(`Project "${n.getStore()?.projectId}" does not exist.`);let{project:b}=await D("My project");return y(b.id)}function D(a){return r(async()=>{let b,c=await s(),d=new Date().toISOString(),e={id:(0,f.randomUUID)(),name:a.trim()||"Untitled project",port:await v(c),createdAt:d,updatedAt:d},h=y(e.id);await g.promises.mkdir(k().join(h,"releases"),{recursive:!0}),await Promise.all([g.promises.writeFile(k().join(h,"project.json"),JSON.stringify({...e,active:!0},null,2),"utf8"),g.promises.writeFile(k().join(h,"config.json"),JSON.stringify((b=process.env.LARKUP_DATA_DIR?.trim(),{...l.P,projectName:w(e.name),storeConfig:{...l.P.storeConfig,mode:"local",dbPath:b?k().join(p(),"projects",e.id,"index"):`./.larkup/projects/${e.id}/index`},updatedAt:new Date().toISOString()}),null,2),"utf8"),g.promises.writeFile(k().join(h,"groups.json"),JSON.stringify([{id:"default",name:"Default",description:"Sources added without a specific group.",icon:"\uD83D\uDCDA",assistantEnabled:!0,createdAt:d,updatedAt:d}],null,2),"utf8"),g.promises.writeFile(k().join(h,"documents.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"deployments.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"automations.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"jobs.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"runtime.json"),"{}\n","utf8")]);let i={activeProjectId:e.id,projects:[...c.projects.map(a=>({...a,active:!1})),e]};return await t(i),{workspace:i,project:e}})}function E(a){return r(async()=>{let b=await s();return b.projects.some(b=>b.id===a)?t({...b,activeProjectId:a}):b})}function F(a,b){return r(async()=>{let c=await s(),d=c.projects.map(c=>c.id===a?{...c,name:b.trim()||c.name,updatedAt:new Date().toISOString()}:c),e=await t({...c,projects:d}),f=d.find(b=>b.id===a);if(f){let b=k().join(y(a),"config.json");try{let a=JSON.parse(await g.promises.readFile(b,"utf8"));await g.promises.writeFile(b,JSON.stringify({...a,projectName:w(f.name),updatedAt:new Date().toISOString()},null,2),"utf8")}catch{}}return e})}function G(a){return r(async()=>{let b=await s(),c=b.projects.filter(b=>b.id!==a);return await g.promises.rm(y(a),{recursive:!0,force:!0}),t({activeProjectId:b.activeProjectId===a?c[0]?.id??null:b.activeProjectId,projects:c})})}async function H(a){let b=q();if(a!==b)throw Error(`Confirmation must exactly match ${b}.`);await r(async()=>{await g.promises.rm(b,{recursive:!0,force:!0})})}},73024:a=>{"use strict";a.exports=require("node:fs")},75039:()=>{},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},83081:(a,b,c)=>{"use strict";c.d(b,{P:()=>d});let d={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:"",visionModelId:"",visionApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",defaultSandboxProvider:"local",sandboxProviderConfigs:{},toolConfigs:{},skills:[],updatedAt:new Date(0).toISOString()}},83377:(a,b,c)=>{"use strict";a.exports=c(44870)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89112:(a,b,c)=>{"use strict";c.d(b,{N:()=>f,i:()=>e});let d=new(c(16698)).AsyncLocalStorage;function e(){return d.getStore()}function f(a,b){return d.run(a,b)}},99168:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(11816),e=c(56249),f=c(60794);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2626,9331,7720,6736],()=>b(b.s=54676));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=2931,a.ids=[2931],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},8316:(a,b,c)=>{"use strict";c.d(b,{GX:()=>C,JH:()=>G,Nh:()=>A,fy:()=>z,me:()=>x,od:()=>B,uT:()=>F});var d=c(89112),e=c(77598),f=c(73024),g=c(76760),h=c.n(g),i=c(40707),j=c(71345);let k="__larkup_secret_set__",l=/^(authorization|proxy-authorization|cookie|set-cookie)$/i,m=/(token|secret|api[-_]?key|password|credential)/i,n=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function o(a){return h().join(a,"mcp-connections.json")}async function p(){let a=(0,d.i)();if(a)return await a.readState("mcp-connections")??[];let b=await (0,j.getProjectDataDir)();if(!b)return[];try{let a=JSON.parse(await f.promises.readFile(o(b),"utf8"));return Array.isArray(a)?a.filter(q).map(a=>({...a,transport:"sse"===a.transport?"sse":"http",connectionType:"proxy"===a.connectionType?"proxy":"direct",proxyAuthHeader:a.proxyAuthHeader??"Authorization"})):[]}catch{return[]}}function q(a){return!!a&&"object"==typeof a&&"string"==typeof a.id&&"string"==typeof a.name&&"string"==typeof a.url&&(void 0===a.transport||"http"===a.transport||"sse"===a.transport)&&(void 0===a.connectionType||"direct"===a.connectionType||"proxy"===a.connectionType)&&(void 0===a.proxyUrl||"string"==typeof a.proxyUrl)&&(void 0===a.proxyAuthToken||"string"==typeof a.proxyAuthToken)&&(void 0===a.proxyAuthHeader||"string"==typeof a.proxyAuthHeader)&&!!a.headers&&"object"==typeof a.headers&&"boolean"==typeof a.enabled&&"boolean"==typeof a.enabledForLocalChat&&"string"==typeof a.createdAt&&"string"==typeof a.updatedAt}async function r(a){let b=(0,d.i)();if(b)return void await b.writeState("mcp-connections",a);let c=await (0,j.requireProjectDataDir)();await f.promises.writeFile(o(c),JSON.stringify(a,null,2),"utf8")}function s(a){let b;if("string"!=typeof a||!a.trim())throw Error("MCP URL is required.");try{b=new URL(a.trim())}catch{throw Error("MCP URL must be a valid HTTP(S) URL.")}if(!["http:","https:"].includes(b.protocol)||b.username||b.password)throw Error("MCP URL must be an HTTP(S) URL without embedded credentials.");return b.toString()}function t(a,b){if("string"!=typeof a||!n.test(a.trim()))throw Error(`${b} must be a valid HTTP header name.`);return a.trim()}function u({connectionType:a,proxyUrl:b,proxyAuthHeader:c}){if("proxy"===a){if(void 0===b)throw Error("Proxy URL is required for proxy MCP connections.");s(b),t(c??"Authorization","Proxy auth header")}}function v(a){return{...a,proxyAuthToken:a.proxyAuthToken?k:a.proxyAuthToken,headers:Object.fromEntries(Object.entries(a.headers).map(([a,b])=>[a,(l.test(a)||m.test(a))&&b?k:b]))}}function w(a,b){let c=Object.fromEntries(Object.entries(void 0===b.headers?a.headers:function(a){if(void 0===a)return{};if(!a||"object"!=typeof a||Array.isArray(a))throw Error("MCP headers must be an object.");let b={};for(let[c,d]of Object.entries(a)){if(!n.test(c))throw Error(`Invalid MCP header name: ${c}`);if("string"!=typeof d)throw Error(`MCP header "${c}" must be text.`);if(/[\r\n]/.test(d))throw Error(`MCP header "${c}" cannot contain a newline.`);b[c]=d}return b}(b.headers)).map(([b,c])=>{if(c!==k)return[b,c];let d=Object.entries(a.headers).find(([a])=>a.toLowerCase()===b.toLowerCase())?.[1];return[b,d??""]})),d=void 0===b.connectionType?a.connectionType:function(a){if(void 0===a||"direct"===a)return"direct";if("proxy"===a)return"proxy";throw Error("MCP connection type must be Direct or Proxy.")}(b.connectionType),e=void 0===b.proxyUrl?a.proxyUrl:function(a){if("string"!=typeof a||a.trim())return s(a)}(b.proxyUrl),f=void 0===b.proxyAuthHeader?a.proxyAuthHeader??"Authorization":t(b.proxyAuthHeader,"Proxy auth header"),g=void 0===b.proxyAuthToken?a.proxyAuthToken:function(a){if(void 0!==a){if("string"!=typeof a)throw Error("Proxy auth token must be text.");if(/[\r\n]/.test(a))throw Error("Proxy auth token cannot contain a newline.");return a}}(b.proxyAuthToken),h=g===k?a.proxyAuthToken:g;return u({connectionType:d,proxyUrl:e,proxyAuthHeader:f}),{...a,name:void 0===b.name?a.name:"string"==typeof b.name&&b.name.trim()?b.name.trim().slice(0,120):(()=>{throw Error("MCP name is required.")})(),url:void 0===b.url?a.url:s(b.url),transport:void 0===b.transport?a.transport:function(a){if(void 0===a||"http"===a)return"http";if("sse"===a)return"sse";throw Error("MCP transport must be Streamable HTTP or SSE.")}(b.transport),connectionType:d,proxyUrl:e,proxyAuthToken:h,proxyAuthHeader:f,headers:c,enabled:void 0===b.enabled?a.enabled:!!b.enabled,enabledForLocalChat:void 0===b.enabledForLocalChat?a.enabledForLocalChat:!!b.enabledForLocalChat,updatedAt:new Date().toISOString()}}async function x(){return(await p()).map(v)}async function y(a){return(await p()).find(b=>b.id===a)??null}async function z(){return(await p()).filter(a=>a.enabled)}async function A(a){let b=new Date().toISOString(),c=w({id:(0,e.randomUUID)(),name:"",url:"",transport:"http",connectionType:"direct",proxyAuthHeader:"Authorization",headers:{},enabled:!0,enabledForLocalChat:!1,createdAt:b,updatedAt:b},a),d=await p();return d.push(c),await r(d),v(c)}async function B(a,b){let c=await p(),d=c.findIndex(b=>b.id===a);if(-1===d)return null;let e=w(c[d],b);return c[d]=e,await r(c),v(e)}async function C(a){let b=await p(),c=b.filter(b=>b.id!==a);return c.length!==b.length&&(await r(c),!0)}function D(a){if("proxy"!==a.connectionType)return{type:a.transport,url:a.url,headers:a.headers};u(a);let b=a.proxyAuthHeader??"Authorization",c=a.proxyAuthToken?{...Object.fromEntries(Object.entries(a.headers).filter(([a])=>a.toLowerCase()!==b.toLowerCase())),[b]:a.proxyAuthToken}:a.headers;return{type:a.transport,url:a.proxyUrl,headers:c}}async function E(a){let b=await (0,i.MT)({transport:D(a)});try{let c=await b.tools();return{tools:Object.fromEntries(Object.entries(c).map(([b,c])=>[`mcp_${a.id.replace(/-/g,"").slice(0,10)}_${b}`,c])),close:()=>b.close()}}catch(a){throw await b.close(),a}}async function F(a={}){let b=a.connectionIds?new Set(a.connectionIds):null,c=(await p()).filter(c=>c.enabled&&(a.forLocalChat?c.enabledForLocalChat:b?.has(c.id))),d=[],e={},f=[],g=[];for(let a of c)try{let b=await E(a);d.push(b),Object.assign(e,b.tools),f.push(a.id)}catch(b){g.push({connectionId:a.id,message:b instanceof Error?b.message:String(b)})}return{tools:e,connectedIds:f,failures:g,close:async()=>{await Promise.allSettled(d.map(a=>a.close()))}}}async function G(a){let b=await y(a);if(!b)throw Error("MCP connection not found.");let c=await (0,i.MT)({transport:D(b)});try{return{toolCount:Object.keys(await c.tools()).length}}finally{await c.close()}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},35287:()=>{},43565:(a,b,c)=>{"use strict";c.r(b),c.d(b,{POST:()=>e});var d=c(8316);async function e(a,{params:b}){try{let{connectionId:a}=await b;return Response.json(await (0,d.JH)(a))}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:a},{status:a.includes("not found")?404:502})}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71345:(a,b,c)=>{"use strict";c.d(b,{J:()=>H,Rm:()=>z,Zd:()=>x,_d:()=>A,eL:()=>E,gA:()=>D,getProjectDataDir:()=>B,oB:()=>F,requireProjectDataDir:()=>C,xx:()=>G,zd:()=>p});var d=c(89112),e=c(16698),f=c(77598),g=c(73024),h=c(77030),i=c.n(h),j=c(76760),k=c.n(j),l=c(83081);let m={activeProjectId:null,projects:[]},n=new e.AsyncLocalStorage,o=Promise.resolve();function p(){let a=process.env.LARKUP_DATA_DIR?.trim();return a?k().resolve(a):k().join(process.cwd(),".larkup")}function q(){return k().join(p(),"projects")}function r(a){let b=o.then(a,a);return o=b.catch(()=>void 0),b}async function s(){try{let a=await g.promises.readdir(q(),{withFileTypes:!0}),b=(await Promise.all(a.filter(a=>a.isDirectory()).map(async a=>{try{return JSON.parse(await g.promises.readFile(k().join(q(),a.name,"project.json"),"utf8"))}catch{return null}}))).filter(a=>null!==a);return{activeProjectId:b.find(a=>a.active)?.id??null,projects:b}}catch{return m}}async function t(a){return await g.promises.mkdir(q(),{recursive:!0}),await Promise.all(a.projects.map(async b=>{let c={...b,active:b.id===a.activeProjectId};await g.promises.mkdir(y(b.id),{recursive:!0}),await g.promises.writeFile(k().join(y(b.id),"project.json"),JSON.stringify(c,null,2),"utf8")})),a}async function u(a){return new Promise(b=>{let c=i().createServer();c.once("error",()=>b(!1)),c.once("listening",()=>c.close(()=>b(!0))),c.listen(a,"127.0.0.1")})}async function v(a){let b=Math.max(8079,...a.projects.map(a=>a.port))+1;for(;!await u(b);)b+=1;return b}function w(a){return a.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup"}function x(a,b){return n.run({projectId:a},b)}function y(a){return k().join(q(),a)}async function z(){return s()}async function A(){let a=(0,d.i)();if(a)return a.project;let b=await z(),c=n.getStore()?.projectId??b.activeProjectId;return b.projects.find(a=>a.id===c)??null}async function B(){if((0,d.i)())return null;let a=await A();if(!a)return null;let b=y(a.id);return await g.promises.mkdir(b,{recursive:!0}),b}async function C(){if((0,d.i)())throw Error("This operation requires a workspace storage adapter.");let a=await B();if(a)return a;if(n.getStore()?.projectId)throw Error(`Project "${n.getStore()?.projectId}" does not exist.`);let{project:b}=await D("My project");return y(b.id)}function D(a){return r(async()=>{let b,c=await s(),d=new Date().toISOString(),e={id:(0,f.randomUUID)(),name:a.trim()||"Untitled project",port:await v(c),createdAt:d,updatedAt:d},h=y(e.id);await g.promises.mkdir(k().join(h,"releases"),{recursive:!0}),await Promise.all([g.promises.writeFile(k().join(h,"project.json"),JSON.stringify({...e,active:!0},null,2),"utf8"),g.promises.writeFile(k().join(h,"config.json"),JSON.stringify((b=process.env.LARKUP_DATA_DIR?.trim(),{...l.P,projectName:w(e.name),storeConfig:{...l.P.storeConfig,mode:"local",dbPath:b?k().join(p(),"projects",e.id,"index"):`./.larkup/projects/${e.id}/index`},updatedAt:new Date().toISOString()}),null,2),"utf8"),g.promises.writeFile(k().join(h,"groups.json"),JSON.stringify([{id:"default",name:"Default",description:"Sources added without a specific group.",icon:"\uD83D\uDCDA",assistantEnabled:!0,createdAt:d,updatedAt:d}],null,2),"utf8"),g.promises.writeFile(k().join(h,"documents.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"deployments.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"automations.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"jobs.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"runtime.json"),"{}\n","utf8")]);let i={activeProjectId:e.id,projects:[...c.projects.map(a=>({...a,active:!1})),e]};return await t(i),{workspace:i,project:e}})}function E(a){return r(async()=>{let b=await s();return b.projects.some(b=>b.id===a)?t({...b,activeProjectId:a}):b})}function F(a,b){return r(async()=>{let c=await s(),d=c.projects.map(c=>c.id===a?{...c,name:b.trim()||c.name,updatedAt:new Date().toISOString()}:c),e=await t({...c,projects:d}),f=d.find(b=>b.id===a);if(f){let b=k().join(y(a),"config.json");try{let a=JSON.parse(await g.promises.readFile(b,"utf8"));await g.promises.writeFile(b,JSON.stringify({...a,projectName:w(f.name),updatedAt:new Date().toISOString()},null,2),"utf8")}catch{}}return e})}function G(a){return r(async()=>{let b=await s(),c=b.projects.filter(b=>b.id!==a);return await g.promises.rm(y(a),{recursive:!0,force:!0}),t({activeProjectId:b.activeProjectId===a?c[0]?.id??null:b.activeProjectId,projects:c})})}async function H(a){let b=q();if(a!==b)throw Error(`Confirmation must exactly match ${b}.`);await r(async()=>{await g.promises.rm(b,{recursive:!0,force:!0})})}},72934:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(83377),e=c(74990),f=c(66469),g=c(24261),h=c(90095),i=c(44099),j=c(261),k=c(19461),l=c(55659),m=c(56845),n=c(45054),o=c(99168),p=c(60794),q=c(6200),r=c(93281),s=c(86439),t=c(82238),u=c(11215);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp/[connectionId]/test/route",pathname:"/api/mcp/[connectionId]/test",filename:"route",bundlePath:"app/api/mcp/[connectionId]/test/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup/apps/web/app/api/mcp/[connectionId]/test/route.ts",nextConfigOutput:"standalone",userland:()=>c(43565),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp/[connectionId]/test/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},73024:a=>{"use strict";a.exports=require("node:fs")},75039:()=>{},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},83081:(a,b,c)=>{"use strict";c.d(b,{P:()=>d});let d={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:"",visionModelId:"",visionApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",defaultSandboxProvider:"local",sandboxProviderConfigs:{},toolConfigs:{},skills:[],updatedAt:new Date(0).toISOString()}},83377:(a,b,c)=>{"use strict";a.exports=c(44870)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89112:(a,b,c)=>{"use strict";c.d(b,{i:()=>e});let d=new(c(16698)).AsyncLocalStorage;function e(){return d.getStore()}},99168:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(11816),e=c(56249),f=c(60794);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2626,9331,7720,6736],()=>b(b.s=72934));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=2931,a.ids=[2931],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},8316:(a,b,c)=>{"use strict";c.d(b,{GX:()=>C,JH:()=>G,Nh:()=>A,fy:()=>z,me:()=>x,od:()=>B,uT:()=>F});var d=c(89112),e=c(77598),f=c(73024),g=c(76760),h=c.n(g),i=c(40707),j=c(71345);let k="__larkup_secret_set__",l=/^(authorization|proxy-authorization|cookie|set-cookie)$/i,m=/(token|secret|api[-_]?key|password|credential)/i,n=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function o(a){return h().join(a,"mcp-connections.json")}async function p(){let a=(0,d.i)();if(a)return await a.readState("mcp-connections")??[];let b=await (0,j.getProjectDataDir)();if(!b)return[];try{let a=JSON.parse(await f.promises.readFile(o(b),"utf8"));return Array.isArray(a)?a.filter(q).map(a=>({...a,transport:"sse"===a.transport?"sse":"http",connectionType:"proxy"===a.connectionType?"proxy":"direct",proxyAuthHeader:a.proxyAuthHeader??"Authorization"})):[]}catch{return[]}}function q(a){return!!a&&"object"==typeof a&&"string"==typeof a.id&&"string"==typeof a.name&&"string"==typeof a.url&&(void 0===a.transport||"http"===a.transport||"sse"===a.transport)&&(void 0===a.connectionType||"direct"===a.connectionType||"proxy"===a.connectionType)&&(void 0===a.proxyUrl||"string"==typeof a.proxyUrl)&&(void 0===a.proxyAuthToken||"string"==typeof a.proxyAuthToken)&&(void 0===a.proxyAuthHeader||"string"==typeof a.proxyAuthHeader)&&!!a.headers&&"object"==typeof a.headers&&"boolean"==typeof a.enabled&&"boolean"==typeof a.enabledForLocalChat&&"string"==typeof a.createdAt&&"string"==typeof a.updatedAt}async function r(a){let b=(0,d.i)();if(b)return void await b.writeState("mcp-connections",a);let c=await (0,j.requireProjectDataDir)();await f.promises.writeFile(o(c),JSON.stringify(a,null,2),"utf8")}function s(a){let b;if("string"!=typeof a||!a.trim())throw Error("MCP URL is required.");try{b=new URL(a.trim())}catch{throw Error("MCP URL must be a valid HTTP(S) URL.")}if(!["http:","https:"].includes(b.protocol)||b.username||b.password)throw Error("MCP URL must be an HTTP(S) URL without embedded credentials.");return b.toString()}function t(a,b){if("string"!=typeof a||!n.test(a.trim()))throw Error(`${b} must be a valid HTTP header name.`);return a.trim()}function u({connectionType:a,proxyUrl:b,proxyAuthHeader:c}){if("proxy"===a){if(void 0===b)throw Error("Proxy URL is required for proxy MCP connections.");s(b),t(c??"Authorization","Proxy auth header")}}function v(a){return{...a,proxyAuthToken:a.proxyAuthToken?k:a.proxyAuthToken,headers:Object.fromEntries(Object.entries(a.headers).map(([a,b])=>[a,(l.test(a)||m.test(a))&&b?k:b]))}}function w(a,b){let c=Object.fromEntries(Object.entries(void 0===b.headers?a.headers:function(a){if(void 0===a)return{};if(!a||"object"!=typeof a||Array.isArray(a))throw Error("MCP headers must be an object.");let b={};for(let[c,d]of Object.entries(a)){if(!n.test(c))throw Error(`Invalid MCP header name: ${c}`);if("string"!=typeof d)throw Error(`MCP header "${c}" must be text.`);if(/[\r\n]/.test(d))throw Error(`MCP header "${c}" cannot contain a newline.`);b[c]=d}return b}(b.headers)).map(([b,c])=>{if(c!==k)return[b,c];let d=Object.entries(a.headers).find(([a])=>a.toLowerCase()===b.toLowerCase())?.[1];return[b,d??""]})),d=void 0===b.connectionType?a.connectionType:function(a){if(void 0===a||"direct"===a)return"direct";if("proxy"===a)return"proxy";throw Error("MCP connection type must be Direct or Proxy.")}(b.connectionType),e=void 0===b.proxyUrl?a.proxyUrl:function(a){if("string"!=typeof a||a.trim())return s(a)}(b.proxyUrl),f=void 0===b.proxyAuthHeader?a.proxyAuthHeader??"Authorization":t(b.proxyAuthHeader,"Proxy auth header"),g=void 0===b.proxyAuthToken?a.proxyAuthToken:function(a){if(void 0!==a){if("string"!=typeof a)throw Error("Proxy auth token must be text.");if(/[\r\n]/.test(a))throw Error("Proxy auth token cannot contain a newline.");return a}}(b.proxyAuthToken),h=g===k?a.proxyAuthToken:g;return u({connectionType:d,proxyUrl:e,proxyAuthHeader:f}),{...a,name:void 0===b.name?a.name:"string"==typeof b.name&&b.name.trim()?b.name.trim().slice(0,120):(()=>{throw Error("MCP name is required.")})(),url:void 0===b.url?a.url:s(b.url),transport:void 0===b.transport?a.transport:function(a){if(void 0===a||"http"===a)return"http";if("sse"===a)return"sse";throw Error("MCP transport must be Streamable HTTP or SSE.")}(b.transport),connectionType:d,proxyUrl:e,proxyAuthToken:h,proxyAuthHeader:f,headers:c,enabled:void 0===b.enabled?a.enabled:!!b.enabled,enabledForLocalChat:void 0===b.enabledForLocalChat?a.enabledForLocalChat:!!b.enabledForLocalChat,updatedAt:new Date().toISOString()}}async function x(){return(await p()).map(v)}async function y(a){return(await p()).find(b=>b.id===a)??null}async function z(){return(await p()).filter(a=>a.enabled)}async function A(a){let b=new Date().toISOString(),c=w({id:(0,e.randomUUID)(),name:"",url:"",transport:"http",connectionType:"direct",proxyAuthHeader:"Authorization",headers:{},enabled:!0,enabledForLocalChat:!1,createdAt:b,updatedAt:b},a),d=await p();return d.push(c),await r(d),v(c)}async function B(a,b){let c=await p(),d=c.findIndex(b=>b.id===a);if(-1===d)return null;let e=w(c[d],b);return c[d]=e,await r(c),v(e)}async function C(a){let b=await p(),c=b.filter(b=>b.id!==a);return c.length!==b.length&&(await r(c),!0)}function D(a){if("proxy"!==a.connectionType)return{type:a.transport,url:a.url,headers:a.headers};u(a);let b=a.proxyAuthHeader??"Authorization",c=a.proxyAuthToken?{...Object.fromEntries(Object.entries(a.headers).filter(([a])=>a.toLowerCase()!==b.toLowerCase())),[b]:a.proxyAuthToken}:a.headers;return{type:a.transport,url:a.proxyUrl,headers:c}}async function E(a){let b=await (0,i.MT)({transport:D(a)});try{let c=await b.tools();return{tools:Object.fromEntries(Object.entries(c).map(([b,c])=>[`mcp_${a.id.replace(/-/g,"").slice(0,10)}_${b}`,c])),close:()=>b.close()}}catch(a){throw await b.close(),a}}async function F(a={}){let b=a.connectionIds?new Set(a.connectionIds):null,c=(await p()).filter(c=>c.enabled&&(a.forLocalChat?c.enabledForLocalChat:b?.has(c.id))),d=[],e={},f=[],g=[];for(let a of c)try{let b=await E(a);d.push(b),Object.assign(e,b.tools),f.push(a.id)}catch(b){g.push({connectionId:a.id,message:b instanceof Error?b.message:String(b)})}return{tools:e,connectedIds:f,failures:g,close:async()=>{await Promise.allSettled(d.map(a=>a.close()))}}}async function G(a){let b=await y(a);if(!b)throw Error("MCP connection not found.");let c=await (0,i.MT)({transport:D(b)});try{return{toolCount:Object.keys(await c.tools()).length}}finally{await c.close()}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},35287:()=>{},43565:(a,b,c)=>{"use strict";c.r(b),c.d(b,{POST:()=>e});var d=c(8316);async function e(a,{params:b}){try{let{connectionId:a}=await b;return Response.json(await (0,d.JH)(a))}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:a},{status:a.includes("not found")?404:502})}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71345:(a,b,c)=>{"use strict";c.d(b,{J:()=>H,Rm:()=>z,Zd:()=>x,_d:()=>A,eL:()=>E,gA:()=>D,getProjectDataDir:()=>B,oB:()=>F,requireProjectDataDir:()=>C,xx:()=>G,zd:()=>p});var d=c(89112),e=c(16698),f=c(77598),g=c(73024),h=c(77030),i=c.n(h),j=c(76760),k=c.n(j),l=c(83081);let m={activeProjectId:null,projects:[]},n=new e.AsyncLocalStorage,o=Promise.resolve();function p(){let a=process.env.LARKUP_DATA_DIR?.trim();return a?k().resolve(a):k().join(process.cwd(),".larkup")}function q(){return k().join(p(),"projects")}function r(a){let b=o.then(a,a);return o=b.catch(()=>void 0),b}async function s(){try{let a=await g.promises.readdir(q(),{withFileTypes:!0}),b=(await Promise.all(a.filter(a=>a.isDirectory()).map(async a=>{try{return JSON.parse(await g.promises.readFile(k().join(q(),a.name,"project.json"),"utf8"))}catch{return null}}))).filter(a=>null!==a);return{activeProjectId:b.find(a=>a.active)?.id??null,projects:b}}catch{return m}}async function t(a){return await g.promises.mkdir(q(),{recursive:!0}),await Promise.all(a.projects.map(async b=>{let c={...b,active:b.id===a.activeProjectId};await g.promises.mkdir(y(b.id),{recursive:!0}),await g.promises.writeFile(k().join(y(b.id),"project.json"),JSON.stringify(c,null,2),"utf8")})),a}async function u(a){return new Promise(b=>{let c=i().createServer();c.once("error",()=>b(!1)),c.once("listening",()=>c.close(()=>b(!0))),c.listen(a,"127.0.0.1")})}async function v(a){let b=Math.max(8079,...a.projects.map(a=>a.port))+1;for(;!await u(b);)b+=1;return b}function w(a){return a.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup"}function x(a,b){return n.run({projectId:a},b)}function y(a){return k().join(q(),a)}async function z(){return s()}async function A(){let a=(0,d.i)();if(a)return a.project;let b=await z(),c=n.getStore()?.projectId??b.activeProjectId;return b.projects.find(a=>a.id===c)??null}async function B(){if((0,d.i)())return null;let a=await A();if(!a)return null;let b=y(a.id);return await g.promises.mkdir(b,{recursive:!0}),b}async function C(){if((0,d.i)())throw Error("This operation requires a workspace storage adapter.");let a=await B();if(a)return a;if(n.getStore()?.projectId)throw Error(`Project "${n.getStore()?.projectId}" does not exist.`);let{project:b}=await D("My project");return y(b.id)}function D(a){return r(async()=>{let b,c=await s(),d=new Date().toISOString(),e={id:(0,f.randomUUID)(),name:a.trim()||"Untitled project",port:await v(c),createdAt:d,updatedAt:d},h=y(e.id);await g.promises.mkdir(k().join(h,"releases"),{recursive:!0}),await Promise.all([g.promises.writeFile(k().join(h,"project.json"),JSON.stringify({...e,active:!0},null,2),"utf8"),g.promises.writeFile(k().join(h,"config.json"),JSON.stringify((b=process.env.LARKUP_DATA_DIR?.trim(),{...l.P,projectName:w(e.name),storeConfig:{...l.P.storeConfig,mode:"local",dbPath:b?k().join(p(),"projects",e.id,"index"):`./.larkup/projects/${e.id}/index`},updatedAt:new Date().toISOString()}),null,2),"utf8"),g.promises.writeFile(k().join(h,"groups.json"),JSON.stringify([{id:"default",name:"Default",description:"Sources added without a specific group.",icon:"\uD83D\uDCDA",assistantEnabled:!0,createdAt:d,updatedAt:d}],null,2),"utf8"),g.promises.writeFile(k().join(h,"documents.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"deployments.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"automations.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"jobs.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"runtime.json"),"{}\n","utf8")]);let i={activeProjectId:e.id,projects:[...c.projects.map(a=>({...a,active:!1})),e]};return await t(i),{workspace:i,project:e}})}function E(a){return r(async()=>{let b=await s();return b.projects.some(b=>b.id===a)?t({...b,activeProjectId:a}):b})}function F(a,b){return r(async()=>{let c=await s(),d=c.projects.map(c=>c.id===a?{...c,name:b.trim()||c.name,updatedAt:new Date().toISOString()}:c),e=await t({...c,projects:d}),f=d.find(b=>b.id===a);if(f){let b=k().join(y(a),"config.json");try{let a=JSON.parse(await g.promises.readFile(b,"utf8"));await g.promises.writeFile(b,JSON.stringify({...a,projectName:w(f.name),updatedAt:new Date().toISOString()},null,2),"utf8")}catch{}}return e})}function G(a){return r(async()=>{let b=await s(),c=b.projects.filter(b=>b.id!==a);return await g.promises.rm(y(a),{recursive:!0,force:!0}),t({activeProjectId:b.activeProjectId===a?c[0]?.id??null:b.activeProjectId,projects:c})})}async function H(a){let b=q();if(a!==b)throw Error(`Confirmation must exactly match ${b}.`);await r(async()=>{await g.promises.rm(b,{recursive:!0,force:!0})})}},72934:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(83377),e=c(74990),f=c(66469),g=c(24261),h=c(90095),i=c(44099),j=c(261),k=c(19461),l=c(55659),m=c(56845),n=c(45054),o=c(99168),p=c(60794),q=c(6200),r=c(93281),s=c(86439),t=c(82238),u=c(11215);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp/[connectionId]/test/route",pathname:"/api/mcp/[connectionId]/test",filename:"route",bundlePath:"app/api/mcp/[connectionId]/test/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup/apps/web/app/api/mcp/[connectionId]/test/route.ts",nextConfigOutput:"standalone",userland:()=>c(43565),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp/[connectionId]/test/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},73024:a=>{"use strict";a.exports=require("node:fs")},75039:()=>{},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},83081:(a,b,c)=>{"use strict";c.d(b,{P:()=>d});let d={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:"",visionModelId:"",visionApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",defaultSandboxProvider:"local",sandboxProviderConfigs:{},toolConfigs:{},skills:[],updatedAt:new Date(0).toISOString()}},83377:(a,b,c)=>{"use strict";a.exports=c(44870)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89112:(a,b,c)=>{"use strict";c.d(b,{N:()=>f,i:()=>e});let d=new(c(16698)).AsyncLocalStorage;function e(){return d.getStore()}function f(a,b){return d.run(a,b)}},99168:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(11816),e=c(56249),f=c(60794);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2626,9331,7720,6736],()=>b(b.s=72934));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=90,a.ids=[90],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},8316:(a,b,c)=>{"use strict";c.d(b,{GX:()=>C,JH:()=>G,Nh:()=>A,fy:()=>z,me:()=>x,od:()=>B,uT:()=>F});var d=c(89112),e=c(77598),f=c(73024),g=c(76760),h=c.n(g),i=c(40707),j=c(71345);let k="__larkup_secret_set__",l=/^(authorization|proxy-authorization|cookie|set-cookie)$/i,m=/(token|secret|api[-_]?key|password|credential)/i,n=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function o(a){return h().join(a,"mcp-connections.json")}async function p(){let a=(0,d.i)();if(a)return await a.readState("mcp-connections")??[];let b=await (0,j.getProjectDataDir)();if(!b)return[];try{let a=JSON.parse(await f.promises.readFile(o(b),"utf8"));return Array.isArray(a)?a.filter(q).map(a=>({...a,transport:"sse"===a.transport?"sse":"http",connectionType:"proxy"===a.connectionType?"proxy":"direct",proxyAuthHeader:a.proxyAuthHeader??"Authorization"})):[]}catch{return[]}}function q(a){return!!a&&"object"==typeof a&&"string"==typeof a.id&&"string"==typeof a.name&&"string"==typeof a.url&&(void 0===a.transport||"http"===a.transport||"sse"===a.transport)&&(void 0===a.connectionType||"direct"===a.connectionType||"proxy"===a.connectionType)&&(void 0===a.proxyUrl||"string"==typeof a.proxyUrl)&&(void 0===a.proxyAuthToken||"string"==typeof a.proxyAuthToken)&&(void 0===a.proxyAuthHeader||"string"==typeof a.proxyAuthHeader)&&!!a.headers&&"object"==typeof a.headers&&"boolean"==typeof a.enabled&&"boolean"==typeof a.enabledForLocalChat&&"string"==typeof a.createdAt&&"string"==typeof a.updatedAt}async function r(a){let b=(0,d.i)();if(b)return void await b.writeState("mcp-connections",a);let c=await (0,j.requireProjectDataDir)();await f.promises.writeFile(o(c),JSON.stringify(a,null,2),"utf8")}function s(a){let b;if("string"!=typeof a||!a.trim())throw Error("MCP URL is required.");try{b=new URL(a.trim())}catch{throw Error("MCP URL must be a valid HTTP(S) URL.")}if(!["http:","https:"].includes(b.protocol)||b.username||b.password)throw Error("MCP URL must be an HTTP(S) URL without embedded credentials.");return b.toString()}function t(a,b){if("string"!=typeof a||!n.test(a.trim()))throw Error(`${b} must be a valid HTTP header name.`);return a.trim()}function u({connectionType:a,proxyUrl:b,proxyAuthHeader:c}){if("proxy"===a){if(void 0===b)throw Error("Proxy URL is required for proxy MCP connections.");s(b),t(c??"Authorization","Proxy auth header")}}function v(a){return{...a,proxyAuthToken:a.proxyAuthToken?k:a.proxyAuthToken,headers:Object.fromEntries(Object.entries(a.headers).map(([a,b])=>[a,(l.test(a)||m.test(a))&&b?k:b]))}}function w(a,b){let c=Object.fromEntries(Object.entries(void 0===b.headers?a.headers:function(a){if(void 0===a)return{};if(!a||"object"!=typeof a||Array.isArray(a))throw Error("MCP headers must be an object.");let b={};for(let[c,d]of Object.entries(a)){if(!n.test(c))throw Error(`Invalid MCP header name: ${c}`);if("string"!=typeof d)throw Error(`MCP header "${c}" must be text.`);if(/[\r\n]/.test(d))throw Error(`MCP header "${c}" cannot contain a newline.`);b[c]=d}return b}(b.headers)).map(([b,c])=>{if(c!==k)return[b,c];let d=Object.entries(a.headers).find(([a])=>a.toLowerCase()===b.toLowerCase())?.[1];return[b,d??""]})),d=void 0===b.connectionType?a.connectionType:function(a){if(void 0===a||"direct"===a)return"direct";if("proxy"===a)return"proxy";throw Error("MCP connection type must be Direct or Proxy.")}(b.connectionType),e=void 0===b.proxyUrl?a.proxyUrl:function(a){if("string"!=typeof a||a.trim())return s(a)}(b.proxyUrl),f=void 0===b.proxyAuthHeader?a.proxyAuthHeader??"Authorization":t(b.proxyAuthHeader,"Proxy auth header"),g=void 0===b.proxyAuthToken?a.proxyAuthToken:function(a){if(void 0!==a){if("string"!=typeof a)throw Error("Proxy auth token must be text.");if(/[\r\n]/.test(a))throw Error("Proxy auth token cannot contain a newline.");return a}}(b.proxyAuthToken),h=g===k?a.proxyAuthToken:g;return u({connectionType:d,proxyUrl:e,proxyAuthHeader:f}),{...a,name:void 0===b.name?a.name:"string"==typeof b.name&&b.name.trim()?b.name.trim().slice(0,120):(()=>{throw Error("MCP name is required.")})(),url:void 0===b.url?a.url:s(b.url),transport:void 0===b.transport?a.transport:function(a){if(void 0===a||"http"===a)return"http";if("sse"===a)return"sse";throw Error("MCP transport must be Streamable HTTP or SSE.")}(b.transport),connectionType:d,proxyUrl:e,proxyAuthToken:h,proxyAuthHeader:f,headers:c,enabled:void 0===b.enabled?a.enabled:!!b.enabled,enabledForLocalChat:void 0===b.enabledForLocalChat?a.enabledForLocalChat:!!b.enabledForLocalChat,updatedAt:new Date().toISOString()}}async function x(){return(await p()).map(v)}async function y(a){return(await p()).find(b=>b.id===a)??null}async function z(){return(await p()).filter(a=>a.enabled)}async function A(a){let b=new Date().toISOString(),c=w({id:(0,e.randomUUID)(),name:"",url:"",transport:"http",connectionType:"direct",proxyAuthHeader:"Authorization",headers:{},enabled:!0,enabledForLocalChat:!1,createdAt:b,updatedAt:b},a),d=await p();return d.push(c),await r(d),v(c)}async function B(a,b){let c=await p(),d=c.findIndex(b=>b.id===a);if(-1===d)return null;let e=w(c[d],b);return c[d]=e,await r(c),v(e)}async function C(a){let b=await p(),c=b.filter(b=>b.id!==a);return c.length!==b.length&&(await r(c),!0)}function D(a){if("proxy"!==a.connectionType)return{type:a.transport,url:a.url,headers:a.headers};u(a);let b=a.proxyAuthHeader??"Authorization",c=a.proxyAuthToken?{...Object.fromEntries(Object.entries(a.headers).filter(([a])=>a.toLowerCase()!==b.toLowerCase())),[b]:a.proxyAuthToken}:a.headers;return{type:a.transport,url:a.proxyUrl,headers:c}}async function E(a){let b=await (0,i.MT)({transport:D(a)});try{let c=await b.tools();return{tools:Object.fromEntries(Object.entries(c).map(([b,c])=>[`mcp_${a.id.replace(/-/g,"").slice(0,10)}_${b}`,c])),close:()=>b.close()}}catch(a){throw await b.close(),a}}async function F(a={}){let b=a.connectionIds?new Set(a.connectionIds):null,c=(await p()).filter(c=>c.enabled&&(a.forLocalChat?c.enabledForLocalChat:b?.has(c.id))),d=[],e={},f=[],g=[];for(let a of c)try{let b=await E(a);d.push(b),Object.assign(e,b.tools),f.push(a.id)}catch(b){g.push({connectionId:a.id,message:b instanceof Error?b.message:String(b)})}return{tools:e,connectedIds:f,failures:g,close:async()=>{await Promise.allSettled(d.map(a=>a.close()))}}}async function G(a){let b=await y(a);if(!b)throw Error("MCP connection not found.");let c=await (0,i.MT)({transport:D(b)});try{return{toolCount:Object.keys(await c.tools()).length}}finally{await c.close()}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14493:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>e,POST:()=>f});var d=c(8316);async function e(){try{return Response.json({connections:await (0,d.me)()})}catch(a){return Response.json({error:String(a)},{status:500})}}async function f(a){try{let b=await (0,d.Nh)(await a.json());return Response.json(b,{status:201})}catch(a){return Response.json({error:a instanceof Error?a.message:String(a)},{status:400})}}},16698:a=>{"use strict";a.exports=require("node:async_hooks")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},35287:()=>{},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51608:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(83377),e=c(74990),f=c(66469),g=c(24261),h=c(90095),i=c(44099),j=c(261),k=c(19461),l=c(55659),m=c(56845),n=c(45054),o=c(99168),p=c(60794),q=c(6200),r=c(93281),s=c(86439),t=c(82238),u=c(11215);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp/route",pathname:"/api/mcp",filename:"route",bundlePath:"app/api/mcp/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup/apps/web/app/api/mcp/route.ts",nextConfigOutput:"standalone",userland:()=>c(14493),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71345:(a,b,c)=>{"use strict";c.d(b,{J:()=>H,Rm:()=>z,Zd:()=>x,_d:()=>A,eL:()=>E,gA:()=>D,getProjectDataDir:()=>B,oB:()=>F,requireProjectDataDir:()=>C,xx:()=>G,zd:()=>p});var d=c(89112),e=c(16698),f=c(77598),g=c(73024),h=c(77030),i=c.n(h),j=c(76760),k=c.n(j),l=c(83081);let m={activeProjectId:null,projects:[]},n=new e.AsyncLocalStorage,o=Promise.resolve();function p(){let a=process.env.LARKUP_DATA_DIR?.trim();return a?k().resolve(a):k().join(process.cwd(),".larkup")}function q(){return k().join(p(),"projects")}function r(a){let b=o.then(a,a);return o=b.catch(()=>void 0),b}async function s(){try{let a=await g.promises.readdir(q(),{withFileTypes:!0}),b=(await Promise.all(a.filter(a=>a.isDirectory()).map(async a=>{try{return JSON.parse(await g.promises.readFile(k().join(q(),a.name,"project.json"),"utf8"))}catch{return null}}))).filter(a=>null!==a);return{activeProjectId:b.find(a=>a.active)?.id??null,projects:b}}catch{return m}}async function t(a){return await g.promises.mkdir(q(),{recursive:!0}),await Promise.all(a.projects.map(async b=>{let c={...b,active:b.id===a.activeProjectId};await g.promises.mkdir(y(b.id),{recursive:!0}),await g.promises.writeFile(k().join(y(b.id),"project.json"),JSON.stringify(c,null,2),"utf8")})),a}async function u(a){return new Promise(b=>{let c=i().createServer();c.once("error",()=>b(!1)),c.once("listening",()=>c.close(()=>b(!0))),c.listen(a,"127.0.0.1")})}async function v(a){let b=Math.max(8079,...a.projects.map(a=>a.port))+1;for(;!await u(b);)b+=1;return b}function w(a){return a.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup"}function x(a,b){return n.run({projectId:a},b)}function y(a){return k().join(q(),a)}async function z(){return s()}async function A(){let a=(0,d.i)();if(a)return a.project;let b=await z(),c=n.getStore()?.projectId??b.activeProjectId;return b.projects.find(a=>a.id===c)??null}async function B(){if((0,d.i)())return null;let a=await A();if(!a)return null;let b=y(a.id);return await g.promises.mkdir(b,{recursive:!0}),b}async function C(){if((0,d.i)())throw Error("This operation requires a workspace storage adapter.");let a=await B();if(a)return a;if(n.getStore()?.projectId)throw Error(`Project "${n.getStore()?.projectId}" does not exist.`);let{project:b}=await D("My project");return y(b.id)}function D(a){return r(async()=>{let b,c=await s(),d=new Date().toISOString(),e={id:(0,f.randomUUID)(),name:a.trim()||"Untitled project",port:await v(c),createdAt:d,updatedAt:d},h=y(e.id);await g.promises.mkdir(k().join(h,"releases"),{recursive:!0}),await Promise.all([g.promises.writeFile(k().join(h,"project.json"),JSON.stringify({...e,active:!0},null,2),"utf8"),g.promises.writeFile(k().join(h,"config.json"),JSON.stringify((b=process.env.LARKUP_DATA_DIR?.trim(),{...l.P,projectName:w(e.name),storeConfig:{...l.P.storeConfig,mode:"local",dbPath:b?k().join(p(),"projects",e.id,"index"):`./.larkup/projects/${e.id}/index`},updatedAt:new Date().toISOString()}),null,2),"utf8"),g.promises.writeFile(k().join(h,"groups.json"),JSON.stringify([{id:"default",name:"Default",description:"Sources added without a specific group.",icon:"\uD83D\uDCDA",assistantEnabled:!0,createdAt:d,updatedAt:d}],null,2),"utf8"),g.promises.writeFile(k().join(h,"documents.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"deployments.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"automations.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"jobs.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"runtime.json"),"{}\n","utf8")]);let i={activeProjectId:e.id,projects:[...c.projects.map(a=>({...a,active:!1})),e]};return await t(i),{workspace:i,project:e}})}function E(a){return r(async()=>{let b=await s();return b.projects.some(b=>b.id===a)?t({...b,activeProjectId:a}):b})}function F(a,b){return r(async()=>{let c=await s(),d=c.projects.map(c=>c.id===a?{...c,name:b.trim()||c.name,updatedAt:new Date().toISOString()}:c),e=await t({...c,projects:d}),f=d.find(b=>b.id===a);if(f){let b=k().join(y(a),"config.json");try{let a=JSON.parse(await g.promises.readFile(b,"utf8"));await g.promises.writeFile(b,JSON.stringify({...a,projectName:w(f.name),updatedAt:new Date().toISOString()},null,2),"utf8")}catch{}}return e})}function G(a){return r(async()=>{let b=await s(),c=b.projects.filter(b=>b.id!==a);return await g.promises.rm(y(a),{recursive:!0,force:!0}),t({activeProjectId:b.activeProjectId===a?c[0]?.id??null:b.activeProjectId,projects:c})})}async function H(a){let b=q();if(a!==b)throw Error(`Confirmation must exactly match ${b}.`);await r(async()=>{await g.promises.rm(b,{recursive:!0,force:!0})})}},73024:a=>{"use strict";a.exports=require("node:fs")},75039:()=>{},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},83081:(a,b,c)=>{"use strict";c.d(b,{P:()=>d});let d={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:"",visionModelId:"",visionApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",defaultSandboxProvider:"local",sandboxProviderConfigs:{},toolConfigs:{},skills:[],updatedAt:new Date(0).toISOString()}},83377:(a,b,c)=>{"use strict";a.exports=c(44870)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89112:(a,b,c)=>{"use strict";c.d(b,{i:()=>e});let d=new(c(16698)).AsyncLocalStorage;function e(){return d.getStore()}},99168:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(11816),e=c(56249),f=c(60794);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2626,9331,7720,6736],()=>b(b.s=51608));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=90,a.ids=[90],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},8316:(a,b,c)=>{"use strict";c.d(b,{GX:()=>C,JH:()=>G,Nh:()=>A,fy:()=>z,me:()=>x,od:()=>B,uT:()=>F});var d=c(89112),e=c(77598),f=c(73024),g=c(76760),h=c.n(g),i=c(40707),j=c(71345);let k="__larkup_secret_set__",l=/^(authorization|proxy-authorization|cookie|set-cookie)$/i,m=/(token|secret|api[-_]?key|password|credential)/i,n=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function o(a){return h().join(a,"mcp-connections.json")}async function p(){let a=(0,d.i)();if(a)return await a.readState("mcp-connections")??[];let b=await (0,j.getProjectDataDir)();if(!b)return[];try{let a=JSON.parse(await f.promises.readFile(o(b),"utf8"));return Array.isArray(a)?a.filter(q).map(a=>({...a,transport:"sse"===a.transport?"sse":"http",connectionType:"proxy"===a.connectionType?"proxy":"direct",proxyAuthHeader:a.proxyAuthHeader??"Authorization"})):[]}catch{return[]}}function q(a){return!!a&&"object"==typeof a&&"string"==typeof a.id&&"string"==typeof a.name&&"string"==typeof a.url&&(void 0===a.transport||"http"===a.transport||"sse"===a.transport)&&(void 0===a.connectionType||"direct"===a.connectionType||"proxy"===a.connectionType)&&(void 0===a.proxyUrl||"string"==typeof a.proxyUrl)&&(void 0===a.proxyAuthToken||"string"==typeof a.proxyAuthToken)&&(void 0===a.proxyAuthHeader||"string"==typeof a.proxyAuthHeader)&&!!a.headers&&"object"==typeof a.headers&&"boolean"==typeof a.enabled&&"boolean"==typeof a.enabledForLocalChat&&"string"==typeof a.createdAt&&"string"==typeof a.updatedAt}async function r(a){let b=(0,d.i)();if(b)return void await b.writeState("mcp-connections",a);let c=await (0,j.requireProjectDataDir)();await f.promises.writeFile(o(c),JSON.stringify(a,null,2),"utf8")}function s(a){let b;if("string"!=typeof a||!a.trim())throw Error("MCP URL is required.");try{b=new URL(a.trim())}catch{throw Error("MCP URL must be a valid HTTP(S) URL.")}if(!["http:","https:"].includes(b.protocol)||b.username||b.password)throw Error("MCP URL must be an HTTP(S) URL without embedded credentials.");return b.toString()}function t(a,b){if("string"!=typeof a||!n.test(a.trim()))throw Error(`${b} must be a valid HTTP header name.`);return a.trim()}function u({connectionType:a,proxyUrl:b,proxyAuthHeader:c}){if("proxy"===a){if(void 0===b)throw Error("Proxy URL is required for proxy MCP connections.");s(b),t(c??"Authorization","Proxy auth header")}}function v(a){return{...a,proxyAuthToken:a.proxyAuthToken?k:a.proxyAuthToken,headers:Object.fromEntries(Object.entries(a.headers).map(([a,b])=>[a,(l.test(a)||m.test(a))&&b?k:b]))}}function w(a,b){let c=Object.fromEntries(Object.entries(void 0===b.headers?a.headers:function(a){if(void 0===a)return{};if(!a||"object"!=typeof a||Array.isArray(a))throw Error("MCP headers must be an object.");let b={};for(let[c,d]of Object.entries(a)){if(!n.test(c))throw Error(`Invalid MCP header name: ${c}`);if("string"!=typeof d)throw Error(`MCP header "${c}" must be text.`);if(/[\r\n]/.test(d))throw Error(`MCP header "${c}" cannot contain a newline.`);b[c]=d}return b}(b.headers)).map(([b,c])=>{if(c!==k)return[b,c];let d=Object.entries(a.headers).find(([a])=>a.toLowerCase()===b.toLowerCase())?.[1];return[b,d??""]})),d=void 0===b.connectionType?a.connectionType:function(a){if(void 0===a||"direct"===a)return"direct";if("proxy"===a)return"proxy";throw Error("MCP connection type must be Direct or Proxy.")}(b.connectionType),e=void 0===b.proxyUrl?a.proxyUrl:function(a){if("string"!=typeof a||a.trim())return s(a)}(b.proxyUrl),f=void 0===b.proxyAuthHeader?a.proxyAuthHeader??"Authorization":t(b.proxyAuthHeader,"Proxy auth header"),g=void 0===b.proxyAuthToken?a.proxyAuthToken:function(a){if(void 0!==a){if("string"!=typeof a)throw Error("Proxy auth token must be text.");if(/[\r\n]/.test(a))throw Error("Proxy auth token cannot contain a newline.");return a}}(b.proxyAuthToken),h=g===k?a.proxyAuthToken:g;return u({connectionType:d,proxyUrl:e,proxyAuthHeader:f}),{...a,name:void 0===b.name?a.name:"string"==typeof b.name&&b.name.trim()?b.name.trim().slice(0,120):(()=>{throw Error("MCP name is required.")})(),url:void 0===b.url?a.url:s(b.url),transport:void 0===b.transport?a.transport:function(a){if(void 0===a||"http"===a)return"http";if("sse"===a)return"sse";throw Error("MCP transport must be Streamable HTTP or SSE.")}(b.transport),connectionType:d,proxyUrl:e,proxyAuthToken:h,proxyAuthHeader:f,headers:c,enabled:void 0===b.enabled?a.enabled:!!b.enabled,enabledForLocalChat:void 0===b.enabledForLocalChat?a.enabledForLocalChat:!!b.enabledForLocalChat,updatedAt:new Date().toISOString()}}async function x(){return(await p()).map(v)}async function y(a){return(await p()).find(b=>b.id===a)??null}async function z(){return(await p()).filter(a=>a.enabled)}async function A(a){let b=new Date().toISOString(),c=w({id:(0,e.randomUUID)(),name:"",url:"",transport:"http",connectionType:"direct",proxyAuthHeader:"Authorization",headers:{},enabled:!0,enabledForLocalChat:!1,createdAt:b,updatedAt:b},a),d=await p();return d.push(c),await r(d),v(c)}async function B(a,b){let c=await p(),d=c.findIndex(b=>b.id===a);if(-1===d)return null;let e=w(c[d],b);return c[d]=e,await r(c),v(e)}async function C(a){let b=await p(),c=b.filter(b=>b.id!==a);return c.length!==b.length&&(await r(c),!0)}function D(a){if("proxy"!==a.connectionType)return{type:a.transport,url:a.url,headers:a.headers};u(a);let b=a.proxyAuthHeader??"Authorization",c=a.proxyAuthToken?{...Object.fromEntries(Object.entries(a.headers).filter(([a])=>a.toLowerCase()!==b.toLowerCase())),[b]:a.proxyAuthToken}:a.headers;return{type:a.transport,url:a.proxyUrl,headers:c}}async function E(a){let b=await (0,i.MT)({transport:D(a)});try{let c=await b.tools();return{tools:Object.fromEntries(Object.entries(c).map(([b,c])=>[`mcp_${a.id.replace(/-/g,"").slice(0,10)}_${b}`,c])),close:()=>b.close()}}catch(a){throw await b.close(),a}}async function F(a={}){let b=a.connectionIds?new Set(a.connectionIds):null,c=(await p()).filter(c=>c.enabled&&(a.forLocalChat?c.enabledForLocalChat:b?.has(c.id))),d=[],e={},f=[],g=[];for(let a of c)try{let b=await E(a);d.push(b),Object.assign(e,b.tools),f.push(a.id)}catch(b){g.push({connectionId:a.id,message:b instanceof Error?b.message:String(b)})}return{tools:e,connectedIds:f,failures:g,close:async()=>{await Promise.allSettled(d.map(a=>a.close()))}}}async function G(a){let b=await y(a);if(!b)throw Error("MCP connection not found.");let c=await (0,i.MT)({transport:D(b)});try{return{toolCount:Object.keys(await c.tools()).length}}finally{await c.close()}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14493:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>e,POST:()=>f});var d=c(8316);async function e(){try{return Response.json({connections:await (0,d.me)()})}catch(a){return Response.json({error:String(a)},{status:500})}}async function f(a){try{let b=await (0,d.Nh)(await a.json());return Response.json(b,{status:201})}catch(a){return Response.json({error:a instanceof Error?a.message:String(a)},{status:400})}}},16698:a=>{"use strict";a.exports=require("node:async_hooks")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},35287:()=>{},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51608:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(83377),e=c(74990),f=c(66469),g=c(24261),h=c(90095),i=c(44099),j=c(261),k=c(19461),l=c(55659),m=c(56845),n=c(45054),o=c(99168),p=c(60794),q=c(6200),r=c(93281),s=c(86439),t=c(82238),u=c(11215);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp/route",pathname:"/api/mcp",filename:"route",bundlePath:"app/api/mcp/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup/apps/web/app/api/mcp/route.ts",nextConfigOutput:"standalone",userland:()=>c(14493),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71345:(a,b,c)=>{"use strict";c.d(b,{J:()=>H,Rm:()=>z,Zd:()=>x,_d:()=>A,eL:()=>E,gA:()=>D,getProjectDataDir:()=>B,oB:()=>F,requireProjectDataDir:()=>C,xx:()=>G,zd:()=>p});var d=c(89112),e=c(16698),f=c(77598),g=c(73024),h=c(77030),i=c.n(h),j=c(76760),k=c.n(j),l=c(83081);let m={activeProjectId:null,projects:[]},n=new e.AsyncLocalStorage,o=Promise.resolve();function p(){let a=process.env.LARKUP_DATA_DIR?.trim();return a?k().resolve(a):k().join(process.cwd(),".larkup")}function q(){return k().join(p(),"projects")}function r(a){let b=o.then(a,a);return o=b.catch(()=>void 0),b}async function s(){try{let a=await g.promises.readdir(q(),{withFileTypes:!0}),b=(await Promise.all(a.filter(a=>a.isDirectory()).map(async a=>{try{return JSON.parse(await g.promises.readFile(k().join(q(),a.name,"project.json"),"utf8"))}catch{return null}}))).filter(a=>null!==a);return{activeProjectId:b.find(a=>a.active)?.id??null,projects:b}}catch{return m}}async function t(a){return await g.promises.mkdir(q(),{recursive:!0}),await Promise.all(a.projects.map(async b=>{let c={...b,active:b.id===a.activeProjectId};await g.promises.mkdir(y(b.id),{recursive:!0}),await g.promises.writeFile(k().join(y(b.id),"project.json"),JSON.stringify(c,null,2),"utf8")})),a}async function u(a){return new Promise(b=>{let c=i().createServer();c.once("error",()=>b(!1)),c.once("listening",()=>c.close(()=>b(!0))),c.listen(a,"127.0.0.1")})}async function v(a){let b=Math.max(8079,...a.projects.map(a=>a.port))+1;for(;!await u(b);)b+=1;return b}function w(a){return a.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup"}function x(a,b){return n.run({projectId:a},b)}function y(a){return k().join(q(),a)}async function z(){return s()}async function A(){let a=(0,d.i)();if(a)return a.project;let b=await z(),c=n.getStore()?.projectId??b.activeProjectId;return b.projects.find(a=>a.id===c)??null}async function B(){if((0,d.i)())return null;let a=await A();if(!a)return null;let b=y(a.id);return await g.promises.mkdir(b,{recursive:!0}),b}async function C(){if((0,d.i)())throw Error("This operation requires a workspace storage adapter.");let a=await B();if(a)return a;if(n.getStore()?.projectId)throw Error(`Project "${n.getStore()?.projectId}" does not exist.`);let{project:b}=await D("My project");return y(b.id)}function D(a){return r(async()=>{let b,c=await s(),d=new Date().toISOString(),e={id:(0,f.randomUUID)(),name:a.trim()||"Untitled project",port:await v(c),createdAt:d,updatedAt:d},h=y(e.id);await g.promises.mkdir(k().join(h,"releases"),{recursive:!0}),await Promise.all([g.promises.writeFile(k().join(h,"project.json"),JSON.stringify({...e,active:!0},null,2),"utf8"),g.promises.writeFile(k().join(h,"config.json"),JSON.stringify((b=process.env.LARKUP_DATA_DIR?.trim(),{...l.P,projectName:w(e.name),storeConfig:{...l.P.storeConfig,mode:"local",dbPath:b?k().join(p(),"projects",e.id,"index"):`./.larkup/projects/${e.id}/index`},updatedAt:new Date().toISOString()}),null,2),"utf8"),g.promises.writeFile(k().join(h,"groups.json"),JSON.stringify([{id:"default",name:"Default",description:"Sources added without a specific group.",icon:"\uD83D\uDCDA",assistantEnabled:!0,createdAt:d,updatedAt:d}],null,2),"utf8"),g.promises.writeFile(k().join(h,"documents.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"deployments.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"automations.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"jobs.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"runtime.json"),"{}\n","utf8")]);let i={activeProjectId:e.id,projects:[...c.projects.map(a=>({...a,active:!1})),e]};return await t(i),{workspace:i,project:e}})}function E(a){return r(async()=>{let b=await s();return b.projects.some(b=>b.id===a)?t({...b,activeProjectId:a}):b})}function F(a,b){return r(async()=>{let c=await s(),d=c.projects.map(c=>c.id===a?{...c,name:b.trim()||c.name,updatedAt:new Date().toISOString()}:c),e=await t({...c,projects:d}),f=d.find(b=>b.id===a);if(f){let b=k().join(y(a),"config.json");try{let a=JSON.parse(await g.promises.readFile(b,"utf8"));await g.promises.writeFile(b,JSON.stringify({...a,projectName:w(f.name),updatedAt:new Date().toISOString()},null,2),"utf8")}catch{}}return e})}function G(a){return r(async()=>{let b=await s(),c=b.projects.filter(b=>b.id!==a);return await g.promises.rm(y(a),{recursive:!0,force:!0}),t({activeProjectId:b.activeProjectId===a?c[0]?.id??null:b.activeProjectId,projects:c})})}async function H(a){let b=q();if(a!==b)throw Error(`Confirmation must exactly match ${b}.`);await r(async()=>{await g.promises.rm(b,{recursive:!0,force:!0})})}},73024:a=>{"use strict";a.exports=require("node:fs")},75039:()=>{},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},83081:(a,b,c)=>{"use strict";c.d(b,{P:()=>d});let d={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:"",visionModelId:"",visionApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",defaultSandboxProvider:"local",sandboxProviderConfigs:{},toolConfigs:{},skills:[],updatedAt:new Date(0).toISOString()}},83377:(a,b,c)=>{"use strict";a.exports=c(44870)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89112:(a,b,c)=>{"use strict";c.d(b,{N:()=>f,i:()=>e});let d=new(c(16698)).AsyncLocalStorage;function e(){return d.getStore()}function f(a,b){return d.run(a,b)}},99168:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(11816),e=c(56249),f=c(60794);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2626,9331,7720,6736],()=>b(b.s=51608));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=5482,a.ids=[4344,5482,8346,9471],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},8346:(a,b,c)=>{"use strict";c.d(b,{$6:()=>m,unloadTool:()=>q});var d=c(73024),e=c(76760),f=c.n(e),g=c(73136),h=c(1677),i=c(89112);let j=new Map,k=new Map;async function l(a){let b=`larkup-marketplace-tools${"fixed"===a?"":`-${a}`}`,c=k.get(b);if(c)return c;let{register:d}=await import("tsx/esm/api"),e=d({namespace:b}).import;return k.size>=8&&k.delete(k.keys().next().value),k.set(b,e),e}async function m(a){let b=(0,i.i)()?.tools?.find(b=>b.id===a);if(b)return b.module;let c=await (0,h.F6)(a);if(!c)return null;let d=await o(c),e=await n(c,d),f=`${c.source}:${c.resolvedPath}:${c.version}:${c.installedAt}:${e}`,g=j.get(a);if(g?.installationKey===f)return g.module;try{let b=function(a,b){if(!a.startsWith("file:"))return a;let c=new URL(a);return c.searchParams.set("larkup-installation",b),c.href}(d,f),c=await l(e),g=await c(b,"file:///Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup/packages/marketplace/src/tool-loader.ts");return j.set(a,{installationKey:f,module:g}),g}catch(b){return console.error(`[marketplace] Failed to load tool "${a}":`,b),null}}async function n(a,b){if("local"!==a.source||!b.startsWith("file:"))return"fixed";try{let a=f().dirname(new URL(b).pathname),c=await d.promises.readdir(a,{withFileTypes:!0}),e=0,g=0;for(let b of c){if(!b.isFile())continue;let{mtimeMs:c,size:h}=await d.promises.stat(f().join(a,b.name));e=Math.max(e,c),g+=h}return e>0?`${e}-${g}`:"fixed"}catch{return"fixed"}}async function o(a){switch(a.source){case"local":try{return await d.promises.access(f().join(a.resolvedPath,"package.json")),p(a.resolvedPath)}catch{let b=await (0,h.lS)(a.packageName);if(b)return p(b);return a.packageName}case"registry":case"sandbox":return p(a.resolvedPath);default:return a.packageName}}async function p(a){let b=f().join(a,"package.json"),c=JSON.parse(await d.promises.readFile(b,"utf8")),e="object"==typeof c.exports?c.exports["."]:c.exports,h=("object"==typeof e?e.import??e.default:e)??c.main??"index.js";return(0,g.pathToFileURL)(f().resolve(a,h)).href}function q(a){j.delete(a)}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},32467:a=>{"use strict";a.exports=require("node:http2")},33873:a=>{"use strict";a.exports=require("path")},35287:()=>{},37067:a=>{"use strict";a.exports=require("node:http")},38522:a=>{"use strict";a.exports=require("node:zlib")},44708:a=>{"use strict";a.exports=require("node:https")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64344:(a,b,c)=>{"use strict";c.d(b,{Cz:()=>x,RF:()=>B,W0:()=>w,addMediaAssets:()=>u,deleteMediaAsset:()=>A,getMediaAsset:()=>D,gl:()=>v,kW:()=>C,l0:()=>z,nG:()=>y,readMediaAssets:()=>m});var d=c(89112),e=c(73024),f=c(76760),g=c.n(f),h=c(77598),i=c(71345);let j=Promise.resolve();function k(a){let b=j.then(a,a);return j=b.catch(()=>{}),b}async function l(a){let b=a?await (0,i.requireProjectDataDir)():await (0,i.getProjectDataDir)();return b?g().join(b,"media-assets.json"):null}async function m(){let a=(0,d.i)();if(a)return a.readMediaAssets();let b=await l(!1);if(!b)return[];try{let a=await e.promises.readFile(b,"utf8"),c=JSON.parse(a);if(!Array.isArray(c))throw Error(`Invalid media asset store at ${b}: expected a JSON array.`);return c}catch(a){if(a?.code==="ENOENT")return[];throw a}}async function n(a){let b=(0,d.i)();if(b)return b.writeMediaAssets(a);let c=await l(!0);if(!c)return;let f=g().join(g().dirname(c),`.${g().basename(c)}.${process.pid}.${(0,h.randomUUID)()}.tmp`);try{await e.promises.writeFile(f,JSON.stringify(a,null,2),"utf8"),await e.promises.rename(f,c)}catch(a){throw await e.promises.unlink(f).catch(()=>{}),a}}let o=["download","prepare","extract","transcribe","vision","synthesize","index"],p={download:10,prepare:15,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function q(a){return o.map(b=>({stage:b,status:"waiting",updatedAt:a}))}function r(a){return void 0!==a&&Number.isFinite(a)?Math.max(0,a):void 0}function s(a){let b=r(a);return void 0===b?void 0:Math.min(100,b)}function t(a){return Math.floor(r(a.processingRevision)??0)+1}function u(a){return k(async()=>{let b=await m(),c=new Date().toISOString(),d=a.map(a=>({id:(0,h.randomUUID)(),type:a.type,fileName:a.fileName,mimeType:a.mimeType,storageUri:a.storageUri,thumbnailUri:a.thumbnailUri,originalUrl:a.originalUrl,fileSize:a.fileSize,dimensions:a.dimensions,durationSecs:a.durationSecs,indexingInstructions:a.indexingInstructions,indexingQuality:a.indexingQuality,toolInputs:a.toolInputs,groupId:a.groupId,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:c,updatedAt:c}));return b.push(...d),await n(b),d})}function v(a,b){return k(async()=>{let c=await m(),d=c.findIndex(b=>b.id===a);if(d<0)return;let e=c[d];return c[d]={...e,...b,documentIds:b.documentIds??e.documentIds,pendingDocumentIds:b.pendingDocumentIds??e.pendingDocumentIds,supersededDocumentIds:b.supersededDocumentIds??e.supersededDocumentIds,updatedAt:new Date().toISOString()},await n(c),c[d]})}function w(a,b){return k(async()=>{let c=new Set(a);if(0===c.size)return[];let d=await m(),e=new Date().toISOString(),f=[];for(let a of d)c.has(a.id)&&a.groupId!==b&&(a.groupId=b,a.updatedAt=e,f.push(a));return f.length>0&&await n(d),f})}function x(a,b,c){return k(async()=>{let d,e,f=await m(),g=f.findIndex(b=>b.id===a);if(g<0)return;let h=new Date().toISOString(),i=f[g],j=new Map((i.processingSteps??[]).map(a=>[a.stage,a])),k=q(h).map(a=>j.get(a.stage)??a),l=k.findIndex(a=>a.stage===b),o=k[l],u=new Set(["completed","skipped","failed"]),v=c.status??o.status,w=u.has(o.status)||"running"===o.status&&"waiting"===v?o.status:v,x=s(o.percent),y=s(c.percent),z=void 0===y?x:Math.max(x??0,y),A=r(o.current),B=r(c.current),C=void 0===B?A:Math.max(A??0,B),D=void 0===c.total?r(o.total):r(c.total);void 0!==C&&void 0!==D&&(D=Math.max(D,C))>0&&(z=Math.max(z??0,Math.min(100,C/D*100))),"completed"===w&&(z=100,void 0!==D&&(C=D));let E=u.has(w),F={...o,...c,stage:b,status:w,percent:z,current:C,total:D,...E?{estimatedRemainingSeconds:void 0}:{},startedAt:c.startedAt??o.startedAt??("running"===w||E?h:void 0),updatedAt:h,finishedAt:E?c.finishedAt??o.finishedAt??h:void 0};k[l]=F;let G=Math.max(s(i.processingProgress)??0,0===(e=(d=k.filter(a=>"skipped"!==a.status)).reduce((a,b)=>a+p[b.stage],0))?100:Math.round(d.reduce((a,b)=>a+p[b.stage]*function(a){if("completed"===a.status)return 100;if("waiting"===a.status||"skipped"===a.status)return 0;let b=s(a.percent);return void 0!==b?b:void 0!==a.current&&void 0!==a.total&&Number.isFinite(a.current)&&Number.isFinite(a.total)&&a.total>0?Math.min(100,Math.max(0,a.current/a.total*100)):0}(b)/100,0)/e*1e3)/10),H=[...k].reverse().find(a=>"running"===a.status&&a.message)?.message,I="running"===F.status?F.message??c.message??i.processingMessage:H??c.message??F.message??i.processingMessage;return f[g]={...i,processingSteps:k,processingProgress:G,processingMessage:I,processingRevision:t(i),processingHeartbeatAt:h,updatedAt:h},await n(f),f[g]})}function y(a){return k(async()=>{let b=await m(),c=b.findIndex(b=>b.id===a);if(c<0||"processing"===b[c].processingStatus||"Queued for background processing..."===b[c].processingMessage)return;let d=new Date().toISOString();return b[c]={...b[c],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:0,processingSteps:q(d),processingRevision:t(b[c]),processingStartedAt:d,processingHeartbeatAt:d,updatedAt:d},await n(b),b[c]})}function z(a=3e5){return k(async()=>{let b=await m(),c=Date.now()-a,d="The background worker stopped. Retry to resume media processing.",e=0;for(let a=0;a<b.length;a++){let f=b[a],g="processing"===f.processingStatus,h="pending"===f.processingStatus&&"Queued for background processing..."===f.processingMessage,i=f.processingHeartbeatAt??f.updatedAt;if((g||h)&&new Date(i).getTime()<c){let c=new Date().toISOString(),g=f.processingSteps?.map(a=>"running"===a.status?{...a,status:"failed",message:d,updatedAt:c,finishedAt:c}:a);b[a]={...f,processingStatus:"failed",processingError:d,processingMessage:void 0,processingProgress:void 0,processingSteps:g,processingRevision:t(f),processingHeartbeatAt:c,updatedAt:c},e++}}return e>0&&await n(b),e})}function A(a){return k(async()=>{let b=await m();await n(b.filter(b=>b.id!==a))})}function B(a){return k(async()=>{let b=await m(),c=new Set(a);await n(b.filter(a=>!c.has(a.id)))})}async function C(){let a=await m(),b={image:0,video:0,audio:0},c={pending:0,processing:0,completed:0,failed:0},d=0;for(let e of a)b[e.type]++,c[e.processingStatus]++,d+=e.fileSize;return{total:a.length,byType:b,byStatus:c,totalBytes:d}}async function D(a){return(await m()).find(b=>b.id===a)}},69471:(a,b,c)=>{"use strict";c.d(b,{createStorageProvider:()=>k});var d=c(73024),e=c(76760),f=c.n(e);c(55181);var g=c(71345);class h{async mediaDir(){let a=await (0,g.requireProjectDataDir)(),b=f().join(a,"media");return await d.promises.mkdir(b,{recursive:!0}),b}async store(a,b,c){let e=await this.mediaDir(),g=f().join(e,a);return await d.promises.mkdir(f().dirname(g),{recursive:!0}),await d.promises.writeFile(g,b),`local://${a}`}async storeFile(a,b,c){let e=await this.mediaDir(),g=f().join(e,a);return await d.promises.mkdir(f().dirname(g),{recursive:!0}),await d.promises.copyFile(b,g),`local://${a}`}async retrieve(a){let b=await this.resolvePath(a);if(!b)throw Error(`Unsupported local storage URI: ${a}`);return d.promises.readFile(b)}async resolvePath(a){if(!a.startsWith("local://"))return;let b=a.slice(8),c=await this.mediaDir(),d=f().resolve(c,b),e=f().relative(c,d);if(e.startsWith("..")||f().isAbsolute(e))throw Error("Invalid local storage URI");return d}async delete(a){let b=a.replace("local://",""),c=await this.mediaDir();try{await d.promises.unlink(f().join(c,b))}catch{}}async stats(){try{let a=await this.mediaDir();return await i(a)}catch{return{usedBytes:0,fileCount:0}}}constructor(){this.id="local",this.name="Local Storage"}}async function i(a){let b=0,c=0;async function e(a){let g;try{g=await d.promises.readdir(a,{withFileTypes:!0})}catch{return}for(let h of g){let g=f().join(a,h.name);if(h.isDirectory())await e(g);else try{let a=await d.promises.stat(g);b+=a.size,c++}catch{}}}return await e(a),{usedBytes:b,fileCount:c}}class j{constructor(a){if(this.id="s3",this.name="Amazon S3",!a.bucket)throw Error("S3StorageProvider requires a bucket name.");this.bucket=a.bucket,this.region=a.region||process.env.AWS_REGION||"us-east-1",this.kmsKeyId=a.kmsKeyId,this.prefix=(a.prefix??"canonical").replace(/^\/+|\/+$/g,""),this._credentials=a.accessKeyId&&a.secretAccessKey?{accessKeyId:a.accessKeyId,secretAccessKey:a.secretAccessKey}:void 0}async client(){if(!this._client){let{S3Client:a}=await Promise.all([c.e(6929),c.e(716)]).then(c.bind(c,90716));this._client=new a({region:this.region,...this._credentials?{credentials:this._credentials}:{}})}return this._client}objectKey(a){return`${this.prefix}/${a}`}parseUri(a){if(!a.startsWith("s3://"))throw Error(`Unsupported S3 storage URI: ${a}`);let b=a.slice(5),c=b.indexOf("/");if(c<0)throw Error(`Malformed S3 storage URI: ${a}`);return{bucket:b.slice(0,c),key:b.slice(c+1)}}async store(a,b,d){let{PutObjectCommand:e}=await Promise.all([c.e(6929),c.e(716)]).then(c.bind(c,90716)),f=await this.client(),g=this.objectKey(a);return await f.send(new e({Bucket:this.bucket,Key:g,Body:b,ContentType:d,...this.kmsKeyId?{ServerSideEncryption:"aws:kms",SSEKMSKeyId:this.kmsKeyId}:{ServerSideEncryption:"aws:kms"}})),`s3://${this.bucket}/${g}`}async storeFile(a,b,c){return this.store(a,await d.promises.readFile(b),c)}async retrieve(a){let{GetObjectCommand:b}=await Promise.all([c.e(6929),c.e(716)]).then(c.bind(c,90716)),{bucket:d,key:e}=this.parseUri(a),f=await this.client(),g=await f.send(new b({Bucket:d,Key:e})),h=[];for await(let a of g.Body)h.push(a);return Buffer.concat(h)}async resolvePath(a){}async getReadUrl(a,b){let{GetObjectCommand:d}=await Promise.all([c.e(6929),c.e(716)]).then(c.bind(c,90716)),{getSignedUrl:e}=await Promise.all([c.e(6929),c.e(5919)]).then(c.bind(c,35919)),{bucket:f,key:g}=this.parseUri(a);return e(await this.client(),new d({Bucket:f,Key:g}),{expiresIn:b})}async delete(a){let{DeleteObjectCommand:b}=await Promise.all([c.e(6929),c.e(716)]).then(c.bind(c,90716)),{bucket:d,key:e}=this.parseUri(a),f=await this.client();try{await f.send(new b({Bucket:d,Key:e}))}catch{}}async stats(){return{usedBytes:0,fileCount:0}}}function k(a){if("s3"===(a?.provider??process.env.LARKUP_MEDIA_STORAGE??"local").toLowerCase()){let b=a?.bucket??process.env.LARKUP_MEDIA_S3_BUCKET;if(!b)throw Error("LARKUP_MEDIA_STORAGE=s3 requires LARKUP_MEDIA_S3_BUCKET to be set.");return new j({bucket:b,region:a?.region??process.env.LARKUP_MEDIA_S3_REGION,kmsKeyId:a?.kmsKeyId??process.env.LARKUP_MEDIA_S3_KMS_KEY_ID,prefix:a?.prefix??process.env.LARKUP_MEDIA_S3_PREFIX,accessKeyId:a?.accessKeyId??process.env.LARKUP_MEDIA_S3_ACCESS_KEY_ID??process.env.AWS_ACCESS_KEY_ID,secretAccessKey:a?.secretAccessKey??process.env.LARKUP_MEDIA_S3_SECRET_ACCESS_KEY??process.env.AWS_SECRET_ACCESS_KEY})}return new h}},71345:(a,b,c)=>{"use strict";c.d(b,{J:()=>H,Rm:()=>z,Zd:()=>x,_d:()=>A,eL:()=>E,gA:()=>D,getProjectDataDir:()=>B,oB:()=>F,requireProjectDataDir:()=>C,xx:()=>G,zd:()=>p});var d=c(89112),e=c(16698),f=c(77598),g=c(73024),h=c(77030),i=c.n(h),j=c(76760),k=c.n(j),l=c(83081);let m={activeProjectId:null,projects:[]},n=new e.AsyncLocalStorage,o=Promise.resolve();function p(){let a=process.env.LARKUP_DATA_DIR?.trim();return a?k().resolve(a):k().join(process.cwd(),".larkup")}function q(){return k().join(p(),"projects")}function r(a){let b=o.then(a,a);return o=b.catch(()=>void 0),b}async function s(){try{let a=await g.promises.readdir(q(),{withFileTypes:!0}),b=(await Promise.all(a.filter(a=>a.isDirectory()).map(async a=>{try{return JSON.parse(await g.promises.readFile(k().join(q(),a.name,"project.json"),"utf8"))}catch{return null}}))).filter(a=>null!==a);return{activeProjectId:b.find(a=>a.active)?.id??null,projects:b}}catch{return m}}async function t(a){return await g.promises.mkdir(q(),{recursive:!0}),await Promise.all(a.projects.map(async b=>{let c={...b,active:b.id===a.activeProjectId};await g.promises.mkdir(y(b.id),{recursive:!0}),await g.promises.writeFile(k().join(y(b.id),"project.json"),JSON.stringify(c,null,2),"utf8")})),a}async function u(a){return new Promise(b=>{let c=i().createServer();c.once("error",()=>b(!1)),c.once("listening",()=>c.close(()=>b(!0))),c.listen(a,"127.0.0.1")})}async function v(a){let b=Math.max(8079,...a.projects.map(a=>a.port))+1;for(;!await u(b);)b+=1;return b}function w(a){return a.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup"}function x(a,b){return n.run({projectId:a},b)}function y(a){return k().join(q(),a)}async function z(){return s()}async function A(){let a=(0,d.i)();if(a)return a.project;let b=await z(),c=n.getStore()?.projectId??b.activeProjectId;return b.projects.find(a=>a.id===c)??null}async function B(){if((0,d.i)())return null;let a=await A();if(!a)return null;let b=y(a.id);return await g.promises.mkdir(b,{recursive:!0}),b}async function C(){if((0,d.i)())throw Error("This operation requires a workspace storage adapter.");let a=await B();if(a)return a;if(n.getStore()?.projectId)throw Error(`Project "${n.getStore()?.projectId}" does not exist.`);let{project:b}=await D("My project");return y(b.id)}function D(a){return r(async()=>{let b,c=await s(),d=new Date().toISOString(),e={id:(0,f.randomUUID)(),name:a.trim()||"Untitled project",port:await v(c),createdAt:d,updatedAt:d},h=y(e.id);await g.promises.mkdir(k().join(h,"releases"),{recursive:!0}),await Promise.all([g.promises.writeFile(k().join(h,"project.json"),JSON.stringify({...e,active:!0},null,2),"utf8"),g.promises.writeFile(k().join(h,"config.json"),JSON.stringify((b=process.env.LARKUP_DATA_DIR?.trim(),{...l.P,projectName:w(e.name),storeConfig:{...l.P.storeConfig,mode:"local",dbPath:b?k().join(p(),"projects",e.id,"index"):`./.larkup/projects/${e.id}/index`},updatedAt:new Date().toISOString()}),null,2),"utf8"),g.promises.writeFile(k().join(h,"groups.json"),JSON.stringify([{id:"default",name:"Default",description:"Sources added without a specific group.",icon:"\uD83D\uDCDA",assistantEnabled:!0,createdAt:d,updatedAt:d}],null,2),"utf8"),g.promises.writeFile(k().join(h,"documents.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"deployments.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"automations.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"jobs.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"runtime.json"),"{}\n","utf8")]);let i={activeProjectId:e.id,projects:[...c.projects.map(a=>({...a,active:!1})),e]};return await t(i),{workspace:i,project:e}})}function E(a){return r(async()=>{let b=await s();return b.projects.some(b=>b.id===a)?t({...b,activeProjectId:a}):b})}function F(a,b){return r(async()=>{let c=await s(),d=c.projects.map(c=>c.id===a?{...c,name:b.trim()||c.name,updatedAt:new Date().toISOString()}:c),e=await t({...c,projects:d}),f=d.find(b=>b.id===a);if(f){let b=k().join(y(a),"config.json");try{let a=JSON.parse(await g.promises.readFile(b,"utf8"));await g.promises.writeFile(b,JSON.stringify({...a,projectName:w(f.name),updatedAt:new Date().toISOString()},null,2),"utf8")}catch{}}return e})}function G(a){return r(async()=>{let b=await s(),c=b.projects.filter(b=>b.id!==a);return await g.promises.rm(y(a),{recursive:!0,force:!0}),t({activeProjectId:b.activeProjectId===a?c[0]?.id??null:b.activeProjectId,projects:c})})}async function H(a){let b=q();if(a!==b)throw Error(`Confirmation must exactly match ${b}.`);await r(async()=>{await g.promises.rm(b,{recursive:!0,force:!0})})}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},75039:()=>{},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},80684:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(83377),e=c(74990),f=c(66469),g=c(24261),h=c(90095),i=c(44099),j=c(261),k=c(19461),l=c(55659),m=c(56845),n=c(45054),o=c(99168),p=c(60794),q=c(6200),r=c(93281),s=c(86439),t=c(82238),u=c(11215);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/media/[id]/frame/route",pathname:"/api/media/[id]/frame",filename:"route",bundlePath:"app/api/media/[id]/frame/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup/apps/web/app/api/media/[id]/frame/route.ts",nextConfigOutput:"standalone",userland:()=>c(86701),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/media/[id]/frame/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},83081:(a,b,c)=>{"use strict";c.d(b,{P:()=>d});let d={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:"",visionModelId:"",visionApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",defaultSandboxProvider:"local",sandboxProviderConfigs:{},toolConfigs:{},skills:[],updatedAt:new Date(0).toISOString()}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86701:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>q,dynamic:()=>p,runtime:()=>o});var d=c(14e3),e=c(73024),f=c(76760),g=c.n(f),h=c(48161),i=c.n(h),j=c(64344),k=c(69471),l=c(8346),m=c(1677),n=c(71345);let o="nodejs",p="force-dynamic";async function q(a,b){let c=new URL(a.url).searchParams.get("serverId"),d=()=>r(a,b);return c?(0,n.Zd)(c,d):d()}async function r(a,{params:b}){let{id:c}=await b,f=new URL(a.url).searchParams.get("t");if(null===f)return d.NextResponse.json({error:'Query parameter "t" (timestamp in seconds) is required.'},{status:400});let h=Number(f);if(!Number.isFinite(h)||h<0)return d.NextResponse.json({error:"Timestamp must be a non-negative number of seconds."},{status:400});let n=await (0,j.getMediaAsset)(c);if(!n)return d.NextResponse.json({error:"Media asset not found."},{status:404});if("video"!==n.type)return d.NextResponse.json({error:"Frame extraction is only supported for video assets."},{status:400});if("completed"!==n.processingStatus)return d.NextResponse.json({error:"Video must be fully indexed before frame extraction."},{status:409});if(!await (0,m.$e)("video-audio"))return d.NextResponse.json({error:"Video & Audio tool is not installed."},{status:503});let o=await (0,l.$6)("video-audio");if(!o?.extractFrameAtTimestamp)return d.NextResponse.json({error:"Video & Audio tool does not support frame extraction. Update the tool."},{status:503});let p=(0,k.createStorageProvider)(),q=await e.promises.mkdtemp(g().join(i().tmpdir(),"larkup-frame-"));try{let a=await p.resolvePath?.(n.storageUri),b=n.fileName.split(".").pop()||"mp4",c=a||g().join(q,`source.${b}`);a||await e.promises.writeFile(c,await p.retrieve(n.storageUri));let f=n.durationSecs?Math.min(h,n.durationSecs):h,i=await o.extractFrameAtTimestamp(c,f,{outputDir:g().join(q,"output"),maxWidth:1280}),j=await e.promises.readFile(i.path);return new d.NextResponse(new Uint8Array(j),{headers:{"Content-Type":"image/jpeg","Content-Length":String(j.length),"Cache-Control":"private, no-store","X-Frame-Timestamp":String(f),"X-Frame-Timestamp-Precision":i.timestampPrecision,"X-Frame-Width":String(i.width),"X-Frame-Height":String(i.height)}})}catch(b){let a=b instanceof Error?b.message:"Frame extraction failed.";return d.NextResponse.json({error:a},{status:500})}finally{await e.promises.rm(q,{recursive:!0,force:!0}).catch(()=>{})}}},89112:(a,b,c)=>{"use strict";c.d(b,{i:()=>e});let d=new(c(16698)).AsyncLocalStorage;function e(){return d.getStore()}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2626,9309,7399,1677],()=>b(b.s=80684));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=5482,a.ids=[4344,5482,8346,9471],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},8346:(a,b,c)=>{"use strict";c.d(b,{$6:()=>m,unloadTool:()=>q});var d=c(73024),e=c(76760),f=c.n(e),g=c(73136),h=c(1677),i=c(89112);let j=new Map,k=new Map;async function l(a){let b=`larkup-marketplace-tools${"fixed"===a?"":`-${a}`}`,c=k.get(b);if(c)return c;let{register:d}=await import("tsx/esm/api"),e=d({namespace:b}).import;return k.size>=8&&k.delete(k.keys().next().value),k.set(b,e),e}async function m(a){let b=(0,i.i)()?.tools?.find(b=>b.id===a);if(b)return b.module;let c=await (0,h.F6)(a);if(!c)return null;let d=await o(c),e=await n(c,d),f=`${c.source}:${c.resolvedPath}:${c.version}:${c.installedAt}:${e}`,g=j.get(a);if(g?.installationKey===f)return g.module;try{let b=function(a,b){if(!a.startsWith("file:"))return a;let c=new URL(a);return c.searchParams.set("larkup-installation",b),c.href}(d,f),c=await l(e),g=await c(b,"file:///Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup/packages/marketplace/src/tool-loader.ts");return j.set(a,{installationKey:f,module:g}),g}catch(b){return console.error(`[marketplace] Failed to load tool "${a}":`,b),null}}async function n(a,b){if("local"!==a.source||!b.startsWith("file:"))return"fixed";try{let a=f().dirname(new URL(b).pathname),c=await d.promises.readdir(a,{withFileTypes:!0}),e=0,g=0;for(let b of c){if(!b.isFile())continue;let{mtimeMs:c,size:h}=await d.promises.stat(f().join(a,b.name));e=Math.max(e,c),g+=h}return e>0?`${e}-${g}`:"fixed"}catch{return"fixed"}}async function o(a){switch(a.source){case"local":try{return await d.promises.access(f().join(a.resolvedPath,"package.json")),p(a.resolvedPath)}catch{let b=await (0,h.lS)(a.packageName);if(b)return p(b);return a.packageName}case"registry":case"sandbox":return p(a.resolvedPath);default:return a.packageName}}async function p(a){let b=f().join(a,"package.json"),c=JSON.parse(await d.promises.readFile(b,"utf8")),e="object"==typeof c.exports?c.exports["."]:c.exports,h=("object"==typeof e?e.import??e.default:e)??c.main??"index.js";return(0,g.pathToFileURL)(f().resolve(a,h)).href}function q(a){j.delete(a)}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},32467:a=>{"use strict";a.exports=require("node:http2")},33873:a=>{"use strict";a.exports=require("path")},35287:()=>{},37067:a=>{"use strict";a.exports=require("node:http")},38522:a=>{"use strict";a.exports=require("node:zlib")},44708:a=>{"use strict";a.exports=require("node:https")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64344:(a,b,c)=>{"use strict";c.d(b,{Cz:()=>x,RF:()=>B,W0:()=>w,addMediaAssets:()=>u,deleteMediaAsset:()=>A,getMediaAsset:()=>D,gl:()=>v,kW:()=>C,l0:()=>z,nG:()=>y,readMediaAssets:()=>m});var d=c(89112),e=c(73024),f=c(76760),g=c.n(f),h=c(77598),i=c(71345);let j=Promise.resolve();function k(a){let b=j.then(a,a);return j=b.catch(()=>{}),b}async function l(a){let b=a?await (0,i.requireProjectDataDir)():await (0,i.getProjectDataDir)();return b?g().join(b,"media-assets.json"):null}async function m(){let a=(0,d.i)();if(a)return a.readMediaAssets();let b=await l(!1);if(!b)return[];try{let a=await e.promises.readFile(b,"utf8"),c=JSON.parse(a);if(!Array.isArray(c))throw Error(`Invalid media asset store at ${b}: expected a JSON array.`);return c}catch(a){if(a?.code==="ENOENT")return[];throw a}}async function n(a){let b=(0,d.i)();if(b)return b.writeMediaAssets(a);let c=await l(!0);if(!c)return;let f=g().join(g().dirname(c),`.${g().basename(c)}.${process.pid}.${(0,h.randomUUID)()}.tmp`);try{await e.promises.writeFile(f,JSON.stringify(a,null,2),"utf8"),await e.promises.rename(f,c)}catch(a){throw await e.promises.unlink(f).catch(()=>{}),a}}let o=["download","prepare","extract","transcribe","vision","synthesize","index"],p={download:10,prepare:15,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function q(a){return o.map(b=>({stage:b,status:"waiting",updatedAt:a}))}function r(a){return void 0!==a&&Number.isFinite(a)?Math.max(0,a):void 0}function s(a){let b=r(a);return void 0===b?void 0:Math.min(100,b)}function t(a){return Math.floor(r(a.processingRevision)??0)+1}function u(a){return k(async()=>{let b=await m(),c=new Date().toISOString(),d=a.map(a=>({id:(0,h.randomUUID)(),type:a.type,fileName:a.fileName,mimeType:a.mimeType,storageUri:a.storageUri,thumbnailUri:a.thumbnailUri,originalUrl:a.originalUrl,fileSize:a.fileSize,dimensions:a.dimensions,durationSecs:a.durationSecs,indexingInstructions:a.indexingInstructions,indexingQuality:a.indexingQuality,toolInputs:a.toolInputs,groupId:a.groupId,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:c,updatedAt:c}));return b.push(...d),await n(b),d})}function v(a,b){return k(async()=>{let c=await m(),d=c.findIndex(b=>b.id===a);if(d<0)return;let e=c[d];return c[d]={...e,...b,documentIds:b.documentIds??e.documentIds,pendingDocumentIds:b.pendingDocumentIds??e.pendingDocumentIds,supersededDocumentIds:b.supersededDocumentIds??e.supersededDocumentIds,updatedAt:new Date().toISOString()},await n(c),c[d]})}function w(a,b){return k(async()=>{let c=new Set(a);if(0===c.size)return[];let d=await m(),e=new Date().toISOString(),f=[];for(let a of d)c.has(a.id)&&a.groupId!==b&&(a.groupId=b,a.updatedAt=e,f.push(a));return f.length>0&&await n(d),f})}function x(a,b,c){return k(async()=>{let d,e,f=await m(),g=f.findIndex(b=>b.id===a);if(g<0)return;let h=new Date().toISOString(),i=f[g],j=new Map((i.processingSteps??[]).map(a=>[a.stage,a])),k=q(h).map(a=>j.get(a.stage)??a),l=k.findIndex(a=>a.stage===b),o=k[l],u=new Set(["completed","skipped","failed"]),v=c.status??o.status,w=u.has(o.status)||"running"===o.status&&"waiting"===v?o.status:v,x=s(o.percent),y=s(c.percent),z=void 0===y?x:Math.max(x??0,y),A=r(o.current),B=r(c.current),C=void 0===B?A:Math.max(A??0,B),D=void 0===c.total?r(o.total):r(c.total);void 0!==C&&void 0!==D&&(D=Math.max(D,C))>0&&(z=Math.max(z??0,Math.min(100,C/D*100))),"completed"===w&&(z=100,void 0!==D&&(C=D));let E=u.has(w),F={...o,...c,stage:b,status:w,percent:z,current:C,total:D,...E?{estimatedRemainingSeconds:void 0}:{},startedAt:c.startedAt??o.startedAt??("running"===w||E?h:void 0),updatedAt:h,finishedAt:E?c.finishedAt??o.finishedAt??h:void 0};k[l]=F;let G=Math.max(s(i.processingProgress)??0,0===(e=(d=k.filter(a=>"skipped"!==a.status)).reduce((a,b)=>a+p[b.stage],0))?100:Math.round(d.reduce((a,b)=>a+p[b.stage]*function(a){if("completed"===a.status)return 100;if("waiting"===a.status||"skipped"===a.status)return 0;let b=s(a.percent);return void 0!==b?b:void 0!==a.current&&void 0!==a.total&&Number.isFinite(a.current)&&Number.isFinite(a.total)&&a.total>0?Math.min(100,Math.max(0,a.current/a.total*100)):0}(b)/100,0)/e*1e3)/10),H=[...k].reverse().find(a=>"running"===a.status&&a.message)?.message,I="running"===F.status?F.message??c.message??i.processingMessage:H??c.message??F.message??i.processingMessage;return f[g]={...i,processingSteps:k,processingProgress:G,processingMessage:I,processingRevision:t(i),processingHeartbeatAt:h,updatedAt:h},await n(f),f[g]})}function y(a){return k(async()=>{let b=await m(),c=b.findIndex(b=>b.id===a);if(c<0||"processing"===b[c].processingStatus||"Queued for background processing..."===b[c].processingMessage)return;let d=new Date().toISOString();return b[c]={...b[c],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:0,processingSteps:q(d),processingRevision:t(b[c]),processingStartedAt:d,processingHeartbeatAt:d,updatedAt:d},await n(b),b[c]})}function z(a=3e5){return k(async()=>{let b=await m(),c=Date.now()-a,d="The background worker stopped. Retry to resume media processing.",e=0;for(let a=0;a<b.length;a++){let f=b[a],g="processing"===f.processingStatus,h="pending"===f.processingStatus&&"Queued for background processing..."===f.processingMessage,i=f.processingHeartbeatAt??f.updatedAt;if((g||h)&&new Date(i).getTime()<c){let c=new Date().toISOString(),g=f.processingSteps?.map(a=>"running"===a.status?{...a,status:"failed",message:d,updatedAt:c,finishedAt:c}:a);b[a]={...f,processingStatus:"failed",processingError:d,processingMessage:void 0,processingProgress:void 0,processingSteps:g,processingRevision:t(f),processingHeartbeatAt:c,updatedAt:c},e++}}return e>0&&await n(b),e})}function A(a){return k(async()=>{let b=await m();await n(b.filter(b=>b.id!==a))})}function B(a){return k(async()=>{let b=await m(),c=new Set(a);await n(b.filter(a=>!c.has(a.id)))})}async function C(){let a=await m(),b={image:0,video:0,audio:0},c={pending:0,processing:0,completed:0,failed:0},d=0;for(let e of a)b[e.type]++,c[e.processingStatus]++,d+=e.fileSize;return{total:a.length,byType:b,byStatus:c,totalBytes:d}}async function D(a){return(await m()).find(b=>b.id===a)}},69471:(a,b,c)=>{"use strict";c.d(b,{createStorageProvider:()=>k});var d=c(73024),e=c(76760),f=c.n(e);c(55181);var g=c(71345);class h{async mediaDir(){let a=await (0,g.requireProjectDataDir)(),b=f().join(a,"media");return await d.promises.mkdir(b,{recursive:!0}),b}async store(a,b,c){let e=await this.mediaDir(),g=f().join(e,a);return await d.promises.mkdir(f().dirname(g),{recursive:!0}),await d.promises.writeFile(g,b),`local://${a}`}async storeFile(a,b,c){let e=await this.mediaDir(),g=f().join(e,a);return await d.promises.mkdir(f().dirname(g),{recursive:!0}),await d.promises.copyFile(b,g),`local://${a}`}async retrieve(a){let b=await this.resolvePath(a);if(!b)throw Error(`Unsupported local storage URI: ${a}`);return d.promises.readFile(b)}async resolvePath(a){if(!a.startsWith("local://"))return;let b=a.slice(8),c=await this.mediaDir(),d=f().resolve(c,b),e=f().relative(c,d);if(e.startsWith("..")||f().isAbsolute(e))throw Error("Invalid local storage URI");return d}async delete(a){let b=a.replace("local://",""),c=await this.mediaDir();try{await d.promises.unlink(f().join(c,b))}catch{}}async stats(){try{let a=await this.mediaDir();return await i(a)}catch{return{usedBytes:0,fileCount:0}}}constructor(){this.id="local",this.name="Local Storage"}}async function i(a){let b=0,c=0;async function e(a){let g;try{g=await d.promises.readdir(a,{withFileTypes:!0})}catch{return}for(let h of g){let g=f().join(a,h.name);if(h.isDirectory())await e(g);else try{let a=await d.promises.stat(g);b+=a.size,c++}catch{}}}return await e(a),{usedBytes:b,fileCount:c}}class j{constructor(a){if(this.id="s3",this.name="Amazon S3",!a.bucket)throw Error("S3StorageProvider requires a bucket name.");this.bucket=a.bucket,this.region=a.region||process.env.AWS_REGION||"us-east-1",this.kmsKeyId=a.kmsKeyId,this.prefix=(a.prefix??"canonical").replace(/^\/+|\/+$/g,""),this._credentials=a.accessKeyId&&a.secretAccessKey?{accessKeyId:a.accessKeyId,secretAccessKey:a.secretAccessKey}:void 0}async client(){if(!this._client){let{S3Client:a}=await Promise.all([c.e(6929),c.e(716)]).then(c.bind(c,90716));this._client=new a({region:this.region,...this._credentials?{credentials:this._credentials}:{}})}return this._client}objectKey(a){return`${this.prefix}/${a}`}parseUri(a){if(!a.startsWith("s3://"))throw Error(`Unsupported S3 storage URI: ${a}`);let b=a.slice(5),c=b.indexOf("/");if(c<0)throw Error(`Malformed S3 storage URI: ${a}`);return{bucket:b.slice(0,c),key:b.slice(c+1)}}async store(a,b,d){let{PutObjectCommand:e}=await Promise.all([c.e(6929),c.e(716)]).then(c.bind(c,90716)),f=await this.client(),g=this.objectKey(a);return await f.send(new e({Bucket:this.bucket,Key:g,Body:b,ContentType:d,...this.kmsKeyId?{ServerSideEncryption:"aws:kms",SSEKMSKeyId:this.kmsKeyId}:{ServerSideEncryption:"aws:kms"}})),`s3://${this.bucket}/${g}`}async storeFile(a,b,c){return this.store(a,await d.promises.readFile(b),c)}async retrieve(a){let{GetObjectCommand:b}=await Promise.all([c.e(6929),c.e(716)]).then(c.bind(c,90716)),{bucket:d,key:e}=this.parseUri(a),f=await this.client(),g=await f.send(new b({Bucket:d,Key:e})),h=[];for await(let a of g.Body)h.push(a);return Buffer.concat(h)}async resolvePath(a){}async getReadUrl(a,b){let{GetObjectCommand:d}=await Promise.all([c.e(6929),c.e(716)]).then(c.bind(c,90716)),{getSignedUrl:e}=await Promise.all([c.e(6929),c.e(5919)]).then(c.bind(c,35919)),{bucket:f,key:g}=this.parseUri(a);return e(await this.client(),new d({Bucket:f,Key:g}),{expiresIn:b})}async delete(a){let{DeleteObjectCommand:b}=await Promise.all([c.e(6929),c.e(716)]).then(c.bind(c,90716)),{bucket:d,key:e}=this.parseUri(a),f=await this.client();try{await f.send(new b({Bucket:d,Key:e}))}catch{}}async stats(){return{usedBytes:0,fileCount:0}}}function k(a){if("s3"===(a?.provider??process.env.LARKUP_MEDIA_STORAGE??"local").toLowerCase()){let b=a?.bucket??process.env.LARKUP_MEDIA_S3_BUCKET;if(!b)throw Error("LARKUP_MEDIA_STORAGE=s3 requires LARKUP_MEDIA_S3_BUCKET to be set.");return new j({bucket:b,region:a?.region??process.env.LARKUP_MEDIA_S3_REGION,kmsKeyId:a?.kmsKeyId??process.env.LARKUP_MEDIA_S3_KMS_KEY_ID,prefix:a?.prefix??process.env.LARKUP_MEDIA_S3_PREFIX,accessKeyId:a?.accessKeyId??process.env.LARKUP_MEDIA_S3_ACCESS_KEY_ID??process.env.AWS_ACCESS_KEY_ID,secretAccessKey:a?.secretAccessKey??process.env.LARKUP_MEDIA_S3_SECRET_ACCESS_KEY??process.env.AWS_SECRET_ACCESS_KEY})}return new h}},71345:(a,b,c)=>{"use strict";c.d(b,{J:()=>H,Rm:()=>z,Zd:()=>x,_d:()=>A,eL:()=>E,gA:()=>D,getProjectDataDir:()=>B,oB:()=>F,requireProjectDataDir:()=>C,xx:()=>G,zd:()=>p});var d=c(89112),e=c(16698),f=c(77598),g=c(73024),h=c(77030),i=c.n(h),j=c(76760),k=c.n(j),l=c(83081);let m={activeProjectId:null,projects:[]},n=new e.AsyncLocalStorage,o=Promise.resolve();function p(){let a=process.env.LARKUP_DATA_DIR?.trim();return a?k().resolve(a):k().join(process.cwd(),".larkup")}function q(){return k().join(p(),"projects")}function r(a){let b=o.then(a,a);return o=b.catch(()=>void 0),b}async function s(){try{let a=await g.promises.readdir(q(),{withFileTypes:!0}),b=(await Promise.all(a.filter(a=>a.isDirectory()).map(async a=>{try{return JSON.parse(await g.promises.readFile(k().join(q(),a.name,"project.json"),"utf8"))}catch{return null}}))).filter(a=>null!==a);return{activeProjectId:b.find(a=>a.active)?.id??null,projects:b}}catch{return m}}async function t(a){return await g.promises.mkdir(q(),{recursive:!0}),await Promise.all(a.projects.map(async b=>{let c={...b,active:b.id===a.activeProjectId};await g.promises.mkdir(y(b.id),{recursive:!0}),await g.promises.writeFile(k().join(y(b.id),"project.json"),JSON.stringify(c,null,2),"utf8")})),a}async function u(a){return new Promise(b=>{let c=i().createServer();c.once("error",()=>b(!1)),c.once("listening",()=>c.close(()=>b(!0))),c.listen(a,"127.0.0.1")})}async function v(a){let b=Math.max(8079,...a.projects.map(a=>a.port))+1;for(;!await u(b);)b+=1;return b}function w(a){return a.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"my-larkup"}function x(a,b){return n.run({projectId:a},b)}function y(a){return k().join(q(),a)}async function z(){return s()}async function A(){let a=(0,d.i)();if(a)return a.project;let b=await z(),c=n.getStore()?.projectId??b.activeProjectId;return b.projects.find(a=>a.id===c)??null}async function B(){if((0,d.i)())return null;let a=await A();if(!a)return null;let b=y(a.id);return await g.promises.mkdir(b,{recursive:!0}),b}async function C(){if((0,d.i)())throw Error("This operation requires a workspace storage adapter.");let a=await B();if(a)return a;if(n.getStore()?.projectId)throw Error(`Project "${n.getStore()?.projectId}" does not exist.`);let{project:b}=await D("My project");return y(b.id)}function D(a){return r(async()=>{let b,c=await s(),d=new Date().toISOString(),e={id:(0,f.randomUUID)(),name:a.trim()||"Untitled project",port:await v(c),createdAt:d,updatedAt:d},h=y(e.id);await g.promises.mkdir(k().join(h,"releases"),{recursive:!0}),await Promise.all([g.promises.writeFile(k().join(h,"project.json"),JSON.stringify({...e,active:!0},null,2),"utf8"),g.promises.writeFile(k().join(h,"config.json"),JSON.stringify((b=process.env.LARKUP_DATA_DIR?.trim(),{...l.P,projectName:w(e.name),storeConfig:{...l.P.storeConfig,mode:"local",dbPath:b?k().join(p(),"projects",e.id,"index"):`./.larkup/projects/${e.id}/index`},updatedAt:new Date().toISOString()}),null,2),"utf8"),g.promises.writeFile(k().join(h,"groups.json"),JSON.stringify([{id:"default",name:"Default",description:"Sources added without a specific group.",icon:"\uD83D\uDCDA",assistantEnabled:!0,createdAt:d,updatedAt:d}],null,2),"utf8"),g.promises.writeFile(k().join(h,"documents.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"deployments.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"automations.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"jobs.json"),"[]\n","utf8"),g.promises.writeFile(k().join(h,"runtime.json"),"{}\n","utf8")]);let i={activeProjectId:e.id,projects:[...c.projects.map(a=>({...a,active:!1})),e]};return await t(i),{workspace:i,project:e}})}function E(a){return r(async()=>{let b=await s();return b.projects.some(b=>b.id===a)?t({...b,activeProjectId:a}):b})}function F(a,b){return r(async()=>{let c=await s(),d=c.projects.map(c=>c.id===a?{...c,name:b.trim()||c.name,updatedAt:new Date().toISOString()}:c),e=await t({...c,projects:d}),f=d.find(b=>b.id===a);if(f){let b=k().join(y(a),"config.json");try{let a=JSON.parse(await g.promises.readFile(b,"utf8"));await g.promises.writeFile(b,JSON.stringify({...a,projectName:w(f.name),updatedAt:new Date().toISOString()},null,2),"utf8")}catch{}}return e})}function G(a){return r(async()=>{let b=await s(),c=b.projects.filter(b=>b.id!==a);return await g.promises.rm(y(a),{recursive:!0,force:!0}),t({activeProjectId:b.activeProjectId===a?c[0]?.id??null:b.activeProjectId,projects:c})})}async function H(a){let b=q();if(a!==b)throw Error(`Confirmation must exactly match ${b}.`);await r(async()=>{await g.promises.rm(b,{recursive:!0,force:!0})})}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},75039:()=>{},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},80684:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(83377),e=c(74990),f=c(66469),g=c(24261),h=c(90095),i=c(44099),j=c(261),k=c(19461),l=c(55659),m=c(56845),n=c(45054),o=c(99168),p=c(60794),q=c(6200),r=c(93281),s=c(86439),t=c(82238),u=c(11215);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/media/[id]/frame/route",pathname:"/api/media/[id]/frame",filename:"route",bundlePath:"app/api/media/[id]/frame/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup/apps/web/app/api/media/[id]/frame/route.ts",nextConfigOutput:"standalone",userland:()=>c(86701),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/media/[id]/frame/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},83081:(a,b,c)=>{"use strict";c.d(b,{P:()=>d});let d={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:"",visionModelId:"",visionApiKey:"",scraperProxyServer:"",scraperProxyUsername:"",scraperProxyPassword:"",useScraperProxy:!1,webCrawlerProvider:"local",firecrawlApiKey:"",defaultSandboxProvider:"local",sandboxProviderConfigs:{},toolConfigs:{},skills:[],updatedAt:new Date(0).toISOString()}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86701:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>q,dynamic:()=>p,runtime:()=>o});var d=c(14e3),e=c(73024),f=c(76760),g=c.n(f),h=c(48161),i=c.n(h),j=c(64344),k=c(69471),l=c(8346),m=c(1677),n=c(71345);let o="nodejs",p="force-dynamic";async function q(a,b){let c=new URL(a.url).searchParams.get("serverId"),d=()=>r(a,b);return c?(0,n.Zd)(c,d):d()}async function r(a,{params:b}){let{id:c}=await b,f=new URL(a.url).searchParams.get("t");if(null===f)return d.NextResponse.json({error:'Query parameter "t" (timestamp in seconds) is required.'},{status:400});let h=Number(f);if(!Number.isFinite(h)||h<0)return d.NextResponse.json({error:"Timestamp must be a non-negative number of seconds."},{status:400});let n=await (0,j.getMediaAsset)(c);if(!n)return d.NextResponse.json({error:"Media asset not found."},{status:404});if("video"!==n.type)return d.NextResponse.json({error:"Frame extraction is only supported for video assets."},{status:400});if("completed"!==n.processingStatus)return d.NextResponse.json({error:"Video must be fully indexed before frame extraction."},{status:409});if(!await (0,m.$e)("video-audio"))return d.NextResponse.json({error:"Video & Audio tool is not installed."},{status:503});let o=await (0,l.$6)("video-audio");if(!o?.extractFrameAtTimestamp)return d.NextResponse.json({error:"Video & Audio tool does not support frame extraction. Update the tool."},{status:503});let p=(0,k.createStorageProvider)(),q=await e.promises.mkdtemp(g().join(i().tmpdir(),"larkup-frame-"));try{let a=await p.resolvePath?.(n.storageUri),b=n.fileName.split(".").pop()||"mp4",c=a||g().join(q,`source.${b}`);a||await e.promises.writeFile(c,await p.retrieve(n.storageUri));let f=n.durationSecs?Math.min(h,n.durationSecs):h,i=await o.extractFrameAtTimestamp(c,f,{outputDir:g().join(q,"output"),maxWidth:1280}),j=await e.promises.readFile(i.path);return new d.NextResponse(new Uint8Array(j),{headers:{"Content-Type":"image/jpeg","Content-Length":String(j.length),"Cache-Control":"private, no-store","X-Frame-Timestamp":String(f),"X-Frame-Timestamp-Precision":i.timestampPrecision,"X-Frame-Width":String(i.width),"X-Frame-Height":String(i.height)}})}catch(b){let a=b instanceof Error?b.message:"Frame extraction failed.";return d.NextResponse.json({error:a},{status:500})}finally{await e.promises.rm(q,{recursive:!0,force:!0}).catch(()=>{})}}},89112:(a,b,c)=>{"use strict";c.d(b,{N:()=>f,i:()=>e});let d=new(c(16698)).AsyncLocalStorage;function e(){return d.getStore()}function f(a,b){return d.run(a,b)}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2626,9309,7399,1677],()=>b(b.s=80684));module.exports=c})();
|