dev3000 0.0.59 → 0.0.62

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 (292) hide show
  1. package/README.md +4 -0
  2. package/dist/cdp-monitor.d.ts +2 -1
  3. package/dist/cdp-monitor.d.ts.map +1 -1
  4. package/dist/cdp-monitor.js +34 -17
  5. package/dist/cdp-monitor.js.map +1 -1
  6. package/dist/cli.js +105 -13
  7. package/dist/cli.js.map +1 -1
  8. package/dist/dev-environment.d.ts +8 -0
  9. package/dist/dev-environment.d.ts.map +1 -1
  10. package/dist/dev-environment.js +183 -42
  11. package/dist/dev-environment.js.map +1 -1
  12. package/dist/services/parsers/error-detectors/base.d.ts +24 -0
  13. package/dist/services/parsers/error-detectors/base.d.ts.map +1 -0
  14. package/dist/services/parsers/error-detectors/base.js +44 -0
  15. package/dist/services/parsers/error-detectors/base.js.map +1 -0
  16. package/dist/services/parsers/error-detectors/index.d.ts +6 -0
  17. package/dist/services/parsers/error-detectors/index.d.ts.map +1 -0
  18. package/dist/services/parsers/error-detectors/index.js +6 -0
  19. package/dist/services/parsers/error-detectors/index.js.map +1 -0
  20. package/dist/services/parsers/error-detectors/nextjs.d.ts +9 -0
  21. package/dist/services/parsers/error-detectors/nextjs.d.ts.map +1 -0
  22. package/dist/services/parsers/error-detectors/nextjs.js +52 -0
  23. package/dist/services/parsers/error-detectors/nextjs.js.map +1 -0
  24. package/dist/services/parsers/index.d.ts +8 -0
  25. package/dist/services/parsers/index.d.ts.map +1 -0
  26. package/dist/services/parsers/index.js +10 -0
  27. package/dist/services/parsers/index.js.map +1 -0
  28. package/dist/services/parsers/log-parsers/base.d.ts +26 -0
  29. package/dist/services/parsers/log-parsers/base.d.ts.map +1 -0
  30. package/dist/services/parsers/log-parsers/base.js +6 -0
  31. package/dist/services/parsers/log-parsers/base.js.map +1 -0
  32. package/dist/services/parsers/log-parsers/index.d.ts +6 -0
  33. package/dist/services/parsers/log-parsers/index.d.ts.map +1 -0
  34. package/dist/services/parsers/log-parsers/index.js +5 -0
  35. package/dist/services/parsers/log-parsers/index.js.map +1 -0
  36. package/dist/services/parsers/log-parsers/standard.d.ts +9 -0
  37. package/dist/services/parsers/log-parsers/standard.d.ts.map +1 -0
  38. package/dist/services/parsers/log-parsers/standard.js +17 -0
  39. package/dist/services/parsers/log-parsers/standard.js.map +1 -0
  40. package/dist/services/parsers/output-processor.d.ts +39 -0
  41. package/dist/services/parsers/output-processor.d.ts.map +1 -0
  42. package/dist/services/parsers/output-processor.js +54 -0
  43. package/dist/services/parsers/output-processor.js.map +1 -0
  44. package/mcp-server/.next/BUILD_ID +1 -1
  45. package/mcp-server/.next/app-build-manifest.json +27 -22
  46. package/mcp-server/.next/app-path-routes-manifest.json +1 -0
  47. package/mcp-server/.next/build-manifest.json +6 -5
  48. package/mcp-server/.next/cache/.previewinfo +1 -1
  49. package/mcp-server/.next/cache/.rscinfo +1 -1
  50. package/mcp-server/.next/cache/.tsbuildinfo +1 -1
  51. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  52. package/mcp-server/.next/prerender-manifest.json +10 -10
  53. package/mcp-server/.next/server/app/_global-error/page/app-build-manifest.json +4 -3
  54. package/mcp-server/.next/server/app/_global-error/page/build-manifest.json +4 -3
  55. package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
  56. package/mcp-server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  57. package/mcp-server/.next/server/app/_global-error.html +2 -2
  58. package/mcp-server/.next/server/app/_global-error.rsc +1 -1
  59. package/mcp-server/.next/server/app/_not-found/page/app-build-manifest.json +5 -4
  60. package/mcp-server/.next/server/app/_not-found/page/build-manifest.json +4 -3
  61. package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
  62. package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  63. package/mcp-server/.next/server/app/_not-found.html +1 -1
  64. package/mcp-server/.next/server/app/_not-found.rsc +2 -2
  65. package/mcp-server/.next/server/app/api/config/route/app-build-manifest.json +4 -3
  66. package/mcp-server/.next/server/app/api/config/route/build-manifest.json +4 -3
  67. package/mcp-server/.next/server/app/api/health/route/app-build-manifest.json +4 -3
  68. package/mcp-server/.next/server/app/api/health/route/build-manifest.json +4 -3
  69. package/mcp-server/.next/server/app/api/logs/append/route/app-build-manifest.json +4 -3
  70. package/mcp-server/.next/server/app/api/logs/append/route/build-manifest.json +4 -3
  71. package/mcp-server/.next/server/app/api/logs/append/route.js +1 -1
  72. package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
  73. package/mcp-server/.next/server/app/api/logs/head/route/app-build-manifest.json +4 -3
  74. package/mcp-server/.next/server/app/api/logs/head/route/build-manifest.json +4 -3
  75. package/mcp-server/.next/server/app/api/logs/list/route/app-build-manifest.json +4 -3
  76. package/mcp-server/.next/server/app/api/logs/list/route/build-manifest.json +4 -3
  77. package/mcp-server/.next/server/app/api/logs/list/route.js +1 -1
  78. package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  79. package/mcp-server/.next/server/app/api/logs/rotate/route/app-build-manifest.json +4 -3
  80. package/mcp-server/.next/server/app/api/logs/rotate/route/build-manifest.json +4 -3
  81. package/mcp-server/.next/server/app/api/logs/stream/route/app-build-manifest.json +4 -3
  82. package/mcp-server/.next/server/app/api/logs/stream/route/build-manifest.json +4 -3
  83. package/mcp-server/.next/server/app/api/logs/tail/route/app-build-manifest.json +4 -3
  84. package/mcp-server/.next/server/app/api/logs/tail/route/build-manifest.json +4 -3
  85. package/mcp-server/.next/server/app/api/mcp/[transport]/route/app-build-manifest.json +4 -3
  86. package/mcp-server/.next/server/app/api/mcp/[transport]/route/build-manifest.json +4 -3
  87. package/mcp-server/.next/server/app/api/mcp/[transport]/route.js +1 -1
  88. package/mcp-server/.next/server/app/api/mcp/[transport]/route.js.nft.json +1 -1
  89. package/mcp-server/.next/server/app/api/replay/route/app-build-manifest.json +4 -3
  90. package/mcp-server/.next/server/app/api/replay/route/build-manifest.json +4 -3
  91. package/mcp-server/.next/server/app/api/tools/route/app-build-manifest.json +12 -0
  92. package/mcp-server/.next/server/app/api/tools/route/app-paths-manifest.json +3 -0
  93. package/mcp-server/.next/server/app/api/tools/route/build-manifest.json +18 -0
  94. package/mcp-server/.next/server/app/api/tools/route/server-reference-manifest.json +4 -0
  95. package/mcp-server/.next/server/app/api/tools/route.js +7 -0
  96. package/mcp-server/.next/server/app/api/tools/route.js.map +5 -0
  97. package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -0
  98. package/mcp-server/.next/server/app/api/tools/route_client-reference-manifest.js +2 -0
  99. package/mcp-server/.next/server/app/index.html +1 -1
  100. package/mcp-server/.next/server/app/index.rsc +3 -3
  101. package/mcp-server/.next/server/app/logs/page/app-build-manifest.json +6 -5
  102. package/mcp-server/.next/server/app/logs/page/build-manifest.json +4 -3
  103. package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
  104. package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  105. package/mcp-server/.next/server/app/page/app-build-manifest.json +6 -5
  106. package/mcp-server/.next/server/app/page/build-manifest.json +4 -3
  107. package/mcp-server/.next/server/app/page.js.nft.json +1 -1
  108. package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
  109. package/mcp-server/.next/server/app/replay/page/app-build-manifest.json +6 -5
  110. package/mcp-server/.next/server/app/replay/page/build-manifest.json +4 -3
  111. package/mcp-server/.next/server/app/replay/page.js.nft.json +1 -1
  112. package/mcp-server/.next/server/app/replay/page_client-reference-manifest.js +1 -1
  113. package/mcp-server/.next/server/app/replay.html +1 -1
  114. package/mcp-server/.next/server/app/replay.rsc +3 -3
  115. package/mcp-server/.next/server/app-paths-manifest.json +1 -0
  116. package/mcp-server/.next/server/chunks/{[root-of-the-server]__1d2effbb._.js → [root-of-the-server]__25014d3e._.js} +2 -2
  117. package/mcp-server/.next/server/chunks/[root-of-the-server]__3dc88807._.js +3 -0
  118. package/mcp-server/.next/server/chunks/[root-of-the-server]__7f1ecf7b._.js +3 -0
  119. package/mcp-server/.next/server/chunks/[root-of-the-server]__7f1ecf7b._.js.map +1 -0
  120. package/mcp-server/.next/server/chunks/[root-of-the-server]__82298dd3._.js +7 -7
  121. package/mcp-server/.next/server/chunks/[root-of-the-server]__82298dd3._.js.map +1 -1
  122. package/mcp-server/.next/{standalone/.next/server/chunks/[root-of-the-server]__a9062def._.js → server/chunks/[root-of-the-server]__901c3acf._.js} +2 -2
  123. package/mcp-server/.next/server/chunks/_next-internal_server_app_api_tools_route_actions_4a0d5a18.js +3 -0
  124. package/mcp-server/.next/server/chunks/_next-internal_server_app_api_tools_route_actions_4a0d5a18.js.map +1 -0
  125. package/mcp-server/.next/server/chunks/ssr/0916f_next_d5a56baf._.js +3 -0
  126. package/mcp-server/.next/server/chunks/ssr/0916f_next_d5a56baf._.js.map +1 -0
  127. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_102cca64._.js +6 -0
  128. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_102cca64._.js.map +1 -0
  129. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_58af49d5._.js +6 -0
  130. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_58af49d5._.js.map +1 -0
  131. package/mcp-server/.next/server/chunks/ssr/{0916f_next_dist_b838d7f3._.js → 0916f_next_dist_esm_87a80014._.js} +2 -2
  132. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_esm_87a80014._.js.map +1 -0
  133. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__2cdf0446._.js +3 -0
  134. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__2cdf0446._.js.map +1 -0
  135. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__44804f8a._.js +3 -0
  136. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__44804f8a._.js.map +1 -0
  137. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__67415ea0._.js +3 -0
  138. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__67415ea0._.js.map +1 -0
  139. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__da15f006._.js +3 -0
  140. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__da15f006._.js.map +1 -0
  141. package/mcp-server/.next/server/chunks/ssr/_69f197ad._.js +5 -0
  142. package/mcp-server/.next/server/chunks/ssr/_69f197ad._.js.map +1 -0
  143. package/mcp-server/.next/server/chunks/ssr/_dc26a647._.js +3 -0
  144. package/mcp-server/.next/server/chunks/ssr/_dc26a647._.js.map +1 -0
  145. package/mcp-server/.next/server/middleware-build-manifest.js +4 -3
  146. package/mcp-server/.next/server/pages/404.html +1 -1
  147. package/mcp-server/.next/server/pages/500.html +2 -2
  148. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  149. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  150. package/mcp-server/.next/standalone/.next/BUILD_ID +1 -1
  151. package/mcp-server/.next/standalone/.next/app-build-manifest.json +27 -22
  152. package/mcp-server/.next/standalone/.next/app-path-routes-manifest.json +1 -0
  153. package/mcp-server/.next/standalone/.next/build-manifest.json +6 -5
  154. package/mcp-server/.next/standalone/.next/prerender-manifest.json +10 -10
  155. package/mcp-server/.next/standalone/.next/server/app/_global-error/page/app-build-manifest.json +4 -3
  156. package/mcp-server/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +4 -3
  157. package/mcp-server/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  158. package/mcp-server/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  159. package/mcp-server/.next/standalone/.next/server/app/_global-error.html +2 -2
  160. package/mcp-server/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  161. package/mcp-server/.next/standalone/.next/server/app/_not-found/page/app-build-manifest.json +5 -4
  162. package/mcp-server/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +4 -3
  163. package/mcp-server/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  164. package/mcp-server/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  165. package/mcp-server/.next/standalone/.next/server/app/_not-found.html +1 -1
  166. package/mcp-server/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  167. package/mcp-server/.next/standalone/.next/server/app/api/config/route/app-build-manifest.json +4 -3
  168. package/mcp-server/.next/standalone/.next/server/app/api/config/route/build-manifest.json +4 -3
  169. package/mcp-server/.next/standalone/.next/server/app/api/health/route/app-build-manifest.json +4 -3
  170. package/mcp-server/.next/standalone/.next/server/app/api/health/route/build-manifest.json +4 -3
  171. package/mcp-server/.next/standalone/.next/server/app/api/logs/append/route/app-build-manifest.json +4 -3
  172. package/mcp-server/.next/standalone/.next/server/app/api/logs/append/route/build-manifest.json +4 -3
  173. package/mcp-server/.next/standalone/.next/server/app/api/logs/append/route.js +1 -1
  174. package/mcp-server/.next/standalone/.next/server/app/api/logs/append/route.js.nft.json +1 -1
  175. package/mcp-server/.next/standalone/.next/server/app/api/logs/head/route/app-build-manifest.json +4 -3
  176. package/mcp-server/.next/standalone/.next/server/app/api/logs/head/route/build-manifest.json +4 -3
  177. package/mcp-server/.next/standalone/.next/server/app/api/logs/list/route/app-build-manifest.json +4 -3
  178. package/mcp-server/.next/standalone/.next/server/app/api/logs/list/route/build-manifest.json +4 -3
  179. package/mcp-server/.next/standalone/.next/server/app/api/logs/list/route.js +1 -1
  180. package/mcp-server/.next/standalone/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  181. package/mcp-server/.next/standalone/.next/server/app/api/logs/rotate/route/app-build-manifest.json +4 -3
  182. package/mcp-server/.next/standalone/.next/server/app/api/logs/rotate/route/build-manifest.json +4 -3
  183. package/mcp-server/.next/standalone/.next/server/app/api/logs/stream/route/app-build-manifest.json +4 -3
  184. package/mcp-server/.next/standalone/.next/server/app/api/logs/stream/route/build-manifest.json +4 -3
  185. package/mcp-server/.next/standalone/.next/server/app/api/logs/tail/route/app-build-manifest.json +4 -3
  186. package/mcp-server/.next/standalone/.next/server/app/api/logs/tail/route/build-manifest.json +4 -3
  187. package/mcp-server/.next/standalone/.next/server/app/api/mcp/[transport]/route/app-build-manifest.json +4 -3
  188. package/mcp-server/.next/standalone/.next/server/app/api/mcp/[transport]/route/build-manifest.json +4 -3
  189. package/mcp-server/.next/standalone/.next/server/app/api/mcp/[transport]/route.js +1 -1
  190. package/mcp-server/.next/standalone/.next/server/app/api/mcp/[transport]/route.js.nft.json +1 -1
  191. package/mcp-server/.next/standalone/.next/server/app/api/replay/route/app-build-manifest.json +4 -3
  192. package/mcp-server/.next/standalone/.next/server/app/api/replay/route/build-manifest.json +4 -3
  193. package/mcp-server/.next/standalone/.next/server/app/api/tools/route/app-build-manifest.json +12 -0
  194. package/mcp-server/.next/standalone/.next/server/app/api/tools/route/app-paths-manifest.json +3 -0
  195. package/mcp-server/.next/standalone/.next/server/app/api/tools/route/build-manifest.json +18 -0
  196. package/mcp-server/.next/standalone/.next/server/app/api/tools/route/server-reference-manifest.json +4 -0
  197. package/mcp-server/.next/standalone/.next/server/app/api/tools/route.js +7 -0
  198. package/mcp-server/.next/standalone/.next/server/app/api/tools/route.js.map +5 -0
  199. package/mcp-server/.next/standalone/.next/server/app/api/tools/route.js.nft.json +1 -0
  200. package/mcp-server/.next/standalone/.next/server/app/api/tools/route_client-reference-manifest.js +2 -0
  201. package/mcp-server/.next/standalone/.next/server/app/index.html +1 -1
  202. package/mcp-server/.next/standalone/.next/server/app/index.rsc +3 -3
  203. package/mcp-server/.next/standalone/.next/server/app/logs/page/app-build-manifest.json +6 -5
  204. package/mcp-server/.next/standalone/.next/server/app/logs/page/build-manifest.json +4 -3
  205. package/mcp-server/.next/standalone/.next/server/app/logs/page.js.nft.json +1 -1
  206. package/mcp-server/.next/standalone/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  207. package/mcp-server/.next/standalone/.next/server/app/page/app-build-manifest.json +6 -5
  208. package/mcp-server/.next/standalone/.next/server/app/page/build-manifest.json +4 -3
  209. package/mcp-server/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  210. package/mcp-server/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  211. package/mcp-server/.next/standalone/.next/server/app/replay/page/app-build-manifest.json +6 -5
  212. package/mcp-server/.next/standalone/.next/server/app/replay/page/build-manifest.json +4 -3
  213. package/mcp-server/.next/standalone/.next/server/app/replay/page.js.nft.json +1 -1
  214. package/mcp-server/.next/standalone/.next/server/app/replay/page_client-reference-manifest.js +1 -1
  215. package/mcp-server/.next/standalone/.next/server/app/replay.html +1 -1
  216. package/mcp-server/.next/standalone/.next/server/app/replay.rsc +3 -3
  217. package/mcp-server/.next/standalone/.next/server/app-paths-manifest.json +1 -0
  218. package/mcp-server/.next/standalone/.next/server/chunks/{[root-of-the-server]__1d2effbb._.js → [root-of-the-server]__25014d3e._.js} +2 -2
  219. package/mcp-server/.next/standalone/.next/server/chunks/[root-of-the-server]__3dc88807._.js +3 -0
  220. package/mcp-server/.next/standalone/.next/server/chunks/[root-of-the-server]__7f1ecf7b._.js +3 -0
  221. package/mcp-server/.next/standalone/.next/server/chunks/[root-of-the-server]__82298dd3._.js +7 -7
  222. package/mcp-server/.next/{server/chunks/[root-of-the-server]__a9062def._.js → standalone/.next/server/chunks/[root-of-the-server]__901c3acf._.js} +2 -2
  223. package/mcp-server/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tools_route_actions_4a0d5a18.js +3 -0
  224. package/mcp-server/.next/standalone/.next/server/chunks/ssr/0916f_next_d5a56baf._.js +3 -0
  225. package/mcp-server/.next/standalone/.next/server/chunks/ssr/0916f_next_dist_102cca64._.js +6 -0
  226. package/mcp-server/.next/standalone/.next/server/chunks/ssr/0916f_next_dist_58af49d5._.js +6 -0
  227. package/mcp-server/.next/standalone/.next/server/chunks/ssr/{0916f_next_dist_b838d7f3._.js → 0916f_next_dist_esm_87a80014._.js} +2 -2
  228. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2cdf0446._.js +3 -0
  229. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__44804f8a._.js +3 -0
  230. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__67415ea0._.js +3 -0
  231. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__da15f006._.js +3 -0
  232. package/mcp-server/.next/standalone/.next/server/chunks/ssr/_69f197ad._.js +5 -0
  233. package/mcp-server/.next/standalone/.next/server/chunks/ssr/_dc26a647._.js +3 -0
  234. package/mcp-server/.next/standalone/.next/server/middleware-build-manifest.js +4 -3
  235. package/mcp-server/.next/standalone/.next/server/pages/404.html +1 -1
  236. package/mcp-server/.next/standalone/.next/server/pages/500.html +2 -2
  237. package/mcp-server/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  238. package/mcp-server/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  239. package/mcp-server/.next/standalone/app/api/mcp/[transport]/route.ts +508 -20
  240. package/mcp-server/.next/static/chunks/5dd333b6181425ad.js +1 -0
  241. package/mcp-server/.next/static/chunks/{dbf09e13116b591b.css → 6634762c4edabf25.css} +1 -1
  242. package/mcp-server/.next/static/chunks/8960f12966b75725.js +5 -0
  243. package/mcp-server/.next/static/chunks/8a5ef92054eb3f68.js +1 -0
  244. package/mcp-server/.next/static/chunks/a04299218648d5c9.js +5 -0
  245. package/mcp-server/.next/static/chunks/aac71a4d8cd0d1d1.js +1 -0
  246. package/mcp-server/.next/static/chunks/{5c0c8ae693afcfee.js → ab8ede9578945642.js} +1 -1
  247. package/mcp-server/.next/static/chunks/{416a6ad96e2949dc.js → c964cee505b7b510.js} +1 -1
  248. package/mcp-server/.next/static/chunks/{941b6c341513efe6.js → f7331e11d1cb0264.js} +1 -1
  249. package/mcp-server/.next/static/chunks/f83a9d423c663174.js +1 -0
  250. package/mcp-server/.next/static/chunks/turbopack-0005c9ba09919d66.js +3 -0
  251. package/mcp-server/.next/static/chunks/{turbopack-4c431b48e3258ab3.js → turbopack-1bf2fb01bf8c3dc0.js} +1 -1
  252. package/mcp-server/.next/static/chunks/{turbopack-28043e8ec5b32cbc.js → turbopack-a9958f358b128d0b.js} +1 -1
  253. package/mcp-server/.next/trace +1 -1
  254. package/mcp-server/.next/types/routes.d.ts +2 -1
  255. package/mcp-server/.next/types/validator.ts +9 -0
  256. package/mcp-server/app/api/mcp/[transport]/route.ts +508 -20
  257. package/mcp-server/app/api/tools/route.ts +194 -0
  258. package/mcp-server/app/page.tsx +245 -92
  259. package/package.json +1 -1
  260. package/mcp-server/.next/server/chunks/[root-of-the-server]__c51abf31._.js +0 -3
  261. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_b838d7f3._.js.map +0 -1
  262. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__524f1e5c._.js +0 -3
  263. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__524f1e5c._.js.map +0 -1
  264. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__5c573556._.js +0 -3
  265. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__5c573556._.js.map +0 -1
  266. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9197e6d6._.js +0 -3
  267. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9197e6d6._.js.map +0 -1
  268. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__b732be1d._.js +0 -3
  269. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__b732be1d._.js.map +0 -1
  270. package/mcp-server/.next/server/chunks/ssr/_7c04f51e._.js +0 -8
  271. package/mcp-server/.next/server/chunks/ssr/_7c04f51e._.js.map +0 -1
  272. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_8bde5c6b._.js +0 -3
  273. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_8bde5c6b._.js.map +0 -1
  274. package/mcp-server/.next/standalone/.next/server/chunks/[root-of-the-server]__c51abf31._.js +0 -3
  275. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__524f1e5c._.js +0 -3
  276. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__5c573556._.js +0 -3
  277. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__9197e6d6._.js +0 -3
  278. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b732be1d._.js +0 -3
  279. package/mcp-server/.next/standalone/.next/server/chunks/ssr/_7c04f51e._.js +0 -8
  280. package/mcp-server/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_8bde5c6b._.js +0 -3
  281. package/mcp-server/.next/static/chunks/0840a1d3b8d17eda.js +0 -5
  282. package/mcp-server/.next/static/chunks/3df53cad6e742c25.js +0 -1
  283. package/mcp-server/.next/static/chunks/830751c84b44689a.js +0 -1
  284. package/mcp-server/.next/static/chunks/accd4b2d97799296.js +0 -5
  285. package/mcp-server/.next/static/chunks/b2fe525ea0f48ed5.js +0 -1
  286. package/mcp-server/.next/static/chunks/turbopack-66b02875bc8e5dbd.js +0 -3
  287. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__1d2effbb._.js.map → [root-of-the-server]__25014d3e._.js.map} +0 -0
  288. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__c51abf31._.js.map → [root-of-the-server]__3dc88807._.js.map} +0 -0
  289. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__a9062def._.js.map → [root-of-the-server]__901c3acf._.js.map} +0 -0
  290. /package/mcp-server/.next/static/{HNx7zx4NtWY3EQ9D5yHAA → fgx2Ltd5vbloYUQlVKX60}/_buildManifest.js +0 -0
  291. /package/mcp-server/.next/static/{HNx7zx4NtWY3EQ9D5yHAA → fgx2Ltd5vbloYUQlVKX60}/_clientMiddlewareManifest.json +0 -0
  292. /package/mcp-server/.next/static/{HNx7zx4NtWY3EQ9D5yHAA → fgx2Ltd5vbloYUQlVKX60}/_ssgManifest.js +0 -0
