dev3000 0.0.84 → 0.0.85

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 (156) hide show
  1. package/dist/dev-environment.d.ts.map +1 -1
  2. package/dist/dev-environment.js +31 -186
  3. package/dist/dev-environment.js.map +1 -1
  4. package/dist/src/tui-interface-impl.tsx +1 -1
  5. package/dist/tui-interface-impl.js +1 -1
  6. package/dist/tui-interface-impl.js.map +1 -1
  7. package/mcp-server/.next/BUILD_ID +1 -1
  8. package/mcp-server/.next/app-path-routes-manifest.json +1 -0
  9. package/mcp-server/.next/build-manifest.json +5 -6
  10. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  11. package/mcp-server/.next/next-server.js.nft.json +1 -1
  12. package/mcp-server/.next/prerender-manifest.json +3 -3
  13. package/mcp-server/.next/server/app/_global-error/page/build-manifest.json +3 -4
  14. package/mcp-server/.next/server/app/_global-error/page.js +1 -1
  15. package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
  16. package/mcp-server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  17. package/mcp-server/.next/server/app/_global-error.html +2 -2
  18. package/mcp-server/.next/server/app/_global-error.rsc +1 -1
  19. package/mcp-server/.next/server/app/_not-found/page/build-manifest.json +3 -4
  20. package/mcp-server/.next/server/app/_not-found/page.js +1 -1
  21. package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/mcp-server/.next/server/app/_not-found.html +1 -1
  24. package/mcp-server/.next/server/app/_not-found.rsc +2 -2
  25. package/mcp-server/.next/server/app/api/jank/[session]/route.js +1 -1
  26. package/mcp-server/.next/server/app/api/jank/[session]/route.js.nft.json +1 -1
  27. package/mcp-server/.next/server/app/api/logs/head/route.js.nft.json +1 -1
  28. package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  29. package/mcp-server/.next/server/app/api/logs/rotate/route.js +1 -1
  30. package/mcp-server/.next/server/app/api/logs/rotate/route.js.nft.json +1 -1
  31. package/mcp-server/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  32. package/mcp-server/.next/server/app/api/logs/tail/route.js.nft.json +1 -1
  33. package/mcp-server/.next/server/app/api/orchestrator/route/app-paths-manifest.json +3 -0
  34. package/mcp-server/.next/server/app/api/orchestrator/route/build-manifest.json +11 -0
  35. package/mcp-server/.next/server/app/api/orchestrator/route/server-reference-manifest.json +4 -0
  36. package/mcp-server/.next/server/app/api/orchestrator/route.js +8 -0
  37. package/mcp-server/.next/server/app/api/orchestrator/route.js.map +5 -0
  38. package/mcp-server/.next/server/app/api/orchestrator/route.js.nft.json +1 -0
  39. package/mcp-server/.next/server/app/api/orchestrator/route_client-reference-manifest.js +2 -0
  40. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js +1 -1
  41. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js.nft.json +1 -1
  42. package/mcp-server/.next/server/app/api/screenshots/list/route.js +1 -1
  43. package/mcp-server/.next/server/app/api/screenshots/list/route.js.nft.json +1 -1
  44. package/mcp-server/.next/server/app/index.html +1 -1
  45. package/mcp-server/.next/server/app/index.rsc +3 -3
  46. package/mcp-server/.next/server/app/logs/page/build-manifest.json +3 -4
  47. package/mcp-server/.next/server/app/logs/page.js +1 -1
  48. package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
  49. package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  50. package/mcp-server/.next/server/app/mcp/route.js +4 -3
  51. package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
  52. package/mcp-server/.next/server/app/page/build-manifest.json +3 -4
  53. package/mcp-server/.next/server/app/page.js +1 -1
  54. package/mcp-server/.next/server/app/page.js.nft.json +1 -1
  55. package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
  56. package/mcp-server/.next/server/app/video/[session]/page/build-manifest.json +3 -4
  57. package/mcp-server/.next/server/app/video/[session]/page.js +1 -1
  58. package/mcp-server/.next/server/app/video/[session]/page.js.nft.json +1 -1
  59. package/mcp-server/.next/server/app/video/[session]/page_client-reference-manifest.js +1 -1
  60. package/mcp-server/.next/server/app-paths-manifest.json +1 -0
  61. package/mcp-server/.next/server/chunks/[externals]_node:crypto_c20cce38._.js +3 -0
  62. package/mcp-server/.next/server/chunks/[root-of-the-server]__05e38acd._.js +3 -0
  63. package/mcp-server/.next/server/chunks/[root-of-the-server]__05e38acd._.js.map +1 -0
  64. package/mcp-server/.next/server/chunks/{[root-of-the-server]__6ee9a99f._.js → [root-of-the-server]__3130ceec._.js} +2 -2
  65. package/mcp-server/.next/server/chunks/[root-of-the-server]__4637d3dd._.js +3 -0
  66. package/mcp-server/.next/server/chunks/{[root-of-the-server]__bc773251._.js → [root-of-the-server]__5114419d._.js} +2 -2
  67. package/mcp-server/.next/server/chunks/[root-of-the-server]__5248c9ff._.js +3 -0
  68. package/mcp-server/.next/server/chunks/[root-of-the-server]__5248c9ff._.js.map +1 -0
  69. package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js +7 -0
  70. package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js.map +1 -0
  71. package/mcp-server/.next/server/chunks/{[root-of-the-server]__55c04517._.js → [root-of-the-server]__a004a307._.js} +2 -2
  72. package/mcp-server/.next/server/chunks/[root-of-the-server]__ae49815f._.js +91 -0
  73. package/mcp-server/.next/server/chunks/[root-of-the-server]__ae49815f._.js.map +1 -0
  74. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js +7 -0
  75. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js.map +1 -0
  76. package/mcp-server/.next/server/chunks/[root-of-the-server]__dc0b0022._.js +17 -0
  77. package/mcp-server/.next/server/chunks/[root-of-the-server]__dc0b0022._.js.map +1 -0
  78. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_orchestrator_route_actions_c6fba9ec.js +3 -0
  79. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_orchestrator_route_actions_c6fba9ec.js.map +1 -0
  80. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__61c905ce._.js +3 -0
  81. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__bf771f7e._.js.map → [root-of-the-server]__61c905ce._.js.map} +1 -1
  82. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__8863b0f6._.js +3 -0
  83. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__8863b0f6._.js.map +1 -0
  84. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9bc632fa._.js +3 -0
  85. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__c4e78a20._.js.map → [root-of-the-server]__9bc632fa._.js.map} +1 -1
  86. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__a4bb31a6._.js +3 -0
  87. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__a4bb31a6._.js.map +1 -0
  88. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__cf17e26a._.js → [root-of-the-server]__aed64cd3._.js} +2 -2
  89. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__aed64cd3._.js.map +1 -0
  90. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__cf030fda._.js +3 -0
  91. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__cf030fda._.js.map +1 -0
  92. package/mcp-server/.next/server/chunks/ssr/{_96ba1d8e._.js → _74bf5366._.js} +2 -2
  93. package/mcp-server/.next/server/chunks/ssr/_74bf5366._.js.map +1 -0
  94. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_page_tsx_9fc46577._.js +3 -0
  95. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_page_tsx_9fc46577._.js.map +1 -0
  96. package/mcp-server/.next/server/chunks/ssr/mcp-server_components_dark-mode-toggle_tsx_f31dd15d._.js +3 -0
  97. package/mcp-server/.next/server/chunks/ssr/mcp-server_components_dark-mode-toggle_tsx_f31dd15d._.js.map +1 -0
  98. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_3d10aa72._.js +3 -0
  99. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_3d10aa72._.js.map +1 -0
  100. package/mcp-server/.next/server/middleware-build-manifest.js +3 -4
  101. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  102. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  103. package/mcp-server/.next/static/chunks/{55cedb1a993e951c.js → 1d2676338b51bbcf.js} +1 -1
  104. package/mcp-server/.next/static/chunks/312a4c1c7f6436ef.js +1 -0
  105. package/mcp-server/.next/static/chunks/8364b81221aabb64.js +1 -0
  106. package/mcp-server/.next/static/chunks/a42830291751fe48.js +1 -0
  107. package/mcp-server/.next/static/chunks/bb2e6ac36794beea.css +1 -0
  108. package/mcp-server/.next/static/chunks/c578923146856601.js +1 -0
  109. package/mcp-server/.next/static/chunks/turbopack-22a9e2c19fd12b04.js +3 -0
  110. package/mcp-server/app/api/orchestrator/route.ts +73 -0
  111. package/mcp-server/app/globals.css +0 -1
  112. package/mcp-server/app/logs/LogsClient.infinite-loop.test.tsx +1 -1
  113. package/mcp-server/app/mcp/client-manager.ts +281 -0
  114. package/mcp-server/app/mcp/route.ts +166 -0
  115. package/mcp-server/app/mcp/tools.ts +71 -18
  116. package/mcp-server/app/page.tsx +79 -65
  117. package/mcp-server/package.json +7 -9
  118. package/package.json +3 -8
  119. package/src/tui-interface-impl.tsx +1 -1
  120. package/mcp-server/.next/server/chunks/[root-of-the-server]__00592d3f._.js +0 -91
  121. package/mcp-server/.next/server/chunks/[root-of-the-server]__00592d3f._.js.map +0 -1
  122. package/mcp-server/.next/server/chunks/[root-of-the-server]__177c72c6._.js +0 -17
  123. package/mcp-server/.next/server/chunks/[root-of-the-server]__177c72c6._.js.map +0 -1
  124. package/mcp-server/.next/server/chunks/[root-of-the-server]__2942c072._.js +0 -3
  125. package/mcp-server/.next/server/chunks/[root-of-the-server]__e6dcd8bf._.js +0 -3
  126. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__22d96eb1._.js +0 -3
  127. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__22d96eb1._.js.map +0 -1
  128. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__63dd19ce._.js +0 -3
  129. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__63dd19ce._.js.map +0 -1
  130. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__94d8e211._.js +0 -3
  131. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__94d8e211._.js.map +0 -1
  132. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__bf771f7e._.js +0 -3
  133. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__c4e78a20._.js +0 -3
  134. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__cf17e26a._.js.map +0 -1
  135. package/mcp-server/.next/server/chunks/ssr/_28084f73._.js +0 -3
  136. package/mcp-server/.next/server/chunks/ssr/_28084f73._.js.map +0 -1
  137. package/mcp-server/.next/server/chunks/ssr/_96ba1d8e._.js.map +0 -1
  138. package/mcp-server/.next/server/chunks/ssr/_aa32a659._.js +0 -3
  139. package/mcp-server/.next/server/chunks/ssr/_aa32a659._.js.map +0 -1
  140. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_b2368b47._.js +0 -3
  141. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_b2368b47._.js.map +0 -1
  142. package/mcp-server/.next/static/chunks/0cf268b98f36b0b5.css +0 -1
  143. package/mcp-server/.next/static/chunks/571fbcba7786c174.js +0 -1
  144. package/mcp-server/.next/static/chunks/5fdb882fe407a798.js +0 -1
  145. package/mcp-server/.next/static/chunks/98e04adc8a00688a.js +0 -1
  146. package/mcp-server/.next/static/chunks/db42008ac1e97815.js +0 -1
  147. package/mcp-server/.next/static/chunks/dbbdc51e76f4cea4.js +0 -1
  148. package/mcp-server/.next/static/chunks/turbopack-7112e6b6aee1d84f.js +0 -3
  149. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__2942c072._.js.map → [externals]_node:crypto_c20cce38._.js.map} +0 -0
  150. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__6ee9a99f._.js.map → [root-of-the-server]__3130ceec._.js.map} +0 -0
  151. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__e6dcd8bf._.js.map → [root-of-the-server]__4637d3dd._.js.map} +0 -0
  152. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__bc773251._.js.map → [root-of-the-server]__5114419d._.js.map} +0 -0
  153. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__55c04517._.js.map → [root-of-the-server]__a004a307._.js.map} +0 -0
  154. /package/mcp-server/.next/static/{xBA_-Bho-qV9WoLREZ2m_ → 5ZNPgBUtuG6HhHaBXqChL}/_buildManifest.js +0 -0
  155. /package/mcp-server/.next/static/{xBA_-Bho-qV9WoLREZ2m_ → 5ZNPgBUtuG6HhHaBXqChL}/_clientMiddlewareManifest.json +0 -0
  156. /package/mcp-server/.next/static/{xBA_-Bho-qV9WoLREZ2m_ → 5ZNPgBUtuG6HhHaBXqChL}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"dev-environment.d.ts","sourceRoot":"","sources":["../src/dev-environment.ts"],"names":[],"mappings":"AAkCA,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAyhBD,wBAAgB,uBAAuB,IAAI,MAAM,CAmBhD;AAsGD,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,uBAAuB,CAAiB;gBAEpC,OAAO,EAAE,qBAAqB;YA+D5B,mBAAmB;YAoEnB,aAAa;YAuCb,kBAAkB;IAgChC,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IAQjB,KAAK;YAiPG,WAAW;IA0GzB,OAAO,CAAC,QAAQ;IA8BhB,OAAO,CAAC,cAAc;YA2BR,cAAc;YAqPd,aAAa;IAiD3B,OAAO,CAAC,yBAAyB;YAOnB,oBAAoB;YAmJpB,gBAAgB;YAgChB,4BAA4B;YAmF5B,6BAA6B;IA+F3C,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,MAAM;IAqBd,OAAO,CAAC,6BAA6B;IAgDrC,OAAO,CAAC,uBAAuB;YAuBjB,sBAAsB;YAgBtB,kBAAkB;YA8ElB,gBAAgB;IAmF9B,OAAO,CAAC,oBAAoB;YA6Ed,cAAc;CAsJ7B;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,iBAGvE"}
