dev3000 0.0.94 → 0.0.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dev-environment.d.ts.map +1 -1
- package/dist/dev-environment.js +14 -10
- package/dist/dev-environment.js.map +1 -1
- package/mcp-server/.next/BUILD_ID +1 -1
- package/mcp-server/.next/build-manifest.json +2 -2
- package/mcp-server/.next/fallback-build-manifest.json +2 -2
- package/mcp-server/.next/next-server.js.nft.json +1 -1
- package/mcp-server/.next/prerender-manifest.json +3 -3
- package/mcp-server/.next/server/app/_global-error.html +2 -2
- package/mcp-server/.next/server/app/_global-error.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.html +1 -1
- package/mcp-server/.next/server/app/_not-found.rsc +1 -1
- package/mcp-server/.next/server/app/index.html +1 -1
- package/mcp-server/.next/server/app/index.rsc +1 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js +1 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js.map +1 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js +1 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js.map +1 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__dc0b0022._.js +1 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__dc0b0022._.js.map +1 -1
- package/mcp-server/.next/server/server-reference-manifest.js +1 -1
- package/mcp-server/.next/server/server-reference-manifest.json +1 -1
- package/mcp-server/app/mcp/client-manager.ts +4 -3
- package/mcp-server/app/mcp/route.ts +52 -14
- package/package.json +1 -1
- /package/mcp-server/.next/static/{ZeZ7S325drnA0SH-odcGY → -TtqAPrTs-tn08AeRdCVu}/_buildManifest.js +0 -0
- /package/mcp-server/.next/static/{ZeZ7S325drnA0SH-odcGY → -TtqAPrTs-tn08AeRdCVu}/_clientMiddlewareManifest.json +0 -0
- /package/mcp-server/.next/static/{ZeZ7S325drnA0SH-odcGY → -TtqAPrTs-tn08AeRdCVu}/_ssgManifest.js +0 -0
|
@@ -81,8 +81,8 @@
|
|
|
81
81
|
"dynamicRoutes": {},
|
|
82
82
|
"notFoundRoutes": [],
|
|
83
83
|
"preview": {
|
|
84
|
-
"previewModeId": "
|
|
85
|
-
"previewModeSigningKey": "
|
|
86
|
-
"previewModeEncryptionKey": "
|
|
84
|
+
"previewModeId": "6ee7f09863cc0e762616d4434f810027",
|
|
85
|
+
"previewModeSigningKey": "529228632d9ce1c6ce2e060e7d570dddfc343ed33ec077b37063440cc3568358",
|
|
86
|
+
"previewModeEncryptionKey": "a76ec823c6105c34c815ff31b0d1bd78cfb122ba1af8f7a070f007c081d56e54"
|
|
87
87
|
}
|
|
88
88
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
2
|
-
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1d2676338b51bbcf.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[64953,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n3:I[3695,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n4:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"OutletBoundary\"]\n6:I[49261,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"AsyncMetadataOutlet\"]\n8:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"ViewportBoundary\"]\na:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"MetadataBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[34938,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"
|
|
1
|
+
<!DOCTYPE html><!--_TtqAPrTs_tn08AeRdCVu--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1d2676338b51bbcf.js"/><script src="/_next/static/chunks/7abbb9a17b62c1fa.js" async=""></script><script src="/_next/static/chunks/526448e84b58822c.js" async=""></script><script src="/_next/static/chunks/8364b81221aabb64.js" async=""></script><script src="/_next/static/chunks/turbopack-22a9e2c19fd12b04.js" async=""></script><script src="/_next/static/chunks/711519b5a2e53fc8.js" async=""></script><script src="/_next/static/chunks/addab50e23821c6c.js" async=""></script><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
|
|
2
|
+
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1d2676338b51bbcf.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[64953,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n3:I[3695,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n4:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"OutletBoundary\"]\n6:I[49261,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"AsyncMetadataOutlet\"]\n8:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"ViewportBoundary\"]\na:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"MetadataBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[34938,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"-TtqAPrTs-tn08AeRdCVu\",\"c\":[\"\",\"_global-error\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"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,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@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\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/711519b5a2e53fc8.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/addab50e23821c6c.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$L5\",[\"$\",\"$L6\",null,{\"promise\":\"$@7\"}]]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],null],[\"$\",\"$La\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$b\",null,{\"fallback\":null,\"children\":\"$Lc\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n5:null\n"])</script><script>self.__next_f.push([1,"7:{\"metadata\":[],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"c:\"$7:metadata\"\n"])</script></body></html>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
a:I[17204,["/_next/static/chunks/711519b5a2e53fc8.js","/_next/static/chunks/addab50e23821c6c.js"],"MetadataBoundary"]
|
|
8
8
|
b:"$Sreact.suspense"
|
|
9
9
|
d:I[34938,["/_next/static/chunks/711519b5a2e53fc8.js","/_next/static/chunks/addab50e23821c6c.js"],"default"]
|
|
10
|
-
0:{"P":null,"b":"
|
|
10
|
+
0:{"P":null,"b":"-TtqAPrTs-tn08AeRdCVu","c":["","_global-error"],"i":false,"f":[[["",{"children":["__PAGE__",{}]}],["",["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","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,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@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","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/711519b5a2e53fc8.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/addab50e23821c6c.js","async":true,"nonce":"$undefined"}]],["$","$L4",null,{"children":["$L5",["$","$L6",null,{"promise":"$@7"}]]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,[["$","$L8",null,{"children":"$L9"}],null],["$","$La",null,{"children":["$","div",null,{"hidden":true,"children":["$","$b",null,{"fallback":null,"children":"$Lc"}]}]}]]}],false]],"m":"$undefined","G":["$d","$undefined"],"s":false,"S":true}
|
|
11
11
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
12
12
|
5:null
|
|
13
13
|
7:{"metadata":[],"error":null,"digest":"$undefined"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--_TtqAPrTs_tn08AeRdCVu--><html lang="en" class="h-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/bb2e6ac36794beea.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1d2676338b51bbcf.js"/><script src="/_next/static/chunks/7abbb9a17b62c1fa.js" async=""></script><script src="/_next/static/chunks/526448e84b58822c.js" async=""></script><script src="/_next/static/chunks/8364b81221aabb64.js" async=""></script><script src="/_next/static/chunks/turbopack-22a9e2c19fd12b04.js" async=""></script><script src="/_next/static/chunks/711519b5a2e53fc8.js" async=""></script><script src="/_next/static/chunks/addab50e23821c6c.js" async=""></script><meta name="robots" content="noindex"/><title>🎯 dev3000</title><link rel="icon" href="/favicon.ico" type="image/x-icon"/><link rel="icon" href="/favicon.svg" type="image/svg+xml" sizes="32x32"/><link rel="icon" href="/favicon-16.svg" type="image/svg+xml" sizes="16x16"/><link rel="icon" href="/favicon-64.svg" type="image/svg+xml" sizes="64x64"/><link rel="apple-touch-icon" href="/favicon-180.png"/><link rel="shortcut icon" href="/favicon.svg"/><meta name="theme-color" content="#1f2937"/><title>404: This page could not be found.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="h-full"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1d2676338b51bbcf.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[64953,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n3:I[3695,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n4:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"OutletBoundary\"]\n6:I[49261,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"AsyncMetadataOutlet\"]\n8:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"ViewportBoundary\"]\na:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"MetadataBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[34938,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n:HL[\"/_next/static/chunks/bb2e6ac36794beea.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"-TtqAPrTs-tn08AeRdCVu\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/bb2e6ac36794beea.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/711519b5a2e53fc8.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/addab50e23821c6c.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"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\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",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\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style\",\"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\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$L5\",[\"$\",\"$L6\",null,{\"promise\":\"$@7\"}]]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],null],[\"$\",\"$La\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$b\",null,{\"fallback\":null,\"children\":\"$Lc\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n5:null\n"])</script><script>self.__next_f.push([1,"7:{\"metadata\":[],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"c:\"$7:metadata\"\n"])</script></body></html>
|
|
@@ -8,7 +8,7 @@ a:I[17204,["/_next/static/chunks/711519b5a2e53fc8.js","/_next/static/chunks/adda
|
|
|
8
8
|
b:"$Sreact.suspense"
|
|
9
9
|
d:I[34938,["/_next/static/chunks/711519b5a2e53fc8.js","/_next/static/chunks/addab50e23821c6c.js"],"default"]
|
|
10
10
|
:HL["/_next/static/chunks/bb2e6ac36794beea.css","style"]
|
|
11
|
-
0:{"P":null,"b":"
|
|
11
|
+
0:{"P":null,"b":"-TtqAPrTs-tn08AeRdCVu","c":["","_not-found"],"i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/bb2e6ac36794beea.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/711519b5a2e53fc8.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/addab50e23821c6c.js","async":true,"nonce":"$undefined"}]],["$","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":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",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":["/_not-found",["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style","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":"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$L5",["$","$L6",null,{"promise":"$@7"}]]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],[["$","$L8",null,{"children":"$L9"}],null],["$","$La",null,{"children":["$","div",null,{"hidden":true,"children":["$","$b",null,{"fallback":null,"children":"$Lc"}]}]}]]}],false]],"m":"$undefined","G":["$d","$undefined"],"s":false,"S":true}
|
|
12
12
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
13
13
|
5:null
|
|
14
14
|
7:{"metadata":[],"error":null,"digest":"$undefined"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--ZeZ7S325drnA0SH_odcGY--><html lang="en" class="h-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/bb2e6ac36794beea.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1d2676338b51bbcf.js"/><script src="/_next/static/chunks/7abbb9a17b62c1fa.js" async=""></script><script src="/_next/static/chunks/526448e84b58822c.js" async=""></script><script src="/_next/static/chunks/8364b81221aabb64.js" async=""></script><script src="/_next/static/chunks/turbopack-22a9e2c19fd12b04.js" async=""></script><script src="/_next/static/chunks/711519b5a2e53fc8.js" async=""></script><script src="/_next/static/chunks/addab50e23821c6c.js" async=""></script><script src="/_next/static/chunks/312a4c1c7f6436ef.js" async=""></script><script src="/_next/static/chunks/4b6eda65c6f5aada.js" async=""></script><title>🎯 dev3000</title><link rel="icon" href="/favicon.ico" type="image/x-icon"/><link rel="icon" href="/favicon.svg" type="image/svg+xml" sizes="32x32"/><link rel="icon" href="/favicon-16.svg" type="image/svg+xml" sizes="16x16"/><link rel="icon" href="/favicon-64.svg" type="image/svg+xml" sizes="64x64"/><link rel="apple-touch-icon" href="/favicon-180.png"/><link rel="shortcut icon" href="/favicon.svg"/><meta name="theme-color" content="#1f2937"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="h-full"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen bg-background text-foreground"><header class="bg-muted/30 border-b border-border"><div class="max-w-7xl mx-auto px-6 py-8"><div class="flex items-center justify-between"><div><div class="flex items-center gap-4 mb-3"><div class="w-12 h-12 bg-foreground rounded flex items-center justify-center"><span class="text-background font-mono font-bold">d3k</span></div><div><h1 class="text-3xl font-bold">dev3000 MCP Server</h1><div class="flex items-center gap-3 mt-2"><span class="inline-flex items-center gap-2 text-sm text-green-600 font-medium"><span class="w-2 h-2 bg-green-500 rounded-full"></span>Server Running</span><span class="text-muted-foreground">•</span><span class="text-sm text-muted-foreground">Port <!-- -->3684</span></div></div></div></div><div class="flex items-center gap-4"><a href="https://github.com/vercel-labs/dev3000#setup" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 px-5 py-3 border border-border text-foreground text-sm font-medium rounded hover:bg-accent hover:text-accent-foreground transition-colors">📖 Setup Guide</a><button data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-9" aria-label="Switch to dark mode"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon h-5 w-5 transition-all" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg></button></div></div></div></header><main class="max-w-7xl mx-auto px-6 py-8"><section class="bg-accent/10 border border-accent/20 rounded p-8"><h2 class="text-xl font-semibold mb-4">🛠️ dev3000 Tools</h2><div class="text-center py-16"><div class="inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-primary"></div><p class="mt-6 text-muted-foreground">Loading tool documentation...</p></div></section><section class="mt-20 bg-gradient-to-r from-primary/10 to-secondary/10 border border-border rounded-lg p-10"><h2 class="text-2xl font-semibold mb-6 flex items-center gap-3">🪄 The Magic Workflow</h2><div class="grid md:grid-cols-3 gap-8"><div class="text-center"><div class="w-16 h-16 bg-primary/20 rounded-full flex items-center justify-center mx-auto mb-4 shadow-md"><span class="text-primary font-bold text-2xl">1</span></div><h3 class="font-semibold mb-3 text-lg">AI Finds Issues</h3><p class="text-muted-foreground leading-relaxed">fix_my_app automatically detects all types of errors and problems in your app</p></div><div class="text-center"><div class="w-16 h-16 bg-accent/20 rounded-full flex items-center justify-center mx-auto mb-4 shadow-md"><span class="text-accent-foreground font-bold text-2xl">2</span></div><h3 class="font-semibold mb-3 text-lg">AI Fixes Code</h3><p class="text-muted-foreground leading-relaxed">AI analyzes errors and edits your code files to resolve issues</p></div><div class="text-center"><div class="w-16 h-16 bg-green-500/20 rounded-full flex items-center justify-center mx-auto mb-4 shadow-md"><span class="text-green-600 dark:text-green-400 font-bold text-2xl">3</span></div><h3 class="font-semibold mb-3 text-lg">AI Verifies Fixes</h3><p class="text-muted-foreground leading-relaxed">execute_browser_action tests the fixes in real-time with screenshots</p></div></div></section></main><footer class="border-t border-border mt-20"><div class="max-w-7xl mx-auto px-6 py-8"><div class="flex items-center justify-between text-sm text-muted-foreground"><div><span class="font-semibold">dev3000 MCP Server</span> - AI-powered development monitoring</div><div class="flex items-center gap-8"><a href="https://github.com/vercel-labs/dev3000" target="_blank" rel="noopener noreferrer" class="hover:text-foreground transition-colors">GitHub</a><a href="https://dev3000.ai" target="_blank" rel="noopener noreferrer" class="hover:text-foreground transition-colors">Homepage</a></div></div></div></footer></div><!--$--><!--/$--><script src="/_next/static/chunks/1d2676338b51bbcf.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[64953,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n3:I[3695,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n4:I[1605,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"ClientPageRoot\"]\n5:I[41449,[\"/_next/static/chunks/312a4c1c7f6436ef.js\",\"/_next/static/chunks/4b6eda65c6f5aada.js\"],\"default\"]\n8:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"OutletBoundary\"]\na:I[49261,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"AsyncMetadataOutlet\"]\nc:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"ViewportBoundary\"]\ne:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"MetadataBoundary\"]\nf:\"$Sreact.suspense\"\n11:I[34938,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n:HL[\"/_next/static/chunks/bb2e6ac36794beea.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"ZeZ7S325drnA0SH-odcGY\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/bb2e6ac36794beea.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"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\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",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\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/312a4c1c7f6436ef.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/4b6eda65c6f5aada.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$L9\",[\"$\",\"$La\",null,{\"promise\":\"$@b\"}]]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],null],[\"$\",\"$Le\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$f\",null,{\"fallback\":null,\"children\":\"$L10\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n9:null\n"])</script><script>self.__next_f.push([1,"b:{\"metadata\":[],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"10:\"$b:metadata\"\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><!--_TtqAPrTs_tn08AeRdCVu--><html lang="en" class="h-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/bb2e6ac36794beea.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1d2676338b51bbcf.js"/><script src="/_next/static/chunks/7abbb9a17b62c1fa.js" async=""></script><script src="/_next/static/chunks/526448e84b58822c.js" async=""></script><script src="/_next/static/chunks/8364b81221aabb64.js" async=""></script><script src="/_next/static/chunks/turbopack-22a9e2c19fd12b04.js" async=""></script><script src="/_next/static/chunks/711519b5a2e53fc8.js" async=""></script><script src="/_next/static/chunks/addab50e23821c6c.js" async=""></script><script src="/_next/static/chunks/312a4c1c7f6436ef.js" async=""></script><script src="/_next/static/chunks/4b6eda65c6f5aada.js" async=""></script><title>🎯 dev3000</title><link rel="icon" href="/favicon.ico" type="image/x-icon"/><link rel="icon" href="/favicon.svg" type="image/svg+xml" sizes="32x32"/><link rel="icon" href="/favicon-16.svg" type="image/svg+xml" sizes="16x16"/><link rel="icon" href="/favicon-64.svg" type="image/svg+xml" sizes="64x64"/><link rel="apple-touch-icon" href="/favicon-180.png"/><link rel="shortcut icon" href="/favicon.svg"/><meta name="theme-color" content="#1f2937"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="h-full"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen bg-background text-foreground"><header class="bg-muted/30 border-b border-border"><div class="max-w-7xl mx-auto px-6 py-8"><div class="flex items-center justify-between"><div><div class="flex items-center gap-4 mb-3"><div class="w-12 h-12 bg-foreground rounded flex items-center justify-center"><span class="text-background font-mono font-bold">d3k</span></div><div><h1 class="text-3xl font-bold">dev3000 MCP Server</h1><div class="flex items-center gap-3 mt-2"><span class="inline-flex items-center gap-2 text-sm text-green-600 font-medium"><span class="w-2 h-2 bg-green-500 rounded-full"></span>Server Running</span><span class="text-muted-foreground">•</span><span class="text-sm text-muted-foreground">Port <!-- -->3684</span></div></div></div></div><div class="flex items-center gap-4"><a href="https://github.com/vercel-labs/dev3000#setup" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 px-5 py-3 border border-border text-foreground text-sm font-medium rounded hover:bg-accent hover:text-accent-foreground transition-colors">📖 Setup Guide</a><button data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-9" aria-label="Switch to dark mode"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon h-5 w-5 transition-all" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg></button></div></div></div></header><main class="max-w-7xl mx-auto px-6 py-8"><section class="bg-accent/10 border border-accent/20 rounded p-8"><h2 class="text-xl font-semibold mb-4">🛠️ dev3000 Tools</h2><div class="text-center py-16"><div class="inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-primary"></div><p class="mt-6 text-muted-foreground">Loading tool documentation...</p></div></section><section class="mt-20 bg-gradient-to-r from-primary/10 to-secondary/10 border border-border rounded-lg p-10"><h2 class="text-2xl font-semibold mb-6 flex items-center gap-3">🪄 The Magic Workflow</h2><div class="grid md:grid-cols-3 gap-8"><div class="text-center"><div class="w-16 h-16 bg-primary/20 rounded-full flex items-center justify-center mx-auto mb-4 shadow-md"><span class="text-primary font-bold text-2xl">1</span></div><h3 class="font-semibold mb-3 text-lg">AI Finds Issues</h3><p class="text-muted-foreground leading-relaxed">fix_my_app automatically detects all types of errors and problems in your app</p></div><div class="text-center"><div class="w-16 h-16 bg-accent/20 rounded-full flex items-center justify-center mx-auto mb-4 shadow-md"><span class="text-accent-foreground font-bold text-2xl">2</span></div><h3 class="font-semibold mb-3 text-lg">AI Fixes Code</h3><p class="text-muted-foreground leading-relaxed">AI analyzes errors and edits your code files to resolve issues</p></div><div class="text-center"><div class="w-16 h-16 bg-green-500/20 rounded-full flex items-center justify-center mx-auto mb-4 shadow-md"><span class="text-green-600 dark:text-green-400 font-bold text-2xl">3</span></div><h3 class="font-semibold mb-3 text-lg">AI Verifies Fixes</h3><p class="text-muted-foreground leading-relaxed">execute_browser_action tests the fixes in real-time with screenshots</p></div></div></section></main><footer class="border-t border-border mt-20"><div class="max-w-7xl mx-auto px-6 py-8"><div class="flex items-center justify-between text-sm text-muted-foreground"><div><span class="font-semibold">dev3000 MCP Server</span> - AI-powered development monitoring</div><div class="flex items-center gap-8"><a href="https://github.com/vercel-labs/dev3000" target="_blank" rel="noopener noreferrer" class="hover:text-foreground transition-colors">GitHub</a><a href="https://dev3000.ai" target="_blank" rel="noopener noreferrer" class="hover:text-foreground transition-colors">Homepage</a></div></div></div></footer></div><!--$--><!--/$--><script src="/_next/static/chunks/1d2676338b51bbcf.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[64953,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n3:I[3695,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n4:I[1605,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"ClientPageRoot\"]\n5:I[41449,[\"/_next/static/chunks/312a4c1c7f6436ef.js\",\"/_next/static/chunks/4b6eda65c6f5aada.js\"],\"default\"]\n8:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"OutletBoundary\"]\na:I[49261,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"AsyncMetadataOutlet\"]\nc:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"ViewportBoundary\"]\ne:I[17204,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"MetadataBoundary\"]\nf:\"$Sreact.suspense\"\n11:I[34938,[\"/_next/static/chunks/711519b5a2e53fc8.js\",\"/_next/static/chunks/addab50e23821c6c.js\"],\"default\"]\n:HL[\"/_next/static/chunks/bb2e6ac36794beea.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"-TtqAPrTs-tn08AeRdCVu\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/bb2e6ac36794beea.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"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\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",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\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/312a4c1c7f6436ef.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/4b6eda65c6f5aada.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$L9\",[\"$\",\"$La\",null,{\"promise\":\"$@b\"}]]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],null],[\"$\",\"$Le\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$f\",null,{\"fallback\":null,\"children\":\"$L10\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n9:null\n"])</script><script>self.__next_f.push([1,"b:{\"metadata\":[],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"10:\"$b:metadata\"\n"])</script></body></html>
|
|
@@ -10,7 +10,7 @@ e:I[17204,["/_next/static/chunks/711519b5a2e53fc8.js","/_next/static/chunks/adda
|
|
|
10
10
|
f:"$Sreact.suspense"
|
|
11
11
|
11:I[34938,["/_next/static/chunks/711519b5a2e53fc8.js","/_next/static/chunks/addab50e23821c6c.js"],"default"]
|
|
12
12
|
:HL["/_next/static/chunks/bb2e6ac36794beea.css","style"]
|
|
13
|
-
0:{"P":null,"b":"
|
|
13
|
+
0:{"P":null,"b":"-TtqAPrTs-tn08AeRdCVu","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/bb2e6ac36794beea.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","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":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",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":["__PAGE__",["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","searchParams":{},"params":{},"promises":["$@6","$@7"]}],[["$","script","script-0",{"src":"/_next/static/chunks/312a4c1c7f6436ef.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/4b6eda65c6f5aada.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],null],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
|
|
14
14
|
6:{}
|
|
15
15
|
7:"$0:f:0:1:2:children:1:props:children:0:props:params"
|
|
16
16
|
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
@@ -2,6 +2,6 @@ module.exports=[76487,91478,469,97803,e=>{"use strict";let t;e.s([],72340),e.i(7
|
|
|
2
2
|
`)?l.slice(0,-1):l}),n=void 0,l="",c="");if(e.startsWith(":")){s&&s(e.slice(e.startsWith(": ")?2:1));return}let r=e.indexOf(":");if(-1!==r){let t=e.slice(0,r),a=" "===e[r+1]?2:1;d(t,e.slice(r+a),e);return}d(e,"",e)}function d(e,t,s){switch(e){case"event":c=t;break;case"data":l=`${l}${t}
|
|
3
3
|
`;break;case"id":n=t.includes("\0")?void 0:t;break;case"retry":/^\d+$/.test(t)?a(parseInt(t,10)):r(new x(`Invalid \`retry\` value: "${t}"`,{type:"invalid-retry",value:t,line:s}));break;default:r(new x(`Unknown field "${e.length>20?`${e.slice(0,20)}\u2026`:e}"`,{type:"unknown-field",field:e,value:t,line:s}))}}return{feed:function(e){let t=o?e.replace(/^\xEF\xBB\xBF/,""):e,[r,a]=function(e){let t=[],r="",a=0;for(;a<e.length;){let s=e.indexOf("\r",a),i=e.indexOf(`
|
|
4
4
|
`,a),o=-1;if(-1!==s&&-1!==i?o=Math.min(s,i):-1!==s?o=s===e.length-1?-1:s:-1!==i&&(o=i),-1===o){r=e.slice(a);break}{let r=e.slice(a,o);t.push(r),"\r"===e[(a=o+1)-1]&&e[a]===`
|
|
5
|
-
`&&a++}}return[t,r]}(`${i}${t}`);for(let e of r)u(e);i=a,o=!1},reset:function(e={}){i&&e.consume&&u(i),o=!0,n=void 0,l="",c="",i=""}}}({onEvent:e=>{s.enqueue(e)},onError(t){"terminate"===e?s.error(t):"function"==typeof e&&e(t)},onRetry:t,onComment:r})},transform(e){a.feed(e)}})}}let R={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2};class O extends Error{constructor(e,t){super(`Streamable HTTP error: ${t}`),this.code=e}}class C{constructor(e,t){var r;this._url=e,this._resourceMetadataUrl=void 0,this._requestInit=null==t?void 0:t.requestInit,this._authProvider=null==t?void 0:t.authProvider,this._fetch=null==t?void 0:t.fetch,this._sessionId=null==t?void 0:t.sessionId,this._reconnectionOptions=null!=(r=null==t?void 0:t.reconnectionOptions)?r:R}async _authThenStart(){var e;let t;if(!this._authProvider)throw new l("No auth provider");try{t=await h(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,fetchFn:this._fetch})}catch(t){throw null==(e=this.onerror)||e.call(this,t),t}if("AUTHORIZED"!==t)throw new l;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){var e;let t={};if(this._authProvider){let e=await this._authProvider.tokens();e&&(t.Authorization=`Bearer ${e.access_token}`)}this._sessionId&&(t["mcp-session-id"]=this._sessionId),this._protocolVersion&&(t["mcp-protocol-version"]=this._protocolVersion);let r=this._normalizeHeaders(null==(e=this._requestInit)?void 0:e.headers);return new Headers({...t,...r})}async _startOrAuthSse(e){var t,r,a;let{resumptionToken:s}=e;try{let a=await this._commonHeaders();a.set("Accept","text/event-stream"),s&&a.set("last-event-id",s);let i=await (null!=(t=this._fetch)?t:fetch)(this._url,{method:"GET",headers:a,signal:null==(r=this._abortController)?void 0:r.signal});if(!i.ok){if(401===i.status&&this._authProvider)return await this._authThenStart();if(405===i.status)return;throw new O(i.status,`Failed to open SSE stream: ${i.statusText}`)}this._handleSseStream(i.body,e,!0)}catch(e){throw null==(a=this.onerror)||a.call(this,e),e}}_getNextReconnectionDelay(e){let t=this._reconnectionOptions.initialReconnectionDelay;return Math.min(t*Math.pow(this._reconnectionOptions.reconnectionDelayGrowFactor,e),this._reconnectionOptions.maxReconnectionDelay)}_normalizeHeaders(e){return e?e instanceof Headers?Object.fromEntries(e.entries()):Array.isArray(e)?Object.fromEntries(e):{...e}:{}}_scheduleReconnection(e,t=0){var r;let a=this._reconnectionOptions.maxRetries;if(a>0&&t>=a){null==(r=this.onerror)||r.call(this,Error(`Maximum reconnection attempts (${a}) exceeded.`));return}setTimeout(()=>{this._startOrAuthSse(e).catch(r=>{var a;null==(a=this.onerror)||a.call(this,Error(`Failed to reconnect SSE stream: ${r instanceof Error?r.message:String(r)}`)),this._scheduleReconnection(e,t+1)})},this._getNextReconnectionDelay(t))}_handleSseStream(e,t,r){let s;if(!e)return;let{onresumptiontoken:i,replayMessageId:o}=t;(async()=>{var t,n,l,c;try{let r=e.pipeThrough(new TextDecoderStream).pipeThrough(new k).getReader();for(;;){let{value:e,done:l}=await r.read();if(l)break;if(e.id&&(s=e.id,null==i||i(e.id)),!e.event||"message"===e.event)try{let r=a.JSONRPCMessageSchema.parse(JSON.parse(e.data));void 0!==o&&(0,a.isJSONRPCResponse)(r)&&(r.id=o),null==(t=this.onmessage)||t.call(this,r)}catch(e){null==(n=this.onerror)||n.call(this,e)}}}catch(e){if(null==(l=this.onerror)||l.call(this,Error(`SSE stream disconnected: ${e}`)),r&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:s,onresumptiontoken:i,replayMessageId:o},0)}catch(e){null==(c=this.onerror)||c.call(this,Error(`Failed to reconnect: ${e instanceof Error?e.message:String(e)}`))}}})()}async start(){if(this._abortController)throw Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(e){if(!this._authProvider)throw new l("No auth provider");if("AUTHORIZED"!==await h(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,fetchFn:this._fetch}))throw new l("Failed to authorize")}async close(){var e,t;null==(e=this._abortController)||e.abort(),null==(t=this.onclose)||t.call(this)}async send(e,t){var r,s,i,o;try{let{resumptionToken:o,onresumptiontoken:n}=t||{};if(o)return void this._startOrAuthSse({resumptionToken:o,replayMessageId:(0,a.isJSONRPCRequest)(e)?e.id:void 0}).catch(e=>{var t;return null==(t=this.onerror)?void 0:t.call(this,e)});let c=await this._commonHeaders();c.set("content-type","application/json"),c.set("accept","application/json, text/event-stream");let u={...this._requestInit,method:"POST",headers:c,body:JSON.stringify(e),signal:null==(r=this._abortController)?void 0:r.signal},d=await (null!=(s=this._fetch)?s:fetch)(this._url,u),p=d.headers.get("mcp-session-id");if(p&&(this._sessionId=p),!d.ok){if(401===d.status&&this._authProvider){this._resourceMetadataUrl=function(e){let t=e.headers.get("WWW-Authenticate");if(!t)return;let[r,a]=t.split(" ");if("bearer"!==r.toLowerCase()||!a)return;let s=/resource_metadata="([^"]*)"/.exec(t);if(s)try{return new URL(s[1])}catch(e){return}}(d);let t=await h(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,fetchFn:this._fetch});if("AUTHORIZED"!==t)throw new l;return this.send(e)}let t=await d.text().catch(()=>null);throw Error(`Error POSTing to endpoint (HTTP ${d.status}): ${t}`)}if(202===d.status){(0,a.isInitializedNotification)(e)&&this._startOrAuthSse({resumptionToken:void 0}).catch(e=>{var t;return null==(t=this.onerror)?void 0:t.call(this,e)});return}let m=(Array.isArray(e)?e:[e]).filter(e=>"method"in e&&"id"in e&&void 0!==e.id).length>0,f=d.headers.get("content-type");if(m)if(null==f?void 0:f.includes("text/event-stream"))this._handleSseStream(d.body,{onresumptiontoken:n},!1);else if(null==f?void 0:f.includes("application/json")){let e=await d.json();for(let t of Array.isArray(e)?e.map(e=>a.JSONRPCMessageSchema.parse(e)):[a.JSONRPCMessageSchema.parse(e)])null==(i=this.onmessage)||i.call(this,t)}else throw new O(-1,`Unexpected content type: ${f}`)}catch(e){throw null==(o=this.onerror)||o.call(this,e),e}}get sessionId(){return this._sessionId}async terminateSession(){var e,t,r;if(this._sessionId)try{let r=await this._commonHeaders(),a={...this._requestInit,method:"DELETE",headers:r,signal:null==(e=this._abortController)?void 0:e.signal},s=await (null!=(t=this._fetch)?t:fetch)(this._url,a);if(!s.ok&&405!==s.status)throw new O(s.status,`Failed to terminate session: ${s.statusText}`);this._sessionId=void 0}catch(e){throw null==(r=this.onerror)||r.call(this,e),e}}setProtocolVersion(e){this._protocolVersion=e}get protocolVersion(){return this._protocolVersion}}class T{clients=new Map;transports=new Map;tools=new Map;reconnectTimers=new Map;lastConfigs=new Map;toolDiscoveryListeners=[];toolUpdateSubscribers=[];async initialize(e){let t=[];for(let r of(e.chromeDevtools?.enabled&&t.push({name:"chrome-devtools",type:"stdio",command:e.chromeDevtools.command,args:e.chromeDevtools.args,enabled:!0}),e.nextjsDev?.enabled&&t.push({name:"nextjs-dev",type:"http",url:e.nextjsDev.url,enabled:!0}),t))try{await this.connectToMCP(r);let e="http"===r.type?r.url:`${r.command} ${r.args?.join(" ")}`;console.log(`[MCP Orchestrator] Connected to ${r.name} (${r.type}) at ${e}`)}catch(e){console.warn(`[MCP Orchestrator] Failed to connect to ${r.name}:`,e)}}async connectToMCP(e){let a;this.lastConfigs.set(e.name,e);let s=new t.Client({name:"dev3000-orchestrator",version:"1.0.0"},{capabilities:{}});if(s.onerror=t=>{console.error(`[MCP Orchestrator] ${e.name} error:`,t),"http"===e.type&&this.scheduleReconnect(e.name)},"http"===e.type&&e.url)a=new C(new URL(e.url));else if("stdio"===e.type&&e.command)a=new r.StdioClientTransport({command:e.command,args:e.args||[]});else throw Error(`Invalid MCP config for ${e.name}`);await s.connect(a),this.clients.set(e.name,s),this.transports.set(e.name,a);try{let t=await s.listTools(),r=Array.isArray(t?.tools)?t.tools:[];this.tools.set(e.name,r),r.length>0?(console.log(`[MCP Orchestrator] Discovered ${r.length} tools from ${e.name}`),this.notifyToolDiscovery()):console.log(`[MCP Orchestrator] No tools discovered from ${e.name} (will retry on first use)`),this.notifyToolsUpdated(e.name)}catch(t){this.tools.set(e.name,[]),console.log(`[MCP Orchestrator] Tool discovery deferred for ${e.name} (will discover on first tool call)`),this.notifyToolsUpdated(e.name)}}getAllTools(){let e=[];for(let[t,r]of this.tools.entries())for(let a of r)e.push({mcpName:t,tool:a});return e}async callTool(e,t,r){let a=this.clients.get(e);if(!a)throw Error(`MCP client '${e}' not connected`);try{return await a.callTool({name:t,arguments:r})}catch(r){throw console.error(`[MCP Orchestrator] Error calling ${e}.${t}:`,r),r}}isConnected(e){return this.clients.has(e)}getConnectedMCPs(){return Array.from(this.clients.keys())}onToolsUpdated(e){return this.toolUpdateSubscribers.push(e),()=>{this.toolUpdateSubscribers=this.toolUpdateSubscribers.filter(t=>t!==e)}}async waitForInitialTools(e=8e3){this.getAllTools().length>0||await new Promise(t=>{let r,a=()=>{clearTimeout(r),this.toolDiscoveryListeners=this.toolDiscoveryListeners.filter(e=>e!==a),t()};r=setTimeout(()=>{this.toolDiscoveryListeners=this.toolDiscoveryListeners.filter(e=>e!==a),t()},e),this.toolDiscoveryListeners.push(a)})}notifyToolDiscovery(){if(0===this.toolDiscoveryListeners.length||0===this.getAllTools().length)return;let e=[...this.toolDiscoveryListeners];for(let t of(this.toolDiscoveryListeners=[],e))t()}notifyToolsUpdated(e){let t=this.tools.get(e)??[];for(let r of this.toolUpdateSubscribers)try{r({mcpName:e,tools:t})}catch(t){console.warn(`[MCP Orchestrator] Tool update subscriber error for ${e}:`,t)}}scheduleReconnect(e){let t=this.reconnectTimers.get(e);t&&clearTimeout(t);let r=setTimeout(async()=>{let t=this.lastConfigs.get(e);if(!t)return void console.warn(`[MCP Orchestrator] No config found for reconnection: ${e}`);console.log(`[MCP Orchestrator] Attempting to reconnect to ${e}...`);try{let r=this.transports.get(e);if(r)try{await r.close()}catch{}this.clients.delete(e),this.transports.delete(e),await this.connectToMCP(t),console.log(`[MCP Orchestrator] Successfully reconnected to ${e}`)}catch(t){console.warn(`[MCP Orchestrator] Reconnection to ${e} failed:`,t),this.scheduleReconnect(e)}},3e3);this.reconnectTimers.set(e,r)}async disconnect(){for(let e of this.reconnectTimers.values())clearTimeout(e);for(let[e,t]of(this.reconnectTimers.clear(),this.transports.entries()))try{await t.close(),console.log(`[MCP Orchestrator] Disconnected from ${e}`)}catch(t){console.error(`[MCP Orchestrator] Error disconnecting from ${e}:`,t)}this.clients.clear(),this.transports.clear(),this.tools.clear(),this.lastConfigs.clear()}}let j=null;function $(){return j||(j=new T),j}e.s(["MCPClientManager",()=>T,"getMCPClientManager",()=>$],20539)}];
|
|
5
|
+
`&&a++}}return[t,r]}(`${i}${t}`);for(let e of r)u(e);i=a,o=!1},reset:function(e={}){i&&e.consume&&u(i),o=!0,n=void 0,l="",c="",i=""}}}({onEvent:e=>{s.enqueue(e)},onError(t){"terminate"===e?s.error(t):"function"==typeof e&&e(t)},onRetry:t,onComment:r})},transform(e){a.feed(e)}})}}let R={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2};class O extends Error{constructor(e,t){super(`Streamable HTTP error: ${t}`),this.code=e}}class C{constructor(e,t){var r;this._url=e,this._resourceMetadataUrl=void 0,this._requestInit=null==t?void 0:t.requestInit,this._authProvider=null==t?void 0:t.authProvider,this._fetch=null==t?void 0:t.fetch,this._sessionId=null==t?void 0:t.sessionId,this._reconnectionOptions=null!=(r=null==t?void 0:t.reconnectionOptions)?r:R}async _authThenStart(){var e;let t;if(!this._authProvider)throw new l("No auth provider");try{t=await h(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,fetchFn:this._fetch})}catch(t){throw null==(e=this.onerror)||e.call(this,t),t}if("AUTHORIZED"!==t)throw new l;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){var e;let t={};if(this._authProvider){let e=await this._authProvider.tokens();e&&(t.Authorization=`Bearer ${e.access_token}`)}this._sessionId&&(t["mcp-session-id"]=this._sessionId),this._protocolVersion&&(t["mcp-protocol-version"]=this._protocolVersion);let r=this._normalizeHeaders(null==(e=this._requestInit)?void 0:e.headers);return new Headers({...t,...r})}async _startOrAuthSse(e){var t,r,a;let{resumptionToken:s}=e;try{let a=await this._commonHeaders();a.set("Accept","text/event-stream"),s&&a.set("last-event-id",s);let i=await (null!=(t=this._fetch)?t:fetch)(this._url,{method:"GET",headers:a,signal:null==(r=this._abortController)?void 0:r.signal});if(!i.ok){if(401===i.status&&this._authProvider)return await this._authThenStart();if(405===i.status)return;throw new O(i.status,`Failed to open SSE stream: ${i.statusText}`)}this._handleSseStream(i.body,e,!0)}catch(e){throw null==(a=this.onerror)||a.call(this,e),e}}_getNextReconnectionDelay(e){let t=this._reconnectionOptions.initialReconnectionDelay;return Math.min(t*Math.pow(this._reconnectionOptions.reconnectionDelayGrowFactor,e),this._reconnectionOptions.maxReconnectionDelay)}_normalizeHeaders(e){return e?e instanceof Headers?Object.fromEntries(e.entries()):Array.isArray(e)?Object.fromEntries(e):{...e}:{}}_scheduleReconnection(e,t=0){var r;let a=this._reconnectionOptions.maxRetries;if(a>0&&t>=a){null==(r=this.onerror)||r.call(this,Error(`Maximum reconnection attempts (${a}) exceeded.`));return}setTimeout(()=>{this._startOrAuthSse(e).catch(r=>{var a;null==(a=this.onerror)||a.call(this,Error(`Failed to reconnect SSE stream: ${r instanceof Error?r.message:String(r)}`)),this._scheduleReconnection(e,t+1)})},this._getNextReconnectionDelay(t))}_handleSseStream(e,t,r){let s;if(!e)return;let{onresumptiontoken:i,replayMessageId:o}=t;(async()=>{var t,n,l,c;try{let r=e.pipeThrough(new TextDecoderStream).pipeThrough(new k).getReader();for(;;){let{value:e,done:l}=await r.read();if(l)break;if(e.id&&(s=e.id,null==i||i(e.id)),!e.event||"message"===e.event)try{let r=a.JSONRPCMessageSchema.parse(JSON.parse(e.data));void 0!==o&&(0,a.isJSONRPCResponse)(r)&&(r.id=o),null==(t=this.onmessage)||t.call(this,r)}catch(e){null==(n=this.onerror)||n.call(this,e)}}}catch(e){if(null==(l=this.onerror)||l.call(this,Error(`SSE stream disconnected: ${e}`)),r&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:s,onresumptiontoken:i,replayMessageId:o},0)}catch(e){null==(c=this.onerror)||c.call(this,Error(`Failed to reconnect: ${e instanceof Error?e.message:String(e)}`))}}})()}async start(){if(this._abortController)throw Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(e){if(!this._authProvider)throw new l("No auth provider");if("AUTHORIZED"!==await h(this._authProvider,{serverUrl:this._url,authorizationCode:e,resourceMetadataUrl:this._resourceMetadataUrl,fetchFn:this._fetch}))throw new l("Failed to authorize")}async close(){var e,t;null==(e=this._abortController)||e.abort(),null==(t=this.onclose)||t.call(this)}async send(e,t){var r,s,i,o;try{let{resumptionToken:o,onresumptiontoken:n}=t||{};if(o)return void this._startOrAuthSse({resumptionToken:o,replayMessageId:(0,a.isJSONRPCRequest)(e)?e.id:void 0}).catch(e=>{var t;return null==(t=this.onerror)?void 0:t.call(this,e)});let c=await this._commonHeaders();c.set("content-type","application/json"),c.set("accept","application/json, text/event-stream");let u={...this._requestInit,method:"POST",headers:c,body:JSON.stringify(e),signal:null==(r=this._abortController)?void 0:r.signal},d=await (null!=(s=this._fetch)?s:fetch)(this._url,u),p=d.headers.get("mcp-session-id");if(p&&(this._sessionId=p),!d.ok){if(401===d.status&&this._authProvider){this._resourceMetadataUrl=function(e){let t=e.headers.get("WWW-Authenticate");if(!t)return;let[r,a]=t.split(" ");if("bearer"!==r.toLowerCase()||!a)return;let s=/resource_metadata="([^"]*)"/.exec(t);if(s)try{return new URL(s[1])}catch(e){return}}(d);let t=await h(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,fetchFn:this._fetch});if("AUTHORIZED"!==t)throw new l;return this.send(e)}let t=await d.text().catch(()=>null);throw Error(`Error POSTing to endpoint (HTTP ${d.status}): ${t}`)}if(202===d.status){(0,a.isInitializedNotification)(e)&&this._startOrAuthSse({resumptionToken:void 0}).catch(e=>{var t;return null==(t=this.onerror)?void 0:t.call(this,e)});return}let m=(Array.isArray(e)?e:[e]).filter(e=>"method"in e&&"id"in e&&void 0!==e.id).length>0,f=d.headers.get("content-type");if(m)if(null==f?void 0:f.includes("text/event-stream"))this._handleSseStream(d.body,{onresumptiontoken:n},!1);else if(null==f?void 0:f.includes("application/json")){let e=await d.json();for(let t of Array.isArray(e)?e.map(e=>a.JSONRPCMessageSchema.parse(e)):[a.JSONRPCMessageSchema.parse(e)])null==(i=this.onmessage)||i.call(this,t)}else throw new O(-1,`Unexpected content type: ${f}`)}catch(e){throw null==(o=this.onerror)||o.call(this,e),e}}get sessionId(){return this._sessionId}async terminateSession(){var e,t,r;if(this._sessionId)try{let r=await this._commonHeaders(),a={...this._requestInit,method:"DELETE",headers:r,signal:null==(e=this._abortController)?void 0:e.signal},s=await (null!=(t=this._fetch)?t:fetch)(this._url,a);if(!s.ok&&405!==s.status)throw new O(s.status,`Failed to terminate session: ${s.statusText}`);this._sessionId=void 0}catch(e){throw null==(r=this.onerror)||r.call(this,e),e}}setProtocolVersion(e){this._protocolVersion=e}get protocolVersion(){return this._protocolVersion}}class T{clients=new Map;transports=new Map;tools=new Map;reconnectTimers=new Map;lastConfigs=new Map;toolDiscoveryListeners=[];toolUpdateSubscribers=[];async initialize(e){let t=[];for(let r of(e.chromeDevtools?.enabled&&t.push({name:"chrome-devtools",type:"stdio",command:e.chromeDevtools.command,args:e.chromeDevtools.args,enabled:!0}),e.nextjsDev?.enabled&&t.push({name:"nextjs-dev",type:"stdio",command:e.nextjsDev.command,args:e.nextjsDev.args,enabled:!0}),t))try{await this.connectToMCP(r);let e="http"===r.type?r.url:`${r.command} ${r.args?.join(" ")}`;console.log(`[MCP Orchestrator] Connected to ${r.name} (${r.type}) at ${e}`)}catch(e){console.warn(`[MCP Orchestrator] Failed to connect to ${r.name}:`,e)}}async connectToMCP(e){let a;this.lastConfigs.set(e.name,e);let s=new t.Client({name:"dev3000-orchestrator",version:"1.0.0"},{capabilities:{}});if(s.onerror=t=>{console.error(`[MCP Orchestrator] ${e.name} error:`,t),"http"===e.type&&this.scheduleReconnect(e.name)},"http"===e.type&&e.url)a=new C(new URL(e.url));else if("stdio"===e.type&&e.command)a=new r.StdioClientTransport({command:e.command,args:e.args||[]});else throw Error(`Invalid MCP config for ${e.name}`);await s.connect(a),this.clients.set(e.name,s),this.transports.set(e.name,a);try{let t=await s.listTools(),r=Array.isArray(t?.tools)?t.tools:[];this.tools.set(e.name,r),r.length>0?(console.log(`[MCP Orchestrator] Discovered ${r.length} tools from ${e.name}`),this.notifyToolDiscovery()):console.log(`[MCP Orchestrator] No tools discovered from ${e.name} (will retry on first use)`),this.notifyToolsUpdated(e.name)}catch(t){this.tools.set(e.name,[]),console.log(`[MCP Orchestrator] Tool discovery deferred for ${e.name} (will discover on first tool call)`),this.notifyToolsUpdated(e.name)}}getAllTools(){let e=[];for(let[t,r]of this.tools.entries())for(let a of r)e.push({mcpName:t,tool:a});return e}async callTool(e,t,r){let a=this.clients.get(e);if(!a)throw Error(`MCP client '${e}' not connected`);try{return await a.callTool({name:t,arguments:r})}catch(r){throw console.error(`[MCP Orchestrator] Error calling ${e}.${t}:`,r),r}}isConnected(e){return this.clients.has(e)}getConnectedMCPs(){return Array.from(this.clients.keys())}onToolsUpdated(e){return this.toolUpdateSubscribers.push(e),()=>{this.toolUpdateSubscribers=this.toolUpdateSubscribers.filter(t=>t!==e)}}async waitForInitialTools(e=8e3){this.getAllTools().length>0||await new Promise(t=>{let r,a=()=>{clearTimeout(r),this.toolDiscoveryListeners=this.toolDiscoveryListeners.filter(e=>e!==a),t()};r=setTimeout(()=>{this.toolDiscoveryListeners=this.toolDiscoveryListeners.filter(e=>e!==a),t()},e),this.toolDiscoveryListeners.push(a)})}notifyToolDiscovery(){if(0===this.toolDiscoveryListeners.length||0===this.getAllTools().length)return;let e=[...this.toolDiscoveryListeners];for(let t of(this.toolDiscoveryListeners=[],e))t()}notifyToolsUpdated(e){let t=this.tools.get(e)??[];for(let r of this.toolUpdateSubscribers)try{r({mcpName:e,tools:t})}catch(t){console.warn(`[MCP Orchestrator] Tool update subscriber error for ${e}:`,t)}}scheduleReconnect(e){let t=this.reconnectTimers.get(e);t&&clearTimeout(t);let r=setTimeout(async()=>{let t=this.lastConfigs.get(e);if(!t)return void console.warn(`[MCP Orchestrator] No config found for reconnection: ${e}`);console.log(`[MCP Orchestrator] Attempting to reconnect to ${e}...`);try{let r=this.transports.get(e);if(r)try{await r.close()}catch{}this.clients.delete(e),this.transports.delete(e),await this.connectToMCP(t),console.log(`[MCP Orchestrator] Successfully reconnected to ${e}`)}catch(t){console.warn(`[MCP Orchestrator] Reconnection to ${e} failed:`,t),this.scheduleReconnect(e)}},3e3);this.reconnectTimers.set(e,r)}async disconnect(){for(let e of this.reconnectTimers.values())clearTimeout(e);for(let[e,t]of(this.reconnectTimers.clear(),this.transports.entries()))try{await t.close(),console.log(`[MCP Orchestrator] Disconnected from ${e}`)}catch(t){console.error(`[MCP Orchestrator] Error disconnecting from ${e}:`,t)}this.clients.clear(),this.transports.clear(),this.tools.clear(),this.lastConfigs.clear()}}let j=null;function $(){return j||(j=new T),j}e.s(["MCPClientManager",()=>T,"getMCPClientManager",()=>$],20539)}];
|
|
6
6
|
|
|
7
7
|
//# sourceMappingURL=%5Broot-of-the-server%5D__94037b23._.js.map
|