@@ -0,0 +1,194 @@
1
+ import { NextResponse } from "next/server"
2
+
3
+ // This endpoint extracts MCP tools documentation by parsing the route handler
4
+ export async function GET() {
5
+ try {
6
+ // Since we can't easily parse the TypeScript at runtime,
7
+ // we'll maintain a curated list of tools with their descriptions
8
+ const tools = [
9
+ {
10
+ name: "debug_my_app",
11
+ description:
12
+ "🚨 SHORTCUT COMMAND: Complete proactive analysis of your development environment. Automatically checks recent logs for errors, searches for common patterns, gets browser errors, and provides actionable debugging insights with immediate fixes.",
13
+ category: "Primary Debugging",
14
+ parameters: [
15
+ {
16
+ name: "focusArea",
17
+ type: "string",
18
+ optional: true,
19
+ description: "Specific area to focus on: 'build', 'runtime', 'network', 'ui', or 'all' (default: 'all')"
20
+ }
21
+ ]
22
+ },
23
+ {
24
+ name: "get_current_timestamp",
25
+ description:
26
+ "⏰ CRITICAL MONITORING TOOL: Get current timestamp for proactive error monitoring workflow. Use constantly before/after user interactions for timestamp-based debugging.",
27
+ category: "Monitoring",
28
+ parameters: []
29
+ },
30
+ {
31
+ name: "get_errors_between_timestamps",
32
+ description:
33
+ "🚨 PROACTIVE ERROR EXTRACTION: Get ALL types of errors (server errors, exceptions, browser errors, build failures, network issues) between specific timestamps. Essential for continuous monitoring.",
34
+ category: "Error Analysis",
35
+ parameters: [
36
+ {
37
+ name: "startTime",
38
+ type: "string",
39
+ description: "Start timestamp (ISO 8601 format: 2024-01-01T12:00:00.000Z)"
40
+ },
41
+ {
42
+ name: "endTime",
43
+ type: "string",
44
+ description: "End timestamp (ISO 8601 format: 2024-01-01T12:30:00.000Z)"
45
+ },
46
+ {
47
+ name: "severity",
48
+ type: "enum",
49
+ optional: true,
50
+ description: "Error severity filter: 'all', 'critical', 'warnings' (default: 'all')"
51
+ }
52
+ ]
53
+ },
54
+ {
55
+ name: "monitor_for_new_errors",
56
+ description:
57
+ "🔍 AUTOMATED BACKGROUND MONITORING: Check for ANY new errors that appeared in the last few minutes. Use frequently for continuous quality assurance and preventive debugging.",
58
+ category: "Monitoring",
59
+ parameters: [
60
+ {
61
+ name: "minutes",
62
+ type: "number",
63
+ optional: true,
64
+ description: "Minutes to look back for new errors (default: 5)"
65
+ },
66
+ {
67
+ name: "autoFix",
68
+ type: "boolean",
69
+ optional: true,
70
+ description: "Whether to immediately offer fixes when errors found (default: true)"
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ name: "read_consolidated_logs",
76
+ description:
77
+ "Read recent consolidated development logs containing server output, browser console logs, network requests, user interactions, and screenshots. Essential for general log overview and proactive error detection.",
78
+ category: "Log Analysis",
79
+ parameters: [
80
+ {
81
+ name: "lines",
82
+ type: "number",
83
+ optional: true,
84
+ description: "Number of recent lines to read (default: 50)"
85
+ },
86
+ {
87
+ name: "filter",
88
+ type: "string",
89
+ optional: true,
90
+ description: "Filter logs by text content"
91
+ }
92
+ ]
93
+ },
94
+ {
95
+ name: "search_logs",
96
+ description:
97
+ "Search through consolidated logs using regex patterns with context lines. Essential for tracing error patterns, finding specific API calls, or tracking user interaction sequences.",
98
+ category: "Log Analysis",
99
+ parameters: [
100
+ {
101
+ name: "pattern",
102
+ type: "string",
103
+ description: "Regex pattern to search for"
104
+ },
105
+ {
106
+ name: "context",
107
+ type: "number",
108
+ optional: true,
109
+ description: "Number of lines of context around matches (default: 2)"
110
+ }
111
+ ]
112
+ },
113
+ {
114
+ name: "get_logs_between_timestamps",
115
+ description:
116
+ "Get logs between two specific timestamps - critical for timestamp-based debugging workflow. Eliminates noise and focuses analysis on specific user sessions.",
117
+ category: "Log Analysis",
118
+ parameters: [
119
+ {
120
+ name: "startTime",
121
+ type: "string",
122
+ description: "Start timestamp (ISO 8601 format)"
123
+ },
124
+ {
125
+ name: "endTime",
126
+ type: "string",
127
+ description: "End timestamp (ISO 8601 format)"
128
+ },
129
+ {
130
+ name: "filter",
131
+ type: "string",
132
+ optional: true,
133
+ description: "Filter logs by text content (case insensitive)"
134
+ }
135
+ ]
136
+ },
137
+ {
138
+ name: "get_browser_errors",
139
+ description:
140
+ "Get recent browser errors including console errors, JavaScript exceptions, and page errors from monitoring. Use proactively to catch JavaScript exceptions and runtime issues immediately.",
141
+ category: "Browser Debugging",
142
+ parameters: [
143
+ {
144
+ name: "hours",
145
+ type: "number",
146
+ optional: true,
147
+ description: "Hours to look back (default: 1)"
148
+ }
149
+ ]
150
+ },
151
+ {
152
+ name: "execute_browser_action",
153
+ description:
154
+ "🪄 MAGICAL VERIFICATION TOOL: Execute safe browser actions via Chrome DevTools Protocol for testing and interaction automation. The secret to dev3000 magic - use to verify fixes work by automating browser interactions and taking screenshots.",
155
+ category: "Browser Automation",
156
+ parameters: [
157
+ {
158
+ name: "action",
159
+ type: "enum",
160
+ description: "Action to perform: 'click', 'navigate', 'screenshot', 'evaluate', 'scroll', 'type'"
161
+ },
162
+ {
163
+ name: "params",
164
+ type: "object",
165
+ description: "Parameters for the action (coordinates, URL, selector, text, expression, etc.)"
166
+ }
167
+ ]
168
+ },
169
+ {
170
+ name: "healthcheck",
171
+ description:
172
+ "Internal healthcheck tool - rarely needed since MCP connection working means server is healthy. Only use if explicitly asked to verify server health.",
173
+ category: "System",
174
+ parameters: [
175
+ {
176
+ name: "message",
177
+ type: "string",
178
+ optional: true,
179
+ description: "Optional message to echo back"
180
+ }
181
+ ]
182
+ }
183
+ ]
184
+
185
+ return NextResponse.json({
186
+ tools,
187
+ endpoint: "http://localhost:3684/api/mcp/mcp",
188
+ totalTools: tools.length,
189
+ categories: [...new Set(tools.map((t) => t.category))]
190
+ })
191
+ } catch (error) {
192
+ return NextResponse.json({ error: "Failed to extract tools documentation" }, { status: 500 })
193
+ }
194
+ }
@@ -1,27 +1,36 @@
1
1
  "use client"
2
2
 
3
+ import Link from "next/link"
3
4
  import { useEffect, useState } from "react"
4
5
 
5
- interface HealthStatus {
6
- status: string
7
- timestamp: string
8
- mcpEndpoint: string
9
- logFile: {
10
- path: string
11
- exists: boolean
12
- }
13
- version: string
6
+ interface MCPTool {
7
+ name: string
8
+ description: string
9
+ category: string
10
+ parameters: Array<{
11
+ name: string
12
+ type: string
13
+ optional?: boolean
14
+ description: string
15
+ }>
16
+ }
17
+
18
+ interface ToolsResponse {
19
+ tools: MCPTool[]
20
+ endpoint: string
21
+ totalTools: number
22
+ categories: string[]
14
23
  }
15
24
 
16
25
  export default function HomePage() {
17
- const [health, setHealth] = useState<HealthStatus | null>(null)
26
+ const [tools, setTools] = useState<ToolsResponse | null>(null)
18
27
  const [loading, setLoading] = useState(true)
19
28
 
20
29
  useEffect(() => {
21
- fetch("/api/health")
30
+ fetch("/api/tools")
22
31
  .then((res) => res.json())
23
32
  .then((data) => {
24
- setHealth(data)
33
+ setTools(data)
25
34
  setLoading(false)
26
35
  })
27
36
  .catch(() => {
@@ -30,107 +39,251 @@ export default function HomePage() {
30
39
  }, [])
31
40
 
32
41
  return (
33
- <div className="min-h-screen bg-gray-50 flex items-center justify-center p-4">
34
- <a
35
- href="https://github.com/vercel-labs/dev3000"
36
- target="_blank"
37
- rel="noopener noreferrer"
38
- className="fixed top-4 right-4 text-gray-600 hover:text-gray-900 transition-colors"
39
- title="View on GitHub"
40
- >
41
- <svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24">
42
- <path d="M12 0C5.374 0 0 5.373 0 12 0 17.302 3.438 21.8 8.207 23.387c.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.509 11.509 0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z" />
43
- </svg>
44
- </a>
45
-
46
- <div className="bg-white rounded-lg shadow-lg p-8 max-w-2xl w-full">
47
- <div className="text-center mb-8">
48
- <h1 className="text-3xl font-bold text-gray-900 mb-2">🎯 dev3000</h1>
49
- <p className="text-gray-600">AI-powered development monitoring</p>
42
+ <div className="min-h-screen bg-white">
43
+ {/* Header */}
44
+ <header className="bg-gray-50 border-b border-gray-200">
45
+ <div className="max-w-7xl mx-auto px-6 py-8">
46
+ <div className="flex items-center justify-between">
47
+ <div>
48
+ <div className="flex items-center gap-4 mb-3">
49
+ <div className="w-12 h-12 bg-black rounded flex items-center justify-center">
50
+ <span className="text-white font-mono font-bold">d3k</span>
51
+ </div>
52
+ <div>
53
+ <h1 className="text-3xl font-bold text-gray-900">dev3000 MCP Server</h1>
54
+ <div className="flex items-center gap-3 mt-2">
55
+ <span className="inline-flex items-center gap-2 text-sm text-green-600 font-medium">
56
+ <span className="w-2 h-2 bg-green-500 rounded-full"></span>
57
+ Server Running
58
+ </span>
59
+ <span className="text-gray-300">•</span>
60
+ <span className="text-sm text-gray-600">Port 3684</span>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ <div className="flex items-center gap-4">
66
+ <Link
67
+ href="/logs"
68
+ className="inline-flex items-center gap-2 px-5 py-3 bg-blue-600 text-white text-sm font-medium rounded hover:bg-blue-700 transition-colors"
69
+ >
70
+ 📊 View Logs
71
+ </Link>
72
+ <a
73
+ href="https://github.com/vercel-labs/dev3000#setup"
74
+ target="_blank"
75
+ rel="noopener noreferrer"
76
+ className="inline-flex items-center gap-2 px-5 py-3 border border-gray-300 text-gray-700 text-sm font-medium rounded hover:bg-gray-50 transition-colors"
77
+ >
78
+ 📖 Setup Guide
79
+ </a>
80
+ </div>
81
+ </div>
50
82
  </div>
83
+ </header>
51
84
 
52
- {/* Health Status */}
53
- <div className="mb-8 p-4 bg-gray-50 rounded-lg">
54
- <h2 className="text-lg font-semibold mb-3 flex items-center">
55
- {loading ? "⏳" : health?.status === "healthy" ? "✅" : "❌"}
56
- <span className="ml-2">Server Status</span>
57
- </h2>
58
- {loading ? (
59
- <p className="text-gray-600">Checking health...</p>
60
- ) : health ? (
61
- <div className="space-y-2 text-sm">
62
- <p>
63
- <span className="font-medium">Status:</span> {health.status}
64
- </p>
65
- <p>
66
- <span className="font-medium">Version:</span> {health.version}
67
- </p>
68
- <p>
69
- <span className="font-medium">Log File:</span> {health.logFile.exists ? "✅" : "❌"}{" "}
70
- {health.logFile.path}
71
- </p>
85
+ <div className="flex max-w-7xl mx-auto">
86
+ {/* Main Content */}
87
+ <main className="flex-1 px-6 py-8 min-w-0 lg:pr-80">
88
+ {/* Quick Start */}
89
+ <section className="mb-16">
90
+ <div className="bg-blue-50 border border-blue-200 rounded p-8">
91
+ <h2 className="text-xl font-semibold text-blue-900 mb-4">🚀 Quick Start</h2>
92
+ <div className="space-y-4">
93
+ <div>
94
+ <span className="text-sm font-medium text-blue-800">MCP Endpoint:</span>
95
+ <code className="ml-3 px-4 py-2 bg-blue-100 text-blue-800 text-sm font-mono rounded">
96
+ {tools?.endpoint || "http://localhost:3684/api/mcp/mcp"}
97
+ </code>
98
+ </div>
99
+ <div className="text-sm text-blue-700">
100
+ <p className="mb-3">Connect your AI tools to this MCP server for real-time development debugging:</p>
101
+ <div className="flex gap-6">
102
+ <a
103
+ href="https://github.com/vercel-labs/dev3000#claude-desktop"
104
+ target="_blank"
105
+ rel="noopener noreferrer"
106
+ className="text-blue-600 hover:text-blue-800 font-medium"
107
+ >
108
+ Claude Desktop Setup →
109
+ </a>
110
+ <a
111
+ href="https://github.com/vercel-labs/dev3000#cursor"
112
+ target="_blank"
113
+ rel="noopener noreferrer"
114
+ className="text-blue-600 hover:text-blue-800 font-medium"
115
+ >
116
+ Cursor Setup →
117
+ </a>
118
+ </div>
119
+ </div>
120
+ </div>
72
121
  </div>
73
- ) : (
74
- <p className="text-red-600">Failed to get health status</p>
75
- )}
76
- </div>
122
+ </section>
77
123
 
78
- {/* Navigation */}
79
- <div className="space-y-4 mb-8">
80
- <a
81
- href="/logs"
82
- className="block w-full bg-blue-500 text-white text-center py-3 px-4 rounded hover:bg-blue-600 transition-colors"
83
- >
84
- 📊 View Development Logs
85
- </a>
86
- </div>
124
+ {/* Tools Documentation */}
125
+ <section>
126
+ <div className="mb-12">
127
+ <div>
128
+ <h2 className="text-3xl font-bold text-gray-900 mb-3">Available Tools</h2>
129
+ <p className="text-gray-600 text-lg">
130
+ {loading
131
+ ? "Loading MCP tools..."
132
+ : `${tools?.totalTools || 0} tools across ${
133
+ tools?.categories.length || 0
134
+ } categories for AI-powered development debugging`}
135
+ </p>
136
+ </div>
137
+ </div>
138
+
139
+ {loading ? (
140
+ <div className="text-center py-16">
141
+ <div className="inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"></div>
142
+ <p className="mt-6 text-gray-600">Loading tool documentation...</p>
143
+ </div>
144
+ ) : tools ? (
145
+ <div className="grid gap-6 lg:grid-cols-2">
146
+ {tools.tools.map((tool) => (
147
+ <div
148
+ key={tool.name}
149
+ id={tool.name}
150
+ className="border border-gray-200 rounded p-6 hover:border-gray-300 transition-colors"
151
+ >
152
+ <div className="mb-4">
153
+ <h4 className="text-xl font-semibold text-gray-900 font-mono mb-3">{tool.name}</h4>
154
+ <p className="text-gray-600 leading-relaxed">
155
+ {tool.description.replace(/🚨|⏰|🔍|🪄|📊|🌐|⚙️/g, "").trim()}
156
+ </p>
157
+ </div>
158
+ {tool.parameters.length > 0 && (
159
+ <div>
160
+ <h5 className="text-sm font-semibold text-gray-800 mb-3">Parameters:</h5>
161
+ <div className="space-y-2">
162
+ {tool.parameters.map((param) => (
163
+ <div key={param.name} className="text-sm">
164
+ <div className="flex items-start gap-2">
165
+ <span className="font-mono text-blue-600 font-medium">{param.name}</span>
166
+ <span className="text-gray-500 text-xs">
167
+ {param.optional ? "(optional)" : "(required)"}
168
+ </span>
169
+ <span className="text-gray-400 text-xs">- {param.type}</span>
170
+ </div>
171
+ {param.description && (
172
+ <div className="text-gray-600 ml-1 mt-1 text-sm">{param.description}</div>
173
+ )}
174
+ </div>
175
+ ))}
176
+ </div>
177
+ </div>
178
+ )}
179
+ </div>
180
+ ))}
181
+ </div>
182
+ ) : (
183
+ <div className="text-center py-16">
184
+ <p className="text-red-600 mb-6">Failed to load tool documentation</p>
185
+ <button
186
+ onClick={() => window.location.reload()}
187
+ className="px-6 py-3 bg-blue-600 text-white text-sm rounded hover:bg-blue-700 transition-colors"
188
+ type="button"
189
+ >
190
+ Retry
191
+ </button>
192
+ </div>
193
+ )}
194
+ </section>
87
195
 
88
- {/* MCP Configuration */}
89
- <div className="border-t pt-6">
90
- <h2 className="text-lg font-semibold mb-4 flex items-center">
91
- 🤖 <span className="ml-2">MCP Integration</span>
92
- </h2>
196
+ {/* Magic Workflow */}
197
+ <section className="mt-20 bg-gradient-to-r from-purple-50 to-blue-50 border border-purple-200 rounded p-10">
198
+ <h2 className="text-2xl font-semibold text-gray-900 mb-6 flex items-center gap-3">🪄 The Magic Workflow</h2>
199
+ <div className="grid md:grid-cols-3 gap-8">
200
+ <div className="text-center">
201
+ <div className="w-16 h-16 bg-blue-100 rounded-full flex items-center justify-center mx-auto mb-4">
202
+ <span className="text-blue-600 font-bold text-lg">1</span>
203
+ </div>
204
+ <h3 className="font-semibold mb-3 text-lg">AI Finds Issues</h3>
205
+ <p className="text-gray-600 leading-relaxed">
206
+ Tools like debug_my_app and monitor_for_new_errors automatically detect problems
207
+ </p>
208
+ </div>
209
+ <div className="text-center">
210
+ <div className="w-16 h-16 bg-purple-100 rounded-full flex items-center justify-center mx-auto mb-4">
211
+ <span className="text-purple-600 font-bold text-lg">2</span>
212
+ </div>
213
+ <h3 className="font-semibold mb-3 text-lg">AI Fixes Code</h3>
214
+ <p className="text-gray-600 leading-relaxed">
215
+ AI analyzes errors and edits your code files to resolve issues
216
+ </p>
217
+ </div>
218
+ <div className="text-center">
219
+ <div className="w-16 h-16 bg-green-100 rounded-full flex items-center justify-center mx-auto mb-4">
220
+ <span className="text-green-600 font-bold text-lg">3</span>
221
+ </div>
222
+ <h3 className="font-semibold mb-3 text-lg">AI Verifies Fixes</h3>
223
+ <p className="text-gray-600 leading-relaxed">
224
+ execute_browser_action tests the fixes in real-time with screenshots
225
+ </p>
226
+ </div>
227
+ </div>
228
+ </section>
229
+ </main>
93
230
 
94
- <div className="bg-blue-50 p-4 rounded-lg mb-4">
95
- <p className="text-sm text-blue-800 mb-2">
96
- <span className="font-medium">Endpoint:</span>
97
- <code className="bg-blue-100 px-2 py-1 rounded text-xs ml-2">
98
- http://localhost:{typeof window !== "undefined" ? window.location.port : "3684"}/api/mcp/mcp
99
- </code>
100
- </p>
101
- <p className="text-xs text-blue-600">Use HTTP transport (not stdio) when configuring MCP clients</p>
231
+ {/* Table of Contents - Sticky Sidebar (Right) */}
232
+ <aside className="lg:block w-72 flex-shrink-0 fixed right-0 top-0 h-screen overflow-y-auto z-10">
233
+ <div className="p-6 bg-gray-50 border-l border-gray-200 h-full">
234
+ <h3 className="text-sm font-semibold text-gray-900 mb-4">Tools</h3>
235
+ {loading ? (
236
+ <div className="text-sm text-gray-500">Loading tools...</div>
237
+ ) : tools ? (
238
+ <nav className="space-y-1 text-sm">
239
+ {tools.tools.map((tool) => (
240
+ <a
241
+ key={tool.name}
242
+ href={`#${tool.name}`}
243
+ className="text-gray-600 hover:text-blue-600 transition-colors block py-2 px-3 rounded hover:bg-white"
244
+ >
245
+ {tool.name}
246
+ </a>
247
+ ))}
248
+ </nav>
249
+ ) : (
250
+ <div className="text-sm text-gray-500">Failed to load tools</div>
251
+ )}
102
252
  </div>
253
+ </aside>
254
+ </div>
103
255
 
104
- <div className="space-y-3">
105
- <h3 className="font-medium text-gray-900">Configure AI Tools:</h3>
106
- <div className="grid grid-cols-1 md:grid-cols-2 gap-3">
256
+ {/* Footer */}
257
+ <footer className="border-t border-gray-200 mt-20">
258
+ <div className="max-w-7xl mx-auto px-6 py-8">
259
+ <div className="flex items-center justify-between text-sm text-gray-600">
260
+ <div>
261
+ <span className="font-semibold">dev3000 MCP Server</span> - AI-powered development monitoring
262
+ </div>
263
+ <div className="flex items-center gap-8">
107
264
  <a
108
- href="https://github.com/vercel-labs/dev3000#claude-desktop"
265
+ href="https://github.com/vercel-labs/dev3000"
109
266
  target="_blank"
110
267
  rel="noopener noreferrer"
111
- className="flex items-center justify-between p-3 border rounded hover:bg-gray-50 transition-colors text-sm"
268
+ className="hover:text-gray-900 transition-colors"
112
269
  >
113
- <span>Claude Desktop</span>
114
- <span className="text-gray-400">↗</span>
270
+ GitHub
115
271
  </a>
116
272
  <a
117
- href="https://github.com/vercel-labs/dev3000#mcp-clients"
273
+ href="https://dev3000.ai"
118
274
  target="_blank"
119
275
  rel="noopener noreferrer"
120
- className="flex items-center justify-between p-3 border rounded hover:bg-gray-50 transition-colors text-sm"
276
+ className="hover:text-gray-900 transition-colors"
121
277
  >
122
- <span>Other MCP Clients</span>
123
- <span className="text-gray-400">↗</span>
278
+ Homepage
124
279
  </a>
280
+ <Link href="/logs" className="hover:text-gray-900 transition-colors">
281
+ Logs
282
+ </Link>
125
283
  </div>
126
284
  </div>
127
285
  </div>
128
-
129
- <div className="mt-8 text-sm text-gray-600 text-center border-t pt-6">
130
- <p>Real-time development monitoring with visual context</p>
131
- <p className="mt-1">Server logs + Browser events + Screenshots + AI debugging</p>
132
- </div>
133
- </div>
286
+ </footer>
134
287
  </div>
135
288
  )
136
289
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev3000",
3
- "version": "0.0.59",
3
+ "version": "0.0.62",
4
4
  "description": "AI-powered development tools with browser monitoring and MCP server integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,3 +0,0 @@
1
- module.exports=[70406,(e,r,t)=>{r.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,r,t)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},22734,(e,r,t)=>{r.exports=e.x("fs",()=>require("fs"))},18622,(e,r,t)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,r,t)=>{r.exports=e.x("path",()=>require("path"))},24361,(e,r,t)=>{r.exports=e.x("util",()=>require("util"))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__c51abf31._.js.map