1
+ {"version":3,"file":"dev-environment.d.ts","sourceRoot":"","sources":["../src/dev-environment.ts"],"names":[],"mappings":"AAkCA,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AA8VD,wBAAgB,uBAAuB,IAAI,MAAM,CAmBhD;AAsGD,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,uBAAuB,CAAiB;gBAEpC,OAAO,EAAE,qBAAqB;YA+D5B,mBAAmB;YAoEnB,aAAa;YAuCb,kBAAkB;IAgChC,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IAQjB,KAAK;YAiPG,WAAW;IA0GzB,OAAO,CAAC,QAAQ;IA8BhB,OAAO,CAAC,cAAc;YA2BR,cAAc;YA4Pd,aAAa;IAiD3B,OAAO,CAAC,yBAAyB;YAOnB,oBAAoB;YAmJpB,gBAAgB;YAgChB,4BAA4B;YAmF5B,6BAA6B;IA+F3C,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,MAAM;IAqBd,OAAO,CAAC,6BAA6B;IAgDrC,OAAO,CAAC,uBAAuB;YAuBjB,sBAAsB;YAgBtB,kBAAkB;YA8ElB,gBAAgB;IAmF9B,OAAO,CAAC,oBAAoB;YA6Ed,cAAc;CAsJ7B;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,iBAGvE"}
@@ -175,7 +175,7 @@ async function isChromeDevtoolsMcpSupported() {
175
175
  /**
176
176
  * Ensure MCP server configurations are added to project's .mcp.json (Claude Code)
177
177
  */
178
- async function ensureMcpServers(mcpPort, appPort, enableChromeDevtools, enableNextjsMcp) {
178
+ async function ensureMcpServers(mcpPort, _appPort, _enableChromeDevtools, _enableNextjsMcp) {
179
179
  try {
180
180
  const settingsPath = join(process.cwd(), ".mcp.json");
181
181
  // Read or create settings
@@ -193,6 +193,9 @@ async function ensureMcpServers(mcpPort, appPort, enableChromeDevtools, enableNe
193
193
  }
194
194
  let added = false;
195
195
  // Add dev3000 MCP server (HTTP type)
196
+ // NOTE: dev3000 now acts as an MCP orchestrator/gateway that internally
197
+ // connects to chrome-devtools and nextjs-dev MCPs, so users only need to
198
+ // configure dev3000 once!
196
199
  if (!settings.mcpServers[MCP_NAMES.DEV3000]) {
197
200
  settings.mcpServers[MCP_NAMES.DEV3000] = {
198
201
  type: "http",
@@ -200,22 +203,8 @@ async function ensureMcpServers(mcpPort, appPort, enableChromeDevtools, enableNe
200
203
  };
201
204
  added = true;
202
205
  }
203
- // Add chrome-devtools MCP server if enabled (stdio - no type needed)
204
- if (enableChromeDevtools && !settings.mcpServers[MCP_NAMES.CHROME_DEVTOOLS]) {
205
- settings.mcpServers[MCP_NAMES.CHROME_DEVTOOLS] = {
206
- command: "npx",
207
- args: ["chrome-devtools-mcp@latest", "--browserUrl", "http://127.0.0.1:9222"]
208
- };
209
- added = true;
210
- }
211
- // Add nextjs-dev MCP server if enabled (HTTP type - connects to Next.js dev server)
212
- if (enableNextjsMcp && !settings.mcpServers[MCP_NAMES.NEXTJS_DEV]) {
213
- settings.mcpServers[MCP_NAMES.NEXTJS_DEV] = {
214
- type: "http",
215
- url: `http://localhost:${appPort}/_next/mcp`
216
- };
217
- added = true;
218
- }
206
+ // REMOVED: No longer auto-configure chrome-devtools and nextjs-dev
207
+ // dev3000 MCP server now orchestrates these internally via the gateway pattern
219
208
  // Write if we added anything
220
209
  if (added) {
221
210
  writeFileSync(settingsPath, `${JSON.stringify(settings, null, 2)}\n`, "utf-8");
@@ -228,7 +217,7 @@ async function ensureMcpServers(mcpPort, appPort, enableChromeDevtools, enableNe
228
217
  /**
229
218
  * Ensure MCP server configurations are added to project's .cursor/mcp.json
230
219
  */
231
- async function ensureCursorMcpServers(mcpPort, appPort, enableChromeDevtools, enableNextjsMcp) {
220
+ async function ensureCursorMcpServers(mcpPort, _appPort, _enableChromeDevtools, _enableNextjsMcp) {
232
221
  try {
233
222
  const cursorDir = join(process.cwd(), ".cursor");
234
223
  const settingsPath = join(cursorDir, "mcp.json");
@@ -251,6 +240,8 @@ async function ensureCursorMcpServers(mcpPort, appPort, enableChromeDevtools, en
251
240
  }
252
241
  let added = false;
253
242
  // Add dev3000 MCP server
243
+ // NOTE: dev3000 now acts as an MCP orchestrator/gateway that internally
244
+ // connects to chrome-devtools and nextjs-dev MCPs
254
245
  if (!settings.mcpServers[MCP_NAMES.DEV3000]) {
255
246
  settings.mcpServers[MCP_NAMES.DEV3000] = {
256
247
  type: "http",
@@ -258,22 +249,8 @@ async function ensureCursorMcpServers(mcpPort, appPort, enableChromeDevtools, en
258
249
  };
259
250
  added = true;
260
251
  }
261
- // Add chrome-devtools MCP server if enabled
262
- if (enableChromeDevtools && !settings.mcpServers[MCP_NAMES.CHROME_DEVTOOLS]) {
263
- settings.mcpServers[MCP_NAMES.CHROME_DEVTOOLS] = {
264
- command: "npx",
265
- args: ["chrome-devtools-mcp@latest", "--browserUrl", "http://127.0.0.1:9222"]
266
- };
267
- added = true;
268
- }
269
- // Add nextjs-dev MCP server if enabled (HTTP type - connects to Next.js dev server)
270
- if (enableNextjsMcp && !settings.mcpServers[MCP_NAMES.NEXTJS_DEV]) {
271
- settings.mcpServers[MCP_NAMES.NEXTJS_DEV] = {
272
- type: "http",
273
- url: `http://localhost:${appPort}/_next/mcp`
274
- };
275
- added = true;
276
- }
252
+ // REMOVED: No longer auto-configure chrome-devtools and nextjs-dev
253
+ // dev3000 MCP server now orchestrates these internally via the gateway pattern
277
254
  // Write if we added anything
278
255
  if (added) {
279
256
  writeFileSync(settingsPath, `${JSON.stringify(settings, null, 2)}\n`, "utf-8");
@@ -287,7 +264,7 @@ async function ensureCursorMcpServers(mcpPort, appPort, enableChromeDevtools, en
287
264
  * Ensure MCP server configurations are added to project's .opencode.json
288
265
  * OpenCode uses a different structure: "mcp" instead of "mcpServers" and "type": "local" for stdio servers
289
266
  */
290
- async function ensureOpenCodeMcpServers(mcpPort, appPort, enableChromeDevtools, enableNextjsMcp) {
267
+ async function ensureOpenCodeMcpServers(mcpPort, _appPort, _enableChromeDevtools, _enableNextjsMcp) {
291
268
  try {
292
269
  const settingsPath = join(process.cwd(), ".opencode.json");
293
270
  // Read or create settings - OpenCode uses "mcp" not "mcpServers"
@@ -305,6 +282,8 @@ async function ensureOpenCodeMcpServers(mcpPort, appPort, enableChromeDevtools,
305
282
  }
306
283
  let added = false;
307
284
  // Add dev3000 MCP server - use npx with mcp-client to connect to HTTP server
285
+ // NOTE: dev3000 now acts as an MCP orchestrator/gateway that internally
286
+ // connects to chrome-devtools and nextjs-dev MCPs
308
287
  if (!settings.mcp[MCP_NAMES.DEV3000]) {
309
288
  settings.mcp[MCP_NAMES.DEV3000] = {
310
289
  type: "local",
@@ -313,24 +292,8 @@ async function ensureOpenCodeMcpServers(mcpPort, appPort, enableChromeDevtools,
313
292
  };
314
293
  added = true;
315
294
  }
316
- // Add chrome-devtools MCP server if enabled
317
- if (enableChromeDevtools && !settings.mcp[MCP_NAMES.CHROME_DEVTOOLS]) {
318
- settings.mcp[MCP_NAMES.CHROME_DEVTOOLS] = {
319
- type: "local",
320
- command: ["npx", "chrome-devtools-mcp@latest", "--browserUrl", "http://127.0.0.1:9222"],
321
- enabled: true
322
- };
323
- added = true;
324
- }
325
- // Add nextjs-dev MCP server if enabled - use npx with mcp-client for HTTP
326
- if (enableNextjsMcp && !settings.mcp[MCP_NAMES.NEXTJS_DEV]) {
327
- settings.mcp[MCP_NAMES.NEXTJS_DEV] = {
328
- type: "local",
329
- command: ["npx", "@modelcontextprotocol/inspector", `http://localhost:${appPort}/_next/mcp`],
330
- enabled: true
331
- };
332
- added = true;
333
- }
295
+ // REMOVED: No longer auto-configure chrome-devtools and nextjs-dev
296
+ // dev3000 MCP server now orchestrates these internally via the gateway pattern
334
297
  // Write if we added anything
335
298
  if (added) {
336
299
  writeFileSync(settingsPath, `${JSON.stringify(settings, null, 2)}\n`, "utf-8");
@@ -340,132 +303,8 @@ async function ensureOpenCodeMcpServers(mcpPort, appPort, enableChromeDevtools,
340
303
  // Ignore errors - settings file manipulation is optional
341
304
  }
342
305
  }
343
- /**
344
- * Clean up MCP server configurations from project's .cursor/mcp.json
345
- */
346
- async function cleanupCursorMcpServers(enableChromeDevtools, enableNextjsMcp) {
347
- try {
348
- const settingsPath = join(process.cwd(), ".cursor", "mcp.json");
349
- // Check if file exists
350
- if (!existsSync(settingsPath)) {
351
- return; // No settings file to clean up
352
- }
353
- // Read current settings
354
- const settingsContent = readFileSync(settingsPath, "utf-8");
355
- const settings = JSON.parse(settingsContent);
356
- // Ensure mcpServers structure exists
357
- if (!settings.mcpServers) {
358
- return; // No MCP servers to clean up
359
- }
360
- let removed = false;
361
- // Remove dev3000 MCP server
362
- if (settings.mcpServers[MCP_NAMES.DEV3000]) {
363
- delete settings.mcpServers[MCP_NAMES.DEV3000];
364
- removed = true;
365
- }
366
- // Remove chrome-devtools MCP server if it was enabled
367
- if (enableChromeDevtools && settings.mcpServers[MCP_NAMES.CHROME_DEVTOOLS]) {
368
- delete settings.mcpServers[MCP_NAMES.CHROME_DEVTOOLS];
369
- removed = true;
370
- }
371
- // Remove nextjs-dev MCP server if it was enabled
372
- if (enableNextjsMcp && settings.mcpServers[MCP_NAMES.NEXTJS_DEV]) {
373
- delete settings.mcpServers[MCP_NAMES.NEXTJS_DEV];
374
- removed = true;
375
- }
376
- // Only write if we actually removed something
377
- if (removed) {
378
- writeFileSync(settingsPath, `${JSON.stringify(settings, null, 2)}\n`, "utf-8");
379
- }
380
- }
381
- catch (_error) {
382
- // Ignore cleanup errors
383
- }
384
- }
385
- /**
386
- * Clean up MCP server configurations from project's .opencode.json
387
- */
388
- async function cleanupOpenCodeMcpServers(enableChromeDevtools, enableNextjsMcp) {
389
- try {
390
- const settingsPath = join(process.cwd(), ".opencode.json");
391
- // Check if file exists
392
- if (!existsSync(settingsPath)) {
393
- return; // No settings file to clean up
394
- }
395
- // Read current settings
396
- const settingsContent = readFileSync(settingsPath, "utf-8");
397
- const settings = JSON.parse(settingsContent);
398
- // Ensure mcp structure exists (OpenCode uses "mcp" not "mcpServers")
399
- if (!settings.mcp) {
400
- return; // No MCP servers to clean up
401
- }
402
- let removed = false;
403
- // Remove dev3000 MCP server
404
- if (settings.mcp[MCP_NAMES.DEV3000]) {
405
- delete settings.mcp[MCP_NAMES.DEV3000];
406
- removed = true;
407
- }
408
- // Remove chrome-devtools MCP server if it was enabled
409
- if (enableChromeDevtools && settings.mcp[MCP_NAMES.CHROME_DEVTOOLS]) {
410
- delete settings.mcp[MCP_NAMES.CHROME_DEVTOOLS];
411
- removed = true;
412
- }
413
- // Remove nextjs-dev MCP server if it was enabled
414
- if (enableNextjsMcp && settings.mcp[MCP_NAMES.NEXTJS_DEV]) {
415
- delete settings.mcp[MCP_NAMES.NEXTJS_DEV];
416
- removed = true;
417
- }
418
- // Only write if we actually removed something
419
- if (removed) {
420
- writeFileSync(settingsPath, `${JSON.stringify(settings, null, 2)}\n`, "utf-8");
421
- }
422
- }
423
- catch (_error) {
424
- // Ignore cleanup errors
425
- }
426
- }
427
- /**
428
- * Clean up MCP server configurations from project's .mcp.json (Claude Code)
429
- */
430
- async function cleanupMcpServers(enableChromeDevtools, enableNextjsMcp) {
431
- try {
432
- const settingsPath = join(process.cwd(), ".mcp.json");
433
- // Check if file exists
434
- if (!existsSync(settingsPath)) {
435
- return; // No settings file to clean up
436
- }
437
- // Read current settings
438
- const settingsContent = readFileSync(settingsPath, "utf-8");
439
- const settings = JSON.parse(settingsContent);
440
- // Ensure mcpServers structure exists
441
- if (!settings.mcpServers) {
442
- return; // No MCP servers to clean up
443
- }
444
- let removed = false;
445
- // Remove dev3000 MCP server
446
- if (settings.mcpServers[MCP_NAMES.DEV3000]) {
447
- delete settings.mcpServers[MCP_NAMES.DEV3000];
448
- removed = true;
449
- }
450
- // Remove chrome-devtools MCP server if it was enabled
451
- if (enableChromeDevtools && settings.mcpServers[MCP_NAMES.CHROME_DEVTOOLS]) {
452
- delete settings.mcpServers[MCP_NAMES.CHROME_DEVTOOLS];
453
- removed = true;
454
- }
455
- // Remove nextjs-dev MCP server if it was enabled
456
- if (enableNextjsMcp && settings.mcpServers[MCP_NAMES.NEXTJS_DEV]) {
457
- delete settings.mcpServers[MCP_NAMES.NEXTJS_DEV];
458
- removed = true;
459
- }
460
- // Only write if we actually removed something
461
- if (removed) {
462
- writeFileSync(settingsPath, `${JSON.stringify(settings, null, 2)}\n`, "utf-8");
463
- }
464
- }
465
- catch (_error) {
466
- // Ignore cleanup errors
467
- }
468
- }
306
+ // REMOVED: cleanup functions are no longer needed
307
+ // MCP config files are now kept persistent across dev3000 restarts
469
308
  export function createPersistentLogFile() {
470
309
  // Get unique project name
471
310
  const projectName = getProjectName();
@@ -946,7 +785,7 @@ export class DevEnvironment {
946
785
  console.log(chalk.cyan(`Logs: ${this.options.logFile}`));
947
786
  console.log(chalk.cyan("☝️ Give this to an AI to auto debug and fix your app\n"));
948
787
  console.log(chalk.cyan(`🌐 Your App: http://localhost:${this.options.port}`));
949
- console.log(chalk.cyan(`🤖 MCP Server: http://localhost:${this.options.mcpPort}/mcp`));
788
+ console.log(chalk.cyan(`🤖 MCP Server: http://localhost:${this.options.mcpPort}`));
950
789
  console.log(chalk.cyan(`📸 Visual Timeline: http://localhost:${this.options.mcpPort}/logs?project=${encodeURIComponent(projectName)}`));
951
790
  if (this.options.serversOnly) {
952
791
  console.log(chalk.cyan("🖥️ Servers-only mode - use Chrome extension for browser monitoring"));
@@ -1271,6 +1110,9 @@ export class DevEnvironment {
1271
1110
  }
1272
1111
  this.debugLog(`MCP server command: ${mcpCommand.join(" ")}`);
1273
1112
  this.debugLog(`MCP server cwd: ${mcpCwd}`);
1113
+ // Get CDP URL and app port for MCP orchestration
1114
+ const cdpUrl = this.cdpMonitor?.getCdpUrl() || null;
1115
+ const appPort = this.options.port;
1274
1116
  // Start MCP server as a true background singleton process
1275
1117
  this.mcpServerProcess = spawn(mcpCommand[0], mcpCommand.slice(1), {
1276
1118
  stdio: ["ignore", "pipe", "pipe"],
@@ -1281,7 +1123,9 @@ export class DevEnvironment {
1281
1123
  PORT: this.options.mcpPort,
1282
1124
  LOG_FILE_PATH: this.options.logFile, // Pass log file path to MCP server
1283
1125
  DEV3000_VERSION: this.version, // Pass version to MCP server
1284
- SCREENSHOT_DIR: this.screenshotDir // Pass screenshot directory for global installs
1126
+ SCREENSHOT_DIR: this.screenshotDir, // Pass screenshot directory for global installs
1127
+ CDP_URL: cdpUrl || "", // Pass CDP URL for chrome-devtools MCP orchestration
1128
+ APP_PORT: appPort // Pass app port for nextjs-dev MCP orchestration
1285
1129
  }
1286
1130
  });
1287
1131
  // Unref the process so it continues running after parent exits
@@ -1307,7 +1151,8 @@ export class DevEnvironment {
1307
1151
  const timestamp = new Date().toISOString();
1308
1152
  appendFileSync(mcpLogFile, `[${timestamp}] [MCP-STDERR] ${message}\n`);
1309
1153
  // Only show critical errors in stdout for debugging
1310
- if (message.includes("FATAL") || message.includes("Error:")) {
1154
+ // Exclude MCP Orchestrator connection errors (they're expected and non-critical)
1155
+ if ((message.includes("FATAL") || message.includes("Error:")) && !message.includes("[MCP Orchestrator]")) {
1311
1156
  console.error(chalk.red("[ERROR]"), message);
1312
1157
  }
1313
1158
  }
@@ -2034,10 +1879,10 @@ export class DevEnvironment {
2034
1879
  }
2035
1880
  }
2036
1881
  }
2037
- // Clean up MCP server configurations from project settings files (instant)
2038
- await cleanupMcpServers(this.chromeDevtoolsSupported, this.enableNextjsMcp);
2039
- await cleanupCursorMcpServers(this.chromeDevtoolsSupported, this.enableNextjsMcp);
2040
- await cleanupOpenCodeMcpServers(this.chromeDevtoolsSupported, this.enableNextjsMcp);
1882
+ // REMOVED: No longer clean up MCP config files on shutdown
1883
+ // This was causing Claude Code instances to crash when dev3000 was killed
1884
+ // Now we keep .mcp.json, .cursor/mcp.json, and .opencode.json configured
1885
+ // for the next dev3000 run, providing a better developer experience
2041
1886
  // Kill processes on both ports
2042
1887
  const killPortProcess = async (port, name) => {
2043
1888
  try {