@evoscientist/webui 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/.next/BUILD_ID +1 -1
  2. package/dist/.next/build-manifest.json +3 -3
  3. package/dist/.next/server/app/_global-error.html +1 -1
  4. package/dist/.next/server/app/_global-error.rsc +1 -1
  5. package/dist/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  6. package/dist/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  7. package/dist/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  8. package/dist/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  9. package/dist/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/dist/.next/server/app/_not-found.html +1 -1
  12. package/dist/.next/server/app/_not-found.rsc +2 -2
  13. package/dist/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  14. package/dist/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  15. package/dist/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  16. package/dist/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/dist/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  18. package/dist/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  19. package/dist/.next/server/app/api/memory/executions/route.js.nft.json +1 -1
  20. package/dist/.next/server/app/api/memory/observations/route.js.nft.json +1 -1
  21. package/dist/.next/server/app/api/memory/route.js.nft.json +1 -1
  22. package/dist/.next/server/app/api/skills/catalog/route.js.nft.json +1 -1
  23. package/dist/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  24. package/dist/.next/server/app/api/skills/install/route.js +1 -1
  25. package/dist/.next/server/app/api/skills/install/route.js.nft.json +1 -1
  26. package/dist/.next/server/app/api/skills/route.js.nft.json +1 -1
  27. package/dist/.next/server/app/api/workspace/download/route.js.nft.json +1 -1
  28. package/dist/.next/server/app/api/workspace/file/route.js.nft.json +1 -1
  29. package/dist/.next/server/app/api/workspace/route.js.nft.json +1 -1
  30. package/dist/.next/server/app/api/workspace/upload/route.js.nft.json +1 -1
  31. package/dist/.next/server/app/index.html +1 -1
  32. package/dist/.next/server/app/index.rsc +3 -3
  33. package/dist/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  34. package/dist/.next/server/app/index.segments/_full.segment.rsc +3 -3
  35. package/dist/.next/server/app/index.segments/_head.segment.rsc +1 -1
  36. package/dist/.next/server/app/index.segments/_index.segment.rsc +2 -2
  37. package/dist/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  38. package/dist/.next/server/app/page.js.nft.json +1 -1
  39. package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
  40. package/dist/.next/server/chunks/[root-of-the-server]__05vp2x.._.js +1 -1
  41. package/dist/.next/server/chunks/[root-of-the-server]__08kko28._.js +1 -1
  42. package/dist/.next/server/chunks/[root-of-the-server]__0bpxd~j._.js +1 -1
  43. package/dist/.next/server/chunks/[root-of-the-server]__0o.c5k_._.js +1 -1
  44. package/dist/.next/server/chunks/[root-of-the-server]__0s6.s21._.js +6 -0
  45. package/dist/.next/server/chunks/[root-of-the-server]__0vunt~c._.js +1 -1
  46. package/dist/.next/server/chunks/[root-of-the-server]__0xoct7b._.js +1 -1
  47. package/dist/.next/server/chunks/[root-of-the-server]__0yvyeh4._.js +1 -1
  48. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0cylknl._.js +2 -2
  49. package/dist/.next/server/chunks/ssr/{[root-of-the-server]__0nhqxg3._.js → [root-of-the-server]__12~42ln._.js} +2 -2
  50. package/dist/.next/server/chunks/ssr/{node_modules_09go4q4._.js → node_modules_0-9jf7s._.js} +1 -1
  51. package/dist/.next/server/chunks/ssr/{node_modules_12pre7a._.js → node_modules_0.l_o9k._.js} +1 -1
  52. package/dist/.next/server/chunks/ssr/{node_modules_0cen8se._.js → node_modules_00-o__w._.js} +1 -1
  53. package/dist/.next/server/chunks/ssr/{node_modules_13g6~ga._.js → node_modules_00yk8df._.js} +2 -2
  54. package/dist/.next/server/chunks/ssr/{node_modules_02h6tid._.js → node_modules_01rqq7y._.js} +1 -1
  55. package/dist/.next/server/chunks/ssr/{node_modules_08h8ptb._.js → node_modules_050o3~0._.js} +2 -2
  56. package/dist/.next/server/chunks/ssr/{node_modules_01wrsnd._.js → node_modules_09x0yif._.js} +1 -1
  57. package/dist/.next/server/chunks/ssr/{node_modules_0ggr.5d._.js → node_modules_0a61e8g._.js} +2 -2
  58. package/dist/.next/server/chunks/ssr/{node_modules_0_6b9ch._.js → node_modules_0a9st_6._.js} +1 -1
  59. package/dist/.next/server/chunks/ssr/{node_modules_0x~mdr7._.js → node_modules_0d91z34._.js} +1 -1
  60. package/dist/.next/server/chunks/ssr/{node_modules_0tv.r40._.js → node_modules_0exnvlg._.js} +1 -1
  61. package/dist/.next/server/chunks/ssr/{node_modules_0lwzzcf._.js → node_modules_0kf5axs._.js} +1 -1
  62. package/dist/.next/server/chunks/ssr/{node_modules_056p87e._.js → node_modules_0l-2che._.js} +1 -1
  63. package/dist/.next/server/chunks/ssr/{node_modules_00~yr1h._.js → node_modules_0makin.._.js} +1 -1
  64. package/dist/.next/server/chunks/ssr/{node_modules_0_kt~35._.js → node_modules_0p1ro75._.js} +2 -2
  65. package/dist/.next/server/chunks/ssr/{node_modules_0sieh2u._.js → node_modules_0po23em._.js} +2 -2
  66. package/dist/.next/server/chunks/ssr/{node_modules_0o8g9vd._.js → node_modules_0skn4ke._.js} +1 -1
  67. package/dist/.next/server/chunks/ssr/{node_modules_00mqsn_._.js → node_modules_0u1jua0._.js} +1 -1
  68. package/dist/.next/server/chunks/ssr/{node_modules_0v3m.mz._.js → node_modules_0ujy5r7._.js} +1 -1
  69. package/dist/.next/server/chunks/ssr/{node_modules_0ew~fev._.js → node_modules_0v29g77._.js} +2 -2
  70. package/dist/.next/server/chunks/ssr/{node_modules_07189gi._.js → node_modules_0x8-epl._.js} +2 -2
  71. package/dist/.next/server/chunks/ssr/{node_modules_0qn_i0l._.js → node_modules_0xheqa8._.js} +1 -1
  72. package/dist/.next/server/chunks/ssr/{node_modules_02_xiyw._.js → node_modules_0xl3swb._.js} +1 -1
  73. package/dist/.next/server/chunks/ssr/{node_modules_0put12p._.js → node_modules_0yx-7n5._.js} +1 -1
  74. package/dist/.next/server/chunks/ssr/{node_modules_0r2zd8a._.js → node_modules_0~gyl9u._.js} +1 -1
  75. package/dist/.next/server/chunks/ssr/{node_modules_093_74j._.js → node_modules_11r29oo._.js} +1 -1
  76. package/dist/.next/server/chunks/ssr/{node_modules_0aw6~uc._.js → node_modules_12uy2-t._.js} +1 -1
  77. package/dist/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0.xpmfl._.js → node_modules_katex_dist_katex_mjs_0oc7z2j._.js} +1 -1
  78. package/dist/.next/server/middleware-build-manifest.js +3 -3
  79. package/dist/.next/server/pages/404.html +1 -1
  80. package/dist/.next/server/pages/500.html +1 -1
  81. package/dist/.next/static/chunks/{0-xu1buw-z-nk.css → 0e~yxiezknbzn.css} +1 -1
  82. package/dist/.next/static/chunks/{0kj71vsdfu8cs.js → 12udp03cbusxh.js} +2 -2
  83. package/dist/package.json +1 -1
  84. package/package.json +1 -1
  85. package/dist/.next/server/chunks/[root-of-the-server]__0-8pt0b._.js +0 -6
  86. /package/dist/.next/static/{AkWDd4967dKovrmEZYgg0 → 7aCwaA3-bL6RnqwYt0PmW}/_buildManifest.js +0 -0
  87. /package/dist/.next/static/{AkWDd4967dKovrmEZYgg0 → 7aCwaA3-bL6RnqwYt0PmW}/_clientMiddlewareManifest.js +0 -0
  88. /package/dist/.next/static/{AkWDd4967dKovrmEZYgg0 → 7aCwaA3-bL6RnqwYt0PmW}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},17883,e=>{"use strict";var t=e.i(522734),r=e.i(446786),a=e.i(814747),s=e.i(254799);let i=(0,a.join)((0,r.homedir)(),".config","evoscientist","langgraph_dev.workspace.json");function o(e){for(let t=0;t<e.length;t+=1){let r=e.charCodeAt(t);if(r<32||127===r||r>=128&&r<=159||8232===r||8233===r)return!0}return!1}let n=new Set(["large_tool_results","conversation_history","__pycache__","node_modules","__MACOSX"]),l=[".pyc",".pyo"];function c(e){return!!(e.startsWith(".")||n.has(e))||l.some(t=>e.endsWith(t))}async function p(){let e;try{let r=JSON.parse(await t.promises.readFile(i,"utf-8")),a=r.workspace,s=r.pid;"string"==typeof a&&a.trim()&&(!("number"==typeof s&&s>0)||function(e){try{return process.kill(e,0),!0}catch(e){return"EPERM"===e.code}}(s))&&(e=a)}catch{}if(!(e||=process.env.EVOSCIENTIST_WORKSPACE_DIR))throw Error("No active EvoScientist workspace found. Start the backend with `EvoSci deploy` first.");let r=(0,a.resolve)(e);if(!(await t.promises.stat(r)).isDirectory())throw Error("The active EvoScientist workspace is not a directory.");return t.promises.realpath(r)}function d(e,t){if(o(t))throw Error("Invalid path.");let r=t.replaceAll("\\","/").replace(/^\/+/,"");if(r.split("/").some(e=>""!==e&&c(e)))throw Error("Path is not accessible.");let s=(0,a.resolve)(e,r);if(s!==e&&!s.startsWith(e+a.sep))throw Error("Path is outside the workspace.");return s}async function u(e,r){let s,i=d(e,r);try{s=await t.promises.realpath(i)}catch{throw Error("Path is not accessible.")}if(s!==e&&!s.startsWith(e+a.sep))throw Error("Path is not accessible.");let o=(0,a.relative)(e,s);if(o&&o.split(a.sep).some(e=>""!==e&&c(e)))throw Error("Path is not accessible.");return s}let h=new Set(["txt","text","md","markdown","log","csv","tsv","json","jsonl","yaml","yml","toml","xml","ini","cfg","conf","env","py","js","jsx","ts","tsx","sh","bash","zsh","r","jl","cpp","cc","c","h","hpp","java","go","rs","rb","php","swift","kt","cs","sql","tex","bib","rst","css","scss","html"]);async function f(e,r){let s;try{s=await t.promises.realpath((0,a.dirname)(r))}catch{throw Error("Path is not accessible.")}if(s!==e&&!s.startsWith(e+a.sep))throw Error("Path is not accessible.")}function w(e){let t;return h.has((t=e.lastIndexOf("."))>=0?e.slice(t+1).toLowerCase():"")}async function m(e,r,i){let o;if("string"!=typeof i)throw Error("Content must be a string.");if(Buffer.byteLength(i,"utf-8")>5242880)throw Error("This file is too large to save.");if(!w(r.replaceAll("\\","/").split("/").pop()||r))throw Error("Only text/code files can be edited.");let n=d(e,r);try{o=await t.promises.lstat(n)}catch{throw Error("Only files can be edited.")}if(o.isSymbolicLink())throw Error("Editing symlinks is not allowed.");let l=await u(e,r);if(!w((0,a.basename)(l)))throw Error("Only text/code files can be edited.");let c=await t.promises.stat(l);if(!c.isFile())throw Error("Only files can be edited.");let p=`${l}.${(0,s.randomUUID)()}.tmp`;try{await f(e,l),await t.promises.writeFile(p,i,{encoding:"utf-8",mode:511&c.mode}),await f(e,l),await t.promises.rename(p,l)}catch(e){throw await t.promises.rm(p,{force:!0}).catch(()=>{}),e}let h=await t.promises.stat(l);return{path:r.replaceAll("\\","/").replace(/^\/+/,""),size:h.size,mtime:h.mtimeMs}}async function x(e,r){await u(e,r);let a=d(e,r);if((await t.promises.lstat(a)).isDirectory())throw Error("Only files can be deleted.");await f(e,a),await t.promises.rm(a,{force:!0})}e.s(["MAX_WORKSPACE_WRITE_BYTES",0,5242880,"deleteWorkspaceFile",0,x,"getWorkspaceDir",0,p,"hasControlChar",0,o,"isCrossOrigin",0,function(e){let t=e.headers.get("sec-fetch-site");if(t&&"same-origin"!==t&&"same-site"!==t&&"none"!==t)return!0;let r=e.headers.get("origin");return!!r&&r!==e.nextUrl.origin},"isHiddenEntry",0,c,"safeResolve",0,u,"writeWorkspaceFile",0,m,"zipExcludeArgs",0,function(){let e=[".*","*/.*"];for(let t of n)e.push(`${t}/*`,`*/${t}/*`,t,`*/${t}`);for(let t of l)e.push(`*${t}`);return e.flatMap(e=>["-x",e])}])},395431,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),s=e.i(759756),i=e.i(561916),o=e.i(174677),n=e.i(869741),l=e.i(316795),c=e.i(487718),p=e.i(995169),d=e.i(47587),u=e.i(666012),h=e.i(570101),f=e.i(626937),w=e.i(10372),m=e.i(193695);e.i(52474);var x=e.i(600220),g=e.i(522734),v=e.i(814747),E=e.i(89171),y=e.i(17883);async function R(e,t,r){for(let a=1;;a+=1){let s=1===a?t:function(e,t){let r=e.lastIndexOf("."),a=r>0?e.slice(0,r):e,s=r>0?e.slice(r):"";return`${a} (${t})${s}`}(t,a),i=(0,v.resolve)(e,s);if((0,v.dirname)(i)!==e)throw Error("Invalid file path.");try{return await g.promises.writeFile(i,r,{flag:"wx"}),s}catch(e){if("EEXIST"!==e.code)throw e}}}async function b(e){try{let t=e.headers.get("origin");if(t&&t!==e.nextUrl.origin)return E.NextResponse.json({error:"Cross-origin workspace uploads are not allowed."},{status:403});let r=Number(e.headers.get("content-length")??"");if(Number.isFinite(r)&&r>0x6500000)return E.NextResponse.json({error:"The selected files exceed the 100 MB upload limit."},{status:413});let a=(await e.formData()).getAll("files").filter(e=>"string"!=typeof e);if(0===a.length)return E.NextResponse.json({error:"Choose at least one file to upload."},{status:400});if(a.length>20)return E.NextResponse.json({error:"Upload at most 20 files at a time."},{status:400});let s=0,i=a.map(e=>{if(e.size>0x3200000)throw Error(`${e.name} is larger than the 50 MB upload limit.`);if((s+=e.size)>0x6400000)throw Error("The selected files exceed the 100 MB upload limit.");return{file:e,fileName:function(e){let t=(0,v.basename)(e.replaceAll("\\","/")).trim();if(!t||"."===t||".."===t||(0,y.hasControlChar)(t))throw Error("Invalid file name.");return t}(e.name)}}),o=await (0,y.getWorkspaceDir)(),n=[],l=[];try{for(let{file:e,fileName:t}of i){let r=await R(o,t,new Uint8Array(await e.arrayBuffer()));l.push((0,v.resolve)(o,r)),n.push({name:r,path:`/${r}`,size:e.size})}}catch(e){throw await Promise.allSettled(l.map(e=>g.promises.rm(e,{force:!0}))),e}return E.NextResponse.json({files:n})}catch(e){return E.NextResponse.json({error:e instanceof Error?e.message:"Failed to upload files."},{status:400})}}e.s(["POST",0,b,"runtime",0,"nodejs"],464104);var C=e.i(464104);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/workspace/upload/route",pathname:"/api/workspace/upload",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/workspace/upload/route.ts",nextConfigOutput:"standalone",userland:C,...{}}),{workAsyncStorage:k,workUnitAsyncStorage:S,serverHooks:_}=A;async function N(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),A.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/workspace/upload/route";g=g.replace(/\/index$/,"")||"/";let v=await A.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:E,deploymentId:y,params:R,nextConfig:b,parsedUrl:C,isDraftMode:k,prerenderManifest:S,routerServerContext:_,isOnDemandRevalidate:N,revalidateOnlyGenerated:P,resolvedPathname:O,clientReferenceManifest:T,serverActionsManifest:j}=v,q=(0,n.normalizeAppPath)(g),I=!!(S.dynamicRoutes[q]||S.routes[O]),M=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!k){let e=!!S.routes[O],t=S.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await M();throw new m.NoFallbackError}}let U=null;!I||A.isDev||k||(U="/index"===(U=O)?"/":U);let D=!0===A.isDev||!I,$=I&&!D;j&&T&&(0,o.setManifestsSingleton)({page:g,clientReferenceManifest:T,serverActionsManifest:j});let H=e.method||"GET",F=(0,i.getTracer)(),W=F.getActiveScopeSpan(),B=!!(null==_?void 0:_.isWrappedByNextServer),K=!!(0,s.getRequestMeta)(e,"minimalMode"),z=(0,s.getRequestMeta)(e,"incrementalCache")||await A.getIncrementalCache(e,b,S,K);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let L={params:R,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:D,incrementalCache:z,cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>A.onRequestError(e,t,a,s,_)},sharedContext:{buildId:E,deploymentId:y}},X=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),G=c.NextRequestAdapter.fromNodeNextRequest(X,(0,c.signalFromNodeResponse)(t));try{let s,o=async e=>A.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${H} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",a),s.updateName(t))}else e.updateName(`${H} ${g}`)}),n=async s=>{var i,n;let l=async({previousCacheEntry:r})=>{try{if(!K&&N&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(s);e.fetchMetrics=L.renderOpts.fetchMetrics;let n=L.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let l=L.renderOpts.collectedTags;if(!I)return await (0,u.sendResponse)(X,V,i,L.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[w.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:N})},!1,_),t}},c=await A.handleResponse({req:e,nextConfig:b,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:P,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!I)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(n=c.value)?void 0:n.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",N?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return K&&I||p.delete(w.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,f.getCacheControlHeader)(c.cacheControl)),await (0,u.sendResponse)(X,V,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};B&&W?await n(W):(s=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${H} ${g}`,kind:i.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},n),void 0,!B))}catch(t){if(t instanceof m.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:N})},!1,_),I)throw t;return await (0,u.sendResponse)(X,V,new Response(null,{status:500})),null}}e.s(["handler",0,N,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:S})},"routeModule",0,A,"serverHooks",0,_,"workAsyncStorage",0,k,"workUnitAsyncStorage",0,S],395431)}];
1
+ module.exports=[254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},17883,e=>{"use strict";var t=e.i(522734),r=e.i(446786),a=e.i(814747),s=e.i(254799);let i=(0,a.join)((0,r.homedir)(),".config","evoscientist","langgraph_dev.workspace.json");function o(e){for(let t=0;t<e.length;t+=1){let r=e.charCodeAt(t);if(r<32||127===r||r>=128&&r<=159||8232===r||8233===r)return!0}return!1}let n=new Set(["large_tool_results","conversation_history","__pycache__","node_modules","__MACOSX"]),l=[".pyc",".pyo"];function c(e){return!!(e.startsWith(".")||n.has(e))||l.some(t=>e.endsWith(t))}async function p(){let e;try{let r=JSON.parse(await t.promises.readFile(i,"utf-8")),a=r.workspace,s=r.pid;"string"==typeof a&&a.trim()&&(!("number"==typeof s&&s>0)||function(e){try{return process.kill(e,0),!0}catch(e){return"EPERM"===e.code}}(s))&&(e=a)}catch{}if(!(e||=process.env.EVOSCIENTIST_WORKSPACE_DIR))throw Error("No active EvoScientist workspace found. Start the backend with `EvoSci deploy` first.");let r=(0,a.resolve)(e);if(!(await t.promises.stat(r)).isDirectory())throw Error("The active EvoScientist workspace is not a directory.");return t.promises.realpath(r)}function u(e,t){if(o(t))throw Error("Invalid path.");let r=t.replaceAll("\\","/").replace(/^\/+/,"");if(r.split("/").some(e=>""!==e&&c(e)))throw Error("Path is not accessible.");let s=(0,a.resolve)(e,r);if(s!==e&&!s.startsWith(e+a.sep))throw Error("Path is outside the workspace.");return s}async function d(e,r){let s,i=u(e,r);try{s=await t.promises.realpath(i)}catch{throw Error("Path is not accessible.")}if(s!==e&&!s.startsWith(e+a.sep))throw Error("Path is not accessible.");let o=(0,a.relative)(e,s);if(o&&o.split(a.sep).some(e=>""!==e&&c(e)))throw Error("Path is not accessible.");return s}let h=new Set(["txt","text","md","markdown","log","csv","tsv","json","jsonl","yaml","yml","toml","xml","ini","cfg","conf","env","py","js","jsx","ts","tsx","sh","bash","zsh","r","jl","cpp","cc","c","h","hpp","java","go","rs","rb","php","swift","kt","cs","sql","tex","bib","rst","css","scss","html"]);async function f(e,r){let s;try{s=await t.promises.realpath((0,a.dirname)(r))}catch{throw Error("Path is not accessible.")}if(s!==e&&!s.startsWith(e+a.sep))throw Error("Path is not accessible.")}function w(e){let t;return h.has((t=e.lastIndexOf("."))>=0?e.slice(t+1).toLowerCase():"")}async function m(e,r,i){let o;if("string"!=typeof i)throw Error("Content must be a string.");if(Buffer.byteLength(i,"utf-8")>5242880)throw Error("This file is too large to save.");if(!w(r.replaceAll("\\","/").split("/").pop()||r))throw Error("Only text/code files can be edited.");let n=u(e,r);try{o=await t.promises.lstat(n)}catch{throw Error("Only files can be edited.")}if(o.isSymbolicLink())throw Error("Editing symlinks is not allowed.");let l=await d(e,r);if(!w((0,a.basename)(l)))throw Error("Only text/code files can be edited.");let c=await t.promises.stat(l);if(!c.isFile())throw Error("Only files can be edited.");let p=`${l}.${(0,s.randomUUID)()}.tmp`;try{await f(e,l),await t.promises.writeFile(p,i,{encoding:"utf-8",mode:511&c.mode}),await f(e,l),await t.promises.rename(p,l)}catch(e){throw await t.promises.rm(p,{force:!0}).catch(()=>{}),e}let h=await t.promises.stat(l);return{path:r.replaceAll("\\","/").replace(/^\/+/,""),size:h.size,mtime:h.mtimeMs}}async function x(e,r){await d(e,r);let a=u(e,r);if((await t.promises.lstat(a)).isDirectory())throw Error("Only files can be deleted.");await f(e,a),await t.promises.rm(a,{force:!0})}e.s(["MAX_WORKSPACE_WRITE_BYTES",0,5242880,"deleteWorkspaceFile",0,x,"getWorkspaceDir",0,p,"hasControlChar",0,o,"isCrossOrigin",0,function(e){let t=e.headers.get("host");if(!t)return!0;let r=e.headers.get("sec-fetch-site");if(r)return"same-origin"!==r&&"same-site"!==r&&"none"!==r;let a=e.headers.get("origin");if(!a)return!1;try{return new URL(a).host!==t}catch{return!0}},"isHiddenEntry",0,c,"safeResolve",0,d,"writeWorkspaceFile",0,m,"zipExcludeArgs",0,function(){let e=[".*","*/.*"];for(let t of n)e.push(`${t}/*`,`*/${t}/*`,t,`*/${t}`);for(let t of l)e.push(`*${t}`);return e.flatMap(e=>["-x",e])}])},395431,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),s=e.i(759756),i=e.i(561916),o=e.i(174677),n=e.i(869741),l=e.i(316795),c=e.i(487718),p=e.i(995169),u=e.i(47587),d=e.i(666012),h=e.i(570101),f=e.i(626937),w=e.i(10372),m=e.i(193695);e.i(52474);var x=e.i(600220),g=e.i(522734),v=e.i(814747),y=e.i(89171),E=e.i(17883);async function R(e,t,r){for(let a=1;;a+=1){let s=1===a?t:function(e,t){let r=e.lastIndexOf("."),a=r>0?e.slice(0,r):e,s=r>0?e.slice(r):"";return`${a} (${t})${s}`}(t,a),i=(0,v.resolve)(e,s);if((0,v.dirname)(i)!==e)throw Error("Invalid file path.");try{return await g.promises.writeFile(i,r,{flag:"wx"}),s}catch(e){if("EEXIST"!==e.code)throw e}}}async function b(e){try{if((0,E.isCrossOrigin)(e))return y.NextResponse.json({error:"Cross-origin workspace uploads are not allowed."},{status:403});let t=Number(e.headers.get("content-length")??"");if(Number.isFinite(t)&&t>0x6500000)return y.NextResponse.json({error:"The selected files exceed the 100 MB upload limit."},{status:413});let r=(await e.formData()).getAll("files").filter(e=>"string"!=typeof e);if(0===r.length)return y.NextResponse.json({error:"Choose at least one file to upload."},{status:400});if(r.length>20)return y.NextResponse.json({error:"Upload at most 20 files at a time."},{status:400});let a=0,s=r.map(e=>{if(e.size>0x3200000)throw Error(`${e.name} is larger than the 50 MB upload limit.`);if((a+=e.size)>0x6400000)throw Error("The selected files exceed the 100 MB upload limit.");return{file:e,fileName:function(e){let t=(0,v.basename)(e.replaceAll("\\","/")).trim();if(!t||"."===t||".."===t||(0,E.hasControlChar)(t))throw Error("Invalid file name.");return t}(e.name)}}),i=await (0,E.getWorkspaceDir)(),o=[],n=[];try{for(let{file:e,fileName:t}of s){let r=await R(i,t,new Uint8Array(await e.arrayBuffer()));n.push((0,v.resolve)(i,r)),o.push({name:r,path:`/${r}`,size:e.size})}}catch(e){throw await Promise.allSettled(n.map(e=>g.promises.rm(e,{force:!0}))),e}return y.NextResponse.json({files:o})}catch(e){return y.NextResponse.json({error:e instanceof Error?e.message:"Failed to upload files."},{status:400})}}e.s(["POST",0,b,"runtime",0,"nodejs"],464104);var C=e.i(464104);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/workspace/upload/route",pathname:"/api/workspace/upload",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/workspace/upload/route.ts",nextConfigOutput:"standalone",userland:C,...{}}),{workAsyncStorage:k,workUnitAsyncStorage:S,serverHooks:_}=A;async function N(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),A.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/workspace/upload/route";g=g.replace(/\/index$/,"")||"/";let v=await A.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,deploymentId:E,params:R,nextConfig:b,parsedUrl:C,isDraftMode:k,prerenderManifest:S,routerServerContext:_,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:T,serverActionsManifest:j}=v,q=(0,n.normalizeAppPath)(g),I=!!(S.dynamicRoutes[q]||S.routes[P]),M=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!k){let e=!!S.routes[P],t=S.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await M();throw new m.NoFallbackError}}let U=null;!I||A.isDev||k||(U="/index"===(U=P)?"/":U);let D=!0===A.isDev||!I,$=I&&!D;j&&T&&(0,o.setManifestsSingleton)({page:g,clientReferenceManifest:T,serverActionsManifest:j});let H=e.method||"GET",F=(0,i.getTracer)(),W=F.getActiveScopeSpan(),B=!!(null==_?void 0:_.isWrappedByNextServer),K=!!(0,s.getRequestMeta)(e,"minimalMode"),z=(0,s.getRequestMeta)(e,"incrementalCache")||await A.getIncrementalCache(e,b,S,K);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let L={params:R,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:D,incrementalCache:z,cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>A.onRequestError(e,t,a,s,_)},sharedContext:{buildId:y,deploymentId:E}},X=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),G=c.NextRequestAdapter.fromNodeNextRequest(X,(0,c.signalFromNodeResponse)(t));try{let s,o=async e=>A.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${H} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",a),s.updateName(t))}else e.updateName(`${H} ${g}`)}),n=async s=>{var i,n;let l=async({previousCacheEntry:r})=>{try{if(!K&&N&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(s);e.fetchMetrics=L.renderOpts.fetchMetrics;let n=L.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let l=L.renderOpts.collectedTags;if(!I)return await (0,d.sendResponse)(X,V,i,L.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[w.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:N})},!1,_),t}},c=await A.handleResponse({req:e,nextConfig:b,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!I)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(n=c.value)?void 0:n.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",N?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return K&&I||p.delete(w.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,f.getCacheControlHeader)(c.cacheControl)),await (0,d.sendResponse)(X,V,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};B&&W?await n(W):(s=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${H} ${g}`,kind:i.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},n),void 0,!B))}catch(t){if(t instanceof m.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:N})},!1,_),I)throw t;return await (0,d.sendResponse)(X,V,new Response(null,{status:500})),null}}e.s(["handler",0,N,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:S})},"routeModule",0,A,"serverHooks",0,_,"workAsyncStorage",0,k,"workUnitAsyncStorage",0,S],395431)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0xoct7b._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},17883,e=>{"use strict";var t=e.i(522734),r=e.i(446786),i=e.i(814747),a=e.i(254799);let s=(0,i.join)((0,r.homedir)(),".config","evoscientist","langgraph_dev.workspace.json");function n(e){for(let t=0;t<e.length;t+=1){let r=e.charCodeAt(t);if(r<32||127===r||r>=128&&r<=159||8232===r||8233===r)return!0}return!1}let o=new Set(["large_tool_results","conversation_history","__pycache__","node_modules","__MACOSX"]),l=[".pyc",".pyo"];function c(e){return!!(e.startsWith(".")||o.has(e))||l.some(t=>e.endsWith(t))}async function u(){let e;try{let r=JSON.parse(await t.promises.readFile(s,"utf-8")),i=r.workspace,a=r.pid;"string"==typeof i&&i.trim()&&(!("number"==typeof a&&a>0)||function(e){try{return process.kill(e,0),!0}catch(e){return"EPERM"===e.code}}(a))&&(e=i)}catch{}if(!(e||=process.env.EVOSCIENTIST_WORKSPACE_DIR))throw Error("No active EvoScientist workspace found. Start the backend with `EvoSci deploy` first.");let r=(0,i.resolve)(e);if(!(await t.promises.stat(r)).isDirectory())throw Error("The active EvoScientist workspace is not a directory.");return t.promises.realpath(r)}function p(e,t){if(n(t))throw Error("Invalid path.");let r=t.replaceAll("\\","/").replace(/^\/+/,"");if(r.split("/").some(e=>""!==e&&c(e)))throw Error("Path is not accessible.");let a=(0,i.resolve)(e,r);if(a!==e&&!a.startsWith(e+i.sep))throw Error("Path is outside the workspace.");return a}async function d(e,r){let a,s=p(e,r);try{a=await t.promises.realpath(s)}catch{throw Error("Path is not accessible.")}if(a!==e&&!a.startsWith(e+i.sep))throw Error("Path is not accessible.");let n=(0,i.relative)(e,a);if(n&&n.split(i.sep).some(e=>""!==e&&c(e)))throw Error("Path is not accessible.");return a}let h=new Set(["txt","text","md","markdown","log","csv","tsv","json","jsonl","yaml","yml","toml","xml","ini","cfg","conf","env","py","js","jsx","ts","tsx","sh","bash","zsh","r","jl","cpp","cc","c","h","hpp","java","go","rs","rb","php","swift","kt","cs","sql","tex","bib","rst","css","scss","html"]);async function m(e,r){let a;try{a=await t.promises.realpath((0,i.dirname)(r))}catch{throw Error("Path is not accessible.")}if(a!==e&&!a.startsWith(e+i.sep))throw Error("Path is not accessible.")}function f(e){let t;return h.has((t=e.lastIndexOf("."))>=0?e.slice(t+1).toLowerCase():"")}async function w(e,r,s){let n;if("string"!=typeof s)throw Error("Content must be a string.");if(Buffer.byteLength(s,"utf-8")>5242880)throw Error("This file is too large to save.");if(!f(r.replaceAll("\\","/").split("/").pop()||r))throw Error("Only text/code files can be edited.");let o=p(e,r);try{n=await t.promises.lstat(o)}catch{throw Error("Only files can be edited.")}if(n.isSymbolicLink())throw Error("Editing symlinks is not allowed.");let l=await d(e,r);if(!f((0,i.basename)(l)))throw Error("Only text/code files can be edited.");let c=await t.promises.stat(l);if(!c.isFile())throw Error("Only files can be edited.");let u=`${l}.${(0,a.randomUUID)()}.tmp`;try{await m(e,l),await t.promises.writeFile(u,s,{encoding:"utf-8",mode:511&c.mode}),await m(e,l),await t.promises.rename(u,l)}catch(e){throw await t.promises.rm(u,{force:!0}).catch(()=>{}),e}let h=await t.promises.stat(l);return{path:r.replaceAll("\\","/").replace(/^\/+/,""),size:h.size,mtime:h.mtimeMs}}async function y(e,r){await d(e,r);let i=p(e,r);if((await t.promises.lstat(i)).isDirectory())throw Error("Only files can be deleted.");await m(e,i),await t.promises.rm(i,{force:!0})}e.s(["MAX_WORKSPACE_WRITE_BYTES",0,5242880,"deleteWorkspaceFile",0,y,"getWorkspaceDir",0,u,"hasControlChar",0,n,"isCrossOrigin",0,function(e){let t=e.headers.get("sec-fetch-site");if(t&&"same-origin"!==t&&"same-site"!==t&&"none"!==t)return!0;let r=e.headers.get("origin");return!!r&&r!==e.nextUrl.origin},"isHiddenEntry",0,c,"safeResolve",0,d,"writeWorkspaceFile",0,w,"zipExcludeArgs",0,function(){let e=[".*","*/.*"];for(let t of o)e.push(`${t}/*`,`*/${t}/*`,t,`*/${t}`);for(let t of l)e.push(`*${t}`);return e.flatMap(e=>["-x",e])}])},85678,e=>{"use strict";var t=e.i(522734),r=e.i(446786),i=e.i(814747),a=e.i(254799),s=e.i(17883);function n(e){return e.startsWith("~")?(0,i.join)((0,r.homedir)(),e.slice(1)):(0,i.resolve)(e)}function o(){let e,t=process.env.EVOSCIENTIST_MEMORIES_DIR||process.env.EVOSCIENTIST_MEMORY_DIR;return t&&t.trim()?n(t):(0,i.join)((e=process.env.EVOSCIENTIST_DATA_DIR)&&e.trim()?n(e):(0,i.join)((0,r.homedir)(),".evoscientist"),"memories")}async function l(){try{let e=await t.promises.realpath(o());return(await t.promises.stat(e)).isDirectory()?e:null}catch{return null}}async function c(){let e=o();return await t.promises.mkdir(e,{recursive:!0}),t.promises.realpath(e)}let u=new Set(["__pycache__","node_modules","__MACOSX"]),p=[".pyc",".pyo"];function d(e){return!!(e.startsWith(".")||u.has(e))||p.some(t=>e.endsWith(t))}let h=new Set(["md","markdown","txt","text","json","yaml","yml","csv","tsv","log","tex","bib","rst"]);function m(e){let t;return h.has((t=e.lastIndexOf("."))>=0?e.slice(t+1).toLowerCase():"")}function f(e,t){if((0,s.hasControlChar)(t))throw Error("Invalid path.");let r=t.replaceAll("\\","/").replace(/^\/+/,"");if(!r)throw Error("A file path is required.");if(r.split("/").some(e=>""!==e&&d(e)))throw Error("Path is not accessible.");let a=(0,i.resolve)(e,r);if(a!==e&&!a.startsWith(e+i.sep))throw Error("Path is outside the memory directory.");return a}async function w(e,r){let a,s=f(e,r);try{a=await t.promises.realpath(s)}catch{throw Error("Path is not accessible.")}if(a!==e&&!a.startsWith(e+i.sep))throw Error("Path is not accessible.");let n=(0,i.relative)(e,a);if(n&&n.split(i.sep).some(e=>""!==e&&d(e)))throw Error("Path is not accessible.");return a}async function y(e,r){let a=f(e,r),s=(0,i.dirname)(a);for(;;)try{let r=await t.promises.realpath(s);if(r!==e&&!r.startsWith(e+i.sep))throw Error("Path is outside the memory directory.");break}catch(t){if(t instanceof Error&&t.message.includes("outside"))throw t;let e=(0,i.dirname)(s);if(e===s)break;s=e}return a}async function g(){let e=o(),r=await l();if(!r)return{dir:e,exists:!1,entries:[],truncated:!1};let a=[],s=!1;async function n(e,o){let l;if(o>8||a.length>=2e3){a.length>=2e3&&(s=!0);return}try{l=await t.promises.readdir(e,{withFileTypes:!0})}catch{return}for(let c of(l.sort((e,t)=>e.name.localeCompare(t.name)),l)){if(d(c.name))continue;if(a.length>=2e3){s=!0;return}let l=(0,i.join)(e,c.name);if(c.isDirectory())await n(l,o+1);else if(c.isFile()){let e=0,s=0;try{let r=await t.promises.stat(l);e=r.size,s=r.mtimeMs}catch{continue}a.push({path:(0,i.relative)(r,l).split(i.sep).join("/"),size:e,mtime:s,editable:m(c.name)&&e<=2097152})}}}return await n(r,0),{dir:e,exists:!0,entries:a,truncated:s}}async function E(e){let r=await l();if(!r)throw Error("No memory directory found.");if(!m(e))throw Error("This file type can't be edited.");let i=await w(r,e),a=await t.promises.stat(i);if(!a.isFile())throw Error("Not a file.");if(a.size>2097152)throw Error("This file is too large to open.");let s=await t.promises.readFile(i,"utf-8");return{path:e.replaceAll("\\","/").replace(/^\/+/,""),content:s,size:a.size,mtime:a.mtimeMs}}async function x(e,r){if("string"!=typeof r)throw Error("Content must be a string.");if(Buffer.byteLength(r,"utf-8")>1048576)throw Error("This file is too large to save.");if(!m(e))throw Error("Only text/markdown memory files can be saved.");let s=await c(),n=await y(s,e);await t.promises.mkdir((0,i.dirname)(n),{recursive:!0});let o=`${n}.${(0,a.randomUUID)()}.tmp`;try{await t.promises.writeFile(o,r,{encoding:"utf-8",mode:384}),await t.promises.rename(o,n)}catch(e){throw await t.promises.rm(o,{force:!0}).catch(()=>{}),e}let l=await t.promises.stat(n);return{path:e.replaceAll("\\","/").replace(/^\/+/,""),content:r,size:l.size,mtime:l.mtimeMs}}function v(e){let t=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);return t?t[1]:""}function R(e,t){let r=RegExp(`^${t}:\\s*(.+)`,"m"),i=e.match(r);return i?i[1].trim().replace(/^'(.*)'$/,"$1").replace(/^"(.*)"$/,"$1"):""}function b(e,t){let r=RegExp(`\\b${t}:\\s*(.+)`,"m"),i=e.match(r);return i?i[1].trim().replace(/^'(.*)'$/,"$1").replace(/^"(.*)"$/,"$1"):""}async function C(){let e=await l();if(!e)return{nodes:[],edges:[]};let r=(0,i.join)(e,"observations");try{await t.promises.access(r)}catch{return{nodes:[],edges:[]}}let a=new Map,s=[];async function n(r){let o;try{o=await t.promises.readdir(r,{withFileTypes:!0})}catch{return}for(let l of(o.sort((e,t)=>e.name.localeCompare(t.name)),o)){if(d(l.name))continue;let o=(0,i.join)(r,l.name);if(l.isDirectory())await n(o);else if(l.isFile()&&l.name.endsWith(".md")){let r=await t.promises.readFile(o,"utf-8").catch(()=>null);if(!r)continue;let n=v(r),c=R(n,"id")||l.name.replace(/\.md$/,""),u=R(n,"summary")||c,p=R(n,"memory_type")||"semantic",d=R(n,"scope")||"global",h=R(n,"created_at")||"",m=function(e){let t,r=e.indexOf("related_observations:");if(-1===r)return[];let i=e.slice(r+21),a=[],s=/^- id:\s*(.+)$/gm;for(;null!==(t=s.exec(i));){let e=t.index,r=i.slice(e+1),s=r.match(/^(?:- |[a-z_])/m),n=i.slice(e,e+1+(s?.index??r.length)),o=t[1].trim().replace(/^['"]|['"]$/g,""),l=n.match(/^\s+relation:\s*(.+)$/m),c=l?.[1]?.trim()??"";o&&c&&a.push({id:o,relation:c})}return a}(n),f=(0,i.relative)(e,o).split(i.sep).join("/");for(let e of(a.set(c,{id:c,path:f,summary:u,memory_type:p,scope:d,created_at:h,degree:0}),m))s.push({source:c,target:e.id,relation:e.relation})}}}await n(r);let o=s.filter(e=>a.has(e.source)&&a.has(e.target));for(let e of o)a.get(e.source).degree++,a.get(e.target).degree++;return{nodes:Array.from(a.values()),edges:o}}async function _(){let e=await l();if(!e)return{entries:[],truncated:!1};let r=(0,i.join)(e,"executions");try{await t.promises.access(r)}catch{return{entries:[],truncated:!1}}let a=[],s=!1;async function n(r){let o;if(a.length>=2e3){s=!0;return}try{o=await t.promises.readdir(r,{withFileTypes:!0})}catch{return}for(let s of(o.sort((e,t)=>e.name.localeCompare(t.name)),o)){if(d(s.name))continue;let o=(0,i.join)(r,s.name);if(s.isDirectory())await n(o);else if(s.isFile()&&s.name.endsWith(".md")){let r=await t.promises.readFile(o,"utf-8").catch(()=>null);if(!r)continue;let n=v(r),l=R(n,"id")||s.name.replace(/\.md$/,""),c=R(n,"created_at")||"",u=R(n,"project_id")||"",p=b(n,"agent"),d=b(n,"session_id"),h=r.replace(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/,"").trim(),m=h.match(/^##\s+Summary\s*\r?\n([\s\S]*?)(?=\n##\s|\s*$)/m),f=m?m[1].trim():h.slice(0,500),w=[...new Set(h.match(/\bO-[0-9a-f]{16}\b/g)??[])];a.push({id:l,created_at:c,agent:p,session_id:d,project_id:u,summary:f,obs_ids:w,path:(0,i.relative)(e,o).split(i.sep).join("/")})}}}return await n(r),a.sort((e,t)=>t.created_at.localeCompare(e.created_at)),{entries:a,truncated:s}}async function S(e){let r=await l();if(!r)throw Error("No memory directory found.");let i=await w(r,e);if(!(await t.promises.stat(i)).isFile())throw Error("Only files can be deleted.");await t.promises.rm(i,{force:!0})}e.s(["deleteMemory",0,S,"listExecutions",0,_,"listMemory",0,g,"listObservations",0,C,"readMemory",0,E,"writeMemory",0,x])},809449,e=>{"use strict";var t=e.i(747909),r=e.i(174017),i=e.i(996250),a=e.i(759756),s=e.i(561916),n=e.i(174677),o=e.i(869741),l=e.i(316795),c=e.i(487718),u=e.i(995169),p=e.i(47587),d=e.i(666012),h=e.i(570101),m=e.i(626937),f=e.i(10372),w=e.i(193695);e.i(52474);var y=e.i(600220),g=e.i(89171),E=e.i(85678),x=e.i(17883);function v(e,t=400){return g.NextResponse.json({error:e instanceof Error?e.message:"Memory request failed."},{status:t})}async function R(e){try{if((0,x.isCrossOrigin)(e))return v("Cross-origin memory access is not allowed.",403);let t=e.nextUrl.searchParams.get("path");if(t){let e=await (0,E.readMemory)(t);return g.NextResponse.json(e)}return g.NextResponse.json(await (0,E.listMemory)())}catch(e){return v(e)}}async function b(e){try{if((0,x.isCrossOrigin)(e))return v("Cross-origin memory access is not allowed.",403);if(Number(e.headers.get("content-length")||0)>4194304)return v("Request body is too large.",413);let t=await e.json().catch(()=>null);if(!t||"string"!=typeof t.path)return v("A file path is required.");if("string"!=typeof t.content)return v("File content is required.");let r=await (0,E.writeMemory)(t.path,t.content);return g.NextResponse.json(r)}catch(e){return v(e)}}async function C(e){try{if((0,x.isCrossOrigin)(e))return v("Cross-origin memory access is not allowed.",403);let t=e.nextUrl.searchParams.get("path");if(!t)return v("A file path is required.");return await (0,E.deleteMemory)(t),g.NextResponse.json({ok:!0})}catch(e){return v(e)}}e.s(["DELETE",0,C,"GET",0,R,"PUT",0,b,"runtime",0,"nodejs"],177805);var _=e.i(177805);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/memory/route",pathname:"/api/memory",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/memory/route.ts",nextConfigOutput:"standalone",userland:_,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:O,serverHooks:T}=S;async function j(e,t,i){i.requestMeta&&(0,a.setRequestMeta)(e,i.requestMeta),S.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/memory/route";g=g.replace(/\/index$/,"")||"/";let E=await S.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:x,deploymentId:v,params:R,nextConfig:b,parsedUrl:C,isDraftMode:_,prerenderManifest:A,routerServerContext:O,isOnDemandRevalidate:T,revalidateOnlyGenerated:j,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:N}=E,M=(0,o.normalizeAppPath)(g),I=!!(A.dynamicRoutes[M]||A.routes[P]),q=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!_){let e=!!A.routes[P],t=A.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await q();throw new w.NoFallbackError}}let $=null;!I||S.isDev||_||($="/index"===($=P)?"/":$);let D=!0===S.isDev||!I,F=I&&!D;N&&k&&(0,n.setManifestsSingleton)({page:g,clientReferenceManifest:k,serverActionsManifest:N});let U=e.method||"GET",W=(0,s.getTracer)(),H=W.getActiveScopeSpan(),z=!!(null==O?void 0:O.isWrappedByNextServer),L=!!(0,a.getRequestMeta)(e,"minimalMode"),K=(0,a.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,b,A,L);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let B={params:R,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:D,incrementalCache:K,cacheLifeProfiles:b.cacheLife,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,i,a)=>S.onRequestError(e,t,i,a,O)},sharedContext:{buildId:x,deploymentId:v}},V=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),G=c.NextRequestAdapter.fromNodeNextRequest(V,(0,c.signalFromNodeResponse)(t));try{let a,n=async e=>S.handle(G,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=W.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=r.get("next.route");if(i){let t=`${U} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",i),a.updateName(t))}else e.updateName(`${U} ${g}`)}),o=async a=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&T&&j&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(a);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&i.waitUntil&&(i.waitUntil(o),o=void 0);let l=B.renderOpts.collectedTags;if(!I)return await (0,d.sendResponse)(V,X,s,B.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,i=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:i}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:T})},!1,O),t}},c=await S.handleResponse({req:e,nextConfig:b,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:j,responseGenerator:l,waitUntil:i.waitUntil,isMinimalMode:L});if(!I)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(o=c.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",T?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&I||u.delete(f.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(c.cacheControl)),await (0,d.sendResponse)(V,X,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};z&&H?await o(H):(a=W.getActiveScopeSpan(),await W.withPropagatedContext(e.headers,()=>W.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},o),void 0,!z))}catch(t){if(t instanceof w.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:T})},!1,O),I)throw t;return await (0,d.sendResponse)(V,X,new Response(null,{status:500})),null}}e.s(["handler",0,j,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:O})},"routeModule",0,S,"serverHooks",0,T,"workAsyncStorage",0,A,"workUnitAsyncStorage",0,O],809449)}];
1
+ module.exports=[254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},17883,e=>{"use strict";var t=e.i(522734),r=e.i(446786),i=e.i(814747),a=e.i(254799);let s=(0,i.join)((0,r.homedir)(),".config","evoscientist","langgraph_dev.workspace.json");function n(e){for(let t=0;t<e.length;t+=1){let r=e.charCodeAt(t);if(r<32||127===r||r>=128&&r<=159||8232===r||8233===r)return!0}return!1}let o=new Set(["large_tool_results","conversation_history","__pycache__","node_modules","__MACOSX"]),l=[".pyc",".pyo"];function c(e){return!!(e.startsWith(".")||o.has(e))||l.some(t=>e.endsWith(t))}async function u(){let e;try{let r=JSON.parse(await t.promises.readFile(s,"utf-8")),i=r.workspace,a=r.pid;"string"==typeof i&&i.trim()&&(!("number"==typeof a&&a>0)||function(e){try{return process.kill(e,0),!0}catch(e){return"EPERM"===e.code}}(a))&&(e=i)}catch{}if(!(e||=process.env.EVOSCIENTIST_WORKSPACE_DIR))throw Error("No active EvoScientist workspace found. Start the backend with `EvoSci deploy` first.");let r=(0,i.resolve)(e);if(!(await t.promises.stat(r)).isDirectory())throw Error("The active EvoScientist workspace is not a directory.");return t.promises.realpath(r)}function p(e,t){if(n(t))throw Error("Invalid path.");let r=t.replaceAll("\\","/").replace(/^\/+/,"");if(r.split("/").some(e=>""!==e&&c(e)))throw Error("Path is not accessible.");let a=(0,i.resolve)(e,r);if(a!==e&&!a.startsWith(e+i.sep))throw Error("Path is outside the workspace.");return a}async function d(e,r){let a,s=p(e,r);try{a=await t.promises.realpath(s)}catch{throw Error("Path is not accessible.")}if(a!==e&&!a.startsWith(e+i.sep))throw Error("Path is not accessible.");let n=(0,i.relative)(e,a);if(n&&n.split(i.sep).some(e=>""!==e&&c(e)))throw Error("Path is not accessible.");return a}let h=new Set(["txt","text","md","markdown","log","csv","tsv","json","jsonl","yaml","yml","toml","xml","ini","cfg","conf","env","py","js","jsx","ts","tsx","sh","bash","zsh","r","jl","cpp","cc","c","h","hpp","java","go","rs","rb","php","swift","kt","cs","sql","tex","bib","rst","css","scss","html"]);async function m(e,r){let a;try{a=await t.promises.realpath((0,i.dirname)(r))}catch{throw Error("Path is not accessible.")}if(a!==e&&!a.startsWith(e+i.sep))throw Error("Path is not accessible.")}function f(e){let t;return h.has((t=e.lastIndexOf("."))>=0?e.slice(t+1).toLowerCase():"")}async function w(e,r,s){let n;if("string"!=typeof s)throw Error("Content must be a string.");if(Buffer.byteLength(s,"utf-8")>5242880)throw Error("This file is too large to save.");if(!f(r.replaceAll("\\","/").split("/").pop()||r))throw Error("Only text/code files can be edited.");let o=p(e,r);try{n=await t.promises.lstat(o)}catch{throw Error("Only files can be edited.")}if(n.isSymbolicLink())throw Error("Editing symlinks is not allowed.");let l=await d(e,r);if(!f((0,i.basename)(l)))throw Error("Only text/code files can be edited.");let c=await t.promises.stat(l);if(!c.isFile())throw Error("Only files can be edited.");let u=`${l}.${(0,a.randomUUID)()}.tmp`;try{await m(e,l),await t.promises.writeFile(u,s,{encoding:"utf-8",mode:511&c.mode}),await m(e,l),await t.promises.rename(u,l)}catch(e){throw await t.promises.rm(u,{force:!0}).catch(()=>{}),e}let h=await t.promises.stat(l);return{path:r.replaceAll("\\","/").replace(/^\/+/,""),size:h.size,mtime:h.mtimeMs}}async function y(e,r){await d(e,r);let i=p(e,r);if((await t.promises.lstat(i)).isDirectory())throw Error("Only files can be deleted.");await m(e,i),await t.promises.rm(i,{force:!0})}e.s(["MAX_WORKSPACE_WRITE_BYTES",0,5242880,"deleteWorkspaceFile",0,y,"getWorkspaceDir",0,u,"hasControlChar",0,n,"isCrossOrigin",0,function(e){let t=e.headers.get("host");if(!t)return!0;let r=e.headers.get("sec-fetch-site");if(r)return"same-origin"!==r&&"same-site"!==r&&"none"!==r;let i=e.headers.get("origin");if(!i)return!1;try{return new URL(i).host!==t}catch{return!0}},"isHiddenEntry",0,c,"safeResolve",0,d,"writeWorkspaceFile",0,w,"zipExcludeArgs",0,function(){let e=[".*","*/.*"];for(let t of o)e.push(`${t}/*`,`*/${t}/*`,t,`*/${t}`);for(let t of l)e.push(`*${t}`);return e.flatMap(e=>["-x",e])}])},85678,e=>{"use strict";var t=e.i(522734),r=e.i(446786),i=e.i(814747),a=e.i(254799),s=e.i(17883);function n(e){return e.startsWith("~")?(0,i.join)((0,r.homedir)(),e.slice(1)):(0,i.resolve)(e)}function o(){let e,t=process.env.EVOSCIENTIST_MEMORIES_DIR||process.env.EVOSCIENTIST_MEMORY_DIR;return t&&t.trim()?n(t):(0,i.join)((e=process.env.EVOSCIENTIST_DATA_DIR)&&e.trim()?n(e):(0,i.join)((0,r.homedir)(),".evoscientist"),"memories")}async function l(){try{let e=await t.promises.realpath(o());return(await t.promises.stat(e)).isDirectory()?e:null}catch{return null}}async function c(){let e=o();return await t.promises.mkdir(e,{recursive:!0}),t.promises.realpath(e)}let u=new Set(["__pycache__","node_modules","__MACOSX"]),p=[".pyc",".pyo"];function d(e){return!!(e.startsWith(".")||u.has(e))||p.some(t=>e.endsWith(t))}let h=new Set(["md","markdown","txt","text","json","yaml","yml","csv","tsv","log","tex","bib","rst"]);function m(e){let t;return h.has((t=e.lastIndexOf("."))>=0?e.slice(t+1).toLowerCase():"")}function f(e,t){if((0,s.hasControlChar)(t))throw Error("Invalid path.");let r=t.replaceAll("\\","/").replace(/^\/+/,"");if(!r)throw Error("A file path is required.");if(r.split("/").some(e=>""!==e&&d(e)))throw Error("Path is not accessible.");let a=(0,i.resolve)(e,r);if(a!==e&&!a.startsWith(e+i.sep))throw Error("Path is outside the memory directory.");return a}async function w(e,r){let a,s=f(e,r);try{a=await t.promises.realpath(s)}catch{throw Error("Path is not accessible.")}if(a!==e&&!a.startsWith(e+i.sep))throw Error("Path is not accessible.");let n=(0,i.relative)(e,a);if(n&&n.split(i.sep).some(e=>""!==e&&d(e)))throw Error("Path is not accessible.");return a}async function y(e,r){let a=f(e,r),s=(0,i.dirname)(a);for(;;)try{let r=await t.promises.realpath(s);if(r!==e&&!r.startsWith(e+i.sep))throw Error("Path is outside the memory directory.");break}catch(t){if(t instanceof Error&&t.message.includes("outside"))throw t;let e=(0,i.dirname)(s);if(e===s)break;s=e}return a}async function g(){let e=o(),r=await l();if(!r)return{dir:e,exists:!1,entries:[],truncated:!1};let a=[],s=!1;async function n(e,o){let l;if(o>8||a.length>=2e3){a.length>=2e3&&(s=!0);return}try{l=await t.promises.readdir(e,{withFileTypes:!0})}catch{return}for(let c of(l.sort((e,t)=>e.name.localeCompare(t.name)),l)){if(d(c.name))continue;if(a.length>=2e3){s=!0;return}let l=(0,i.join)(e,c.name);if(c.isDirectory())await n(l,o+1);else if(c.isFile()){let e=0,s=0;try{let r=await t.promises.stat(l);e=r.size,s=r.mtimeMs}catch{continue}a.push({path:(0,i.relative)(r,l).split(i.sep).join("/"),size:e,mtime:s,editable:m(c.name)&&e<=2097152})}}}return await n(r,0),{dir:e,exists:!0,entries:a,truncated:s}}async function E(e){let r=await l();if(!r)throw Error("No memory directory found.");if(!m(e))throw Error("This file type can't be edited.");let i=await w(r,e),a=await t.promises.stat(i);if(!a.isFile())throw Error("Not a file.");if(a.size>2097152)throw Error("This file is too large to open.");let s=await t.promises.readFile(i,"utf-8");return{path:e.replaceAll("\\","/").replace(/^\/+/,""),content:s,size:a.size,mtime:a.mtimeMs}}async function x(e,r){if("string"!=typeof r)throw Error("Content must be a string.");if(Buffer.byteLength(r,"utf-8")>1048576)throw Error("This file is too large to save.");if(!m(e))throw Error("Only text/markdown memory files can be saved.");let s=await c(),n=await y(s,e);await t.promises.mkdir((0,i.dirname)(n),{recursive:!0});let o=`${n}.${(0,a.randomUUID)()}.tmp`;try{await t.promises.writeFile(o,r,{encoding:"utf-8",mode:384}),await t.promises.rename(o,n)}catch(e){throw await t.promises.rm(o,{force:!0}).catch(()=>{}),e}let l=await t.promises.stat(n);return{path:e.replaceAll("\\","/").replace(/^\/+/,""),content:r,size:l.size,mtime:l.mtimeMs}}function v(e){let t=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);return t?t[1]:""}function R(e,t){let r=RegExp(`^${t}:\\s*(.+)`,"m"),i=e.match(r);return i?i[1].trim().replace(/^'(.*)'$/,"$1").replace(/^"(.*)"$/,"$1"):""}function b(e,t){let r=RegExp(`\\b${t}:\\s*(.+)`,"m"),i=e.match(r);return i?i[1].trim().replace(/^'(.*)'$/,"$1").replace(/^"(.*)"$/,"$1"):""}async function C(){let e=await l();if(!e)return{nodes:[],edges:[]};let r=(0,i.join)(e,"observations");try{await t.promises.access(r)}catch{return{nodes:[],edges:[]}}let a=new Map,s=[];async function n(r){let o;try{o=await t.promises.readdir(r,{withFileTypes:!0})}catch{return}for(let l of(o.sort((e,t)=>e.name.localeCompare(t.name)),o)){if(d(l.name))continue;let o=(0,i.join)(r,l.name);if(l.isDirectory())await n(o);else if(l.isFile()&&l.name.endsWith(".md")){let r=await t.promises.readFile(o,"utf-8").catch(()=>null);if(!r)continue;let n=v(r),c=R(n,"id")||l.name.replace(/\.md$/,""),u=R(n,"summary")||c,p=R(n,"memory_type")||"semantic",d=R(n,"scope")||"global",h=R(n,"created_at")||"",m=function(e){let t,r=e.indexOf("related_observations:");if(-1===r)return[];let i=e.slice(r+21),a=[],s=/^- id:\s*(.+)$/gm;for(;null!==(t=s.exec(i));){let e=t.index,r=i.slice(e+1),s=r.match(/^(?:- |[a-z_])/m),n=i.slice(e,e+1+(s?.index??r.length)),o=t[1].trim().replace(/^['"]|['"]$/g,""),l=n.match(/^\s+relation:\s*(.+)$/m),c=l?.[1]?.trim()??"";o&&c&&a.push({id:o,relation:c})}return a}(n),f=(0,i.relative)(e,o).split(i.sep).join("/");for(let e of(a.set(c,{id:c,path:f,summary:u,memory_type:p,scope:d,created_at:h,degree:0}),m))s.push({source:c,target:e.id,relation:e.relation})}}}await n(r);let o=s.filter(e=>a.has(e.source)&&a.has(e.target));for(let e of o)a.get(e.source).degree++,a.get(e.target).degree++;return{nodes:Array.from(a.values()),edges:o}}async function _(){let e=await l();if(!e)return{entries:[],truncated:!1};let r=(0,i.join)(e,"executions");try{await t.promises.access(r)}catch{return{entries:[],truncated:!1}}let a=[],s=!1;async function n(r){let o;if(a.length>=2e3){s=!0;return}try{o=await t.promises.readdir(r,{withFileTypes:!0})}catch{return}for(let s of(o.sort((e,t)=>e.name.localeCompare(t.name)),o)){if(d(s.name))continue;let o=(0,i.join)(r,s.name);if(s.isDirectory())await n(o);else if(s.isFile()&&s.name.endsWith(".md")){let r=await t.promises.readFile(o,"utf-8").catch(()=>null);if(!r)continue;let n=v(r),l=R(n,"id")||s.name.replace(/\.md$/,""),c=R(n,"created_at")||"",u=R(n,"project_id")||"",p=b(n,"agent"),d=b(n,"session_id"),h=r.replace(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/,"").trim(),m=h.match(/^##\s+Summary\s*\r?\n([\s\S]*?)(?=\n##\s|\s*$)/m),f=m?m[1].trim():h.slice(0,500),w=[...new Set(h.match(/\bO-[0-9a-f]{16}\b/g)??[])];a.push({id:l,created_at:c,agent:p,session_id:d,project_id:u,summary:f,obs_ids:w,path:(0,i.relative)(e,o).split(i.sep).join("/")})}}}return await n(r),a.sort((e,t)=>t.created_at.localeCompare(e.created_at)),{entries:a,truncated:s}}async function S(e){let r=await l();if(!r)throw Error("No memory directory found.");let i=await w(r,e);if(!(await t.promises.stat(i)).isFile())throw Error("Only files can be deleted.");await t.promises.rm(i,{force:!0})}e.s(["deleteMemory",0,S,"listExecutions",0,_,"listMemory",0,g,"listObservations",0,C,"readMemory",0,E,"writeMemory",0,x])},809449,e=>{"use strict";var t=e.i(747909),r=e.i(174017),i=e.i(996250),a=e.i(759756),s=e.i(561916),n=e.i(174677),o=e.i(869741),l=e.i(316795),c=e.i(487718),u=e.i(995169),p=e.i(47587),d=e.i(666012),h=e.i(570101),m=e.i(626937),f=e.i(10372),w=e.i(193695);e.i(52474);var y=e.i(600220),g=e.i(89171),E=e.i(85678),x=e.i(17883);function v(e,t=400){return g.NextResponse.json({error:e instanceof Error?e.message:"Memory request failed."},{status:t})}async function R(e){try{if((0,x.isCrossOrigin)(e))return v("Cross-origin memory access is not allowed.",403);let t=e.nextUrl.searchParams.get("path");if(t){let e=await (0,E.readMemory)(t);return g.NextResponse.json(e)}return g.NextResponse.json(await (0,E.listMemory)())}catch(e){return v(e)}}async function b(e){try{if((0,x.isCrossOrigin)(e))return v("Cross-origin memory access is not allowed.",403);if(Number(e.headers.get("content-length")||0)>4194304)return v("Request body is too large.",413);let t=await e.json().catch(()=>null);if(!t||"string"!=typeof t.path)return v("A file path is required.");if("string"!=typeof t.content)return v("File content is required.");let r=await (0,E.writeMemory)(t.path,t.content);return g.NextResponse.json(r)}catch(e){return v(e)}}async function C(e){try{if((0,x.isCrossOrigin)(e))return v("Cross-origin memory access is not allowed.",403);let t=e.nextUrl.searchParams.get("path");if(!t)return v("A file path is required.");return await (0,E.deleteMemory)(t),g.NextResponse.json({ok:!0})}catch(e){return v(e)}}e.s(["DELETE",0,C,"GET",0,R,"PUT",0,b,"runtime",0,"nodejs"],177805);var _=e.i(177805);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/memory/route",pathname:"/api/memory",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/memory/route.ts",nextConfigOutput:"standalone",userland:_,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:O,serverHooks:T}=S;async function j(e,t,i){i.requestMeta&&(0,a.setRequestMeta)(e,i.requestMeta),S.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/memory/route";g=g.replace(/\/index$/,"")||"/";let E=await S.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:x,deploymentId:v,params:R,nextConfig:b,parsedUrl:C,isDraftMode:_,prerenderManifest:A,routerServerContext:O,isOnDemandRevalidate:T,revalidateOnlyGenerated:j,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:N}=E,M=(0,o.normalizeAppPath)(g),I=!!(A.dynamicRoutes[M]||A.routes[P]),q=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!_){let e=!!A.routes[P],t=A.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await q();throw new w.NoFallbackError}}let $=null;!I||S.isDev||_||($="/index"===($=P)?"/":$);let D=!0===S.isDev||!I,F=I&&!D;N&&k&&(0,n.setManifestsSingleton)({page:g,clientReferenceManifest:k,serverActionsManifest:N});let U=e.method||"GET",W=(0,s.getTracer)(),H=W.getActiveScopeSpan(),z=!!(null==O?void 0:O.isWrappedByNextServer),L=!!(0,a.getRequestMeta)(e,"minimalMode"),K=(0,a.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,b,A,L);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let B={params:R,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:D,incrementalCache:K,cacheLifeProfiles:b.cacheLife,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,i,a)=>S.onRequestError(e,t,i,a,O)},sharedContext:{buildId:x,deploymentId:v}},V=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),G=c.NextRequestAdapter.fromNodeNextRequest(V,(0,c.signalFromNodeResponse)(t));try{let a,n=async e=>S.handle(G,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=W.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=r.get("next.route");if(i){let t=`${U} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",i),a.updateName(t))}else e.updateName(`${U} ${g}`)}),o=async a=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&T&&j&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(a);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&i.waitUntil&&(i.waitUntil(o),o=void 0);let l=B.renderOpts.collectedTags;if(!I)return await (0,d.sendResponse)(V,X,s,B.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,i=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:i}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:T})},!1,O),t}},c=await S.handleResponse({req:e,nextConfig:b,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:j,responseGenerator:l,waitUntil:i.waitUntil,isMinimalMode:L});if(!I)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(o=c.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",T?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&I||u.delete(f.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(c.cacheControl)),await (0,d.sendResponse)(V,X,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};z&&H?await o(H):(a=W.getActiveScopeSpan(),await W.withPropagatedContext(e.headers,()=>W.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},o),void 0,!z))}catch(t){if(t instanceof w.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:T})},!1,O),I)throw t;return await (0,d.sendResponse)(V,X,new Response(null,{status:500})),null}}e.s(["handler",0,j,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:O})},"routeModule",0,S,"serverHooks",0,T,"workAsyncStorage",0,A,"workUnitAsyncStorage",0,O],809449)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0yvyeh4._.js.map