dev3000 0.0.125 → 0.0.126

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 (39) hide show
  1. package/mcp-server/.next/BUILD_ID +1 -1
  2. package/mcp-server/.next/build-manifest.json +2 -2
  3. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  4. package/mcp-server/.next/prerender-manifest.json +3 -3
  5. package/mcp-server/.next/server/app/_global-error.html +2 -2
  6. package/mcp-server/.next/server/app/_global-error.rsc +1 -1
  7. package/mcp-server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/mcp-server/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/mcp-server/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/mcp-server/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/mcp-server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/mcp-server/.next/server/app/_not-found.html +1 -1
  13. package/mcp-server/.next/server/app/_not-found.rsc +1 -1
  14. package/mcp-server/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  15. package/mcp-server/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/mcp-server/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  17. package/mcp-server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/mcp-server/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/mcp-server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/mcp-server/.next/server/app/index.html +1 -1
  21. package/mcp-server/.next/server/app/index.rsc +1 -1
  22. package/mcp-server/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  23. package/mcp-server/.next/server/app/index.segments/_full.segment.rsc +1 -1
  24. package/mcp-server/.next/server/app/index.segments/_head.segment.rsc +1 -1
  25. package/mcp-server/.next/server/app/index.segments/_index.segment.rsc +1 -1
  26. package/mcp-server/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  27. package/mcp-server/.next/server/chunks/[root-of-the-server]__880af90b._.js +1 -1
  28. package/mcp-server/.next/server/chunks/[root-of-the-server]__880af90b._.js.map +1 -1
  29. package/mcp-server/.next/server/chunks/[root-of-the-server]__d4d47e5f._.js +1 -1
  30. package/mcp-server/.next/server/chunks/[root-of-the-server]__d4d47e5f._.js.map +1 -1
  31. package/mcp-server/.next/server/pages/404.html +1 -1
  32. package/mcp-server/.next/server/pages/500.html +2 -2
  33. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  34. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  35. package/mcp-server/app/mcp/route.ts +3 -1
  36. package/package.json +1 -1
  37. /package/mcp-server/.next/static/{JGjgnBmqqUOGejm7-eGMg → lSzvvkjD4ab_1CtchfQYo}/_buildManifest.js +0 -0
  38. /package/mcp-server/.next/static/{JGjgnBmqqUOGejm7-eGMg → lSzvvkjD4ab_1CtchfQYo}/_clientMiddlewareManifest.json +0 -0
  39. /package/mcp-server/.next/static/{JGjgnBmqqUOGejm7-eGMg → lSzvvkjD4ab_1CtchfQYo}/_ssgManifest.js +0 -0
