dev3000 0.0.72 → 0.0.74

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 (277) hide show
  1. package/README.md +78 -30
  2. package/dist/cli.js +3 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/dev-environment.d.ts +10 -1
  5. package/dist/dev-environment.d.ts.map +1 -1
  6. package/dist/dev-environment.js +676 -6
  7. package/dist/dev-environment.js.map +1 -1
  8. package/dist/src/loading.html +1 -1
  9. package/dist/src/tui-interface-impl.tsx +35 -30
  10. package/dist/tui-interface-impl.d.ts.map +1 -1
  11. package/dist/tui-interface-impl.js +26 -20
  12. package/dist/tui-interface-impl.js.map +1 -1
  13. package/dist/tui-interface.d.ts.map +1 -1
  14. package/dist/tui-interface.js +26 -5
  15. package/dist/tui-interface.js.map +1 -1
  16. package/mcp-server/.next/BUILD_ID +1 -1
  17. package/mcp-server/.next/build-manifest.json +8 -8
  18. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  19. package/mcp-server/.next/images-manifest.json +2 -2
  20. package/mcp-server/.next/next-minimal-server.js.nft.json +1 -1
  21. package/mcp-server/.next/next-server.js.nft.json +1 -1
  22. package/mcp-server/.next/prerender-manifest.json +10 -10
  23. package/mcp-server/.next/required-server-files.json +5 -6
  24. package/mcp-server/.next/routes-manifest.json +1 -0
  25. package/mcp-server/.next/server/app/_global-error/page/build-manifest.json +6 -6
  26. package/mcp-server/.next/server/app/_global-error/page.js +8 -8
  27. package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
  28. package/mcp-server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  29. package/mcp-server/.next/server/app/_global-error.html +2 -2
  30. package/mcp-server/.next/server/app/_global-error.rsc +8 -8
  31. package/mcp-server/.next/server/app/_not-found/page/build-manifest.json +6 -6
  32. package/mcp-server/.next/server/app/_not-found/page.js +10 -10
  33. package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
  34. package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  35. package/mcp-server/.next/server/app/_not-found.html +1 -1
  36. package/mcp-server/.next/server/app/_not-found.rsc +8 -8
  37. package/mcp-server/.next/server/app/api/logs/append/route/build-manifest.json +1 -8
  38. package/mcp-server/.next/server/app/api/logs/append/route.js +4 -4
  39. package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
  40. package/mcp-server/.next/server/app/api/logs/head/route/build-manifest.json +1 -8
  41. package/mcp-server/.next/server/app/api/logs/head/route.js +4 -4
  42. package/mcp-server/.next/server/app/api/logs/head/route.js.nft.json +1 -1
  43. package/mcp-server/.next/server/app/api/logs/list/route/build-manifest.json +1 -8
  44. package/mcp-server/.next/server/app/api/logs/list/route.js +4 -4
  45. package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  46. package/mcp-server/.next/server/app/api/logs/rotate/route/build-manifest.json +1 -8
  47. package/mcp-server/.next/server/app/api/logs/rotate/route.js +5 -5
  48. package/mcp-server/.next/server/app/api/logs/rotate/route.js.nft.json +1 -1
  49. package/mcp-server/.next/server/app/api/logs/stream/route/build-manifest.json +1 -8
  50. package/mcp-server/.next/server/app/api/logs/stream/route.js +4 -4
  51. package/mcp-server/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  52. package/mcp-server/.next/server/app/api/logs/tail/route/build-manifest.json +1 -8
  53. package/mcp-server/.next/server/app/api/logs/tail/route.js +4 -4
  54. package/mcp-server/.next/server/app/api/logs/tail/route.js.nft.json +1 -1
  55. package/mcp-server/.next/server/app/api/screenshots/[filename]/route/build-manifest.json +1 -8
  56. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js +5 -5
  57. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js.nft.json +1 -1
  58. package/mcp-server/.next/server/app/api/tools/route/build-manifest.json +1 -8
  59. package/mcp-server/.next/server/app/api/tools/route.js +5 -5
  60. package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -1
  61. package/mcp-server/.next/server/app/index.html +1 -1
  62. package/mcp-server/.next/server/app/index.rsc +10 -10
  63. package/mcp-server/.next/server/app/logs/page/build-manifest.json +6 -6
  64. package/mcp-server/.next/server/app/logs/page.js +13 -13
  65. package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
  66. package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  67. package/mcp-server/.next/server/app/mcp/route/build-manifest.json +1 -8
  68. package/mcp-server/.next/server/app/mcp/route.js +6 -5
  69. package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
  70. package/mcp-server/.next/server/app/page/build-manifest.json +6 -6
  71. package/mcp-server/.next/server/app/page.js +12 -12
  72. package/mcp-server/.next/server/app/page.js.nft.json +1 -1
  73. package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
  74. package/mcp-server/.next/server/chunks/[root-of-the-server]__013bbeea._.js +7 -0
  75. package/mcp-server/.next/server/chunks/[root-of-the-server]__013bbeea._.js.map +1 -0
  76. package/mcp-server/.next/server/chunks/[root-of-the-server]__270b33b7._.js +33 -0
  77. package/mcp-server/.next/server/chunks/[root-of-the-server]__270b33b7._.js.map +1 -0
  78. package/mcp-server/.next/server/chunks/[root-of-the-server]__5580d2ea._.js +35 -0
  79. package/mcp-server/.next/server/chunks/[root-of-the-server]__5580d2ea._.js.map +1 -0
  80. package/mcp-server/.next/server/chunks/[root-of-the-server]__6fa7ea53._.js +3 -0
  81. package/mcp-server/.next/server/chunks/[root-of-the-server]__73645708._.js +11 -0
  82. package/mcp-server/.next/server/chunks/[root-of-the-server]__73645708._.js.map +1 -0
  83. package/mcp-server/.next/server/chunks/[root-of-the-server]__8fc8f497._.js +4 -0
  84. package/mcp-server/.next/server/chunks/[root-of-the-server]__8fc8f497._.js.map +1 -0
  85. package/mcp-server/.next/server/chunks/[root-of-the-server]__9c489027._.js +3 -0
  86. package/mcp-server/.next/server/chunks/[root-of-the-server]__9c489027._.js.map +1 -0
  87. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc81580c._.js +3 -0
  88. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc81580c._.js.map +1 -0
  89. package/mcp-server/.next/server/chunks/[root-of-the-server]__d1f9e389._.js +3 -0
  90. package/mcp-server/.next/server/chunks/[root-of-the-server]__d1f9e389._.js.map +1 -0
  91. package/mcp-server/.next/server/chunks/[root-of-the-server]__d200fe4a._.js +3 -0
  92. package/mcp-server/.next/server/chunks/[root-of-the-server]__d200fe4a._.js.map +1 -0
  93. package/mcp-server/.next/server/chunks/[root-of-the-server]__e2089993._.js +3 -0
  94. package/mcp-server/.next/server/chunks/[root-of-the-server]__e2089993._.js.map +1 -0
  95. package/mcp-server/.next/server/chunks/[root-of-the-server]__ffb73672._.js +3 -0
  96. package/mcp-server/.next/server/chunks/[root-of-the-server]__ffb73672._.js.map +1 -0
  97. package/mcp-server/.next/server/chunks/{0916f_next_ab257ac1._.js → d1d76_next_09a9e080._.js} +4 -4
  98. package/mcp-server/.next/server/chunks/d1d76_next_09a9e080._.js.map +1 -0
  99. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__0217e89c._.js +3 -0
  100. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__0217e89c._.js.map +1 -0
  101. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__02a8c992._.js +3 -0
  102. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__05689c01._.js +3 -0
  103. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__6518b3b8._.js.map → [root-of-the-server]__05689c01._.js.map} +1 -1
  104. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__8db775f9._.js +3 -0
  105. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__8db775f9._.js.map +1 -0
  106. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__524f1e5c._.js → [root-of-the-server]__91510608._.js} +2 -2
  107. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__91510608._.js.map +1 -0
  108. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9f07837d._.js +3 -0
  109. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9f07837d._.js.map +1 -0
  110. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__db74836a._.js +3 -0
  111. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__db74836a._.js.map +1 -0
  112. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__e5dec879._.js +3 -0
  113. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__e5dec879._.js.map +1 -0
  114. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__fb40854a._.js +3 -0
  115. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__fb40854a._.js.map +1 -0
  116. package/mcp-server/.next/server/chunks/ssr/_0b8335fc._.js +8 -0
  117. package/mcp-server/.next/server/chunks/ssr/_0b8335fc._.js.map +1 -0
  118. package/mcp-server/.next/server/chunks/ssr/_28084f73._.js +3 -0
  119. package/mcp-server/.next/server/chunks/ssr/_28084f73._.js.map +1 -0
  120. package/mcp-server/.next/server/chunks/ssr/{_8babd77a._.js → _6129d8ec._.js} +3 -3
  121. package/mcp-server/.next/server/chunks/ssr/_6129d8ec._.js.map +1 -0
  122. package/mcp-server/.next/server/chunks/ssr/_62451611._.js +3 -0
  123. package/mcp-server/.next/server/chunks/ssr/_62451611._.js.map +1 -0
  124. package/mcp-server/.next/server/chunks/ssr/_7d3d2f5f._.js +4 -0
  125. package/mcp-server/.next/server/chunks/ssr/_7d3d2f5f._.js.map +1 -0
  126. package/mcp-server/.next/server/chunks/ssr/_b15f05ee._.js +3 -0
  127. package/mcp-server/.next/server/chunks/ssr/_b15f05ee._.js.map +1 -0
  128. package/mcp-server/.next/server/chunks/ssr/_bacf0748._.js +8 -0
  129. package/mcp-server/.next/server/chunks/ssr/_bacf0748._.js.map +1 -0
  130. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_032c5c2e._.js +3 -0
  131. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_032c5c2e._.js.map +1 -0
  132. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_08b22e19._.js +3 -0
  133. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_08b22e19._.js.map +1 -0
  134. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_369453b3._.js +6 -0
  135. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_369453b3._.js.map +1 -0
  136. package/mcp-server/.next/server/chunks/ssr/{0916f_next_dist_54420d8c._.js → d1d76_next_dist_ad253fdc._.js} +3 -3
  137. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_ad253fdc._.js.map +1 -0
  138. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_b9509b36._.js +6 -0
  139. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_b9509b36._.js.map +1 -0
  140. package/mcp-server/.next/server/chunks/ssr/{0916f_next_dist_client_components_f453b63e._.js → d1d76_next_dist_client_components_6557bb14._.js} +2 -2
  141. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_client_components_6557bb14._.js.map +1 -0
  142. package/mcp-server/.next/server/chunks/ssr/{0916f_next_dist_client_components_builtin_forbidden_7b57efa5.js → d1d76_next_dist_client_components_builtin_forbidden_c162dd05.js} +2 -2
  143. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_client_components_builtin_forbidden_c162dd05.js.map +1 -0
  144. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_client_components_builtin_global-error_3d982957.js +3 -0
  145. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_client_components_builtin_global-error_3d982957.js.map +1 -0
  146. package/mcp-server/.next/server/chunks/ssr/{0916f_next_dist_client_components_builtin_unauthorized_6614f15c.js → d1d76_next_dist_client_components_builtin_unauthorized_e4f02ffd.js} +2 -2
  147. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_client_components_builtin_unauthorized_e4f02ffd.js.map +1 -0
  148. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_esm_build_templates_app-page_134a93a5.js +4 -0
  149. package/mcp-server/.next/server/chunks/ssr/d1d76_next_dist_esm_build_templates_app-page_134a93a5.js.map +1 -0
  150. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_layout_tsx_afa41767._.js +1 -1
  151. package/mcp-server/.next/server/middleware-build-manifest.js +7 -8
  152. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  153. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  154. package/mcp-server/.next/static/chunks/11ac0d0e69696c72.js +1 -0
  155. package/mcp-server/.next/static/chunks/172f6179d608c15f.js +1 -0
  156. package/mcp-server/.next/static/chunks/526448e84b58822c.js +1 -0
  157. package/mcp-server/.next/static/chunks/571fbcba7786c174.js +1 -0
  158. package/mcp-server/.next/static/chunks/{044e917a180dc576.js → 711519b5a2e53fc8.js} +1 -1
  159. package/mcp-server/.next/static/chunks/addab50e23821c6c.js +1 -0
  160. package/mcp-server/.next/static/chunks/bb8a4e5f381a85ec.js +1 -0
  161. package/mcp-server/.next/static/chunks/dbbdc51e76f4cea4.js +1 -0
  162. package/mcp-server/.next/static/chunks/e09be78bba2194fd.js +1 -0
  163. package/mcp-server/.next/static/chunks/fec3a6ddaef02b8b.js +1 -0
  164. package/mcp-server/.next/static/chunks/{turbopack-ef2dba9946ddb22a.js → turbopack-7cd5a898ed038e26.js} +2 -2
  165. package/mcp-server/app/mcp/route.ts +133 -2
  166. package/mcp-server/app/mcp/tools.ts +991 -5
  167. package/mcp-server/next.config.ts +4 -0
  168. package/mcp-server/package.json +12 -6
  169. package/package.json +4 -4
  170. package/src/tui-interface-impl.tsx +35 -30
  171. package/mcp-server/.next/app-build-manifest.json +0 -52
  172. package/mcp-server/.next/postcss.js +0 -6
  173. package/mcp-server/.next/postcss.js.map +0 -5
  174. package/mcp-server/.next/server/app/_global-error/page/app-build-manifest.json +0 -14
  175. package/mcp-server/.next/server/app/_not-found/page/app-build-manifest.json +0 -15
  176. package/mcp-server/.next/server/app/api/logs/append/route/app-build-manifest.json +0 -12
  177. package/mcp-server/.next/server/app/api/logs/head/route/app-build-manifest.json +0 -12
  178. package/mcp-server/.next/server/app/api/logs/list/route/app-build-manifest.json +0 -12
  179. package/mcp-server/.next/server/app/api/logs/rotate/route/app-build-manifest.json +0 -12
  180. package/mcp-server/.next/server/app/api/logs/stream/route/app-build-manifest.json +0 -12
  181. package/mcp-server/.next/server/app/api/logs/tail/route/app-build-manifest.json +0 -12
  182. package/mcp-server/.next/server/app/api/screenshots/[filename]/route/app-build-manifest.json +0 -12
  183. package/mcp-server/.next/server/app/api/tools/route/app-build-manifest.json +0 -12
  184. package/mcp-server/.next/server/app/logs/page/app-build-manifest.json +0 -18
  185. package/mcp-server/.next/server/app/mcp/route/app-build-manifest.json +0 -12
  186. package/mcp-server/.next/server/app/page/app-build-manifest.json +0 -17
  187. package/mcp-server/.next/server/chunks/0916f_next_ab257ac1._.js.map +0 -1
  188. package/mcp-server/.next/server/chunks/[root-of-the-server]__1b561deb._.js +0 -3
  189. package/mcp-server/.next/server/chunks/[root-of-the-server]__1b561deb._.js.map +0 -1
  190. package/mcp-server/.next/server/chunks/[root-of-the-server]__38e8baae._.js +0 -21
  191. package/mcp-server/.next/server/chunks/[root-of-the-server]__38e8baae._.js.map +0 -1
  192. package/mcp-server/.next/server/chunks/[root-of-the-server]__47380b6c._.js +0 -7
  193. package/mcp-server/.next/server/chunks/[root-of-the-server]__47380b6c._.js.map +0 -1
  194. package/mcp-server/.next/server/chunks/[root-of-the-server]__674284d7._.js +0 -3
  195. package/mcp-server/.next/server/chunks/[root-of-the-server]__674284d7._.js.map +0 -1
  196. package/mcp-server/.next/server/chunks/[root-of-the-server]__6a89b7dc._.js +0 -3
  197. package/mcp-server/.next/server/chunks/[root-of-the-server]__6a89b7dc._.js.map +0 -1
  198. package/mcp-server/.next/server/chunks/[root-of-the-server]__729bfe09._.js +0 -11
  199. package/mcp-server/.next/server/chunks/[root-of-the-server]__729bfe09._.js.map +0 -1
  200. package/mcp-server/.next/server/chunks/[root-of-the-server]__a433711a._.js +0 -3
  201. package/mcp-server/.next/server/chunks/[root-of-the-server]__a433711a._.js.map +0 -1
  202. package/mcp-server/.next/server/chunks/[root-of-the-server]__a58600d8._.js +0 -3
  203. package/mcp-server/.next/server/chunks/[root-of-the-server]__a58600d8._.js.map +0 -1
  204. package/mcp-server/.next/server/chunks/[root-of-the-server]__bc43993b._.js +0 -3
  205. package/mcp-server/.next/server/chunks/[root-of-the-server]__c464573d._.js +0 -3
  206. package/mcp-server/.next/server/chunks/[root-of-the-server]__c464573d._.js.map +0 -1
  207. package/mcp-server/.next/server/chunks/[root-of-the-server]__e6d29491._.js +0 -4
  208. package/mcp-server/.next/server/chunks/[root-of-the-server]__e6d29491._.js.map +0 -1
  209. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_54420d8c._.js.map +0 -1
  210. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_927c15f3._.js +0 -3
  211. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_927c15f3._.js.map +0 -1
  212. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_c17417af._.js +0 -3
  213. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_c17417af._.js.map +0 -1
  214. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_c724e947._.js +0 -6
  215. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_c724e947._.js.map +0 -1
  216. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_builtin_forbidden_7b57efa5.js.map +0 -1
  217. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_builtin_global-error_118601bd.js +0 -3
  218. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_builtin_global-error_118601bd.js.map +0 -1
  219. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_builtin_unauthorized_6614f15c.js.map +0 -1
  220. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_client_components_f453b63e._.js.map +0 -1
  221. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_esm_87a80014._.js +0 -6
  222. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_esm_87a80014._.js.map +0 -1
  223. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_esm_build_templates_app-page_25a3dd8d.js +0 -4
  224. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_esm_build_templates_app-page_25a3dd8d.js.map +0 -1
  225. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__224ddd99._.js +0 -3
  226. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__224ddd99._.js.map +0 -1
  227. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__2cdf0446._.js +0 -3
  228. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__2cdf0446._.js.map +0 -1
  229. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__524f1e5c._.js.map +0 -1
  230. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__6518b3b8._.js +0 -3
  231. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__73b7df71._.js +0 -3
  232. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__73b7df71._.js.map +0 -1
  233. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__83ee047c._.js +0 -3
  234. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__83ee047c._.js.map +0 -1
  235. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__b2efa505._.js +0 -3
  236. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__b2efa505._.js.map +0 -1
  237. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__d9cb0b6d._.js +0 -3
  238. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__d9cb0b6d._.js.map +0 -1
  239. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__db132681._.js +0 -3
  240. package/mcp-server/.next/server/chunks/ssr/_188bfe33._.js +0 -6
  241. package/mcp-server/.next/server/chunks/ssr/_188bfe33._.js.map +0 -1
  242. package/mcp-server/.next/server/chunks/ssr/_3a061fbf._.js +0 -4
  243. package/mcp-server/.next/server/chunks/ssr/_3a061fbf._.js.map +0 -1
  244. package/mcp-server/.next/server/chunks/ssr/_8babd77a._.js.map +0 -1
  245. package/mcp-server/.next/server/chunks/ssr/_9d670a6b._.js +0 -5
  246. package/mcp-server/.next/server/chunks/ssr/_9d670a6b._.js.map +0 -1
  247. package/mcp-server/.next/server/chunks/ssr/_d858c4cd._.js +0 -3
  248. package/mcp-server/.next/server/chunks/ssr/_d858c4cd._.js.map +0 -1
  249. package/mcp-server/.next/server/chunks/ssr/_dae9c1d5._.js +0 -8
  250. package/mcp-server/.next/server/chunks/ssr/_dae9c1d5._.js.map +0 -1
  251. package/mcp-server/.next/server/chunks/ssr/_f03e80a8._.js +0 -6
  252. package/mcp-server/.next/server/chunks/ssr/_f03e80a8._.js.map +0 -1
  253. package/mcp-server/.next/static/chunks/1415a83da347ea73.js +0 -1
  254. package/mcp-server/.next/static/chunks/14ca28aed9ba7e16.js +0 -1
  255. package/mcp-server/.next/static/chunks/259312562b58ea20.js +0 -5
  256. package/mcp-server/.next/static/chunks/37a3ca444b4e0ebc.js +0 -1
  257. package/mcp-server/.next/static/chunks/37f62e06d680d8df.js +0 -1
  258. package/mcp-server/.next/static/chunks/40b55f6f752f90a1.js +0 -1
  259. package/mcp-server/.next/static/chunks/5a5edc75ee7e7de4.js +0 -1
  260. package/mcp-server/.next/static/chunks/5dd333b6181425ad.js +0 -1
  261. package/mcp-server/.next/static/chunks/6839f59cc7f3e68c.js +0 -1
  262. package/mcp-server/.next/static/chunks/7a1b61971931d3f6.js +0 -1
  263. package/mcp-server/.next/static/chunks/881ec25f9292cb32.js +0 -1
  264. package/mcp-server/.next/static/chunks/8a5ef92054eb3f68.js +0 -1
  265. package/mcp-server/.next/static/chunks/af081359d0245052.js +0 -5
  266. package/mcp-server/.next/static/chunks/b137bfc92ad8bec0.js +0 -1
  267. package/mcp-server/.next/static/chunks/c5f8464bc8083ee7.js +0 -1
  268. package/mcp-server/.next/static/chunks/eab992a4c8e8981a.js +0 -1
  269. package/mcp-server/.next/static/chunks/turbopack-aef1414f7c590584.js +0 -3
  270. package/mcp-server/.next/static/chunks/turbopack-e808877bd413e182.js +0 -3
  271. package/mcp-server/.next/webpack-loaders.js +0 -6
  272. package/mcp-server/.next/webpack-loaders.js.map +0 -5
  273. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__bc43993b._.js.map → [root-of-the-server]__6fa7ea53._.js.map} +0 -0
  274. /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__db132681._.js.map → [root-of-the-server]__02a8c992._.js.map} +0 -0
  275. /package/mcp-server/.next/static/{3E55dEq7tPut9JesZEs2c → e3oE33k8Pj7aB0H8XMR1s}/_buildManifest.js +0 -0
  276. /package/mcp-server/.next/static/{3E55dEq7tPut9JesZEs2c → e3oE33k8Pj7aB0H8XMR1s}/_clientMiddlewareManifest.json +0 -0
  277. /package/mcp-server/.next/static/{3E55dEq7tPut9JesZEs2c → e3oE33k8Pj7aB0H8XMR1s}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33323,(e,t,r)=>{"use strict";function n(e){let{widthInt:t,heightInt:r,blurWidth:n,blurHeight:s,blurDataURL:l,objectFit:i}=e,o=n?40*n:t,a=s?40*s:r,c=o&&a?"viewBox='0 0 "+o+" "+a+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+c+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(c?"none":"contain"===i?"xMidYMid":"cover"===i?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+l+"'/%3E%3C/svg%3E"}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},95827,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{VALID_LOADERS:function(){return n},imageConfigDefault:function(){return s}});let n=["default","imgix","cloudinary","akamai","custom"],s={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},76154,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return a}}),e.r(95299);let n=e.r(33323),s=e.r(95827),l=["-moz-initial","fill","none","scale-down",void 0];function i(e){return void 0!==e.default}function o(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function a(e,t){var r,a;let c,d,u,{src:m,sizes:p,unoptimized:x=!1,priority:f=!1,preload:g=!1,loading:h,className:b,quality:v,width:N,height:y,fill:j=!1,style:O,overrideSrc:C,onLoad:E,onLoadingComplete:R,placeholder:w="empty",blurDataURL:S,fetchPriority:k,decoding:_="async",layout:I,objectFit:L,objectPosition:T,lazyBoundary:A,lazyRoot:P,...D}=e,{imgConf:M,showAltText:F,blurComplete:B,defaultLoader:z}=t,G=M||s.imageConfigDefault;if("allSizes"in G)c=G;else{let e=[...G.deviceSizes,...G.imageSizes].sort((e,t)=>e-t),t=G.deviceSizes.sort((e,t)=>e-t),n=null==(r=G.qualities)?void 0:r.sort((e,t)=>e-t);c={...G,allSizes:e,deviceSizes:t,qualities:n}}if(void 0===z)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let U=D.loader||z;delete D.loader,delete D.srcSet;let W="__next_img_default"in U;if(W){if("custom"===c.loader)throw Object.defineProperty(Error('Image with src "'+m+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=U;U=t=>{let{config:r,...n}=t;return e(n)}}if(I){"fill"===I&&(j=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[I];e&&(O={...O,...e});let t={responsive:"100vw",fill:"100vw"}[I];t&&!p&&(p=t)}let H="",V=o(N),K=o(y);if((a=m)&&"object"==typeof a&&(i(a)||void 0!==a.src)){let e=i(m)?m.default:m;if(!e.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!e.height||!e.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(d=e.blurWidth,u=e.blurHeight,S=S||e.blurDataURL,H=e.src,!j)if(V||K){if(V&&!K){let t=V/e.width;K=Math.round(e.height*t)}else if(!V&&K){let t=K/e.height;V=Math.round(e.width*t)}}else V=e.width,K=e.height}let q=!f&&!g&&("lazy"===h||void 0===h);(!(m="string"==typeof m?m:H)||m.startsWith("data:")||m.startsWith("blob:"))&&(x=!0,q=!1),c.unoptimized&&(x=!0),W&&!c.dangerouslyAllowSVG&&m.split("?",1)[0].endsWith(".svg")&&(x=!0);let $=o(v),X=Object.assign(j?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:L,objectPosition:T}:{},F?{}:{color:"transparent"},O),J=B||"empty"===w?null:"blur"===w?'url("data:image/svg+xml;charset=utf-8,'+(0,n.getImageBlurSvg)({widthInt:V,heightInt:K,blurWidth:d,blurHeight:u,blurDataURL:S||"",objectFit:X.objectFit})+'")':'url("'+w+'")',Y=l.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,Q=J?{backgroundSize:Y,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:J}:{},Z=function(e){let{config:t,src:r,unoptimized:n,width:s,quality:l,sizes:i,loader:o}=e;if(n)return{src:r,srcSet:void 0,sizes:void 0};let{widths:a,kind:c}=function(e,t,r){let{deviceSizes:n,allSizes:s}=e;if(r){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let n;n=e.exec(r);)t.push(parseInt(n[2]));if(t.length){let e=.01*Math.min(...t);return{widths:s.filter(t=>t>=n[0]*e),kind:"w"}}return{widths:s,kind:"w"}}return"number"!=typeof t?{widths:n,kind:"w"}:{widths:[...new Set([t,2*t].map(e=>s.find(t=>t>=e)||s[s.length-1]))],kind:"x"}}(t,s,i),d=a.length-1;return{sizes:i||"w"!==c?i:"100vw",srcSet:a.map((e,n)=>o({config:t,src:r,quality:l,width:e})+" "+("w"===c?e:n+1)+c).join(", "),src:o({config:t,src:r,quality:l,width:a[d]})}}({config:c,src:m,unoptimized:x,width:V,quality:$,sizes:p,loader:U}),ee=q?"lazy":h;return{props:{...D,loading:ee,fetchPriority:k,width:V,height:K,decoding:_,className:b,style:{...X,...Q},sizes:Z.sizes,srcSet:Z.srcSet,src:C||Z.src},meta:{unoptimized:x,preload:g||f,placeholder:w,fill:j}}}},33360,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(72938),s="undefined"==typeof window,l=s?()=>{}:n.useLayoutEffect,i=s?()=>{}:n.useEffect;function o(e){let{headManager:t,reduceComponentsToState:r}=e;function o(){if(t&&t.mountedInstances){let s=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(s,e))}}if(s){var a;null==t||null==(a=t.mountedInstances)||a.add(e.children),o()}return l(()=>{var r;return null==t||null==(r=t.mountedInstances)||r.add(e.children),()=>{var r;null==t||null==(r=t.mountedInstances)||r.delete(e.children)}}),l(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),i(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},85487,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"AmpStateContext",{enumerable:!0,get:function(){return n}});let n=e.r(81258)._(e.r(72938)).default.createContext({})},57883,(e,t,r)=>{"use strict";function n(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isInAmpMode",{enumerable:!0,get:function(){return n}})},89454,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return f},defaultHead:function(){return u}});let n=e.r(81258),s=e.r(44066),l=e.r(54610),i=s._(e.r(72938)),o=n._(e.r(33360)),a=e.r(85487),c=e.r(30741),d=e.r(57883);function u(e){void 0===e&&(e=!1);let t=[(0,l.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function m(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===i.default.Fragment?e.concat(i.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(95299);let p=["name","httpEquiv","charSet","itemProp"];function x(e,t){let{inAmpMode:r}=t;return e.reduce(m,[]).reverse().concat(u(r).reverse()).filter(function(){let e=new Set,t=new Set,r=new Set,n={};return s=>{let l=!0,i=!1;if(s.key&&"number"!=typeof s.key&&s.key.indexOf("$")>0){i=!0;let t=s.key.slice(s.key.indexOf("$")+1);e.has(t)?l=!1:e.add(t)}switch(s.type){case"title":case"base":t.has(s.type)?l=!1:t.add(s.type);break;case"meta":for(let e=0,t=p.length;e<t;e++){let t=p[e];if(s.props.hasOwnProperty(t))if("charSet"===t)r.has(t)?l=!1:r.add(t);else{let e=s.props[t],r=n[t]||new Set;("name"!==t||!i)&&r.has(e)?l=!1:(r.add(e),n[t]=r)}}}return l}}()).reverse().map((e,t)=>{let r=e.key||t;return i.default.cloneElement(e,{key:r})})}let f=function(e){let{children:t}=e,r=(0,i.useContext)(a.AmpStateContext),n=(0,i.useContext)(c.HeadManagerContext);return(0,l.jsx)(o.default,{reduceComponentsToState:x,headManager:n,inAmpMode:(0,d.isInAmpMode)(r),children:t})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},64721,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return l}});let n=e.r(81258)._(e.r(72938)),s=e.r(95827),l=n.default.createContext(s.imageConfigDefault)},8946,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return n}});let n=e.r(81258)._(e.r(72938)).default.createContext(null)},24440,(e,t,r)=>{"use strict";function n(e,t){var r;let n=e||75;return(null==t||null==(r=t.qualities)?void 0:r.length)?t.qualities.reduce((e,t)=>Math.abs(t-n)<Math.abs(e-n)?t:e,0):n}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return n}})},20237,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let n=e.r(24440);function s(e){let{config:t,src:r,width:s,quality:l}=e,i=(0,n.findClosestQuality)(l,t);return t.path+"?url="+encodeURIComponent(r)+"&w="+s+"&q="+i+(r.startsWith("/_next/static/media/"),"")}s.__next_img_default=!0;let l=s},77708,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return N}});let n=e.r(81258),s=e.r(44066),l=e.r(54610),i=s._(e.r(72938)),o=n._(e.r(457)),a=n._(e.r(89454)),c=e.r(76154),d=e.r(95827),u=e.r(64721);e.r(95299);let m=e.r(8946),p=n._(e.r(20237)),x=e.r(33830),f={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function g(e,t,r,n,s,l,i){let o=null==e?void 0:e.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&s(!0),null==r?void 0:r.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,s=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>s,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{s=!0,t.stopPropagation()}})}(null==n?void 0:n.current)&&n.current(e)}}))}function h(e){return i.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let b=(0,i.forwardRef)((e,t)=>{let{src:r,srcSet:n,sizes:s,height:o,width:a,decoding:c,className:d,style:u,fetchPriority:m,placeholder:p,loading:f,unoptimized:b,fill:v,onLoadRef:N,onLoadingCompleteRef:y,setBlurComplete:j,setShowAltText:O,sizesInput:C,onLoad:E,onError:R,...w}=e,S=(0,i.useCallback)(e=>{e&&(R&&(e.src=e.src),e.complete&&g(e,p,N,y,j,b,C))},[r,p,N,y,j,R,b,C]),k=(0,x.useMergedRef)(t,S);return(0,l.jsx)("img",{...w,...h(m),loading:f,width:a,height:o,decoding:c,"data-nimg":v?"fill":"1",className:d,style:u,sizes:s,srcSet:n,src:r,ref:k,onLoad:e=>{g(e.currentTarget,p,N,y,j,b,C)},onError:e=>{O(!0),"empty"!==p&&j(!0),R&&R(e)}})});function v(e){let{isAppRouter:t,imgAttributes:r}=e,n={as:"image",imageSrcSet:r.srcSet,imageSizes:r.sizes,crossOrigin:r.crossOrigin,referrerPolicy:r.referrerPolicy,...h(r.fetchPriority)};return t&&o.default.preload?(o.default.preload(r.src,n),null):(0,l.jsx)(a.default,{children:(0,l.jsx)("link",{rel:"preload",href:r.srcSet?void 0:r.src,...n},"__nimg-"+r.src+r.srcSet+r.sizes)})}let N=(0,i.forwardRef)((e,t)=>{let r=(0,i.useContext)(m.RouterContext),n=(0,i.useContext)(u.ImageConfigContext),s=(0,i.useMemo)(()=>{var e;let t=f||n||d.imageConfigDefault,r=[...t.deviceSizes,...t.imageSizes].sort((e,t)=>e-t),s=t.deviceSizes.sort((e,t)=>e-t),l=null==(e=t.qualities)?void 0:e.sort((e,t)=>e-t);return{...t,allSizes:r,deviceSizes:s,qualities:l}},[n]),{onLoad:o,onLoadingComplete:a}=e,x=(0,i.useRef)(o);(0,i.useEffect)(()=>{x.current=o},[o]);let g=(0,i.useRef)(a);(0,i.useEffect)(()=>{g.current=a},[a]);let[h,N]=(0,i.useState)(!1),[y,j]=(0,i.useState)(!1),{props:O,meta:C}=(0,c.getImgProps)(e,{defaultLoader:p.default,imgConf:s,blurComplete:h,showAltText:y});return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(b,{...O,unoptimized:C.unoptimized,placeholder:C.placeholder,fill:C.fill,onLoadRef:x,onLoadingCompleteRef:g,setBlurComplete:N,setShowAltText:j,sizesInput:e.sizes,ref:t}),C.preload?(0,l.jsx)(v,{isAppRouter:!r,imgAttributes:O}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},46568,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return a},getImageProps:function(){return o}});let n=e.r(81258),s=e.r(76154),l=e.r(77708),i=n._(e.r(20237));function o(e){let{props:t}=(0,s.getImgProps)(e,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let a=l.Image},91075,(e,t,r)=>{t.exports=e.r(46568)},64697,(e,t,r)=>{t.exports=e.r(31502)},54735,e=>{"use strict";var t=e.i(54610),r=e.i(62772),n=e.i(91075),s=e.i(64697),l=e.i(72938),i=e.i(68860),o=e.i(54768);let a={BROWSER:"#00CED1",SERVER:"#32CD32",NETWORK:"#4A7C7E",CONSOLE_ERROR:"#FF6B6B",CONSOLE_WARN:"#FFA500",CONSOLE_INFO:"#87CEEB",CONSOLE_LOG:"#B0B0B0",CONSOLE_DEBUG:"#9370DB",SCREENSHOT:"#FF69B4",PAGE:"#98FB98",DOM:"#DDA0DD",CDP:"#F0E68C",ERROR:"#FF6B6B",CRITICAL_ERROR:"#DC143C",DEFAULT:"#A0A0A0"};function c(e){return[a.CONSOLE_INFO,a.SCREENSHOT,a.PAGE,a.DOM,a.CDP].includes(e)?"#000":"#FFF"}function d(e){let t=/\[(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z|\d{2}:\d{2}:\d{2}\.\d{3})\] \[([^\]]+)\] /,r=[],n=e.split("\n"),s=null;for(let e of n){if(!e.trim())continue;let n=e.match(t);if(n){var l;let t,i;s&&r.push(s);let[o,a,c]=n,d=e.substring(o.length),u=/^TAB-\d+\.\d+$/.test(c),m=c,p=d;if(u){t=c;let e=d.match(/^\[([^\]]+)\] /);if(e&&(m=e[1],(p=d.substring(e[0].length)).includes("User-Agent:"))){let e=p.match(/User-Agent: ([^,\n]+)/);e&&(i=e[1])}}let x=null==(l=p.match(/\[SCREENSHOT\] ([^\s[]+)/))?void 0:l[1],f=function(e){let t=e.match(/^\[CONSOLE LOG\] (.+)$/);if(!t)return e;let r=t[1];if(!r.includes("%c"))return e;let n=r;return n=(n=(n=n.replace(/%c/g,"")).replace(/\s+color:\s*[^{}\n]*?(?=\s*[{[]|$)/g,"")).replace(/\s+/g," ").trim(),"[CONSOLE LOG] ".concat(n)}(p);if((f=f.replace(/ \[CHROME_EXTENSION\]$/,"")).includes("[Network.webSocketFrameSent]")||f.includes("[Network.webSocketFrameReceived]")||f.includes("[Network.webSocketFrame")||f.includes("webSocketDebuggerUrl")&&f.includes("localhost")||f.includes("[NETWORK")&&f.includes("__PAGE__")&&f.includes("refresh")){s=null;continue}let g=a;if(/^\d{2}:\d{2}:\d{2}\.\d{3}$/.test(a)){let e=new Date,[t,r,n]=a.split(":"),[s,l]=n.split(".");e.setHours(parseInt(t,10),parseInt(r,10),parseInt(s,10),parseInt(l,10)),g=e.toISOString()}s={timestamp:g,source:m,message:f,screenshot:x,original:e,tabIdentifier:t,userAgent:i}}else s&&(s.message+="\n".concat(e),s.original+="\n".concat(e))}return s&&r.push(s),r}function u(e){let n,s=(0,r.c)(6),{url:i,maxLength:o}=e,a=void 0===o?60:o,[c,d]=(0,l.useState)(!1);if(i.length<=a){let e;return s[0]!==i?(e=(0,t.jsx)("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:i}),s[0]=i,s[1]=e):e=s[1],e}let u="".concat(i.substring(0,a),"...");return s[2]!==c||s[3]!==u||s[4]!==i?(n=(0,t.jsx)("span",{className:"inline-block",children:c?(0,t.jsxs)("span",{children:[(0,t.jsx)("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:i}),(0,t.jsx)("button",{type:"button",onClick:()=>d(!1),className:"ml-2 text-xs text-muted-foreground hover:text-foreground px-1 py-0.5 rounded hover:bg-muted",children:"[collapse]"})]}):(0,t.jsxs)("span",{children:[(0,t.jsx)("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:u}),(0,t.jsx)("button",{type:"button",onClick:()=>d(!0),className:"ml-1 text-xs text-muted-foreground hover:text-foreground px-1 py-0.5 rounded hover:bg-muted",children:"[expand]"})]})}),s[2]=c,s[3]=u,s[4]=i,s[5]=n):n=s[5],n}function m(e){let{content:r}=e,[n,s]=(0,l.useState)(!1);try{let e=JSON.parse(r);if(e&&"object"==typeof e&&"object"===e.type&&e.properties){let r=e.properties,l=e.description||"Object",i=e.overflow;return(0,t.jsxs)("div",{className:"inline-block",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>s(!n),className:"inline-flex items-center gap-1 text-blue-600 hover:text-blue-800 font-mono text-sm",children:[(0,t.jsx)("svg",{className:"w-3 h-3 transition-transform ".concat(n?"rotate-90":""),fill:"currentColor",viewBox:"0 0 20 20",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 111.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})}),(0,t.jsx)("span",{className:"text-purple-600",children:l}),!n&&(0,t.jsxs)("span",{className:"text-gray-500",children:[i?"...":""," ","{",r.slice(0,3).map((e,r)=>(0,t.jsxs)("span",{children:[r>0&&", ",(0,t.jsx)("span",{className:"text-red-600",children:e.name}),":",(0,t.jsx)("span",{className:"text-blue-600",children:"string"===e.type?'"'.concat(e.value,'"'):"number"===e.type?e.value:"object"===e.type?"array"===e.subtype?e.value:"{...}":e.value})]},"".concat(e.name,"-").concat(r))),r.length>3&&", ...","}"]})]}),n&&(0,t.jsx)("div",{className:"mt-1 ml-4 border-l-2 border-gray-200 pl-3",children:(0,t.jsx)("div",{className:"font-mono text-sm",children:(0,t.jsxs)("div",{className:"text-gray-600",children:[l," ","{",(0,t.jsxs)("div",{className:"ml-4",children:[r.map((e,n)=>(0,t.jsxs)("div",{className:"py-0.5",children:[(0,t.jsx)("span",{className:"text-red-600",children:e.name}),(0,t.jsx)("span",{className:"text-gray-500",children:": "}),(0,t.jsx)("span",{className:"string"===e.type?"text-green-600":"number"===e.type?"text-blue-600":"object"===e.type?"text-purple-600":"text-orange-600",children:"string"===e.type?'"'.concat(String(e.value),'"'):"number"===e.type?String(e.value):"object"===e.type?"array"===e.subtype?String(e.value):"{...}":String(e.value)}),n<r.length-1&&(0,t.jsx)("span",{className:"text-gray-500",children:","})]},"".concat(e.name,"-").concat(n))),i&&(0,t.jsx)("div",{className:"text-gray-500 italic",children:"... and more properties"})]}),(0,t.jsx)("div",{className:"text-gray-600",children:"}"})]})})})]})}return(0,t.jsxs)("div",{className:"inline-block",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>s(!n),className:"inline-flex items-center gap-1 text-blue-600 hover:text-blue-800 font-mono text-sm",children:[(0,t.jsx)("svg",{className:"w-3 h-3 transition-transform ".concat(n?"rotate-90":""),fill:"currentColor",viewBox:"0 0 20 20",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 111.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})}),(0,t.jsx)("span",{className:"text-purple-600",children:"Object"}),!n&&(0,t.jsxs)("span",{className:"text-gray-500",children:["{","...","}"]})]}),n&&(0,t.jsx)("div",{className:"mt-1 ml-4 border-l-2 border-gray-200 pl-3",children:(0,t.jsx)("pre",{className:"font-mono text-sm text-foreground whitespace-pre-wrap",children:JSON.stringify(e,null,2)})})]})}catch(e){return(0,t.jsx)("span",{children:r})}}function p(e){let s,l,i,o,d,p,h,b,v,N,y,j,O,C,E,R,w,S,k,_=(0,r.c)(54),{entry:I,darkMode:L}=e;_[0]!==I.message?(s=function(e){return e.includes("[INTERACTION]")?{type:"INTERACTION",backgroundColor:a.CONSOLE_DEBUG,textColor:c(a.CONSOLE_DEBUG)}:e.includes("[CONSOLE ERROR]")?{type:"CONSOLE ERROR",backgroundColor:a.CONSOLE_ERROR,textColor:c(a.CONSOLE_ERROR)}:e.includes("[CONSOLE WARN]")?{type:"CONSOLE WARN",backgroundColor:a.CONSOLE_WARN,textColor:c(a.CONSOLE_WARN)}:e.includes("[CONSOLE INFO]")?{type:"CONSOLE INFO",backgroundColor:a.CONSOLE_INFO,textColor:c(a.CONSOLE_INFO)}:e.includes("[CONSOLE LOG]")?{type:"CONSOLE LOG",backgroundColor:a.CONSOLE_LOG,textColor:c(a.CONSOLE_LOG)}:e.includes("[CONSOLE DEBUG]")?{type:"CONSOLE DEBUG",backgroundColor:a.CONSOLE_DEBUG,textColor:c(a.CONSOLE_DEBUG)}:e.includes("[SCREENSHOT]")?{type:"SCREENSHOT",backgroundColor:a.SCREENSHOT,textColor:c(a.SCREENSHOT)}:e.includes("[NAVIGATION]")||e.includes("[PAGE]")?{type:"PAGE",backgroundColor:a.PAGE,textColor:c(a.PAGE)}:e.includes("[DOM]")?{type:"DOM",backgroundColor:a.DOM,textColor:c(a.DOM)}:e.includes("[CDP]")?{type:"CDP",backgroundColor:a.CDP,textColor:c(a.CDP)}:e.includes("[NETWORK]")?{type:"NETWORK",backgroundColor:a.NETWORK,textColor:c(a.NETWORK)}:e.includes("[ERROR]")||e.includes("[PAGE ERROR]")||e.includes("[NETWORK ERROR]")?{type:"ERROR",backgroundColor:a.ERROR,textColor:c(a.ERROR)}:e.includes("[CRITICAL ERROR]")?{type:"CRITICAL ERROR",backgroundColor:a.CRITICAL_ERROR,textColor:c(a.CRITICAL_ERROR)}:{type:"DEFAULT",color:"bg-gray-50 dark:bg-gray-800/50 border-gray-200 dark:border-gray-700",backgroundColor:a.DEFAULT,textColor:c(a.DEFAULT)}}(I.message),_[0]=I.message,_[1]=s):s=_[1];let T=s;_[2]!==T.backgroundColor||_[3]!==T.textColor?(l=e=>{let r,n=/\[([A-Z\s]+)\]/g,s=/\{[^{}]*(?:\{[^{}]*\}[^{}]*)*\}/g,l=/(https?:\/\/[^\s]+)/g,i=[],o=0;for(r=n.exec(e);null!==r;)r.index>o&&i.push(e.slice(o,r.index)),i.push((0,t.jsx)("span",{className:"inline-block px-1.5 py-0.5 rounded text-xs font-medium mr-1",style:{backgroundColor:T.backgroundColor,color:T.textColor},children:r[1]},r.index)),o=r.index+r[0].length,r=n.exec(e);return i.push(...((e,r)=>{let n=[...e.matchAll(s)],i=[...e.matchAll(l)],o=[...n.map(g),...i.map(f)];if(o.sort(x),0===o.length)return[e];let a=[],c=0;return o.forEach((n,s)=>{var l,i,o;(null!=(l=n.index)?l:0)>c&&a.push(e.slice(c,null!=(i=n.index)?i:0)),"json"===n.type?a.push((0,t.jsx)(m,{content:n[0]},"".concat(r,"-json-").concat(n.index,"-").concat(n[0].slice(0,20)))):"url"===n.type&&a.push((0,t.jsx)(u,{url:n[0]},"".concat(r,"-url-").concat(n.index,"-").concat(n[0]))),c=(null!=(o=n.index)?o:0)+n[0].length}),c<e.length&&a.push(e.slice(c)),a})(e.slice(o),"main")),i.length>0?i:e},_[2]=T.backgroundColor,_[3]=T.textColor,_[4]=l):l=_[4];let A=l;_[5]!==L||_[6]!==T.type?(i=()=>{let e=T.type;if(L)switch(e){case"INTERACTION":case"CONSOLE DEBUG":case"DOM":return{backgroundColor:"rgba(88, 28, 135, 0.3)"};case"CONSOLE ERROR":case"ERROR":case"CRITICAL ERROR":return{backgroundColor:"rgba(127, 29, 29, 0.3)"};case"CONSOLE WARN":case"CDP":case"NETWORK":return{backgroundColor:"rgba(133, 77, 14, 0.3)"};case"CONSOLE INFO":case"SCREENSHOT":return{backgroundColor:"rgba(30, 58, 138, 0.3)"};case"PAGE":return{backgroundColor:"rgba(20, 83, 45, 0.3)"};default:return{backgroundColor:"rgba(17, 24, 39, 0.3)"}}switch(e){case"INTERACTION":case"CONSOLE DEBUG":case"DOM":return{backgroundColor:"rgba(250, 245, 255, 0.5)"};case"CONSOLE ERROR":case"ERROR":case"CRITICAL ERROR":return{backgroundColor:"rgba(254, 242, 242, 0.5)"};case"CONSOLE WARN":case"CDP":case"NETWORK":return{backgroundColor:"rgba(254, 252, 232, 0.5)"};case"CONSOLE INFO":case"SCREENSHOT":return{backgroundColor:"rgba(239, 246, 255, 0.5)"};case"PAGE":return{backgroundColor:"rgba(240, 253, 244, 0.5)"};default:return{backgroundColor:"transparent"}}},_[5]=L,_[6]=T.type,_[7]=i):i=_[7];let P=i,D="border-l-4 ".concat((()=>{switch(T.type){case"INTERACTION":case"CONSOLE DEBUG":case"DOM":return"border-purple-200 dark:border-purple-800";case"CONSOLE ERROR":case"ERROR":case"CRITICAL ERROR":return"border-red-200 dark:border-red-800";case"CONSOLE WARN":case"CDP":case"NETWORK":return"border-yellow-200 dark:border-yellow-800";case"CONSOLE INFO":case"SCREENSHOT":return"border-blue-200 dark:border-blue-800";case"PAGE":return"border-green-200 dark:border-green-800";default:return"border-gray-200 dark:border-gray-700"}})()," pl-4 py-2");_[8]!==P?(o=P(),_[8]=P,_[9]=o):o=_[9],_[10]!==I.timestamp?(d=new Date(I.timestamp).toLocaleTimeString(),_[10]=I.timestamp,_[11]=d):d=_[11],_[12]!==d?(p=(0,t.jsx)("div",{className:"text-xs text-muted-foreground font-mono whitespace-nowrap pt-1",children:d}),_[12]=d,_[13]=p):p=_[13];let M="SERVER"===I.source?a.SERVER:a.BROWSER;return _[14]!==M?(h={backgroundColor:M,color:"#000"},_[14]=M,_[15]=h):h=_[15],_[16]!==I.source||_[17]!==h?(b=(0,t.jsx)("div",{className:"px-2 py-1 rounded text-xs font-medium whitespace-nowrap",style:h,children:I.source}),_[16]=I.source,_[17]=h,_[18]=b):b=_[18],_[19]!==I.message||_[20]!==A?(v=A(I.message),_[19]=I.message,_[20]=A,_[21]=v):v=_[21],_[22]!==v?(N=(0,t.jsx)("div",{className:"flex-1 min-w-0",children:v}),_[22]=v,_[23]=N):N=_[23],_[24]!==I.tabIdentifier?(y=I.tabIdentifier&&(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-muted text-muted-foreground",children:I.tabIdentifier}),_[24]=I.tabIdentifier,_[25]=y):y=_[25],_[26]!==I.userAgent?(j=I.userAgent&&(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-100 dark:bg-green-800 text-green-700 dark:text-green-200",children:I.userAgent.includes("Chrome")?"Chrome":I.userAgent.includes("Firefox")?"Firefox":I.userAgent.includes("Safari")?"Safari":I.userAgent.includes("Edge")?"Edge":"Browser"}),_[26]=I.userAgent,_[27]=j):j=_[27],_[28]!==I.message||_[29]!==I.source||_[30]!==I.tabIdentifier?(O="BROWSER"===I.source&&(()=>{let e=I.message.includes("[PLAYWRIGHT]"),r=I.message.includes("[CHROME_EXTENSION]")||I.tabIdentifier;return e?(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-purple-100 dark:bg-purple-800 text-purple-700 dark:text-purple-200",children:"šŸŽ­ Playwright"}):r?(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-100 dark:bg-blue-800 text-blue-700 dark:text-blue-200",children:"🧩 Extension"}):null})(),_[28]=I.message,_[29]=I.source,_[30]=I.tabIdentifier,_[31]=O):O=_[31],_[32]!==I.message||_[33]!==I.source?(C="SERVER"===I.source&&(()=>{let e=I.message.toLowerCase();if(e.includes("ready on http://localhost")||e.includes("ready in ")||e.includes("next.js")||e.includes("compiled client and server"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-black text-white",children:"ā–² Next.js"});if(e.includes("nuxt")||e.includes("nitro")&&e.includes("http://localhost")||e.includes("universal mode")||e.includes("spa mode"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-500 text-white",children:"šŸ’š Nuxt"});if(e.includes("vue-cli-service")||e.includes("vue")&&(e.includes("dev server")||e.includes("local:"))||e.includes("@vue/cli-service"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-600 text-white",children:"🟢 Vue"});if(e.includes("local:")&&e.includes("vite")||e.includes("dev server running")||e.includes("vite v"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-500 text-white",children:"⚔ Vite"});if(e.includes("rails server")||e.includes("puma starting")||e.includes("use ctrl-c to stop")||e.includes("listening on tcp://")&&e.includes("3000"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-red-600 text-white",children:"šŸ’Ž Rails"});else if(e.includes("laravel development server")||e.includes("artisan serve")||e.includes("laravel")&&e.includes("127.0.0.1:8000"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-red-500 text-white",children:"šŸ…» Laravel"});else if(e.includes("express server")||e.includes("server listening on")||e.includes("app listening on port")||e.includes("node server"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-700 text-white",children:"🟩 Express"});else if(e.includes("django")||e.includes("development server")&&e.includes("127.0.0.1:8000")||e.includes("runserver"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-800 text-white",children:"šŸ Django"});else if(e.includes("flask")||e.includes("running on http://127.0.0.1:5000")||e.includes("debug mode: on"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-800 text-white",children:"šŸŒ¶ļø Flask"});else if(e.includes("sveltekit")||e.includes("svelte")&&e.includes("dev")||e.includes("@sveltejs"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-orange-500 text-white",children:"šŸ”„ Svelte"});else if(e.includes("remix")||e.includes("@remix-run"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-400 text-white",children:"šŸ’æ Remix"});else if(e.includes("astro")||e.includes("@astrojs"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-purple-600 text-white",children:"šŸš€ Astro"});else if(e.includes("spring boot")||e.includes("tomcat started on port")||e.includes("started application")&&e.includes("seconds"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-500 text-white",children:"šŸƒ Spring"});else if(e.includes("webpack compiled")||e.includes("compiled successfully")||e.includes("webpack-dev-server"))return(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-600 text-white",children:"āš›ļø React"});return null})(),_[32]=I.message,_[33]=I.source,_[34]=C):C=_[34],_[35]!==y||_[36]!==j||_[37]!==O||_[38]!==C?(E=(0,t.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0",children:[y,j,O,C]}),_[35]=y,_[36]=j,_[37]=O,_[38]=C,_[39]=E):E=_[39],_[40]!==N||_[41]!==E?(R=(0,t.jsx)("div",{className:"font-mono text-sm min-w-0 text-foreground",children:(0,t.jsxs)("div",{className:"flex flex-wrap items-start gap-2",children:[N,E]})}),_[40]=N,_[41]=E,_[42]=R):R=_[42],_[43]!==b||_[44]!==R||_[45]!==p?(w=(0,t.jsxs)("div",{className:"grid grid-cols-[auto_auto_1fr] gap-3 items-start",children:[p,b,R]}),_[43]=b,_[44]=R,_[45]=p,_[46]=w):w=_[46],_[47]!==I.screenshot?(S=I.screenshot&&(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(n.default,{src:"/api/screenshots/".concat(I.screenshot),alt:"Screenshot",width:0,height:0,sizes:"100vw",className:"w-full h-auto max-w-2xl border rounded shadow-sm",style:{maxHeight:"600px",objectFit:"contain"},unoptimized:!0})}),_[47]=I.screenshot,_[48]=S):S=_[48],_[49]!==w||_[50]!==S||_[51]!==D||_[52]!==o?(k=(0,t.jsxs)("div",{className:D,style:o,children:[w,S]}),_[49]=w,_[50]=S,_[51]=D,_[52]=o,_[53]=k):k=_[53],k}function x(e,t){var r,n;return(null!=(r=e.index)?r:0)-(null!=(n=t.index)?n:0)}function f(e){return{...e,type:"url"}}function g(e){return{...e,type:"json"}}function h(e){let{version:r,initialData:n}=e,a=(0,s.useRouter)(),c=(0,s.useSearchParams)(),[u,m]=(0,o.useDarkMode)(),[x,f]=(0,l.useState)((null==n?void 0:n.logs)||[]),[g,h]=(0,l.useState)((null==n?void 0:n.mode)||"tail");(0,l.useEffect)(()=>{let e=c.get("mode");e&&e!==g&&h(e)},[c,g]);let[b,v]=(0,l.useState)(!0),[N,y]=(0,l.useState)(!n),[j,O]=(0,l.useState)((null==n?void 0:n.logs.length)||0),[C,E]=(0,l.useState)(null),[R,w]=(0,l.useState)((null==n?void 0:n.logFiles)||[]),[S,k]=(0,l.useState)((null==n?void 0:n.currentLogFile)||""),[_,I]=(0,l.useState)(""),[L,T]=(0,l.useState)(!1),[A,P]=(0,l.useState)(!1),[D,M]=(0,l.useState)(!1),[F,B]=(0,l.useState)(!1),[z,G]=(0,l.useState)([]),[U,W]=(0,l.useState)(!1),[H,V]=(0,l.useState)(0),[K]=(0,l.useState)(5),[q,$]=(0,l.useState)(null),[X,J]=(0,l.useState)(!1),[Y,Q]=(0,l.useState)({browser:!0,server:!0,interaction:!0,screenshot:!0}),[Z,ee]=(0,l.useState)({}),[et,er]=(0,l.useState)([]),en=(0,l.useRef)(null),es=(0,l.useRef)(null),el=(0,l.useRef)(null),ei=(0,l.useRef)(null),eo=(0,l.useRef)(null),ea=(0,l.useRef)(!1),ec=(0,l.useCallback)(async()=>{try{let e=await fetch("/api/logs/list");if(e.ok){let t=await e.json();return w(t.files),k(t.currentFile),I(t.projectName),!0}return!1}catch(e){return console.error("Error loading available logs:",e),!1}},[]),ed=(0,l.useCallback)(async()=>{if("tail"===g)try{let e=c.get("file"),t="",r=!0;if(e&&R.length>0){let n=R.find(t=>t.name===e);t=(null==n?void 0:n.path)||S,r=(null==n?void 0:n.isCurrent)!==!1}else t=S,r=!0;if(!r)return;let n=t?"/api/logs/tail?lines=50&logPath=".concat(encodeURIComponent(t)):"/api/logs/tail?lines=50";if(q===n&&H>=K){console.error("Maximum retry attempts (".concat(K,") reached for ").concat(n,". Stopping polling.")),el.current&&(clearInterval(el.current),el.current=null);return}let s=await fetch(n);if(!s.ok)throw Error("HTTP ".concat(s.status,": ").concat(s.statusText));(q===n||H>0)&&(V(0),$(null));let l=await s.json();if(!l.logs)return void console.warn("No logs data in response");let i=d(l.logs);if(i.length>j)if(b)E(new Date),et.length>0?(f([...x,...et,...i.slice(j)]),er([])):f(i),O(i.length),ea.current||setTimeout(()=>{var e;null==(e=en.current)||e.scrollIntoView({behavior:"smooth"})},50);else{let e=i.slice(j);e.length>0&&(er(t=>[...t,...e]),O(i.length))}}catch(n){console.error("Error polling logs:",n);let e=c.get("file"),t="";if(e&&R.length>0){let r=R.find(t=>t.name===e);t=(null==r?void 0:r.path)||S}else t=S;let r=t?"/api/logs/tail?lines=50&logPath=".concat(encodeURIComponent(t)):"/api/logs/tail?lines=50";if(q===r){let e=H+1;V(e),e>=K&&(console.error("Maximum retry attempts (".concat(K,") reached for ").concat(r,". Stopping polling.")),el.current&&(clearInterval(el.current),el.current=null))}else $(r),V(1)}},[g,b,c,R,S,j,et,x,H,q,K]);(0,l.useEffect)(()=>{if("tail"===g&&H<K)return el.current=setInterval(ed,3e3),()=>{el.current&&clearInterval(el.current)};el.current&&clearInterval(el.current)},[g,ed,H,K]);let eu=(0,l.useCallback)(async()=>{if(H>=K)return void console.log("Max retries reached, not attempting to load");if(y(!0),!await ec())return void y(!1);try{let e=c.get("file"),t="";if(e&&R.length>0){let r=R.find(t=>t.name===e);t=(null==r?void 0:r.path)||S}else t=S;let r=t?"/api/logs/".concat(g,"?lines=1000&logPath=").concat(encodeURIComponent(t)):"/api/logs/".concat(g,"?lines=1000");if(q===r&&H>=K){console.error("Maximum retry attempts (".concat(K,") reached for ").concat(r,". Not attempting to load.")),f([]),y(!1);return}let n=await fetch(r);if(!n.ok)throw Error("HTTP ".concat(n.status,": ").concat(n.statusText));(q===r||H>0)&&(V(0),$(null));let s=await n.json();if(!s.logs){console.warn("No logs data in response"),f([]),y(!1);return}let l=d(s.logs);if(f(l),O(l.length),E(new Date),y(!1),"tail"===g&&!ea.current){v(!0);let e=()=>{en.current?en.current.scrollIntoView({behavior:"auto"}):es.current&&(es.current.scrollTop=es.current.scrollHeight)};setTimeout(e,0),setTimeout(e,100)}}catch(n){console.error("Error loading logs:",n);let e=c.get("file"),t="";if(e&&R.length>0){let r=R.find(t=>t.name===e);t=(null==r?void 0:r.path)||S}else t=S;let r=t?"/api/logs/".concat(g,"?lines=1000&logPath=").concat(encodeURIComponent(t)):"/api/logs/".concat(g,"?lines=1000");if(q===r){let e=H+1;V(e),e>=K&&console.error("Maximum retry attempts (".concat(K,") reached for initial load of ").concat(r,"."))}else $(r),V(1);f([])}finally{y(!1)}},[ec,c,R,S,g,H,q,K]);(0,l.useEffect)(()=>{let e=(null==n?void 0:n.logs)&&(null==n?void 0:n.logs.length)>0;if(X||e||x.length){if(e&&0===x.length&&(f(n.logs),y(!1),"tail"===g&&!ea.current)){v(!0);let e=()=>{en.current?en.current.scrollIntoView({behavior:"auto"}):es.current&&(es.current.scrollTop=es.current.scrollHeight)};setTimeout(e,0),setTimeout(e,100),setTimeout(e,300)}}else J(!0),eu()},[g,n,x.length,X,eu]),(0,l.useEffect)(()=>{x.length>0&&"tail"===g&&b&&!ea.current&&setTimeout(()=>{en.current?en.current.scrollIntoView({behavior:"auto"}):es.current&&(es.current.scrollTop=es.current.scrollHeight)},0)},[x.length,g,b]),(0,l.useEffect)(()=>()=>{el.current&&clearInterval(el.current)},[]),(0,l.useEffect)(()=>{let e=e=>{ei.current&&!ei.current.contains(e.target)&&T(!1),eo.current&&!eo.current.contains(e.target)&&M(!1)};if(L||D)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[L,D]);let em=async()=>{if(S&&!U&&window.confirm("Clear logs and start fresh?\n\nThis will:\n• Archive the current log file\n• Start a new empty log file\n• Clear the current view\n\nThe archived logs will still be available in the dropdown.")){W(!0);try{let e=await fetch("/api/logs/rotate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentLogPath:S})});if(e.ok)f([]),O(0),E(null),await ec(),await eu();else{let t=await e.json();console.error("Failed to rotate log:",t),alert("Failed to rotate log: ".concat(t.error))}}catch(e){console.error("Error rotating log:",e),alert("Error rotating log")}finally{W(!1)}}},ep=(0,l.useMemo)(()=>{let e=new Set;return x.forEach(t=>{"BROWSER"===t.source&&t.userAgent&&e.add(t.userAgent)}),Array.from(e).sort()},[x]);(0,l.useEffect)(()=>{ep.length>0&&ee(e=>{let t={...e};return ep.forEach(e=>{e in t||(t[e]=!0)}),t})},[ep]);let ex=(0,l.useMemo)(()=>x.filter(e=>{let t=e.message.includes("[INTERACTION]"),r=e.message.includes("[SCREENSHOT]");if(t)return Y.interaction;if(r)return Y.screenshot;if("SERVER"===e.source)return Y.server;if("BROWSER"===e.source){if(!Y.browser)return!1;if(ep.length>0&&e.userAgent)return!1!==Z[e.userAgent]}return!0}),[x,Y,Z,ep]);return(0,t.jsxs)("div",{className:"h-screen bg-background text-foreground flex flex-col transition-colors",children:[(0,t.jsx)("div",{className:"bg-card shadow-sm border-b border-border flex-none z-10",children:(0,t.jsx)("div",{className:"max-w-7xl mx-auto px-4 py-3",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 sm:gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("h1",{className:"text-xl sm:text-2xl font-bold whitespace-nowrap",children:"dev3000"}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:["(v",r,")"]})]}),R.length>1?(0,t.jsxs)("div",{className:"relative",ref:ei,children:[(0,t.jsxs)("button",{type:"button",onClick:()=>T(!L),className:"flex items-center gap-2 px-3 py-1 text-sm text-muted-foreground hover:text-foreground hover:bg-accent rounded-md transition-colors",children:[(0,t.jsx)("span",{className:"font-mono text-xs whitespace-nowrap",children:N&&!S?(0,t.jsx)("div",{className:"h-4 bg-muted rounded animate-pulse",style:{width:"220px"}}):S?"Current":"No log file"}),(0,t.jsx)("svg",{className:"w-4 h-4 transition-transform ".concat(L?"rotate-180":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),L&&R.length>1&&(0,t.jsx)("div",{className:"absolute top-full left-0 mt-1 bg-card border border-border rounded-md shadow-lg z-20 min-w-80",children:(0,t.jsxs)("div",{className:"py-1 max-h-60 overflow-y-auto",children:[(0,t.jsxs)("div",{className:"px-3 py-2 text-xs font-medium text-muted-foreground border-b border-border",children:[_," logs (",R.length,")"]}),R.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{T(!1),a.push("/logs?file=".concat(encodeURIComponent(e.name),"&mode=").concat(g))},className:"w-full text-left px-3 py-2 text-sm hover:bg-accent flex items-center justify-between ".concat(e.isCurrent?"bg-primary/10 text-primary":"text-foreground"),children:[(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"font-mono text-xs",children:e.name}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:[new Date(e.mtime).toLocaleString()," • ",Math.round(e.size/1024),"KB"]})]}),e.isCurrent&&(0,t.jsx)("span",{className:"text-xs text-blue-600 font-medium",children:"current"})]},e.path))]})})]}):(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)("span",{className:"font-mono text-xs text-gray-600 px-3 py-1 whitespace-nowrap",children:N&&!S?(0,t.jsx)("div",{className:"h-4 bg-gray-200 rounded animate-pulse",style:{width:"220px"}}):S?S.split("/").pop():"No log file"})}),x.length>0&&(0,t.jsxs)("div",{className:"flex items-center gap-1 hidden sm:flex",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground",children:[x.length," entries"]}),S&&!N&&(0,t.jsx)("button",{type:"button",onClick:em,disabled:U,className:"p-0.5 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Clear logs (rotate current log to archive and start fresh)",children:U?(0,t.jsx)("div",{className:"w-3 h-3 border border-current border-t-transparent rounded-full animate-spin"}):(0,t.jsx)("svg",{className:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),et.length>0&&!b&&(0,t.jsxs)("span",{className:"text-xs bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200 px-2 py-1 rounded-full",children:["+",et.length," buffered"]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[!1,(0,t.jsxs)("div",{className:"relative",ref:eo,children:[(0,t.jsxs)("button",{type:"button",onClick:()=>M(!D),className:"flex items-center gap-1 px-3 py-1 rounded text-sm font-medium transition-colors whitespace-nowrap bg-muted text-muted-foreground hover:bg-muted/80",children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})}),"Filter"]}),D&&(0,t.jsx)("div",{className:"absolute top-full right-0 mt-1 bg-card border border-border rounded-md shadow-lg z-20 min-w-48",children:(0,t.jsxs)("div",{className:"py-2",children:[(0,t.jsx)("div",{className:"px-3 py-2 text-xs font-medium text-muted-foreground border-b border-border",children:"Log Types"}),(0,t.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-accent cursor-pointer",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{type:"checkbox",checked:Y.server,onChange:e=>Q(t=>({...t,server:e.target.checked})),className:"rounded border-input text-primary focus:ring-ring"}),(0,t.jsx)("span",{className:"text-foreground",children:"Server"})]}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:x.filter(e=>"SERVER"===e.source).length})]}),(0,t.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-accent cursor-pointer",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{type:"checkbox",checked:Y.browser,onChange:e=>Q(t=>({...t,browser:e.target.checked})),className:"rounded border-input text-primary focus:ring-ring"}),(0,t.jsx)("span",{className:"text-foreground",children:"Browser"})]}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:x.filter(e=>"BROWSER"===e.source).length})]}),ep.length>1&&Y.browser&&(0,t.jsx)("div",{className:"ml-6 border-l border-border pl-2",children:ep.map(e=>{let r=e.includes("Chrome")?"Chrome":e.includes("Firefox")?"Firefox":e.includes("Safari")?"Safari":e.includes("Edge")?"Edge":"Browser";return(0,t.jsxs)("label",{className:"flex items-center justify-between px-2 py-1 text-xs hover:bg-accent cursor-pointer",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{type:"checkbox",checked:!1!==Z[e],onChange:t=>ee(r=>({...r,[e]:t.target.checked})),className:"rounded border-input text-primary focus:ring-ring w-3 h-3"}),(0,t.jsx)("span",{className:"text-foreground",children:r})]}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:x.filter(t=>"BROWSER"===t.source&&t.userAgent===e).length})]},e)})}),(0,t.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-accent cursor-pointer",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{type:"checkbox",checked:Y.interaction,onChange:e=>Q(t=>({...t,interaction:e.target.checked})),className:"rounded border-input text-primary focus:ring-ring"}),(0,t.jsx)("span",{className:"text-foreground",children:"Interaction"})]}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:x.filter(e=>e.message.includes("[INTERACTION]")).length})]}),(0,t.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-accent cursor-pointer",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{type:"checkbox",checked:Y.screenshot,onChange:e=>Q(t=>({...t,screenshot:e.target.checked})),className:"rounded border-input text-primary focus:ring-ring"}),(0,t.jsx)("span",{className:"text-foreground",children:"Screenshot"})]}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:x.filter(e=>e.message.includes("[SCREENSHOT]")).length})]})]})})]}),(0,t.jsx)(i.DarkModeToggle,{darkMode:u,setDarkMode:m,className:"ml-2"})]})]})})}),(0,t.jsx)("div",{className:"flex-1 overflow-hidden",children:(0,t.jsx)("div",{ref:es,className:"max-w-7xl mx-auto px-4 py-6 h-full overflow-y-auto",onScroll:()=>{if(es.current){let{scrollTop:e,scrollHeight:t,clientHeight:r}=es.current,n=e+r>=t-10;b&&!n&&(ea.current=!0),v(n)}},children:N?(0,t.jsxs)("div",{className:"text-center py-12",children:[(0,t.jsx)("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-primary"}),(0,t.jsx)("div",{className:"text-muted-foreground text-sm mt-4",children:"Loading logs..."})]}):0===x.length?(0,t.jsxs)("div",{className:"text-center py-12",children:[(0,t.jsx)("div",{className:"text-muted-foreground text-lg",children:"šŸ“ No logs yet"}),(0,t.jsx)("div",{className:"text-muted-foreground text-sm mt-2",children:H>=K?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"text-red-500 mb-2",children:["Failed to load logs after ",K," attempts."]}),(0,t.jsx)("button",{type:"button",onClick:()=>{V(0),$(null),J(!1),eu()},className:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 transition-colors",children:"Retry"})]}):"Logs will appear here as your development server runs"})]}):0===ex.length?(0,t.jsxs)("div",{className:"text-center py-12",children:[(0,t.jsx)("div",{className:"text-muted-foreground text-lg",children:"šŸ” No logs match current filters"}),(0,t.jsx)("div",{className:"text-muted-foreground text-sm mt-2",children:"Try adjusting your filter settings to see more logs"})]}):(0,t.jsxs)("div",{className:"space-y-1 pb-4",children:[ex.map((e,r)=>(0,t.jsx)(p,{entry:e,darkMode:u},"".concat(e.timestamp,"-").concat(r))),(0,t.jsx)("div",{ref:en})]})})}),(0,t.jsx)("div",{className:"border-t border-border bg-muted/50 flex-none",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[C&&(0,t.jsxs)("span",{className:"text-xs text-muted-foreground font-mono",children:["Last updated ",C.toLocaleTimeString()]}),S&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground font-mono break-all",children:S})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1 text-green-600 ".concat("tail"===g&&b?"visible":"invisible"),children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse"}),(0,t.jsx)("span",{className:"text-xs",children:"Live"})]}),(0,t.jsx)("button",{type:"button",onClick:()=>{var e;ea.current=!1,et.length>0&&(f(e=>[...e,...et]),er([]),E(new Date)),null==(e=en.current)||e.scrollIntoView({behavior:"smooth"})},className:"absolute top-0 right-0 flex items-center gap-1 px-2 py-0.5 bg-blue-600 text-white rounded text-xs hover:bg-blue-700 whitespace-nowrap ".concat("tail"!==g||b?"invisible":"visible"),children:"↓ Live"})]})]})})]})}e.s(["default",()=>h],54735)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,95299,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},923,(e,t,r)=>{"use strict";function n(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function s(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,s(e));else t.set(r,s(n));return t}function a(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];for(let t of r){for(let r of t.keys())e.delete(r);for(let[r,n]of t.entries())e.append(r,n)}return e}Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{assign:function(){return a},searchParamsToUrlQuery:function(){return n},urlQueryToSearchParams:function(){return o}})},52530,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{formatUrl:function(){return o},formatWithValidation:function(){return l},urlObjectKeys:function(){return a}});let n=e.r(44066)._(e.r(923)),s=/https?|ftp|gopher|file/;function o(e){let{auth:t,hostname:r}=e,o=e.protocol||"",a=e.pathname||"",l=e.hash||"",i=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(c+=":"+e.port)),i&&"object"==typeof i&&(i=String(n.urlQueryToSearchParams(i)));let d=e.search||i&&"?"+i||"";return o&&!o.endsWith(":")&&(o+=":"),e.slashes||(!o||s.test(o))&&!1!==c?(c="//"+(c||""),a&&"/"!==a[0]&&(a="/"+a)):c||(c=""),l&&"#"!==l[0]&&(l="#"+l),d&&"?"!==d[0]&&(d="?"+d),""+o+c+(a=a.replace(/[?#]/g,encodeURIComponent))+(d=d.replace("#","%23"))+l}let a=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return o(e)}},3668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{DecodeError:function(){return h},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return b},NormalizeError:function(){return p},PageNotFoundError:function(){return g},SP:function(){return f},ST:function(){return x},WEB_VITALS:function(){return n},execOnce:function(){return s},getDisplayName:function(){return c},getLocationOrigin:function(){return l},getURL:function(){return i},isAbsoluteUrl:function(){return a},isResSent:function(){return d},loadGetInitialProps:function(){return m},normalizeRepeatedSlashes:function(){return u},stringifyError:function(){return y}});let n=["CLS","FCP","FID","INP","LCP","TTFB"];function s(e){let t,r=!1;return function(){for(var n=arguments.length,s=Array(n),o=0;o<n;o++)s[o]=arguments[o];return r||(r=!0,t=e(...s)),t}}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,a=e=>o.test(e);function l(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function i(){let{href:e}=window.location,t=l();return e.substring(t.length)}function c(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function u(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function m(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await m(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&d(r))return n;if(!n)throw Object.defineProperty(Error('"'+c(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let f="undefined"!=typeof performance,x=f&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class h extends Error{}class p extends Error{}class g extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class b extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function y(e){return JSON.stringify({message:e.message,stack:e.stack})}},27728,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let n=e.r(3668),s=e.r(63840);function o(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,s.hasBasePath)(r.pathname)}catch(e){return!1}}},37793,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return h},useLinkStatus:function(){return g}});let n=e.r(44066),s=e.r(54610),o=n._(e.r(72938)),a=e.r(52530),l=e.r(37728),i=e.r(33830),c=e.r(3668),d=e.r(38456);e.r(95299);let u=e.r(1219),m=e.r(27728),f=e.r(99008);function x(e){return"string"==typeof e?e:(0,a.formatUrl)(e)}function h(t){var r;let[n,a]=(0,o.useOptimistic)(u.IDLE_LINK_STATUS),h=(0,o.useRef)(null),{href:g,as:b,children:j,prefetch:y=null,replace:v,shallow:N,scroll:_,onClick:S,onMouseEnter:P,onTouchStart:w,onNavigate:O,ref:C,unstable_dynamicOnHover:E,...T}=t,k=o.default.useContext(l.AppRouterContext),A=!1!==y,F=!1!==y?null===(r=y)||"auto"===r?f.FetchStrategy.PPR:f.FetchStrategy.Full:f.FetchStrategy.PPR,{href:I,as:M}=o.default.useMemo(()=>{let e=x(g);return{href:e,as:b?x(b):e}},[g,b]),L=o.default.useCallback(e=>(null!==k&&(h.current=(0,u.mountLinkInstance)(e,I,k,F,A,a)),()=>{h.current&&((0,u.unmountLinkForCurrentNavigation)(h.current),h.current=null),(0,u.unmountPrefetchableInstance)(e)}),[A,I,k,F,a]),R={ref:(0,i.useMergedRef)(L,C),onClick(t){"function"==typeof S&&S(t),k&&(t.defaultPrevented||function(t,r,n,s,a,l,i){if("undefined"!=typeof window){if(function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(t)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:c}=e.r(9186);o.default.startTransition(()=>{c(n||r,a?"replace":"push",null==l||l,s.current)})}}(t,I,M,h,v,_,O))},onMouseEnter(e){"function"==typeof P&&P(e),k&&A&&(0,u.onNavigationIntent)(e.currentTarget,!0===E)},onTouchStart:function(e){"function"==typeof w&&w(e),k&&A&&(0,u.onNavigationIntent)(e.currentTarget,!0===E)}};return(0,c.isAbsoluteUrl)(M)?R.href=M:R.href=(0,d.addBasePath)(M),(0,s.jsx)(p.Provider,{value:n,children:(0,s.jsx)("a",{...T,...R,children:j})})}let p=(0,o.createContext)(u.IDLE_LINK_STATUS),g=()=>(0,o.useContext)(p);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},41449,e=>{"use strict";var t=e.i(68029),r=e.i(54610),n=e.i(62772),s=e.i(37793),o=e.i(72938),a=e.i(68860),l=e.i(54768);function i(){let e,i,u,f,x,h,p,g,b,j,y,v,N,_,S,P,w,O,C,E,T,k,A,F,I,M,L,R,U=(0,n.c)(41),[D,K]=(0,o.useState)(null),[B,z]=(0,o.useState)(!0),[Q,V]=(0,l.useDarkMode)();U[0]===Symbol.for("react.memo_cache_sentinel")?(e=()=>{fetch("/api/tools").then(m).then(e=>{K(e),z(!1)}).catch(()=>{z(!1)})},i=[],U[0]=e,U[1]=i):(e=U[0],i=U[1]),(0,o.useEffect)(e,i),U[2]===Symbol.for("react.memo_cache_sentinel")?(u=(0,r.jsx)("div",{className:"w-12 h-12 bg-foreground rounded flex items-center justify-center",children:(0,r.jsx)("span",{className:"text-background font-mono font-bold",children:"d3k"})}),f=(0,r.jsx)("h1",{className:"text-3xl font-bold",children:"dev3000 MCP Server"}),U[2]=u,U[3]=f):(u=U[2],f=U[3]),U[4]===Symbol.for("react.memo_cache_sentinel")?(x=(0,r.jsxs)("span",{className:"inline-flex items-center gap-2 text-sm text-green-600 font-medium",children:[(0,r.jsx)("span",{className:"w-2 h-2 bg-green-500 rounded-full"}),"Server Running"]}),h=(0,r.jsx)("span",{className:"text-muted-foreground",children:"•"}),U[4]=x,U[5]=h):(x=U[4],h=U[5]),U[6]===Symbol.for("react.memo_cache_sentinel")?(p=(0,r.jsx)("div",{children:(0,r.jsxs)("div",{className:"flex items-center gap-4 mb-3",children:[u,(0,r.jsxs)("div",{children:[f,(0,r.jsxs)("div",{className:"flex items-center gap-3 mt-2",children:[x,h,(0,r.jsxs)("span",{className:"text-sm text-muted-foreground",children:["Port ",t.default.env.PORT||"3684"]})]})]})]})}),U[6]=p):p=U[6],U[7]===Symbol.for("react.memo_cache_sentinel")?(g=(0,r.jsx)(s.default,{href:"/logs",className:"inline-flex items-center gap-2 px-5 py-3 bg-primary text-primary-foreground text-sm font-medium rounded hover:bg-primary/90 transition-colors",children:"šŸ“Š View Logs"}),b=(0,r.jsx)("a",{href:"https://github.com/vercel-labs/dev3000#setup",target:"_blank",rel:"noopener noreferrer",className:"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",children:"šŸ“– Setup Guide"}),U[7]=g,U[8]=b):(g=U[7],b=U[8]),U[9]!==Q||U[10]!==V?(j=(0,r.jsx)("header",{className:"bg-muted/30 border-b border-border",children:(0,r.jsx)("div",{className:"max-w-7xl mx-auto px-6 py-8",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[p,(0,r.jsxs)("div",{className:"flex items-center gap-4",children:[g,b,(0,r.jsx)(a.DarkModeToggle,{darkMode:Q,setDarkMode:V})]})]})})}),U[9]=Q,U[10]=V,U[11]=j):j=U[11],U[12]===Symbol.for("react.memo_cache_sentinel")?(y=(0,r.jsx)("h2",{className:"text-xl font-semibold mb-4",children:"šŸš€ Quick Start"}),U[12]=y):y=U[12],U[13]===Symbol.for("react.memo_cache_sentinel")?(v=(0,r.jsx)("span",{className:"text-sm font-medium",children:"MCP Endpoint:"}),U[13]=v):v=U[13];let W=(null==D?void 0:D.endpoint)||"http://localhost:3684/mcp";U[14]!==W?(N=(0,r.jsxs)("div",{children:[v,(0,r.jsx)("code",{className:"ml-3 px-4 py-2 bg-primary/20 text-foreground text-sm font-mono rounded",children:W})]}),U[14]=W,U[15]=N):N=U[15],U[16]===Symbol.for("react.memo_cache_sentinel")?(_=(0,r.jsx)("p",{className:"mb-3",children:"Connect your AI tools to this MCP server for real-time development debugging:"}),U[16]=_):_=U[16],U[17]===Symbol.for("react.memo_cache_sentinel")?(S=(0,r.jsxs)("div",{className:"text-sm",children:[_,(0,r.jsxs)("div",{className:"flex gap-6",children:[(0,r.jsx)("a",{href:"https://github.com/vercel-labs/dev3000#claude-desktop",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:text-primary/80 font-medium",children:"Claude Desktop Setup →"}),(0,r.jsx)("a",{href:"https://github.com/vercel-labs/dev3000#cursor",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:text-primary/80 font-medium",children:"Cursor Setup →"})]})]}),U[17]=S):S=U[17],U[18]!==N?(P=(0,r.jsx)("section",{className:"mb-16",children:(0,r.jsxs)("div",{className:"bg-primary/10 border border-primary/20 rounded p-8",children:[y,(0,r.jsxs)("div",{className:"space-y-4",children:[N,S]})]})}),U[18]=N,U[19]=P):P=U[19],U[20]===Symbol.for("react.memo_cache_sentinel")?(w=(0,r.jsx)("h2",{className:"text-3xl font-bold mb-3",children:"Available Tools"}),U[20]=w):w=U[20];let q=B?"Loading MCP tools...":"".concat((null==D?void 0:D.totalTools)||0," tools across ").concat((null==D?void 0:D.categories.length)||0," categories for AI-powered development debugging");return U[21]!==q?(O=(0,r.jsx)("div",{className:"mb-12",children:(0,r.jsxs)("div",{children:[w,(0,r.jsx)("p",{className:"text-muted-foreground text-lg",children:q})]})}),U[21]=q,U[22]=O):O=U[22],U[23]!==B||U[24]!==D?(C=B?(0,r.jsxs)("div",{className:"text-center py-16",children:[(0,r.jsx)("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-primary"}),(0,r.jsx)("p",{className:"mt-6 text-muted-foreground",children:"Loading tool documentation..."})]}):D?(0,r.jsx)("div",{className:"grid gap-6 lg:grid-cols-2",children:D.tools.map(d)}):(0,r.jsxs)("div",{className:"text-center py-16",children:[(0,r.jsx)("p",{className:"text-destructive mb-6",children:"Failed to load tool documentation"}),(0,r.jsx)("button",{onClick:c,className:"px-6 py-3 bg-primary text-primary-foreground text-sm rounded hover:bg-primary/90 transition-colors",type:"button",children:"Retry"})]}),U[23]=B,U[24]=D,U[25]=C):C=U[25],U[26]!==O||U[27]!==C?(E=(0,r.jsxs)("section",{children:[O,C]}),U[26]=O,U[27]=C,U[28]=E):E=U[28],U[29]===Symbol.for("react.memo_cache_sentinel")?(T=(0,r.jsx)("h2",{className:"text-2xl font-semibold mb-6 flex items-center gap-3",children:"šŸŖ„ The Magic Workflow"}),U[29]=T):T=U[29],U[30]===Symbol.for("react.memo_cache_sentinel")?(k=(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"w-16 h-16 bg-primary/20 rounded-full flex items-center justify-center mx-auto mb-4 shadow-md",children:(0,r.jsx)("span",{className:"text-primary font-bold text-2xl",children:"1"})}),(0,r.jsx)("h3",{className:"font-semibold mb-3 text-lg",children:"AI Finds Issues"}),(0,r.jsx)("p",{className:"text-muted-foreground leading-relaxed",children:"fix_my_app automatically detects all types of errors and problems in your app"})]}),U[30]=k):k=U[30],U[31]===Symbol.for("react.memo_cache_sentinel")?(A=(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"w-16 h-16 bg-accent/20 rounded-full flex items-center justify-center mx-auto mb-4 shadow-md",children:(0,r.jsx)("span",{className:"text-accent-foreground font-bold text-2xl",children:"2"})}),(0,r.jsx)("h3",{className:"font-semibold mb-3 text-lg",children:"AI Fixes Code"}),(0,r.jsx)("p",{className:"text-muted-foreground leading-relaxed",children:"AI analyzes errors and edits your code files to resolve issues"})]}),U[31]=A):A=U[31],U[32]===Symbol.for("react.memo_cache_sentinel")?(F=(0,r.jsxs)("section",{className:"mt-20 bg-gradient-to-r from-primary/10 to-secondary/10 border border-border rounded-lg p-10",children:[T,(0,r.jsxs)("div",{className:"grid md:grid-cols-3 gap-8",children:[k,A,(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"w-16 h-16 bg-green-500/20 rounded-full flex items-center justify-center mx-auto mb-4 shadow-md",children:(0,r.jsx)("span",{className:"text-green-600 dark:text-green-400 font-bold text-2xl",children:"3"})}),(0,r.jsx)("h3",{className:"font-semibold mb-3 text-lg",children:"AI Verifies Fixes"}),(0,r.jsx)("p",{className:"text-muted-foreground leading-relaxed",children:"execute_browser_action tests the fixes in real-time with screenshots"})]})]})]}),U[32]=F):F=U[32],U[33]!==P||U[34]!==E?(I=(0,r.jsxs)("main",{className:"max-w-7xl mx-auto px-6 py-8",children:[P,E,F]}),U[33]=P,U[34]=E,U[35]=I):I=U[35],U[36]===Symbol.for("react.memo_cache_sentinel")?(M=(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"font-semibold",children:"dev3000 MCP Server"})," - AI-powered development monitoring"]}),U[36]=M):M=U[36],U[37]===Symbol.for("react.memo_cache_sentinel")?(L=(0,r.jsx)("footer",{className:"border-t border-border mt-20",children:(0,r.jsx)("div",{className:"max-w-7xl mx-auto px-6 py-8",children:(0,r.jsxs)("div",{className:"flex items-center justify-between text-sm text-muted-foreground",children:[M,(0,r.jsxs)("div",{className:"flex items-center gap-8",children:[(0,r.jsx)("a",{href:"https://github.com/vercel-labs/dev3000",target:"_blank",rel:"noopener noreferrer",className:"hover:text-foreground transition-colors",children:"GitHub"}),(0,r.jsx)("a",{href:"https://dev3000.ai",target:"_blank",rel:"noopener noreferrer",className:"hover:text-foreground transition-colors",children:"Homepage"}),(0,r.jsx)(s.default,{href:"/logs",className:"hover:text-gray-900 transition-colors",children:"Logs"})]})]})})}),U[37]=L):L=U[37],U[38]!==I||U[39]!==j?(R=(0,r.jsxs)("div",{className:"min-h-screen bg-background text-foreground",children:[j,I,L]}),U[38]=I,U[39]=j,U[40]=R):R=U[40],R}function c(){return window.location.reload()}function d(e){return(0,r.jsxs)("div",{id:e.name,className:"border border-border rounded-lg p-6 hover:border-muted-foreground/50 transition-colors",children:[(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsx)("h4",{className:"text-xl font-semibold font-mono mb-3",children:e.name}),(0,r.jsx)("div",{className:"text-muted-foreground space-y-3",children:function(e){let t=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,""),n=e.split("\n\n").filter(e=>e.trim()),s=new Map,o=e=>{var t;let r=null!=(t=s.get(e))?t:0;return s.set(e,r+1),0===r?e:"".concat(e,"-").concat(r)};return n.map((e,n)=>{let s=o(t(e)||"section"),a=e;if((a=a.replace(/(\u{1F300}-\u{1F9FF}|\u{2600}-\u{26FF}|\u{1F900}-\u{1F9FF})+/gu,e=>e.charAt(0))).includes("**")&&a.includes(":")){let[e,...n]=a.split(":"),l=e.replace(/\*\*/g,"").trim(),i=n.join(":").trim();if(i.includes("•")){let e=i.split("•").filter(e=>e.trim()),n="".concat(s,"-bullets");return(0,r.jsxs)("div",{children:[(0,r.jsx)("h5",{className:"font-semibold mb-2",children:l}),(0,r.jsx)("ul",{className:"space-y-1 ml-4",children:e.map(e=>{let s=o("".concat(n,"-item-").concat(t(e).slice(0,40)||"bullet"));return(0,r.jsxs)("li",{className:"flex items-start",children:[(0,r.jsx)("span",{className:"text-muted-foreground mr-2",children:"•"}),(0,r.jsx)("span",{className:"text-muted-foreground text-sm",children:e.trim()})]},s)})})]},n)}return(0,r.jsxs)("div",{children:[(0,r.jsx)("h5",{className:"font-semibold mb-1",children:l}),(0,r.jsx)("p",{className:"text-muted-foreground text-sm ml-4",children:i})]},"".concat(s,"-content"))}if(a.match(/^\d+[\ud83c-\ud83e][\udc00-\udfff]|^\d+\./m)){let e=a.split(/\n/).filter(e=>e.trim());return(0,r.jsx)("ol",{className:"space-y-1 ml-4",children:e.map((e,n)=>{let a=e.replace(/^\d+[\ud83c-\ud83e][\udc00-\udfff]\s*/,"").replace(/^\d+\.\s*/,"").trim();return(0,r.jsxs)("li",{className:"text-muted-foreground text-sm",children:[n+1,". ",a]},o("".concat(s,"-step-").concat(t(a).slice(0,40)||"step")))})},"".concat(s,"-steps"))}return(0,r.jsx)("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a},"".concat(s,"-paragraph"))})}(e.description)})]}),e.parameters.length>0&&(0,r.jsxs)("div",{children:[(0,r.jsx)("h5",{className:"text-sm font-semibold mb-3",children:"Parameters:"}),(0,r.jsx)("div",{className:"space-y-2",children:e.parameters.map(u)})]})]},e.name)}function u(e){return(0,r.jsxs)("div",{className:"text-sm",children:[(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)("span",{className:"font-mono text-primary font-medium",children:e.name}),(0,r.jsx)("span",{className:"text-muted-foreground text-xs",children:e.optional?"(optional)":"(required)"}),(0,r.jsxs)("span",{className:"text-muted-foreground/70 text-xs",children:["- ",e.type]})]}),e.description&&(0,r.jsx)("div",{className:"text-muted-foreground ml-1 mt-1 text-sm",children:e.description})]},e.name)}function m(e){return e.json()}e.s(["default",()=>i])}]);
@@ -1,3 +1,3 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/6839f59cc7f3e68c.js","static/chunks/b137bfc92ad8bec0.js","static/chunks/8a5ef92054eb3f68.js","static/chunks/5dd333b6181425ad.js","static/chunks/14ca28aed9ba7e16.js"],runtimeModuleIds:[75883]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,l=Object.prototype.hasOwnProperty,i="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){l.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function c(e,t){s(e,"__esModule",{value:!0}),i&&s(e,i,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)s(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?s(e,n,{get:o,set:t[r++],enumerable:!0}):s(e,n,{get:o,enumerable:!0})}Object.seal(e)}o.s=function(e,t){let r,n;null!=t?n=(r=u(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,c(n,e)},o.j=function(e,t){var n,o;let i,s,a;null!=t?s=(i=u(this.c,t)).exports:(i=this.m,s=this.e);let c=(n=i,o=s,(a=r.get(n))||(r.set(n,a=[]),n.exports=n.namespaceObject=new Proxy(o,{get(e,t){if(l.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of a){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of a)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),a);"object"==typeof e&&null!==e&&c.push(e)},o.v=function(e,t){(null!=t?u(this.c,t):this.m).exports=e},o.n=function(e,t){let r;(r=null!=t?u(this.c,t):this.m).exports=r.namespaceObject=e};let f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),c(t,n),t}function d(e){let t=M(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function m(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=d,o.A=function(e){return this.r(e)(d.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return M(e,this.m).exports},o.f=function(e){function t(t){if(l.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(l.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let b=Symbol("turbopack queues"),y=Symbol("turbopack exports"),O=Symbol("turbopack error");function g(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=m(),u=Object.assign(s,{[y]:r.exports,[b]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[y]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(b in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[y]:{},[b]:e=>e(t)};return e.then(e=>{r[y]=e,g(t)},e=>{r[O]=e,g(t)}),r}}return{[y]:e,[b]:()=>{}}}),r=()=>t.map(e=>{if(e[O])throw e[O];return e[y]}),{promise:l,resolve:i}=m(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[b](u)),s.queueCount?l:r()},function(e){e?i(u[O]=e):l(u[y]),g(n)}),n&&-1===n.status&&(n.status=0)};let w=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}w.prototype=URL.prototype,o.U=w,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var C=function(e){return e[e.Runtime=0]="Runtime",e[e.Parent=1]="Parent",e[e.Update=2]="Update",e}(C||{});let _=new Map;o.M=_;let U=new Map,k=new Map;async function v(e,t,r){let n;if("string"==typeof r)return T(e,t,A(r));let o=r.included||[],l=o.map(e=>!!_.has(e)||U.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>k.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)k.has(e)||r.add(e);for(let n of r){let r=T(e,t,A(n));k.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=T(e,t,A(r.path)),i))k.has(o)||k.set(o,n)}for(let e of o)U.has(e)||U.set(e,n);await n}R.l=function(e){return v(1,this.m.id,e)};let P=Promise.resolve(void 0),$=new WeakMap;function T(t,r,n){let o=e.loadChunkCached(t,n),l=$.get(o);if(void 0===l){let e=$.set.bind($,o,P);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),$.set(o,l)}return l}function A(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return T(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/11ac0d0e69696c72.js","static/chunks/172f6179d608c15f.js","static/chunks/571fbcba7786c174.js","static/chunks/dbbdc51e76f4cea4.js","static/chunks/526448e84b58822c.js"],runtimeModuleIds:[53558]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,l=Object.prototype.hasOwnProperty,i="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){l.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=c(t),e[t]=r),r}function c(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function a(e,t){s(e,"__esModule",{value:!0}),i&&s(e,i,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)s(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?s(e,n,{get:o,set:t[r++],enumerable:!0}):s(e,n,{get:o,enumerable:!0})}Object.seal(e)}o.s=function(e,t){let r,n;null!=t?n=(r=u(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,a(n,e)},o.j=function(e,t){var n,o;let i,s,c;null!=t?s=(i=u(this.c,t)).exports:(i=this.m,s=this.e);let a=(n=i,o=s,(c=r.get(n))||(r.set(n,c=[]),n.exports=n.namespaceObject=new Proxy(o,{get(e,t){if(l.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of c){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of c)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),c);"object"==typeof e&&null!==e&&a.push(e)},o.v=function(e,t){(null!=t?u(this.c,t):this.m).exports=e},o.n=function(e,t){let r;(r=null!=t?u(this.c,t):this.m).exports=r.namespaceObject=e};let f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),a(t,n),t}function d(e){let t=M(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function m(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=d,o.A=function(e){return this.r(e)(d.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return M(e,this.m).exports},o.f=function(e){function t(t){if(l.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(l.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let b=Symbol("turbopack queues"),y=Symbol("turbopack exports"),O=Symbol("turbopack error");function g(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=m(),u=Object.assign(s,{[y]:r.exports,[b]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),c={get:()=>u,set(e){e!==u&&(u[y]=e)}};Object.defineProperty(r,"exports",c),Object.defineProperty(r,"namespaceObject",c),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(b in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[y]:{},[b]:e=>e(t)};return e.then(e=>{r[y]=e,g(t)},e=>{r[O]=e,g(t)}),r}}return{[y]:e,[b]:()=>{}}}),r=()=>t.map(e=>{if(e[O])throw e[O];return e[y]}),{promise:l,resolve:i}=m(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[b](u)),s.queueCount?l:r()},function(e){e?i(u[O]=e):l(u[y]),g(n)}),n&&-1===n.status&&(n.status=0)};let w=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}w.prototype=URL.prototype,o.U=w,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var C=function(e){return e[e.Runtime=0]="Runtime",e[e.Parent=1]="Parent",e[e.Update=2]="Update",e}(C||{});let _=new Map;o.M=_;let U=new Map,k=new Map;async function v(e,t,r){let n;if("string"==typeof r)return T(e,t,A(r));let o=r.included||[],l=o.map(e=>!!_.has(e)||U.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>k.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)k.has(e)||r.add(e);for(let n of r){let r=T(e,t,A(n));k.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=T(e,t,A(r.path)),i))k.has(o)||k.set(o,n)}for(let e of o)U.has(e)||U.set(e,n);await n}R.l=function(e){return v(1,this.m.id,e)};let P=Promise.resolve(void 0),$=new WeakMap;function T(t,r,n){let o=e.loadChunkCached(t,n),l=$.get(o);if(void 0===l){let e=$.set.bind($,o,P);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),$.set(o,l)}return l}function A(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return T(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
2
2
  self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(A),null,2)};
3
- importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let S=/\.js(?:\?[^#]*)?(?:#.*)?$/,E=/\.css(?:\?[^#]*)?(?:#.*)?$/;function K(e){return E.test(e)}o.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},o.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let x={};o.c=x;let M=(e,t)=>{let r=x[e];if(r){if(r.error)throw r.error;return r}return N(e,C.Parent,t.id)};function N(e,t,r){let o=_.get(e);"function"!=typeof o&&function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}throw Error(`Module ${e} was instantiated ${n}, but the module factory is not available. It might have been deleted in an HMR update.`)}(e,t,r);let l=a(e),i=l.exports;x[e]=l;let s=new n(l,i);try{o(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&h(l.exports,l.namespaceObject),l}function L(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("undefined"!=typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o<e.length;){let t=e[o],n=o+1;for(;n<e.length&&"function"!=typeof e[n];)n++;if(n===e.length)throw Error("malformed chunk format, expected a factory function");if(!r.has(t)){let l=e[n];for(Object.defineProperty(l,"name",{value:"__TURBOPACK__module__evaluation__"});o<n;o++)t=e[o],r.set(t,l)}o=n+1}}(r,0,_)),e.registerChunk(o,n)}let B=new Map;(()=>{function t(e){let t=B.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},B.set(e,t)}return t}e={async registerChunk(e,r){if(t(A(e)).resolve(),null!=r){for(let e of r.otherChunks)t(A("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(t=>v(0,e,t))),r.runtimeModuleIds.length>0)for(let t of r.runtimeModuleIds)!function(e,t){let r=x[t];if(r){if(r.error)throw r.error;return}N(t,C.Runtime,e)}(e,t)}},loadChunkCached:(e,r)=>(function(e,r){let n=t(r);if(n.loadingStarted)return n.promise;if(e===C.Runtime)return n.loadingStarted=!0,K(r)&&n.resolve(),n.promise;if("function"==typeof importScripts)if(K(r));else if(S.test(r))self.TURBOPACK_NEXT_CHUNK_URLS.push(r),importScripts(TURBOPACK_WORKER_LOCATION+r);else throw Error(`can't infer type of chunk from URL ${r} in worker`);else{let e=decodeURI(r);if(K(r))if(document.querySelectorAll(`link[rel=stylesheet][href="${r}"],link[rel=stylesheet][href^="${r}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)n.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=r,e.onerror=()=>{n.reject()},e.onload=()=>{n.resolve()},document.head.appendChild(e)}else if(S.test(r)){let t=document.querySelectorAll(`script[src="${r}"],script[src^="${r}?"],script[src="${e}"],script[src^="${e}?"]`);if(t.length>0)for(let e of Array.from(t))e.addEventListener("error",()=>{n.reject()});else{let e=document.createElement("script");e.src=r,e.onerror=()=>{n.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${r}`)}return n.loadingStarted=!0,n.promise})(e,r),async loadWebAssembly(e,t,r,n,o){let l=fetch(A(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(A(r));return await WebAssembly.compileStreaming(o)}}})();let q=globalThis.TURBOPACK;globalThis.TURBOPACK={push:L},q.forEach(L)})();
3
+ importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let S=/\.js(?:\?[^#]*)?(?:#.*)?$/,E=/\.css(?:\?[^#]*)?(?:#.*)?$/;function K(e){return E.test(e)}o.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},o.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let x={};o.c=x;let M=(e,t)=>{let r=x[e];if(r){if(r.error)throw r.error;return r}return N(e,C.Parent,t.id)};function N(e,t,r){let o=_.get(e);"function"!=typeof o&&function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}throw Error(`Module ${e} was instantiated ${n}, but the module factory is not available. It might have been deleted in an HMR update.`)}(e,t,r);let l=c(e),i=l.exports;x[e]=l;let s=new n(l,i);try{o(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&h(l.exports,l.namespaceObject),l}function L(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("undefined"!=typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o<e.length;){let t=e[o],n=o+1;for(;n<e.length&&"function"!=typeof e[n];)n++;if(n===e.length)throw Error("malformed chunk format, expected a factory function");if(!r.has(t)){let l=e[n];for(Object.defineProperty(l,"name",{value:"__TURBOPACK__module__evaluation__"});o<n;o++)t=e[o],r.set(t,l)}o=n+1}}(r,0,_)),e.registerChunk(o,n)}let B=new Map;(()=>{function t(e){let t=B.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},B.set(e,t)}return t}e={async registerChunk(e,r){if(t(A(e)).resolve(),null!=r){for(let e of r.otherChunks)t(A("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(t=>v(0,e,t))),r.runtimeModuleIds.length>0)for(let t of r.runtimeModuleIds)!function(e,t){let r=x[t];if(r){if(r.error)throw r.error;return}N(t,C.Runtime,e)}(e,t)}},loadChunkCached:(e,r)=>(function(e,r){let n=t(r);if(n.loadingStarted)return n.promise;if(e===C.Runtime)return n.loadingStarted=!0,K(r)&&n.resolve(),n.promise;if("function"==typeof importScripts)if(K(r));else if(S.test(r))self.TURBOPACK_NEXT_CHUNK_URLS.push(r),importScripts(TURBOPACK_WORKER_LOCATION+r);else throw Error(`can't infer type of chunk from URL ${r} in worker`);else{let e=decodeURI(r);if(K(r))if(document.querySelectorAll(`link[rel=stylesheet][href="${r}"],link[rel=stylesheet][href^="${r}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)n.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=r,e.onerror=()=>{n.reject()},e.onload=()=>{n.resolve()},document.head.appendChild(e)}else if(S.test(r)){let t=document.querySelectorAll(`script[src="${r}"],script[src^="${r}?"],script[src="${e}"],script[src^="${e}?"]`);if(t.length>0)for(let e of Array.from(t))e.addEventListener("error",()=>{n.reject()});else{let e=document.createElement("script");e.src=r,e.onerror=()=>{n.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${r}`)}return n.loadingStarted=!0,n.promise})(e,r),async loadWebAssembly(e,t,r,n,o){let l=fetch(A(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(A(r));return await WebAssembly.compileStreaming(o)}}})();let q=globalThis.TURBOPACK;globalThis.TURBOPACK={push:L},q.forEach(L)})();
@@ -1,6 +1,13 @@
1
+ import { readFileSync } from "fs"
1
2
  import { createMcpHandler } from "mcp-handler"
2
3
  import { z } from "zod"
3
- import { executeBrowserAction, fixMyApp, TOOL_DESCRIPTIONS } from "./tools"
4
+ import {
5
+ createIntegratedWorkflow,
6
+ discoverAvailableMcps,
7
+ executeBrowserAction,
8
+ fixMyApp,
9
+ TOOL_DESCRIPTIONS
10
+ } from "./tools"
4
11
 
5
12
  const handler = createMcpHandler(
6
13
  (server) => {
@@ -29,13 +36,64 @@ const handler = createMcpHandler(
29
36
  includeTimestampInstructions: z
30
37
  .boolean()
31
38
  .optional()
32
- .describe("Show timestamp-based debugging instructions for manual workflow (default: true)")
39
+ .describe("Show timestamp-based debugging instructions for manual workflow (default: true)"),
40
+ integrateNextjs: z
41
+ .boolean()
42
+ .optional()
43
+ .describe("Auto-detected based on available MCPs - enables Next.js-specific analysis"),
44
+ integrateChromeDevtools: z
45
+ .boolean()
46
+ .optional()
47
+ .describe("Auto-detected based on available MCPs - enables Chrome DevTools integration"),
48
+ returnRawData: z
49
+ .boolean()
50
+ .optional()
51
+ .describe("Return structured data for Claude orchestration instead of formatted text")
33
52
  },
34
53
  async (params) => {
35
54
  return fixMyApp(params)
36
55
  }
37
56
  )
38
57
 
58
+ // Integrated workflow orchestration tool
59
+ server.tool(
60
+ "create_integrated_workflow",
61
+ TOOL_DESCRIPTIONS.create_integrated_workflow,
62
+ {
63
+ availableMcps: z
64
+ .array(z.string())
65
+ .optional()
66
+ .describe(
67
+ "Array of available MCPs (e.g., ['nextjs-dev', 'chrome-devtools']). If not provided, will auto-discover."
68
+ ),
69
+ focusArea: z.string().optional().describe("Debugging focus area: 'build', 'runtime', 'network', 'ui', 'all'"),
70
+ errorContext: z.string().optional().describe("Known error context to help create targeted workflow")
71
+ },
72
+ async (params) => {
73
+ return createIntegratedWorkflow(params)
74
+ }
75
+ )
76
+
77
+ // MCP discovery tool
78
+ server.tool(
79
+ "discover_available_mcps",
80
+ TOOL_DESCRIPTIONS.discover_available_mcps,
81
+ {
82
+ projectName: z.string().optional().describe("Project name to associate with discovery logging")
83
+ },
84
+ async (params) => {
85
+ const discoveredMcps = await discoverAvailableMcps(params.projectName)
86
+ return {
87
+ content: [
88
+ {
89
+ type: "text",
90
+ text: `šŸ” **MCP DISCOVERY RESULTS**\n\nDiscovered MCPs: ${discoveredMcps.length > 0 ? discoveredMcps.join(", ") : "none"}\n\n${discoveredMcps.length > 0 ? `āœ… Found ${discoveredMcps.length} compatible MCP(s)! These can now be used with create_integrated_workflow for enhanced debugging.` : "āš ļø No MCPs detected. Make sure other MCP servers are running and try again."}\n\nšŸ’” All discovery attempts have been logged to your dev3000 log file with [D3K] tags.`
91
+ }
92
+ ]
93
+ }
94
+ }
95
+ )
96
+
39
97
  // Browser interaction tool
40
98
  server.tool(
41
99
  "execute_browser_action",
@@ -54,6 +112,79 @@ const handler = createMcpHandler(
54
112
  }
55
113
  )
56
114
 
115
+ // CDP URL discovery tool for chrome-devtools MCP coordination
116
+ server.tool(
117
+ "get_shared_cdp_url",
118
+ "šŸ”— **CDP URL SHARING** - Get the CDP WebSocket URL for dev3000's existing Chrome instance. Use this to connect chrome-devtools MCP to dev3000's browser instead of launching a new one.",
119
+ {
120
+ projectName: z.string().optional().describe("Project name to get CDP URL for (if multiple dev3000 instances)")
121
+ },
122
+ async (params) => {
123
+ const { findActiveSessions } = await import("./tools")
124
+ const sessions = findActiveSessions()
125
+
126
+ if (sessions.length === 0) {
127
+ return {
128
+ content: [
129
+ {
130
+ type: "text",
131
+ text: "āŒ No active dev3000 sessions found. Make sure dev3000 is running with browser monitoring."
132
+ }
133
+ ]
134
+ }
135
+ }
136
+
137
+ const targetSession = params.projectName
138
+ ? sessions.find((s) => s.projectName === params.projectName)
139
+ : sessions[0]
140
+
141
+ if (!targetSession) {
142
+ return {
143
+ content: [
144
+ {
145
+ type: "text",
146
+ text: `āŒ No dev3000 session found for project: ${params.projectName}. Available projects: ${sessions.map((s) => s.projectName).join(", ")}`
147
+ }
148
+ ]
149
+ }
150
+ }
151
+
152
+ try {
153
+ const sessionData = JSON.parse(readFileSync(targetSession.sessionFile, "utf-8"))
154
+ const cdpUrl = sessionData.cdpUrl
155
+
156
+ if (cdpUrl) {
157
+ return {
158
+ content: [
159
+ {
160
+ type: "text",
161
+ text: `šŸ”— **SHARED CDP URL FOUND**\n\nProject: ${targetSession.projectName}\nCDP URL: ${cdpUrl}\n\nšŸ’” **Usage**: Configure chrome-devtools MCP to connect to this URL instead of launching its own browser instance.\n\nšŸŽÆ **Coordination**: Both dev3000 and chrome-devtools will now use the same Chrome instance for seamless automation.`
162
+ }
163
+ ]
164
+ }
165
+ } else {
166
+ return {
167
+ content: [
168
+ {
169
+ type: "text",
170
+ text: `āš ļø **CDP URL NOT READY**\n\nProject: ${targetSession.projectName}\nStatus: Browser may still be initializing\n\nšŸ’” Try again in a few seconds once dev3000's browser is fully started.`
171
+ }
172
+ ]
173
+ }
174
+ }
175
+ } catch (error) {
176
+ return {
177
+ content: [
178
+ {
179
+ type: "text",
180
+ text: `āŒ Error reading session data: ${error instanceof Error ? error.message : String(error)}`
181
+ }
182
+ ]
183
+ }
184
+ }
185
+ }
186
+ )
187
+
57
188
  // Tool that returns monitoring code for Claude to execute
58
189
  // TODO: Commenting out for now - need to figure out the right approach for proactive monitoring
59
190
  /*