@@ -10,7 +10,7 @@ c:I[57355,["/_next/static/chunks/a3771e169e1ff356.js","/_next/static/chunks/f9a2
10
10
  e:I[57355,["/_next/static/chunks/a3771e169e1ff356.js","/_next/static/chunks/f9a2399752a0a1fa.js"],"MetadataBoundary"]
11
11
  10:I[67226,["/_next/static/chunks/a3771e169e1ff356.js","/_next/static/chunks/f9a2399752a0a1fa.js"],"default"]
12
12
  :HL["/_next/static/chunks/9d9ea52745b7cee8.css","style"]
13
- 0:{"P":null,"b":"JGjgnBmqqUOGejm7-eGMg","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/9d9ea52745b7cee8.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$2",null,{"children":["$","html",null,{"lang":"en","className":"h-full","children":[["$","head",null,{"children":[["$","title",null,{"children":"dev3000"}],["$","link",null,{"rel":"icon","href":"/favicon.ico","type":"image/x-icon"}],["$","link",null,{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml","sizes":"32x32"}],["$","link",null,{"rel":"icon","href":"/favicon-16.svg","type":"image/svg+xml","sizes":"16x16"}],["$","link",null,{"rel":"icon","href":"/favicon-64.svg","type":"image/svg+xml","sizes":"64x64"}],["$","link",null,{"rel":"apple-touch-icon","href":"/favicon-180.png"}],["$","link",null,{"rel":"shortcut icon","href":"/favicon.svg"}],["$","meta",null,{"name":"theme-color","content":"#1f2937"}]]}],["$","body",null,{"className":"h-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/45ba9786ab8c2e44.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/3d612a0a5e49885d.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$@d"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$@f"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true}
13
+ 0:{"P":null,"b":"lSzvvkjD4ab_1CtchfQYo","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/9d9ea52745b7cee8.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$2",null,{"children":["$","html",null,{"lang":"en","className":"h-full","children":[["$","head",null,{"children":[["$","title",null,{"children":"dev3000"}],["$","link",null,{"rel":"icon","href":"/favicon.ico","type":"image/x-icon"}],["$","link",null,{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml","sizes":"32x32"}],["$","link",null,{"rel":"icon","href":"/favicon-16.svg","type":"image/svg+xml","sizes":"16x16"}],["$","link",null,{"rel":"icon","href":"/favicon-64.svg","type":"image/svg+xml","sizes":"64x64"}],["$","link",null,{"rel":"apple-touch-icon","href":"/favicon-180.png"}],["$","link",null,{"rel":"shortcut icon","href":"/favicon.svg"}],["$","meta",null,{"name":"theme-color","content":"#1f2937"}]]}],["$","body",null,{"className":"h-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/45ba9786ab8c2e44.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/3d612a0a5e49885d.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$@d"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$@f"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true}
14
14
  7:{}
15
15
  8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
16
16
  d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
@@ -2,6 +2,6 @@
2
2
  2:I[57355,["/_next/static/chunks/a3771e169e1ff356.js","/_next/static/chunks/f9a2399752a0a1fa.js"],"ViewportBoundary"]
3
3
  4:I[57355,["/_next/static/chunks/a3771e169e1ff356.js","/_next/static/chunks/f9a2399752a0a1fa.js"],"MetadataBoundary"]
4
4
  5:"$Sreact.suspense"
5
- 0:{"buildId":"JGjgnBmqqUOGejm7-eGMg","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false}
5
+ 0:{"buildId":"lSzvvkjD4ab_1CtchfQYo","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false}
6
6
  3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
7
7
  6:[]
@@ -3,4 +3,4 @@
3
3
  3:I[49385,["/_next/static/chunks/a3771e169e1ff356.js","/_next/static/chunks/f9a2399752a0a1fa.js"],"default"]
4
4
  4:I[9241,["/_next/static/chunks/a3771e169e1ff356.js","/_next/static/chunks/f9a2399752a0a1fa.js"],"default"]
5
5
  :HL["/_next/static/chunks/9d9ea52745b7cee8.css","style"]
6
- 0:{"buildId":"JGjgnBmqqUOGejm7-eGMg","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/9d9ea52745b7cee8.css","precedence":"next"}]],["$","$2",null,{"children":["$","html",null,{"lang":"en","className":"h-full","children":[["$","head",null,{"children":[["$","title",null,{"children":"dev3000"}],["$","link",null,{"rel":"icon","href":"/favicon.ico","type":"image/x-icon"}],["$","link",null,{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml","sizes":"32x32"}],["$","link",null,{"rel":"icon","href":"/favicon-16.svg","type":"image/svg+xml","sizes":"16x16"}],["$","link",null,{"rel":"icon","href":"/favicon-64.svg","type":"image/svg+xml","sizes":"64x64"}],["$","link",null,{"rel":"apple-touch-icon","href":"/favicon-180.png"}],["$","link",null,{"rel":"shortcut icon","href":"/favicon.svg"}],["$","meta",null,{"name":"theme-color","content":"#1f2937"}]]}],["$","body",null,{"className":"h-full","children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]}]]}],"loading":null,"isPartial":false}
6
+ 0:{"buildId":"lSzvvkjD4ab_1CtchfQYo","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/9d9ea52745b7cee8.css","precedence":"next"}]],["$","$2",null,{"children":["$","html",null,{"lang":"en","className":"h-full","children":[["$","head",null,{"children":[["$","title",null,{"children":"dev3000"}],["$","link",null,{"rel":"icon","href":"/favicon.ico","type":"image/x-icon"}],["$","link",null,{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml","sizes":"32x32"}],["$","link",null,{"rel":"icon","href":"/favicon-16.svg","type":"image/svg+xml","sizes":"16x16"}],["$","link",null,{"rel":"icon","href":"/favicon-64.svg","type":"image/svg+xml","sizes":"64x64"}],["$","link",null,{"rel":"apple-touch-icon","href":"/favicon-180.png"}],["$","link",null,{"rel":"shortcut icon","href":"/favicon.svg"}],["$","meta",null,{"name":"theme-color","content":"#1f2937"}]]}],["$","body",null,{"className":"h-full","children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]}]]}],"loading":null,"isPartial":false}
@@ -1,2 +1,2 @@
1
1
  :HL["/_next/static/chunks/9d9ea52745b7cee8.css","style"]
2
- 0:{"buildId":"JGjgnBmqqUOGejm7-eGMg","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
2
+ 0:{"buildId":"lSzvvkjD4ab_1CtchfQYo","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
@@ -12,6 +12,6 @@ data: ${JSON.stringify(e)}
12
12
  `;return r&&(s+=`id: ${r}
13
13
  `),s+=`data: ${JSON.stringify(t)}
14
14
 
15
- `,e.write(s)}async handleUnsupportedRequest(e){e.writeHead(405,{Allow:"GET, POST, DELETE"}).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}))}async handlePostRequest(e,t,r){var s,n,i,o,a;try{let a,u,l=e.headers.accept;if(!(null==l?void 0:l.includes("application/json"))||!l.includes("text/event-stream"))return void t.writeHead(406).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Not Acceptable: Client must accept both application/json and text/event-stream"},id:null}));let c=e.headers["content-type"];if(!c||!c.includes("application/json"))return void t.writeHead(415).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Unsupported Media Type: Content-Type must be application/json"},id:null}));let f=e.auth,d={headers:e.headers};if(void 0!==r)a=r;else{let t=eP.default.parse(c),r=await (0,eO.default)(e,{limit:"4mb",encoding:null!=(s=t.parameters.charset)?s:"utf-8"});a=JSON.parse(r.toString())}let m=(u=Array.isArray(a)?a.map(e=>j.JSONRPCMessageSchema.parse(e)):[j.JSONRPCMessageSchema.parse(a)]).some(j.isInitializeRequest);if(m){if(this._initialized&&void 0!==this.sessionId)return void t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32600,message:"Invalid Request: Server already initialized"},id:null}));if(u.length>1)return void t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32600,message:"Invalid Request: Only one initialization request is allowed"},id:null}));this.sessionId=null==(n=this.sessionIdGenerator)?void 0:n.call(this),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!m&&(!this.validateSession(e,t)||!this.validateProtocolVersion(e,t)))return;let p=u.some(j.isJSONRPCRequest);if(p){if(p){let e=(0,eN.randomUUID)();if(!this._enableJsonResponse){let e={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};void 0!==this.sessionId&&(e["mcp-session-id"]=this.sessionId),t.writeHead(200,e)}for(let r of u)(0,j.isJSONRPCRequest)(r)&&(this._streamMapping.set(e,t),this._requestToStreamMapping.set(r.id,e));for(let r of(t.on("close",()=>{this._streamMapping.delete(e)}),t.on("error",e=>{var t;null==(t=this.onerror)||t.call(this,e)}),u))null==(o=this.onmessage)||o.call(this,r,{authInfo:f,requestInfo:d})}}else for(let e of(t.writeHead(202).end(),u))null==(i=this.onmessage)||i.call(this,e,{authInfo:f,requestInfo:d})}catch(e){t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32700,message:"Parse error",data:String(e)},id:null})),null==(a=this.onerror)||a.call(this,e)}}async handleDeleteRequest(e,t){var r;!this.validateSession(e,t)||this.validateProtocolVersion(e,t)&&(await Promise.resolve(null==(r=this._onsessionclosed)?void 0:r.call(this,this.sessionId)),await this.close(),t.writeHead(200).end())}validateSession(e,t){if(void 0===this.sessionIdGenerator)return!0;if(!this._initialized)return t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Bad Request: Server not initialized"},id:null})),!1;let r=e.headers["mcp-session-id"];return r?Array.isArray(r)?(t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Bad Request: Mcp-Session-Id header must be a single value"},id:null})),!1):r===this.sessionId||(t.writeHead(404).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32001,message:"Session not found"},id:null})),!1):(t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Bad Request: Mcp-Session-Id header is required"},id:null})),!1)}validateProtocolVersion(e,t){var r;let s=null!=(r=e.headers["mcp-protocol-version"])?r:j.DEFAULT_NEGOTIATED_PROTOCOL_VERSION;return Array.isArray(s)&&(s=s[s.length-1]),!!j.SUPPORTED_PROTOCOL_VERSIONS.includes(s)||(t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:`Bad Request: Unsupported protocol version (supported versions: ${j.SUPPORTED_PROTOCOL_VERSIONS.join(", ")})`},id:null})),!1)}async close(){var e;this._streamMapping.forEach(e=>{e.end()}),this._streamMapping.clear(),this._requestResponseMap.clear(),null==(e=this.onclose)||e.call(this)}async send(e,t){let r=null==t?void 0:t.relatedRequestId;if(((0,j.isJSONRPCResponse)(e)||(0,j.isJSONRPCError)(e))&&(r=e.id),void 0===r){let t;if((0,j.isJSONRPCResponse)(e)||(0,j.isJSONRPCError)(e))throw Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let r=this._streamMapping.get(this._standaloneSseStreamId);if(void 0===r)return;this._eventStore&&(t=await this._eventStore.storeEvent(this._standaloneSseStreamId,e)),this.writeSSEEvent(r,e,t);return}let s=this._requestToStreamMapping.get(r),n=this._streamMapping.get(s);if(!s)throw Error(`No connection established for request ID: ${String(r)}`);if(!this._enableJsonResponse){let t;this._eventStore&&(t=await this._eventStore.storeEvent(s,e)),n&&this.writeSSEEvent(n,e,t)}if((0,j.isJSONRPCResponse)(e)||(0,j.isJSONRPCError)(e)){this._requestResponseMap.set(r,e);let t=Array.from(this._requestToStreamMapping.entries()).filter(([e,t])=>this._streamMapping.get(t)===n).map(([e])=>e);if(t.every(e=>this._requestResponseMap.has(e))){if(!n)throw Error(`No connection established for request ID: ${String(r)}`);if(this._enableJsonResponse){let e={"Content-Type":"application/json"};void 0!==this.sessionId&&(e["mcp-session-id"]=this.sessionId);let r=t.map(e=>this._requestResponseMap.get(e));n.writeHead(200,e),1===r.length?n.end(JSON.stringify(r[0])):n.end(JSON.stringify(r))}else n.end();for(let e of t)this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e)}}}}var ej=e.i(49719),eX=e.i(10430),eK=e.i(27699);e.i(70960);var ex=class extends eL.ServerResponse{constructor(e,t,r){super(e),this.onEvent=t,this.sessionId=r,this.requestId=crypto.randomUUID(),this.startTime=Date.now()}emitEvent(e){var t;this.onEvent&&this.onEvent((t=O(Y({},e),P({sessionId:this.sessionId,requestId:this.requestId})),O(Y({},t),P({timestamp:Date.now()}))))}startSession(e,t){this.emitEvent({type:"SESSION_STARTED",transport:e,clientInfo:t})}endSession(e){this.emitEvent({type:"SESSION_ENDED",transport:e})}requestReceived(e,t){this.emitEvent({type:"REQUEST_RECEIVED",method:e,parameters:t,status:"success"})}requestCompleted(e,t,r){this.emitEvent({type:"REQUEST_COMPLETED",method:e,result:t,duration:Date.now()-this.startTime,status:r?"error":"success"}),r&&this.error(r,`Error executing request ${e}`,"request")}error(e,t,r="system",s="error"){this.emitEvent({type:"ERROR",error:e,context:t,source:r,severity:s})}end(e,t,r){let s=e,n=t,i=r;return"function"==typeof e?(i=e,s=void 0,n=void 0):"function"==typeof t&&(i=t,n=void 0),super.end(s,n,i)}},eB=new eX.AsyncLocalStorage,eU=new WeakMap,ek=null;function eG(e){return w(this,arguments,function*({redisUrl:e,logger:t}){if(i&&n)return{redis:i,redisPublisher:n};if(!e)throw Error("redisUrl is required");return i=(0,eC.createClient)({url:e}),n=(0,eC.createClient)({url:e}),i.on("error",e=>{t.error("Redis error",e)}),n.on("error",e=>{t.error("Redis error",e)}),yield Promise.all([i.connect(),n.connect()]),{redis:i,redisPublisher:n}})}function eH(e={}){let{method:t="GET",url:r="/",headers:s={},body:n=null,socket:i=new eY.Socket}=e,o=new ew.Readable;if(o._read=()=>{},n){if("string"==typeof n)o.push(n);else if(Buffer.isBuffer(n))o.push(n);else{let e=JSON.stringify(n);o.push(e)}o.push(null)}else o.push(null);let a=new eL.IncomingMessage(i);a.method=t,a.url=r,a.headers=s;let u=e.auth||eB.getStore();return u&&(a.auth=u),a.push=o.push.bind(o),a.read=o.read.bind(o),a.on=o.on.bind(o),a.pipe=o.pipe.bind(o),a}var eq=e.i(20539),eV=e.i(56891);let eW=()=>{try{let{execSync:t}=e.r(74533);try{return t("bunx --version",{stdio:"ignore"}),{command:"bunx",args:[]}}catch{}try{return t("npx --version",{stdio:"ignore"}),{command:"npx",args:["-y"]}}catch{}try{return t("pnpm --version",{stdio:"ignore"}),{command:"pnpm",args:["dlx"]}}catch{}return console.error("[MCP Orchestrator] No package runner found (bunx, npx, or pnpm) - cannot spawn MCP servers"),null}catch(e){return console.error("[MCP Orchestrator] Failed to detect package runner:",e),null}},ez=(async()=>{let t=(0,eq.getMCPClientManager)(),r=(()=>{try{let{existsSync:t,readFileSync:r}=e.r(2157),s=process.cwd();for(let e of[(0,T.join)(s,".mcp.json"),(0,T.join)(s,".cursor","mcp.json"),(0,T.join)((0,v.homedir)(),".claude","settings.json")])if(t(e))try{let t=r(e,"utf-8"),s=JSON.parse(t),n=s.mcpServers||s.mcp||{};for(let[e,t]of Object.entries(n)){if("dev3000"===e)continue;let r=e.toLowerCase();if(r.includes("chrome-devtools")||r.includes("chromedevtools"))return console.log(`[MCP Orchestrator] Detected external chrome-devtools-mcp (${e}). dev3000 will use its native CDP implementation instead of spawning a duplicate.`),!0;let s=String(t.command||""),n=Array.isArray(t.args)?t.args.join(" "):"";if(s.includes("chrome-devtools-mcp")||n.includes("chrome-devtools-mcp"))return console.log(`[MCP Orchestrator] Detected external chrome-devtools-mcp (${e}). dev3000 will use its native CDP implementation instead of spawning a duplicate.`),!0}}catch{}return!1}catch{return!1}})(),s=()=>{let t={},s=(0,T.join)((0,v.homedir)(),".d3k");try{let{readdirSync:n,existsSync:i}=e.r(2157);if(!i(s))return t;for(let e of n(s).filter(e=>e.endsWith(".json")))try{let n=(0,T.join)(s,e),i=JSON.parse((0,A.readFileSync)(n,"utf-8"));if(i.cdpUrl&&!t.chromeDevtools&&!r){let e=eW();if(e)try{let r=new URL(i.cdpUrl),s=`http://${r.host}`;t.chromeDevtools={command:e.command,args:[...e.args,"chrome-devtools-mcp@latest","--browserUrl",s],enabled:!0}}catch{console.warn("[MCP Orchestrator] Failed to parse CDP URL:",i.cdpUrl)}else console.warn("[MCP Orchestrator] Cannot configure chrome-devtools MCP: no package runner available")}if(t.chromeDevtools)break}catch{}}catch(e){console.warn("[MCP Orchestrator] Failed to read session files:",e)}if(!t.nextjsDev&&!t.svelteDev){let e=eW(),r=null;try{for(let e of(0,A.readdirSync)(s).filter(e=>e.endsWith(".json")))try{let t=(0,T.join)(s,e),n=JSON.parse((0,A.readFileSync)(t,"utf-8"));if(n.framework){r=n.framework;break}}catch{}}catch{}e?"nextjs"===r?(t.nextjsDev={command:e.command,args:[...e.args,"next-devtools-mcp@latest"],enabled:!0},console.log("[MCP Orchestrator] Detected Next.js framework, configuring next-devtools-mcp")):"svelte"===r&&(t.svelteDev={command:e.command,args:[...e.args,"@sveltejs/mcp-server-svelte"],enabled:!0},console.log("[MCP Orchestrator] Detected Svelte framework, configuring @sveltejs/mcp-server-svelte")):console.warn("[MCP Orchestrator] Cannot configure framework MCP: no package runner available")}return t},n=async(e=1e4,t=250)=>{let r=Date.now(),n=!1,i=s();for(;0===Object.keys(i).length&&Date.now()-r<e;)n||(console.log("[MCP Orchestrator] Waiting for session info before connecting downstream MCPs..."),n=!0),await new Promise(e=>setTimeout(e,t)),i=s();return{config:i,waited:n}};try{let{config:e,waited:r}=await n();Object.keys(e).length>0?(await t.initialize(e),console.log(`[MCP Orchestrator] Initialized with ${Object.keys(e).join(", ")}`)):r?console.log("[MCP Orchestrator] No downstream MCPs detected after waiting for session info (will retry)"):console.log("[MCP Orchestrator] No downstream MCPs found yet (will retry)");let i=0,o=setInterval(async()=>{i++;let e=s(),r=!!e.chromeDevtools,n=!!e.nextjsDev,a=!!e.svelteDev,u=t.isConnected("chrome-devtools"),l=t.isConnected("nextjs-dev"),c=t.isConnected("svelte-dev"),f=r&&!u,d=n&&!l,m=a&&!c;if(f||d||m){let r=[f&&"chrome-devtools",d&&"nextjs-dev",m&&"svelte-dev"].filter(Boolean);console.log(`[MCP Orchestrator] Retry ${i}: Attempting to connect to ${r.join(", ")}`);try{await t.initialize(e),console.log("[MCP Orchestrator] Successfully connected to downstream MCPs")}catch(e){console.warn(`[MCP Orchestrator] Retry ${i} failed:`,e)}}if(i>=10||u&&(!n||l)&&(!a||c)){clearInterval(o);let e=t.getConnectedMCPs();console.log(`[MCP Orchestrator] Stopped retry loop (connected: ${e.join(", ")||"none"})`)}},2e3)}catch(e){console.warn("[MCP Orchestrator] Failed to initialize downstream MCPs:",e)}})().catch(e=>{console.error("[MCP Orchestrator] Failed to initialize downstream MCPs:",e)});process.on("SIGTERM",async()=>{console.log("[MCP Orchestrator] Received SIGTERM, cleaning up...");try{await (0,eq.getMCPClientManager)().disconnect(),console.log("[MCP Orchestrator] Cleanup complete")}catch(e){console.error("[MCP Orchestrator] Error during cleanup:",e)}process.exit(0)}),process.on("SIGINT",async()=>{console.log("[MCP Orchestrator] Received SIGINT, cleaning up...");try{await (0,eq.getMCPClientManager)().disconnect(),console.log("[MCP Orchestrator] Cleanup complete")}catch(e){console.error("[MCP Orchestrator] Error during cleanup:",e)}process.exit(0)});let e$=(r=function(e,t={},r={redisUrl:process.env.REDIS_URL||process.env.KV_URL,streamableHttpEndpoint:"/mcp",sseEndpoint:"/sse",sseMessageEndpoint:"/message",basePath:"",maxDuration:60,verboseLogs:!1,disableSse:!1}){let s,{redisUrl:n,basePath:i,streamableHttpEndpoint:o,sseEndpoint:a,sseMessageEndpoint:u,maxDuration:l,verboseLogs:c,disableSse:f}=r,{serverInfo:d={name:"mcp-typescript server on vercel",version:"0.1.0"}}=t,m=((e,t)=>{var r={};for(var s in e)M.call(e,s)&&0>t.indexOf(s)&&(r[s]=e[s]);if(null!=e&&D)for(var s of D(e))0>t.indexOf(s)&&L.call(e,s)&&(r[s]=e[s]);return r})(t,["serverInfo"]),{streamableHttpEndpoint:p,sseEndpoint:h,sseMessageEndpoint:_}=function({basePath:e,streamableHttpEndpoint:t="/mcp",sseEndpoint:r="/sse",sseMessageEndpoint:s="/message"}){let n,{streamableHttpEndpoint:i,sseEndpoint:o,sseMessageEndpoint:a}=null!=e?(n=e.replace(/\/$/,""),{streamableHttpEndpoint:`${n}/mcp`,sseEndpoint:`${n}/sse`,sseMessageEndpoint:`${n}/message`}):{streamableHttpEndpoint:t,sseEndpoint:r,sseMessageEndpoint:s};return{streamableHttpEndpoint:i,sseEndpoint:o,sseMessageEndpoint:a}}({basePath:i,streamableHttpEndpoint:o,sseEndpoint:a,sseMessageEndpoint:u}),g=function(e=!1){return{log:(...t)=>{e&&console.log(...t)},error:(...t)=>{e&&console.error(...t)},warn:(...t)=>{e&&console.warn(...t)},info:(...t)=>{e&&console.info(...t)},debug:(...t)=>{e&&console.debug(...t)}}}(c),E=[],S=new eF({sessionIdGenerator:void 0});return ek||(ek=setInterval(()=>{let e=Date.now();E=E.filter(t=>{var r;let s=eU.get(t);if(!s){g.log("Removing orphaned server without metadata");try{(null==t?void 0:t.server)&&t.server.close()}catch(e){g.error("Error closing orphaned server:",e)}return!1}let n=e-s.createdAt.getTime();if(n>3e5){g.log(`Removing stale server (session ${s.sessionId}, age: ${n}ms)`);try{(null==t?void 0:t.server)&&t.server.close(),(null==(r=s.transport)?void 0:r.close)&&s.transport.close()}catch(e){g.error("Error closing stale server:",e)}return eU.delete(t),!1}return!0})},3e4)),function(i,o){return w(this,null,function*(){var a,u,c;let y=new URL(i.url||"","https://example.com");if(y.pathname===p){if("GET"===i.method){g.log("Received GET MCP request"),o.writeHead(405).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}));return}if("DELETE"===i.method){g.log("Received DELETE MCP request"),o.writeHead(405).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}));return}if("POST"===i.method){let t,n=new ex(eH(),r.onEvent);s||(s=new eb(d,m),yield e(s),yield s.connect(S)),t=(i.headers.get("content-type")||"").includes("application/json")?yield i.json():yield i.text();let a=eH({method:i.method,url:i.url,headers:Object.fromEntries(i.headers),body:t,auth:i.auth}),u=new ex(a,r.onEvent);Object.assign(u,o);try{yield S.handleRequest(a,u),"object"==typeof t&&t&&"method"in t&&n.requestCompleted(t.method,t)}catch(e){throw"object"==typeof t&&t&&"method"in t&&n.requestCompleted(t.method,void 0,e instanceof Error?e:String(e)),e}}}else if(y.pathname===h){if(f){o.statusCode=404,o.end("Not found");return}if("GET"!==i.method){g.log(`Rejected SSE connection with method ${i.method}`),o.writeHead(405,{"Content-Type":"text/plain"}).end("Method Not Allowed");return}let s=i.headers.get("accept")||i.headers.get("Accept");if(s&&!s.includes("text/event-stream")&&!s.includes("*/*")&&!s.includes("text/*")){g.log(`Rejected SSE connection with incompatible Accept header: ${s}`),o.writeHead(406,{"Content-Type":"text/plain"}).end("Not Acceptable");return}let{redis:m,redisPublisher:p}=yield eG({redisUrl:n,logger:g});g.log("Got new SSE connection"),(0,ej.default)(_,"sseMessageEndpoint is required");let h=new eM(_,o),S=h.sessionId,y=new ex(eH(),r.onEvent,S);y.startSession("SSE",{userAgent:null!=(a=i.headers.get("user-agent"))?a:void 0,ip:null!=(c=null!=(u=i.headers.get("x-forwarded-for"))?u:i.headers.get("x-real-ip"))?c:void 0});let b=new eb(d,t),I=!1,R=null,A=null,v=null,T=null,N=[],O=e=>w(this,null,function*(){if(!I){if(I=!0,g.log(`Cleaning up SSE connection: ${e}`),A&&(clearTimeout(A),A=null),R&&(clearInterval(R),R=null),v&&(i.signal.removeEventListener("abort",v),v=null),T)try{yield m.unsubscribe(`requests:${S}`,T),g.log(`Unsubscribed from requests:${S}`)}catch(e){g.error("Error unsubscribing from Redis:",e)}try{(null==b?void 0:b.server)&&(yield b.server.close()),(null==h?void 0:h.close)&&(yield h.close())}catch(e){g.error("Error closing server/transport:",e)}E=E.filter(e=>e!==b),eU.delete(b),y.endSession("SSE"),N=[],o.headersSent||(o.statusCode=200,o.end())}});try{let t,s=function(e,...t){N.push({type:e,messages:t})};yield e(b),E.push(b),eU.set(b,{sessionId:S,createdAt:new Date,transport:h}),b.server.onclose=()=>{O("server closed")},T=e=>w(this,null,function*(){g.log("Received message from Redis",e),s("log","Received message from Redis",e);let t=JSON.parse(e),n=eH({method:t.method,url:t.url,headers:t.headers,body:t.body}),i=new ex(n,r.onEvent,S),o=100,a="";i.writeHead=e=>(o=e,i),i.end=e=>(a=e,i);try{if(yield h.handlePostMessage(n,i),"object"==typeof t.body&&t.body&&"method"in t.body)try{let e=JSON.parse(a);y.requestCompleted(t.body.method,e)}catch(e){y.requestCompleted(t.body.method,a)}}catch(e){throw y.error(e instanceof Error?e:String(e),"Error handling SSE message","session"),e}yield p.publish(`responses:${S}:${t.requestId}`,JSON.stringify({status:o,body:a})),o>=200&&o<300?s("log",`Request ${S}:${t.requestId} succeeded: ${a}`):(s("error",`Message for ${S}:${t.requestId} failed with status ${o}: ${a}`),y.error(`Request failed with status ${o}`,a,"session"))}),R=setInterval(()=>{for(let e of N)g[e.type](...e.messages);N=[]},100),yield m.subscribe(`requests:${S}`,T),g.log(`Subscribed to requests:${S}`);let n=new Promise(e=>{t=e,A=setTimeout(()=>{e("max duration reached")},(null!=l?l:60)*1e3)});v=()=>t("client hang up"),i.signal.addEventListener("abort",v),o.on("close",()=>{O("response closed")}),o.on("error",e=>{g.error("Response error:",e),O("response error")}),yield b.connect(h);let a=yield n;g.log(a),yield O(String(a))}catch(e){throw g.error("Error in SSE handler:",e),yield O("error during setup"),e}}else if(y.pathname===_){let e;if(f){o.statusCode=404,o.end("Not found");return}let{redis:t,redisPublisher:r}=yield eG({redisUrl:n,logger:g});g.log("Received message");let s=yield i.text();try{e=JSON.parse(s)}catch(t){e=s}let a=y.searchParams.get("sessionId")||"";if(!a){o.statusCode=400,o.end("No sessionId provided");return}let u=crypto.randomUUID(),l={requestId:u,url:i.url||"",method:i.method||"",body:e,headers:Object.fromEntries(i.headers.entries())},c=null,d=!1,m=!1,p=()=>w(this,null,function*(){if(!m){m=!0,c&&(clearTimeout(c),c=null);try{yield t.unsubscribe(`responses:${a}:${u}`)}catch(e){g.error("Error unsubscribing from Redis response channel:",e)}}}),h=(e,t)=>w(this,null,function*(){d||(d=!0,o.statusCode=e,o.end(t),yield p())}),_=e=>w(this,null,function*(){try{let t=JSON.parse(e);yield h(t.status,t.body)}catch(e){g.error("Failed to parse response message:",e),yield h(500,"Internal server error")}});try{yield t.subscribe(`responses:${a}:${u}`,_),yield r.publish(`requests:${a}`,JSON.stringify(l)),g.log(`Published requests:${a}`,l),c=setTimeout(()=>w(this,null,function*(){yield h(408,"Request timed out")}),1e4),o.on("close",()=>w(this,null,function*(){d||(d=!0,yield p())})),o.on("error",e=>w(this,null,function*(){g.error("Response error in message handler:",e),d||(d=!0,yield p())}))}catch(e){g.error("Error in message handler:",e),yield p(),d||(o.statusCode=500,o.end("Internal server error"))}}else o.statusCode=404,o.end("Not found")})}}(async t=>{let r=(0,eq.getMCPClientManager)();await ez,await r.waitForInitialTools();let s=new Map,n={"chrome-devtools":["performance_start_trace","performance_stop_trace","performance_analyze_insight","take_snapshot"],"nextjs-dev":["browser_eval","enable_cache_components","init","nextjs_docs","nextjs_index","nextjs_call","upgrade_nextjs_16"]},i=(e,i)=>{var o;let a;if(o=i.name,!(!(a=n[e])||a.includes(o)))return console.log(`[MCP Orchestrator] Filtered out tool ${e}:${i.name} (not in whitelist)`),!1;let u=`${e}_${i.name}`,l=s.get(u),c=`[${e}] ${i.description||""}`,f={...i.annotations??{},proxiedFrom:e,originalInputSchema:i.inputSchema};if(l)return l.registered.update({description:c,annotations:f}),!1;try{let n=t.tool(u,c,{},async t=>r.callTool(e,i.name,t));return n.inputSchema=eE.z.object({}).passthrough(),n.update({annotations:f}),s.set(u,{mcpName:e,toolName:i.name,registered:n}),console.log(`[MCP Orchestrator] Registered proxied tool ${u}`),!0}catch(e){return console.warn(`[MCP Orchestrator] Failed to register proxied tool ${u}:`,e),!1}},o=r.getAllTools();0===o.length?console.log("[MCP Orchestrator] No downstream MCP tools available during initial registration"):console.log(`[MCP Orchestrator] Registering ${o.length} downstream MCP tools`);let a=0;for(let{mcpName:e,tool:t}of o)i(e,t)&&a++;a>0&&t.sendToolListChanged(),r.onToolsUpdated(({mcpName:e,tools:r})=>{if(0===r.length){(e=>{let t=0;for(let[r,n]of s.entries())if(n.mcpName===e)try{n.registered.remove(),s.delete(r),t++,console.log(`[MCP Orchestrator] Removed proxied tool ${r}`)}catch(e){console.warn(`[MCP Orchestrator] Failed to remove proxied tool ${r}:`,e)}return t})(e)>0&&t.sendToolListChanged();return}let n=0;for(let t of r)i(e,t)&&n++;n>0&&t.sendToolListChanged()}),t.tool("fix_my_app",eV.TOOL_DESCRIPTIONS.fix_my_app,{projectName:eE.z.string().optional().describe("Project name to debug (if multiple dev3000 instances are running)"),focusArea:eE.z.string().optional().describe("Specific area: 'build', 'runtime', 'network', 'ui', 'all' (default: 'all')"),mode:eE.z.enum(["snapshot","bisect","monitor"]).optional().describe("Fix mode: 'snapshot' (fix now), 'bisect' (fix regression), 'monitor' (fix continuously)"),waitForUserInteraction:eE.z.boolean().optional().describe("In bisect mode: capture timestamp, wait for user testing, then analyze (default: false)"),timeRangeMinutes:eE.z.number().optional().describe("Minutes to analyze back from now (default: 10)"),includeTimestampInstructions:eE.z.boolean().optional().describe("Show timestamp-based debugging instructions for manual workflow (default: true)"),integrateNextjs:eE.z.boolean().optional().describe("Auto-detected based on available MCPs - enables Next.js-specific analysis"),integrateChromeDevtools:eE.z.boolean().optional().describe("Auto-detected based on available MCPs - enables Chrome DevTools integration"),returnRawData:eE.z.boolean().optional().describe("Return structured data for Claude orchestration instead of formatted text"),createPR:eE.z.boolean().optional().describe("Create a PR for the highest priority issue (default: false)")},async e=>(0,eV.fixMyApp)(e)),t.tool("fix_my_jank","🎯 **JANK & PERFORMANCE FIXER** - Specialized alias for detecting and fixing layout shifts, CLS issues, and performance problems. Automatically focuses on performance analysis and jank detection from passive screencast captures.\n\n💡 This is an alias for fix_my_app with focusArea='performance', perfect for 'fix my jank' or 'why is my page janky' requests!",{projectName:eE.z.string().optional().describe("Project name to debug (if multiple dev3000 instances are running)"),timeRangeMinutes:eE.z.number().optional().describe("Minutes to analyze back from now (default: 10)")},async e=>(0,eV.fixMyApp)({...e,focusArea:"performance"})),t.tool("execute_browser_action",eV.TOOL_DESCRIPTIONS.execute_browser_action,{action:eE.z.enum(["click","navigate","screenshot","evaluate","scroll","type"]).describe("The browser action to perform"),params:eE.z.record(eE.z.unknown()).optional().describe("Parameters for the action:\n- click: {x: number, y: number} OR {selector: string} (CSS selector)\n- navigate: {url: string}\n- evaluate: {expression: string}\n- scroll: {deltaX?: number, deltaY?: number, x?: number, y?: number}\n- type: {text: string}")},async e=>(0,eV.executeBrowserAction)(e)),t.tool("analyze_visual_diff","🔍 **VISUAL DIFF ANALYZER** - Analyzes two screenshots and provides a verbal description of the visual differences. Perfect for understanding what changed between before/after frames in layout shift detection.\n\n💡 This tool loads both images and describes what elements appeared, moved, or changed that could have caused the layout shift.",{beforeImageUrl:eE.z.string().describe("URL of the 'before' screenshot"),afterImageUrl:eE.z.string().describe("URL of the 'after' screenshot"),context:eE.z.string().optional().describe("Optional context about what to look for (e.g., 'navigation header shift')")},async t=>{let{analyzeVisualDiff:r}=await e.A(2603);return r(t)}),t.tool("find_component_source",eV.TOOL_DESCRIPTIONS.find_component_source,{selector:eE.z.string().describe("CSS selector for the DOM element (e.g., 'nav', '.header', '#main'). Use lowercase for tag names."),projectName:eE.z.string().optional().describe("Project name (if multiple dev3000 instances are running)")},async e=>(0,eV.findComponentSource)(e)),t.tool("restart_dev_server",eV.TOOL_DESCRIPTIONS.restart_dev_server,{projectName:eE.z.string().optional().describe("Project name (if multiple dev3000 instances are running)")},async e=>(0,eV.restartDevServer)(e)),t.tool("crawl_app",eV.TOOL_DESCRIPTIONS.crawl_app,{depth:eE.z.union([eE.z.number().int().min(1),eE.z.literal("all")]).optional().describe("Crawl depth: number (1=homepage only, 2=homepage+next level, etc.) or 'all' for exhaustive (default: 1)"),projectName:eE.z.string().optional().describe("Project name (if multiple dev3000 instances are running)")},async e=>(0,eV.crawlApp)(e))},{},{basePath:"/",maxDuration:60,verboseLogs:!0}),e=>(function(e,t){let r,s=new Promise(e=>{r=e});return new Promise(n=>{let i,o,a=!1,u=!1,l=200,c=(e,t)=>{if("string"==typeof t)throw Error("Status message of writeHead not supported");return u=!0,r({statusCode:l=e,headers:o=t}),p},f=[],d=(e,t)=>{if(t)throw Error("Encoding not supported");if(e instanceof Buffer)throw Error("Buffer not supported");return(u||c(l,o),i)?i.enqueue(new TextEncoder().encode(e)):f.push(new TextEncoder().encode(e)),!0},m=new eK.EventEmitter,p={writeHead:c,write:d,end:e=>{if(e&&d(e),!i)return a=!0,p;try{i.close()}catch(e){}return p},on:(e,t)=>(m.on(e,t),p),get statusCode(){return l},set statusCode(code){l=code,u&&r({statusCode:l,headers:o})}};e.addEventListener("abort",()=>{m.emit("close")}),t(p),w(this,null,function*(){let e=yield s;n(new Response(new ReadableStream({start(e){for(let t of(i=e,f))i.enqueue(t);a&&i.close()}}),{status:e.statusCode,headers:e.headers}))})})})(e.signal,t=>{r(e,t)}));e.s(["GET",()=>e$,"POST",()=>e$],47164);var eZ=e.i(47164);let eJ=new o.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/mcp/route",pathname:"/mcp",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/mcp-server/app/mcp/route.ts",nextConfigOutput:"",userland:eZ}),{workAsyncStorage:eQ,workUnitAsyncStorage:e0,serverHooks:e1}=eJ;function e4(){return(0,u.patchFetch)({workAsyncStorage:eQ,workUnitAsyncStorage:e0})}async function e8(e,t,r){eJ.isDev&&(0,l.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/mcp/route";s=s.replace(/\/index$/,"")||"/";let n=await eJ.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!n)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:i,params:o,nextConfig:u,parsedUrl:A,isDraftMode:v,prerenderManifest:T,routerServerContext:N,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,resolvedPathname:D,clientReferenceManifest:M,serverActionsManifest:L}=n,C=(0,m.normalizeAppPath)(s),Y=!!(T.dynamicRoutes[C]||T.routes[D]),w=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,A,!1):t.end("This page could not be found"),null);if(Y&&!v){let e=!!T.routes[D],t=T.dynamicRoutes[C];if(t&&!1===t.fallback&&!e){if(u.experimental.adapterPath)return await w();throw new I.NoFallbackError}}let F=null;!Y||eJ.isDev||v||(F="/index"===(F=D)?"/":F);let j=!0===eJ.isDev||!Y,X=Y&&!j;L&&M&&(0,f.setReferenceManifestsSingleton)({page:s,clientReferenceManifest:M,serverActionsManifest:L,serverModuleMap:(0,d.createServerModuleMap)({serverActionsManifest:L})});let K=e.method||"GET",x=(0,c.getTracer)(),B=x.getActiveScopeSpan(),U={params:o,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!u.experimental.authInterrupts},cacheComponents:!!u.cacheComponents,supportsDynamicResponse:j,incrementalCache:(0,l.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:u.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s)=>eJ.onRequestError(e,t,s,N)},sharedContext:{buildId:i}},k=new p.NodeNextRequest(e),G=new p.NodeNextResponse(t),H=h.NextRequestAdapter.fromNodeNextRequest(k,(0,h.signalFromNodeResponse)(t));try{let n=async e=>eJ.handle(H,U).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=x.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==_.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${K} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${K} ${s}`)}),i=!!(0,l.getRequestMeta)(e,"minimalMode"),o=async o=>{var l,c;let f=async({previousCacheEntry:a})=>{try{if(!i&&O&&P&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(o);e.fetchMetrics=U.renderOpts.fetchMetrics;let u=U.renderOpts.pendingWaitUntil;u&&r.waitUntil&&(r.waitUntil(u),u=void 0);let l=U.renderOpts.collectedTags;if(!Y)return await (0,E.sendResponse)(k,G,s,U.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,S.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[b.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=b.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,n=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=b.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await eJ.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,g.getRevalidateReason)({isStaticGeneration:X,isOnDemandRevalidate:O})},N),t}},d=await eJ.handleResponse({req:e,nextConfig:u,cacheKey:F,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,responseGenerator:f,waitUntil:r.waitUntil,isMinimalMode:i});if(!Y)return null;if((null==d||null==(l=d.value)?void 0:l.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(c=d.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),v&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,S.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&Y||m.delete(b.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,y.getCacheControlHeader)(d.cacheControl)),await (0,E.sendResponse)(k,G,new Response(d.value.body,{headers:m,status:d.value.status||200})),null};B?await o(B):await x.withPropagatedContext(e.headers,()=>x.trace(_.BaseServerSpan.handleRequest,{spanName:`${K} ${s}`,kind:c.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},o))}catch(t){if(t instanceof I.NoFallbackError||await eJ.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,g.getRevalidateReason)({isStaticGeneration:X,isOnDemandRevalidate:O})}),Y)throw t;return await (0,E.sendResponse)(k,G,new Response(null,{status:500})),null}}e.s(["handler",()=>e8,"patchFetch",()=>e4,"routeModule",()=>eJ,"serverHooks",()=>e1,"workAsyncStorage",()=>eQ,"workUnitAsyncStorage",()=>e0],23671)}];
15
+ `,e.write(s)}async handleUnsupportedRequest(e){e.writeHead(405,{Allow:"GET, POST, DELETE"}).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}))}async handlePostRequest(e,t,r){var s,n,i,o,a;try{let a,u,l=e.headers.accept;if(!(null==l?void 0:l.includes("application/json"))||!l.includes("text/event-stream"))return void t.writeHead(406).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Not Acceptable: Client must accept both application/json and text/event-stream"},id:null}));let c=e.headers["content-type"];if(!c||!c.includes("application/json"))return void t.writeHead(415).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Unsupported Media Type: Content-Type must be application/json"},id:null}));let f=e.auth,d={headers:e.headers};if(void 0!==r)a=r;else{let t=eP.default.parse(c),r=await (0,eO.default)(e,{limit:"4mb",encoding:null!=(s=t.parameters.charset)?s:"utf-8"});a=JSON.parse(r.toString())}let m=(u=Array.isArray(a)?a.map(e=>j.JSONRPCMessageSchema.parse(e)):[j.JSONRPCMessageSchema.parse(a)]).some(j.isInitializeRequest);if(m){if(this._initialized&&void 0!==this.sessionId)return void t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32600,message:"Invalid Request: Server already initialized"},id:null}));if(u.length>1)return void t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32600,message:"Invalid Request: Only one initialization request is allowed"},id:null}));this.sessionId=null==(n=this.sessionIdGenerator)?void 0:n.call(this),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!m&&(!this.validateSession(e,t)||!this.validateProtocolVersion(e,t)))return;let p=u.some(j.isJSONRPCRequest);if(p){if(p){let e=(0,eN.randomUUID)();if(!this._enableJsonResponse){let e={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};void 0!==this.sessionId&&(e["mcp-session-id"]=this.sessionId),t.writeHead(200,e)}for(let r of u)(0,j.isJSONRPCRequest)(r)&&(this._streamMapping.set(e,t),this._requestToStreamMapping.set(r.id,e));for(let r of(t.on("close",()=>{this._streamMapping.delete(e)}),t.on("error",e=>{var t;null==(t=this.onerror)||t.call(this,e)}),u))null==(o=this.onmessage)||o.call(this,r,{authInfo:f,requestInfo:d})}}else for(let e of(t.writeHead(202).end(),u))null==(i=this.onmessage)||i.call(this,e,{authInfo:f,requestInfo:d})}catch(e){t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32700,message:"Parse error",data:String(e)},id:null})),null==(a=this.onerror)||a.call(this,e)}}async handleDeleteRequest(e,t){var r;!this.validateSession(e,t)||this.validateProtocolVersion(e,t)&&(await Promise.resolve(null==(r=this._onsessionclosed)?void 0:r.call(this,this.sessionId)),await this.close(),t.writeHead(200).end())}validateSession(e,t){if(void 0===this.sessionIdGenerator)return!0;if(!this._initialized)return t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Bad Request: Server not initialized"},id:null})),!1;let r=e.headers["mcp-session-id"];return r?Array.isArray(r)?(t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Bad Request: Mcp-Session-Id header must be a single value"},id:null})),!1):r===this.sessionId||(t.writeHead(404).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32001,message:"Session not found"},id:null})),!1):(t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Bad Request: Mcp-Session-Id header is required"},id:null})),!1)}validateProtocolVersion(e,t){var r;let s=null!=(r=e.headers["mcp-protocol-version"])?r:j.DEFAULT_NEGOTIATED_PROTOCOL_VERSION;return Array.isArray(s)&&(s=s[s.length-1]),!!j.SUPPORTED_PROTOCOL_VERSIONS.includes(s)||(t.writeHead(400).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:`Bad Request: Unsupported protocol version (supported versions: ${j.SUPPORTED_PROTOCOL_VERSIONS.join(", ")})`},id:null})),!1)}async close(){var e;this._streamMapping.forEach(e=>{e.end()}),this._streamMapping.clear(),this._requestResponseMap.clear(),null==(e=this.onclose)||e.call(this)}async send(e,t){let r=null==t?void 0:t.relatedRequestId;if(((0,j.isJSONRPCResponse)(e)||(0,j.isJSONRPCError)(e))&&(r=e.id),void 0===r){let t;if((0,j.isJSONRPCResponse)(e)||(0,j.isJSONRPCError)(e))throw Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let r=this._streamMapping.get(this._standaloneSseStreamId);if(void 0===r)return;this._eventStore&&(t=await this._eventStore.storeEvent(this._standaloneSseStreamId,e)),this.writeSSEEvent(r,e,t);return}let s=this._requestToStreamMapping.get(r),n=this._streamMapping.get(s);if(!s)throw Error(`No connection established for request ID: ${String(r)}`);if(!this._enableJsonResponse){let t;this._eventStore&&(t=await this._eventStore.storeEvent(s,e)),n&&this.writeSSEEvent(n,e,t)}if((0,j.isJSONRPCResponse)(e)||(0,j.isJSONRPCError)(e)){this._requestResponseMap.set(r,e);let t=Array.from(this._requestToStreamMapping.entries()).filter(([e,t])=>this._streamMapping.get(t)===n).map(([e])=>e);if(t.every(e=>this._requestResponseMap.has(e))){if(!n)throw Error(`No connection established for request ID: ${String(r)}`);if(this._enableJsonResponse){let e={"Content-Type":"application/json"};void 0!==this.sessionId&&(e["mcp-session-id"]=this.sessionId);let r=t.map(e=>this._requestResponseMap.get(e));n.writeHead(200,e),1===r.length?n.end(JSON.stringify(r[0])):n.end(JSON.stringify(r))}else n.end();for(let e of t)this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e)}}}}var ej=e.i(49719),eX=e.i(10430),eK=e.i(27699);e.i(70960);var ex=class extends eL.ServerResponse{constructor(e,t,r){super(e),this.onEvent=t,this.sessionId=r,this.requestId=crypto.randomUUID(),this.startTime=Date.now()}emitEvent(e){var t;this.onEvent&&this.onEvent((t=O(Y({},e),P({sessionId:this.sessionId,requestId:this.requestId})),O(Y({},t),P({timestamp:Date.now()}))))}startSession(e,t){this.emitEvent({type:"SESSION_STARTED",transport:e,clientInfo:t})}endSession(e){this.emitEvent({type:"SESSION_ENDED",transport:e})}requestReceived(e,t){this.emitEvent({type:"REQUEST_RECEIVED",method:e,parameters:t,status:"success"})}requestCompleted(e,t,r){this.emitEvent({type:"REQUEST_COMPLETED",method:e,result:t,duration:Date.now()-this.startTime,status:r?"error":"success"}),r&&this.error(r,`Error executing request ${e}`,"request")}error(e,t,r="system",s="error"){this.emitEvent({type:"ERROR",error:e,context:t,source:r,severity:s})}end(e,t,r){let s=e,n=t,i=r;return"function"==typeof e?(i=e,s=void 0,n=void 0):"function"==typeof t&&(i=t,n=void 0),super.end(s,n,i)}},eB=new eX.AsyncLocalStorage,eU=new WeakMap,ek=null;function eG(e){return w(this,arguments,function*({redisUrl:e,logger:t}){if(i&&n)return{redis:i,redisPublisher:n};if(!e)throw Error("redisUrl is required");return i=(0,eC.createClient)({url:e}),n=(0,eC.createClient)({url:e}),i.on("error",e=>{t.error("Redis error",e)}),n.on("error",e=>{t.error("Redis error",e)}),yield Promise.all([i.connect(),n.connect()]),{redis:i,redisPublisher:n}})}function eH(e={}){let{method:t="GET",url:r="/",headers:s={},body:n=null,socket:i=new eY.Socket}=e,o=new ew.Readable;if(o._read=()=>{},n){if("string"==typeof n)o.push(n);else if(Buffer.isBuffer(n))o.push(n);else{let e=JSON.stringify(n);o.push(e)}o.push(null)}else o.push(null);let a=new eL.IncomingMessage(i);a.method=t,a.url=r,a.headers=s;let u=e.auth||eB.getStore();return u&&(a.auth=u),a.push=o.push.bind(o),a.read=o.read.bind(o),a.on=o.on.bind(o),a.pipe=o.pipe.bind(o),a}var eq=e.i(20539),eV=e.i(56891);let eW=()=>{try{let{execSync:t}=e.r(74533);try{return t("bunx --version",{stdio:"ignore"}),{command:"bunx",args:[]}}catch{}try{return t("npx --version",{stdio:"ignore"}),{command:"npx",args:["-y"]}}catch{}try{return t("pnpm --version",{stdio:"ignore"}),{command:"pnpm",args:["dlx"]}}catch{}return console.error("[MCP Orchestrator] No package runner found (bunx, npx, or pnpm) - cannot spawn MCP servers"),null}catch(e){return console.error("[MCP Orchestrator] Failed to detect package runner:",e),null}},ez=(async()=>{let t=(0,eq.getMCPClientManager)(),r=(()=>{try{let{existsSync:t,readFileSync:r}=e.r(2157),s=process.cwd();for(let e of[(0,T.join)(s,".mcp.json"),(0,T.join)(s,".cursor","mcp.json"),(0,T.join)((0,v.homedir)(),".claude","settings.json")])if(t(e))try{let t=r(e,"utf-8"),s=JSON.parse(t),n=s.mcpServers||s.mcp||{};for(let[e,t]of Object.entries(n)){if("dev3000"===e)continue;let r=e.toLowerCase();if(r.includes("chrome-devtools")||r.includes("chromedevtools"))return console.log(`[MCP Orchestrator] Detected external chrome-devtools-mcp (${e}). dev3000 will use its native CDP implementation instead of spawning a duplicate.`),!0;let s=String(t.command||""),n=Array.isArray(t.args)?t.args.join(" "):"";if(s.includes("chrome-devtools-mcp")||n.includes("chrome-devtools-mcp"))return console.log(`[MCP Orchestrator] Detected external chrome-devtools-mcp (${e}). dev3000 will use its native CDP implementation instead of spawning a duplicate.`),!0}}catch{}return!1}catch{return!1}})(),s=()=>{let t={},s=(0,T.join)((0,v.homedir)(),".d3k");try{let{readdirSync:n,existsSync:i}=e.r(2157);if(!i(s))return t;for(let e of n(s).filter(e=>e.endsWith(".json")))try{let n=(0,T.join)(s,e),i=JSON.parse((0,A.readFileSync)(n,"utf-8"));if(i.cdpUrl&&!t.chromeDevtools&&!r){let e=eW();if(e)try{let r=new URL(i.cdpUrl),s=`http://${r.host}`;t.chromeDevtools={command:e.command,args:[...e.args,"chrome-devtools-mcp@latest","--browserUrl",s],enabled:!0}}catch{console.warn("[MCP Orchestrator] Failed to parse CDP URL:",i.cdpUrl)}else console.warn("[MCP Orchestrator] Cannot configure chrome-devtools MCP: no package runner available")}if(t.chromeDevtools)break}catch{}}catch(e){console.warn("[MCP Orchestrator] Failed to read session files:",e)}if(!t.nextjsDev&&!t.svelteDev){let e=eW(),r=null;try{for(let e of(0,A.readdirSync)(s).filter(e=>e.endsWith(".json")))try{let t=(0,T.join)(s,e),n=JSON.parse((0,A.readFileSync)(t,"utf-8"));if(n.framework){r=n.framework;break}}catch{}}catch{}e?"nextjs"===r?(t.nextjsDev={command:e.command,args:[...e.args,"next-devtools-mcp@latest"],enabled:!0},console.log("[MCP Orchestrator] Detected Next.js framework, configuring next-devtools-mcp")):"svelte"===r&&(t.svelteDev={command:e.command,args:[...e.args,"@sveltejs/mcp-server-svelte"],enabled:!0},console.log("[MCP Orchestrator] Detected Svelte framework, configuring @sveltejs/mcp-server-svelte")):console.warn("[MCP Orchestrator] Cannot configure framework MCP: no package runner available")}return t},n=async(e=1e4,t=250)=>{let r=Date.now(),n=!1,i=s();for(;0===Object.keys(i).length&&Date.now()-r<e;)n||(console.log("[MCP Orchestrator] Waiting for session info before connecting downstream MCPs..."),n=!0),await new Promise(e=>setTimeout(e,t)),i=s();return{config:i,waited:n}};try{let{config:e,waited:r}=await n();Object.keys(e).length>0?(await t.initialize(e),console.log(`[MCP Orchestrator] Initialized with ${Object.keys(e).join(", ")}`)):r?console.log("[MCP Orchestrator] No downstream MCPs detected after waiting for session info (will retry)"):console.log("[MCP Orchestrator] No downstream MCPs found yet (will retry)");let i=0,o=setInterval(async()=>{i++;let e=s(),r=!!e.chromeDevtools,n=!!e.nextjsDev,a=!!e.svelteDev,u=t.isConnected("chrome-devtools"),l=t.isConnected("nextjs-dev"),c=t.isConnected("svelte-dev"),f=r&&!u,d=n&&!l,m=a&&!c;if(f||d||m){let r=[f&&"chrome-devtools",d&&"nextjs-dev",m&&"svelte-dev"].filter(Boolean);console.log(`[MCP Orchestrator] Retry ${i}: Attempting to connect to ${r.join(", ")}`);try{await t.initialize(e),console.log("[MCP Orchestrator] Successfully connected to downstream MCPs")}catch(e){console.warn(`[MCP Orchestrator] Retry ${i} failed:`,e)}}if(i>=10||u&&(!n||l)&&(!a||c)){clearInterval(o);let e=t.getConnectedMCPs();console.log(`[MCP Orchestrator] Stopped retry loop (connected: ${e.join(", ")||"none"})`)}},2e3)}catch(e){console.warn("[MCP Orchestrator] Failed to initialize downstream MCPs:",e)}})().catch(e=>{console.error("[MCP Orchestrator] Failed to initialize downstream MCPs:",e)});process.on("SIGTERM",async()=>{console.log("[MCP Orchestrator] Received SIGTERM, cleaning up...");try{await (0,eq.getMCPClientManager)().disconnect(),console.log("[MCP Orchestrator] Cleanup complete")}catch(e){console.error("[MCP Orchestrator] Error during cleanup:",e)}process.exit(0)}),process.on("SIGINT",async()=>{console.log("[MCP Orchestrator] Received SIGINT, cleaning up...");try{await (0,eq.getMCPClientManager)().disconnect(),console.log("[MCP Orchestrator] Cleanup complete")}catch(e){console.error("[MCP Orchestrator] Error during cleanup:",e)}process.exit(0)});let e$=(r=function(e,t={},r={redisUrl:process.env.REDIS_URL||process.env.KV_URL,streamableHttpEndpoint:"/mcp",sseEndpoint:"/sse",sseMessageEndpoint:"/message",basePath:"",maxDuration:60,verboseLogs:!1,disableSse:!1}){let s,{redisUrl:n,basePath:i,streamableHttpEndpoint:o,sseEndpoint:a,sseMessageEndpoint:u,maxDuration:l,verboseLogs:c,disableSse:f}=r,{serverInfo:d={name:"mcp-typescript server on vercel",version:"0.1.0"}}=t,m=((e,t)=>{var r={};for(var s in e)M.call(e,s)&&0>t.indexOf(s)&&(r[s]=e[s]);if(null!=e&&D)for(var s of D(e))0>t.indexOf(s)&&L.call(e,s)&&(r[s]=e[s]);return r})(t,["serverInfo"]),{streamableHttpEndpoint:p,sseEndpoint:h,sseMessageEndpoint:_}=function({basePath:e,streamableHttpEndpoint:t="/mcp",sseEndpoint:r="/sse",sseMessageEndpoint:s="/message"}){let n,{streamableHttpEndpoint:i,sseEndpoint:o,sseMessageEndpoint:a}=null!=e?(n=e.replace(/\/$/,""),{streamableHttpEndpoint:`${n}/mcp`,sseEndpoint:`${n}/sse`,sseMessageEndpoint:`${n}/message`}):{streamableHttpEndpoint:t,sseEndpoint:r,sseMessageEndpoint:s};return{streamableHttpEndpoint:i,sseEndpoint:o,sseMessageEndpoint:a}}({basePath:i,streamableHttpEndpoint:o,sseEndpoint:a,sseMessageEndpoint:u}),g=function(e=!1){return{log:(...t)=>{e&&console.log(...t)},error:(...t)=>{e&&console.error(...t)},warn:(...t)=>{e&&console.warn(...t)},info:(...t)=>{e&&console.info(...t)},debug:(...t)=>{e&&console.debug(...t)}}}(c),E=[],S=new eF({sessionIdGenerator:void 0});return ek||(ek=setInterval(()=>{let e=Date.now();E=E.filter(t=>{var r;let s=eU.get(t);if(!s){g.log("Removing orphaned server without metadata");try{(null==t?void 0:t.server)&&t.server.close()}catch(e){g.error("Error closing orphaned server:",e)}return!1}let n=e-s.createdAt.getTime();if(n>3e5){g.log(`Removing stale server (session ${s.sessionId}, age: ${n}ms)`);try{(null==t?void 0:t.server)&&t.server.close(),(null==(r=s.transport)?void 0:r.close)&&s.transport.close()}catch(e){g.error("Error closing stale server:",e)}return eU.delete(t),!1}return!0})},3e4)),function(i,o){return w(this,null,function*(){var a,u,c;let y=new URL(i.url||"","https://example.com");if(y.pathname===p){if("GET"===i.method){g.log("Received GET MCP request"),o.writeHead(405).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}));return}if("DELETE"===i.method){g.log("Received DELETE MCP request"),o.writeHead(405).end(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}));return}if("POST"===i.method){let t,n=new ex(eH(),r.onEvent);s||(s=new eb(d,m),yield e(s),yield s.connect(S)),t=(i.headers.get("content-type")||"").includes("application/json")?yield i.json():yield i.text();let a=eH({method:i.method,url:i.url,headers:Object.fromEntries(i.headers),body:t,auth:i.auth}),u=new ex(a,r.onEvent);Object.assign(u,o);try{yield S.handleRequest(a,u),"object"==typeof t&&t&&"method"in t&&n.requestCompleted(t.method,t)}catch(e){throw"object"==typeof t&&t&&"method"in t&&n.requestCompleted(t.method,void 0,e instanceof Error?e:String(e)),e}}}else if(y.pathname===h){if(f){o.statusCode=404,o.end("Not found");return}if("GET"!==i.method){g.log(`Rejected SSE connection with method ${i.method}`),o.writeHead(405,{"Content-Type":"text/plain"}).end("Method Not Allowed");return}let s=i.headers.get("accept")||i.headers.get("Accept");if(s&&!s.includes("text/event-stream")&&!s.includes("*/*")&&!s.includes("text/*")){g.log(`Rejected SSE connection with incompatible Accept header: ${s}`),o.writeHead(406,{"Content-Type":"text/plain"}).end("Not Acceptable");return}let{redis:m,redisPublisher:p}=yield eG({redisUrl:n,logger:g});g.log("Got new SSE connection"),(0,ej.default)(_,"sseMessageEndpoint is required");let h=new eM(_,o),S=h.sessionId,y=new ex(eH(),r.onEvent,S);y.startSession("SSE",{userAgent:null!=(a=i.headers.get("user-agent"))?a:void 0,ip:null!=(c=null!=(u=i.headers.get("x-forwarded-for"))?u:i.headers.get("x-real-ip"))?c:void 0});let b=new eb(d,t),I=!1,R=null,A=null,v=null,T=null,N=[],O=e=>w(this,null,function*(){if(!I){if(I=!0,g.log(`Cleaning up SSE connection: ${e}`),A&&(clearTimeout(A),A=null),R&&(clearInterval(R),R=null),v&&(i.signal.removeEventListener("abort",v),v=null),T)try{yield m.unsubscribe(`requests:${S}`,T),g.log(`Unsubscribed from requests:${S}`)}catch(e){g.error("Error unsubscribing from Redis:",e)}try{(null==b?void 0:b.server)&&(yield b.server.close()),(null==h?void 0:h.close)&&(yield h.close())}catch(e){g.error("Error closing server/transport:",e)}E=E.filter(e=>e!==b),eU.delete(b),y.endSession("SSE"),N=[],o.headersSent||(o.statusCode=200,o.end())}});try{let t,s=function(e,...t){N.push({type:e,messages:t})};yield e(b),E.push(b),eU.set(b,{sessionId:S,createdAt:new Date,transport:h}),b.server.onclose=()=>{O("server closed")},T=e=>w(this,null,function*(){g.log("Received message from Redis",e),s("log","Received message from Redis",e);let t=JSON.parse(e),n=eH({method:t.method,url:t.url,headers:t.headers,body:t.body}),i=new ex(n,r.onEvent,S),o=100,a="";i.writeHead=e=>(o=e,i),i.end=e=>(a=e,i);try{if(yield h.handlePostMessage(n,i),"object"==typeof t.body&&t.body&&"method"in t.body)try{let e=JSON.parse(a);y.requestCompleted(t.body.method,e)}catch(e){y.requestCompleted(t.body.method,a)}}catch(e){throw y.error(e instanceof Error?e:String(e),"Error handling SSE message","session"),e}yield p.publish(`responses:${S}:${t.requestId}`,JSON.stringify({status:o,body:a})),o>=200&&o<300?s("log",`Request ${S}:${t.requestId} succeeded: ${a}`):(s("error",`Message for ${S}:${t.requestId} failed with status ${o}: ${a}`),y.error(`Request failed with status ${o}`,a,"session"))}),R=setInterval(()=>{for(let e of N)g[e.type](...e.messages);N=[]},100),yield m.subscribe(`requests:${S}`,T),g.log(`Subscribed to requests:${S}`);let n=new Promise(e=>{t=e,A=setTimeout(()=>{e("max duration reached")},(null!=l?l:60)*1e3)});v=()=>t("client hang up"),i.signal.addEventListener("abort",v),o.on("close",()=>{O("response closed")}),o.on("error",e=>{g.error("Response error:",e),O("response error")}),yield b.connect(h);let a=yield n;g.log(a),yield O(String(a))}catch(e){throw g.error("Error in SSE handler:",e),yield O("error during setup"),e}}else if(y.pathname===_){let e;if(f){o.statusCode=404,o.end("Not found");return}let{redis:t,redisPublisher:r}=yield eG({redisUrl:n,logger:g});g.log("Received message");let s=yield i.text();try{e=JSON.parse(s)}catch(t){e=s}let a=y.searchParams.get("sessionId")||"";if(!a){o.statusCode=400,o.end("No sessionId provided");return}let u=crypto.randomUUID(),l={requestId:u,url:i.url||"",method:i.method||"",body:e,headers:Object.fromEntries(i.headers.entries())},c=null,d=!1,m=!1,p=()=>w(this,null,function*(){if(!m){m=!0,c&&(clearTimeout(c),c=null);try{yield t.unsubscribe(`responses:${a}:${u}`)}catch(e){g.error("Error unsubscribing from Redis response channel:",e)}}}),h=(e,t)=>w(this,null,function*(){d||(d=!0,o.statusCode=e,o.end(t),yield p())}),_=e=>w(this,null,function*(){try{let t=JSON.parse(e);yield h(t.status,t.body)}catch(e){g.error("Failed to parse response message:",e),yield h(500,"Internal server error")}});try{yield t.subscribe(`responses:${a}:${u}`,_),yield r.publish(`requests:${a}`,JSON.stringify(l)),g.log(`Published requests:${a}`,l),c=setTimeout(()=>w(this,null,function*(){yield h(408,"Request timed out")}),1e4),o.on("close",()=>w(this,null,function*(){d||(d=!0,yield p())})),o.on("error",e=>w(this,null,function*(){g.error("Response error in message handler:",e),d||(d=!0,yield p())}))}catch(e){g.error("Error in message handler:",e),yield p(),d||(o.statusCode=500,o.end("Internal server error"))}}else o.statusCode=404,o.end("Not found")})}}(async t=>{let r=(0,eq.getMCPClientManager)();await ez,await r.waitForInitialTools();let s=new Map,n={"chrome-devtools":["performance_start_trace","performance_stop_trace","performance_analyze_insight","take_snapshot"],"nextjs-dev":["enable_cache_components","init","nextjs_docs","nextjs_index","nextjs_call","upgrade_nextjs_16"]},i=(e,i)=>{var o;let a;if(o=i.name,!(!(a=n[e])||a.includes(o)))return console.log(`[MCP Orchestrator] Filtered out tool ${e}:${i.name} (not in whitelist)`),!1;let u=`${e}_${i.name}`,l=s.get(u),c=`[${e}] ${i.description||""}`,f={...i.annotations??{},proxiedFrom:e,originalInputSchema:i.inputSchema};if(l)return l.registered.update({description:c,annotations:f}),!1;try{let n=t.tool(u,c,{},async t=>r.callTool(e,i.name,t));return n.inputSchema=eE.z.object({}).passthrough(),n.update({annotations:f}),s.set(u,{mcpName:e,toolName:i.name,registered:n}),console.log(`[MCP Orchestrator] Registered proxied tool ${u}`),!0}catch(e){return console.warn(`[MCP Orchestrator] Failed to register proxied tool ${u}:`,e),!1}},o=r.getAllTools();0===o.length?console.log("[MCP Orchestrator] No downstream MCP tools available during initial registration"):console.log(`[MCP Orchestrator] Registering ${o.length} downstream MCP tools`);let a=0;for(let{mcpName:e,tool:t}of o)i(e,t)&&a++;a>0&&t.sendToolListChanged(),r.onToolsUpdated(({mcpName:e,tools:r})=>{if(0===r.length){(e=>{let t=0;for(let[r,n]of s.entries())if(n.mcpName===e)try{n.registered.remove(),s.delete(r),t++,console.log(`[MCP Orchestrator] Removed proxied tool ${r}`)}catch(e){console.warn(`[MCP Orchestrator] Failed to remove proxied tool ${r}:`,e)}return t})(e)>0&&t.sendToolListChanged();return}let n=0;for(let t of r)i(e,t)&&n++;n>0&&t.sendToolListChanged()}),t.tool("fix_my_app",eV.TOOL_DESCRIPTIONS.fix_my_app,{projectName:eE.z.string().optional().describe("Project name to debug (if multiple dev3000 instances are running)"),focusArea:eE.z.string().optional().describe("Specific area: 'build', 'runtime', 'network', 'ui', 'all' (default: 'all')"),mode:eE.z.enum(["snapshot","bisect","monitor"]).optional().describe("Fix mode: 'snapshot' (fix now), 'bisect' (fix regression), 'monitor' (fix continuously)"),waitForUserInteraction:eE.z.boolean().optional().describe("In bisect mode: capture timestamp, wait for user testing, then analyze (default: false)"),timeRangeMinutes:eE.z.number().optional().describe("Minutes to analyze back from now (default: 10)"),includeTimestampInstructions:eE.z.boolean().optional().describe("Show timestamp-based debugging instructions for manual workflow (default: true)"),integrateNextjs:eE.z.boolean().optional().describe("Auto-detected based on available MCPs - enables Next.js-specific analysis"),integrateChromeDevtools:eE.z.boolean().optional().describe("Auto-detected based on available MCPs - enables Chrome DevTools integration"),returnRawData:eE.z.boolean().optional().describe("Return structured data for Claude orchestration instead of formatted text"),createPR:eE.z.boolean().optional().describe("Create a PR for the highest priority issue (default: false)")},async e=>(0,eV.fixMyApp)(e)),t.tool("fix_my_jank","🎯 **JANK & PERFORMANCE FIXER** - Specialized alias for detecting and fixing layout shifts, CLS issues, and performance problems. Automatically focuses on performance analysis and jank detection from passive screencast captures.\n\n💡 This is an alias for fix_my_app with focusArea='performance', perfect for 'fix my jank' or 'why is my page janky' requests!",{projectName:eE.z.string().optional().describe("Project name to debug (if multiple dev3000 instances are running)"),timeRangeMinutes:eE.z.number().optional().describe("Minutes to analyze back from now (default: 10)")},async e=>(0,eV.fixMyApp)({...e,focusArea:"performance"})),t.tool("execute_browser_action",eV.TOOL_DESCRIPTIONS.execute_browser_action,{action:eE.z.enum(["click","navigate","screenshot","evaluate","scroll","type"]).describe("The browser action to perform"),params:eE.z.record(eE.z.unknown()).optional().describe("Parameters for the action:\n- click: {x: number, y: number} OR {selector: string} (CSS selector)\n- navigate: {url: string}\n- evaluate: {expression: string}\n- scroll: {deltaX?: number, deltaY?: number, x?: number, y?: number}\n- type: {text: string}")},async e=>(0,eV.executeBrowserAction)(e)),t.tool("analyze_visual_diff","🔍 **VISUAL DIFF ANALYZER** - Analyzes two screenshots and provides a verbal description of the visual differences. Perfect for understanding what changed between before/after frames in layout shift detection.\n\n💡 This tool loads both images and describes what elements appeared, moved, or changed that could have caused the layout shift.",{beforeImageUrl:eE.z.string().describe("URL of the 'before' screenshot"),afterImageUrl:eE.z.string().describe("URL of the 'after' screenshot"),context:eE.z.string().optional().describe("Optional context about what to look for (e.g., 'navigation header shift')")},async t=>{let{analyzeVisualDiff:r}=await e.A(2603);return r(t)}),t.tool("find_component_source",eV.TOOL_DESCRIPTIONS.find_component_source,{selector:eE.z.string().describe("CSS selector for the DOM element (e.g., 'nav', '.header', '#main'). Use lowercase for tag names."),projectName:eE.z.string().optional().describe("Project name (if multiple dev3000 instances are running)")},async e=>(0,eV.findComponentSource)(e)),t.tool("restart_dev_server",eV.TOOL_DESCRIPTIONS.restart_dev_server,{projectName:eE.z.string().optional().describe("Project name (if multiple dev3000 instances are running)")},async e=>(0,eV.restartDevServer)(e)),t.tool("crawl_app",eV.TOOL_DESCRIPTIONS.crawl_app,{depth:eE.z.union([eE.z.number().int().min(1),eE.z.literal("all")]).optional().describe("Crawl depth: number (1=homepage only, 2=homepage+next level, etc.) or 'all' for exhaustive (default: 1)"),projectName:eE.z.string().optional().describe("Project name (if multiple dev3000 instances are running)")},async e=>(0,eV.crawlApp)(e))},{},{basePath:"/",maxDuration:60,verboseLogs:!0}),e=>(function(e,t){let r,s=new Promise(e=>{r=e});return new Promise(n=>{let i,o,a=!1,u=!1,l=200,c=(e,t)=>{if("string"==typeof t)throw Error("Status message of writeHead not supported");return u=!0,r({statusCode:l=e,headers:o=t}),p},f=[],d=(e,t)=>{if(t)throw Error("Encoding not supported");if(e instanceof Buffer)throw Error("Buffer not supported");return(u||c(l,o),i)?i.enqueue(new TextEncoder().encode(e)):f.push(new TextEncoder().encode(e)),!0},m=new eK.EventEmitter,p={writeHead:c,write:d,end:e=>{if(e&&d(e),!i)return a=!0,p;try{i.close()}catch(e){}return p},on:(e,t)=>(m.on(e,t),p),get statusCode(){return l},set statusCode(code){l=code,u&&r({statusCode:l,headers:o})}};e.addEventListener("abort",()=>{m.emit("close")}),t(p),w(this,null,function*(){let e=yield s;n(new Response(new ReadableStream({start(e){for(let t of(i=e,f))i.enqueue(t);a&&i.close()}}),{status:e.statusCode,headers:e.headers}))})})})(e.signal,t=>{r(e,t)}));e.s(["GET",()=>e$,"POST",()=>e$],47164);var eZ=e.i(47164);let eJ=new o.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/mcp/route",pathname:"/mcp",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/mcp-server/app/mcp/route.ts",nextConfigOutput:"",userland:eZ}),{workAsyncStorage:eQ,workUnitAsyncStorage:e0,serverHooks:e1}=eJ;function e4(){return(0,u.patchFetch)({workAsyncStorage:eQ,workUnitAsyncStorage:e0})}async function e8(e,t,r){eJ.isDev&&(0,l.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/mcp/route";s=s.replace(/\/index$/,"")||"/";let n=await eJ.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!n)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:i,params:o,nextConfig:u,parsedUrl:A,isDraftMode:v,prerenderManifest:T,routerServerContext:N,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,resolvedPathname:D,clientReferenceManifest:M,serverActionsManifest:L}=n,C=(0,m.normalizeAppPath)(s),Y=!!(T.dynamicRoutes[C]||T.routes[D]),w=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,A,!1):t.end("This page could not be found"),null);if(Y&&!v){let e=!!T.routes[D],t=T.dynamicRoutes[C];if(t&&!1===t.fallback&&!e){if(u.experimental.adapterPath)return await w();throw new I.NoFallbackError}}let F=null;!Y||eJ.isDev||v||(F="/index"===(F=D)?"/":F);let j=!0===eJ.isDev||!Y,X=Y&&!j;L&&M&&(0,f.setReferenceManifestsSingleton)({page:s,clientReferenceManifest:M,serverActionsManifest:L,serverModuleMap:(0,d.createServerModuleMap)({serverActionsManifest:L})});let K=e.method||"GET",x=(0,c.getTracer)(),B=x.getActiveScopeSpan(),U={params:o,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!u.experimental.authInterrupts},cacheComponents:!!u.cacheComponents,supportsDynamicResponse:j,incrementalCache:(0,l.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:u.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s)=>eJ.onRequestError(e,t,s,N)},sharedContext:{buildId:i}},k=new p.NodeNextRequest(e),G=new p.NodeNextResponse(t),H=h.NextRequestAdapter.fromNodeNextRequest(k,(0,h.signalFromNodeResponse)(t));try{let n=async e=>eJ.handle(H,U).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=x.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==_.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${K} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${K} ${s}`)}),i=!!(0,l.getRequestMeta)(e,"minimalMode"),o=async o=>{var l,c;let f=async({previousCacheEntry:a})=>{try{if(!i&&O&&P&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(o);e.fetchMetrics=U.renderOpts.fetchMetrics;let u=U.renderOpts.pendingWaitUntil;u&&r.waitUntil&&(r.waitUntil(u),u=void 0);let l=U.renderOpts.collectedTags;if(!Y)return await (0,E.sendResponse)(k,G,s,U.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,S.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[b.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=b.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,n=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=b.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await eJ.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,g.getRevalidateReason)({isStaticGeneration:X,isOnDemandRevalidate:O})},N),t}},d=await eJ.handleResponse({req:e,nextConfig:u,cacheKey:F,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,responseGenerator:f,waitUntil:r.waitUntil,isMinimalMode:i});if(!Y)return null;if((null==d||null==(l=d.value)?void 0:l.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(c=d.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),v&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,S.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&Y||m.delete(b.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,y.getCacheControlHeader)(d.cacheControl)),await (0,E.sendResponse)(k,G,new Response(d.value.body,{headers:m,status:d.value.status||200})),null};B?await o(B):await x.withPropagatedContext(e.headers,()=>x.trace(_.BaseServerSpan.handleRequest,{spanName:`${K} ${s}`,kind:c.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},o))}catch(t){if(t instanceof I.NoFallbackError||await eJ.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,g.getRevalidateReason)({isStaticGeneration:X,isOnDemandRevalidate:O})}),Y)throw t;return await (0,E.sendResponse)(k,G,new Response(null,{status:500})),null}}e.s(["handler",()=>e8,"patchFetch",()=>e4,"routeModule",()=>eJ,"serverHooks",()=>e1,"workAsyncStorage",()=>eQ,"workUnitAsyncStorage",()=>e0],23671)}];
16
16
 
17
17
  //# sourceMappingURL=%5Broot-of-the-server%5D__880af90b._.js.map