dev3000 0.0.135 → 0.0.138

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 (326) hide show
  1. package/dist/cdp-monitor.d.ts +1 -1
  2. package/dist/cdp-monitor.d.ts.map +1 -1
  3. package/dist/cdp-monitor.js +5 -3
  4. package/dist/cdp-monitor.js.map +1 -1
  5. package/dist/cli.js +27 -5
  6. package/dist/cli.js.map +1 -1
  7. package/dist/dev-environment.d.ts +15 -0
  8. package/dist/dev-environment.d.ts.map +1 -1
  9. package/dist/dev-environment.js +63 -22
  10. package/dist/dev-environment.js.map +1 -1
  11. package/dist/src/tui-interface-impl.tsx +47 -25
  12. package/dist/tui-interface-impl.d.ts +2 -0
  13. package/dist/tui-interface-impl.d.ts.map +1 -1
  14. package/dist/tui-interface-impl.js +28 -15
  15. package/dist/tui-interface-impl.js.map +1 -1
  16. package/dist/tui-interface.d.ts +3 -0
  17. package/dist/tui-interface.d.ts.map +1 -1
  18. package/dist/tui-interface.js +12 -7
  19. package/dist/tui-interface.js.map +1 -1
  20. package/dist/utils/tmux-helpers.d.ts.map +1 -1
  21. package/dist/utils/tmux-helpers.js +34 -4
  22. package/dist/utils/tmux-helpers.js.map +1 -1
  23. package/mcp-server/.next/BUILD_ID +1 -1
  24. package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js +2 -2
  25. package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js.map +1 -1
  26. package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_7988927e._.js +1 -1
  27. package/mcp-server/.next/build/chunks/{node_modules__pnpm_806d01c0._.js → node_modules__bun_19755e4f._.js} +167 -167
  28. package/mcp-server/.next/build/chunks/node_modules__bun_19755e4f._.js.map +47 -0
  29. package/mcp-server/.next/build-manifest.json +7 -7
  30. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  31. package/mcp-server/.next/next-minimal-server.js.nft.json +1 -1
  32. package/mcp-server/.next/next-server.js.nft.json +1 -1
  33. package/mcp-server/.next/prerender-manifest.json +3 -3
  34. package/mcp-server/.next/server/app/_global-error/page/build-manifest.json +5 -5
  35. package/mcp-server/.next/server/app/_global-error/page.js +8 -8
  36. package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
  37. package/mcp-server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  38. package/mcp-server/.next/server/app/_global-error.html +2 -2
  39. package/mcp-server/.next/server/app/_global-error.rsc +7 -7
  40. package/mcp-server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  41. package/mcp-server/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  42. package/mcp-server/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  43. package/mcp-server/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  44. package/mcp-server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  45. package/mcp-server/.next/server/app/_not-found/page/build-manifest.json +5 -5
  46. package/mcp-server/.next/server/app/_not-found/page.js +10 -10
  47. package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
  48. package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  49. package/mcp-server/.next/server/app/_not-found.html +1 -1
  50. package/mcp-server/.next/server/app/_not-found.rsc +7 -7
  51. package/mcp-server/.next/server/app/_not-found.segments/_full.segment.rsc +7 -7
  52. package/mcp-server/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
  53. package/mcp-server/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  54. package/mcp-server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  55. package/mcp-server/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  56. package/mcp-server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  57. package/mcp-server/.next/server/app/api/jank/[session]/route.js +7 -7
  58. package/mcp-server/.next/server/app/api/jank/[session]/route.js.nft.json +1 -1
  59. package/mcp-server/.next/server/app/api/logs/append/route.js +4 -4
  60. package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
  61. package/mcp-server/.next/server/app/api/logs/head/route.js +4 -4
  62. package/mcp-server/.next/server/app/api/logs/head/route.js.nft.json +1 -1
  63. package/mcp-server/.next/server/app/api/logs/list/route.js +4 -4
  64. package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  65. package/mcp-server/.next/server/app/api/logs/rotate/route.js +6 -6
  66. package/mcp-server/.next/server/app/api/logs/rotate/route.js.nft.json +1 -1
  67. package/mcp-server/.next/server/app/api/logs/stream/route.js +4 -4
  68. package/mcp-server/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  69. package/mcp-server/.next/server/app/api/logs/tail/route.js +4 -4
  70. package/mcp-server/.next/server/app/api/logs/tail/route.js.nft.json +1 -1
  71. package/mcp-server/.next/server/app/api/orchestrator/route.js +7 -7
  72. package/mcp-server/.next/server/app/api/orchestrator/route.js.nft.json +1 -1
  73. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js +6 -6
  74. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js.nft.json +1 -1
  75. package/mcp-server/.next/server/app/api/screenshots/capture/route.js +7 -7
  76. package/mcp-server/.next/server/app/api/screenshots/capture/route.js.nft.json +1 -1
  77. package/mcp-server/.next/server/app/api/screenshots/clear/route.js +6 -6
  78. package/mcp-server/.next/server/app/api/screenshots/clear/route.js.nft.json +1 -1
  79. package/mcp-server/.next/server/app/api/screenshots/list/route.js +6 -6
  80. package/mcp-server/.next/server/app/api/screenshots/list/route.js.nft.json +1 -1
  81. package/mcp-server/.next/server/app/api/teams/route.js +5 -5
  82. package/mcp-server/.next/server/app/api/teams/route.js.nft.json +1 -1
  83. package/mcp-server/.next/server/app/api/tools/route.js +6 -6
  84. package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -1
  85. package/mcp-server/.next/server/app/index.html +1 -1
  86. package/mcp-server/.next/server/app/index.rsc +9 -9
  87. package/mcp-server/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  88. package/mcp-server/.next/server/app/index.segments/_full.segment.rsc +9 -9
  89. package/mcp-server/.next/server/app/index.segments/_head.segment.rsc +3 -3
  90. package/mcp-server/.next/server/app/index.segments/_index.segment.rsc +3 -3
  91. package/mcp-server/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  92. package/mcp-server/.next/server/app/logs/page/build-manifest.json +5 -5
  93. package/mcp-server/.next/server/app/logs/page.js +13 -13
  94. package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
  95. package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  96. package/mcp-server/.next/server/app/mcp/route.js +8 -8
  97. package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
  98. package/mcp-server/.next/server/app/page/build-manifest.json +5 -5
  99. package/mcp-server/.next/server/app/page.js +12 -12
  100. package/mcp-server/.next/server/app/page.js.nft.json +1 -1
  101. package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
  102. package/mcp-server/.next/server/app/video/[session]/page/build-manifest.json +5 -5
  103. package/mcp-server/.next/server/app/video/[session]/page.js +12 -12
  104. package/mcp-server/.next/server/app/video/[session]/page.js.nft.json +1 -1
  105. package/mcp-server/.next/server/app/video/[session]/page_client-reference-manifest.js +1 -1
  106. package/mcp-server/.next/server/chunks/{[root-of-the-server]__945b2b7b._.js → [root-of-the-server]__21541e6b._.js} +3 -3
  107. package/mcp-server/.next/server/chunks/[root-of-the-server]__21541e6b._.js.map +1 -0
  108. package/mcp-server/.next/server/chunks/[root-of-the-server]__2f95edf0._.js +17 -0
  109. package/mcp-server/.next/server/chunks/[root-of-the-server]__2f95edf0._.js.map +1 -0
  110. package/mcp-server/.next/server/chunks/[root-of-the-server]__377f76d7._.js +7 -0
  111. package/mcp-server/.next/server/chunks/[root-of-the-server]__377f76d7._.js.map +1 -0
  112. package/mcp-server/.next/server/chunks/[root-of-the-server]__454b0d3c._.js +7 -0
  113. package/mcp-server/.next/server/chunks/[root-of-the-server]__454b0d3c._.js.map +1 -0
  114. package/mcp-server/.next/server/chunks/[root-of-the-server]__6728fd4b._.js +3 -0
  115. package/mcp-server/.next/server/chunks/[root-of-the-server]__6728fd4b._.js.map +1 -0
  116. package/mcp-server/.next/server/chunks/[root-of-the-server]__69498adb._.js +3 -0
  117. package/mcp-server/.next/server/chunks/[root-of-the-server]__69498adb._.js.map +1 -0
  118. package/mcp-server/.next/server/chunks/[root-of-the-server]__6c914ee2._.js +3 -0
  119. package/mcp-server/.next/server/chunks/[root-of-the-server]__6c914ee2._.js.map +1 -0
  120. package/mcp-server/.next/server/chunks/[root-of-the-server]__6f790e1f._.js +3 -0
  121. package/mcp-server/.next/server/chunks/[root-of-the-server]__6f790e1f._.js.map +1 -0
  122. package/mcp-server/.next/server/chunks/[root-of-the-server]__7049acd5._.js +3 -0
  123. package/mcp-server/.next/server/chunks/[root-of-the-server]__7049acd5._.js.map +1 -0
  124. package/mcp-server/.next/server/chunks/{[root-of-the-server]__340a77dc._.js → [root-of-the-server]__73c9cc46._.js} +2 -2
  125. package/mcp-server/.next/server/chunks/[root-of-the-server]__73c9cc46._.js.map +1 -0
  126. package/mcp-server/.next/server/chunks/[root-of-the-server]__78991125._.js +3 -0
  127. package/mcp-server/.next/server/chunks/[root-of-the-server]__78991125._.js.map +1 -0
  128. package/mcp-server/.next/server/chunks/[root-of-the-server]__7ae828c6._.js +3 -0
  129. package/mcp-server/.next/server/chunks/[root-of-the-server]__7ae828c6._.js.map +1 -0
  130. package/mcp-server/.next/server/chunks/{[root-of-the-server]__532c5da6._.js → [root-of-the-server]__7ed5139a._.js} +1 -1
  131. package/mcp-server/.next/server/chunks/[root-of-the-server]__95098840._.js +3 -0
  132. package/mcp-server/.next/server/chunks/[root-of-the-server]__95098840._.js.map +1 -0
  133. package/mcp-server/.next/server/chunks/{[root-of-the-server]__8589759c._.js → [root-of-the-server]__99274dd8._.js} +3 -3
  134. package/mcp-server/.next/server/chunks/[root-of-the-server]__99274dd8._.js.map +1 -0
  135. package/mcp-server/.next/server/chunks/[root-of-the-server]__af8a6500._.js +3 -0
  136. package/mcp-server/.next/server/chunks/[root-of-the-server]__af8a6500._.js.map +1 -0
  137. package/mcp-server/.next/server/chunks/{[root-of-the-server]__4aa77621._.js → [root-of-the-server]__b56464d6._.js} +3 -3
  138. package/mcp-server/.next/server/chunks/[root-of-the-server]__b56464d6._.js.map +1 -0
  139. package/mcp-server/.next/server/chunks/{[root-of-the-server]__714e8bcf._.js → [root-of-the-server]__b698502d._.js} +2 -2
  140. package/mcp-server/.next/server/chunks/[root-of-the-server]__b698502d._.js.map +1 -0
  141. package/mcp-server/.next/server/chunks/[root-of-the-server]__daca64a4._.js +3 -0
  142. package/mcp-server/.next/server/chunks/[root-of-the-server]__daca64a4._.js.map +1 -0
  143. package/mcp-server/.next/server/chunks/[root-of-the-server]__ee39655c._.js +4 -0
  144. package/mcp-server/.next/server/chunks/[root-of-the-server]__ee39655c._.js.map +1 -0
  145. package/mcp-server/.next/server/chunks/[root-of-the-server]__f4213a2f._.js +4 -0
  146. package/mcp-server/.next/server/chunks/[root-of-the-server]__f4213a2f._.js.map +1 -0
  147. package/mcp-server/.next/server/chunks/edd96_next_80752ad3._.js +3 -0
  148. package/mcp-server/.next/server/chunks/edd96_next_80752ad3._.js.map +1 -0
  149. package/mcp-server/.next/server/chunks/edd96_next_dist_esm_build_templates_app-route_f51c5640.js +3 -0
  150. package/mcp-server/.next/server/chunks/edd96_next_dist_esm_build_templates_app-route_f51c5640.js.map +1 -0
  151. package/mcp-server/.next/server/chunks/{c80b1_next_dist_579c473d._.js → edd96_next_dist_fa47e982._.js} +3 -3
  152. package/mcp-server/.next/server/chunks/edd96_next_dist_fa47e982._.js.map +1 -0
  153. package/mcp-server/.next/server/chunks/edd96_next_ef93dda6._.js +14 -0
  154. package/mcp-server/.next/server/chunks/edd96_next_ef93dda6._.js.map +1 -0
  155. package/mcp-server/.next/server/chunks/mcp-server_app_mcp_tools_ts_faf6d7df._.js +1 -1
  156. package/mcp-server/.next/server/chunks/mcp-server_app_mcp_tools_ts_faf6d7df._.js.map +1 -1
  157. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__ab72cb3d._.js → [root-of-the-server]__163e0fe2._.js} +2 -2
  158. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__163e0fe2._.js.map +1 -0
  159. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__bbed00c8._.js → [root-of-the-server]__250a4cf3._.js} +2 -2
  160. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__250a4cf3._.js.map +1 -0
  161. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__41e244ae._.js +3 -0
  162. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__41e244ae._.js.map +1 -0
  163. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__50b48a29._.js → [root-of-the-server]__4a45fb1f._.js} +2 -2
  164. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4a45fb1f._.js.map +1 -0
  165. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__64e0f342._.js → [root-of-the-server]__4b74b898._.js} +2 -2
  166. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4b74b898._.js.map +1 -0
  167. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__bc51e8b7._.js → [root-of-the-server]__4feaccaf._.js} +2 -2
  168. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4feaccaf._.js.map +1 -0
  169. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__6d9fa861._.js +3 -0
  170. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__90e175f7._.js → [root-of-the-server]__9913ce94._.js} +2 -2
  171. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9923da5e._.js +3 -0
  172. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9923da5e._.js.map +1 -0
  173. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__3c6c75a6._.js → [root-of-the-server]__a8fcf205._.js} +2 -2
  174. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__df4ed844._.js +3 -0
  175. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__df4ed844._.js.map +1 -0
  176. package/mcp-server/.next/server/chunks/ssr/{_be1b41b5._.js → _213c874b._.js} +3 -3
  177. package/mcp-server/.next/server/chunks/ssr/_213c874b._.js.map +1 -0
  178. package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_5f2de86d._.js → _69be9abe._.js} +3 -3
  179. package/mcp-server/.next/server/chunks/ssr/_69be9abe._.js.map +1 -0
  180. package/mcp-server/.next/server/chunks/ssr/{_e92c871d._.js → _b38781f1._.js} +3 -3
  181. package/mcp-server/.next/server/chunks/ssr/_b38781f1._.js.map +1 -0
  182. package/mcp-server/.next/server/chunks/ssr/{_9a178862._.js → _edba94b0._.js} +3 -3
  183. package/mcp-server/.next/server/chunks/ssr/_edba94b0._.js.map +1 -0
  184. package/mcp-server/.next/server/chunks/ssr/{_aabc0f14._.js → _f478416d._.js} +3 -3
  185. package/mcp-server/.next/server/chunks/ssr/_f478416d._.js.map +1 -0
  186. package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_esm_build_templates_app-page_9b0ce51c.js → edd96_next_dist_22d4e869._.js} +3 -3
  187. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_22d4e869._.js.map +1 -0
  188. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_329c4a9b._.js +10 -0
  189. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_329c4a9b._.js.map +1 -0
  190. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_6cceb2cd._.js +3 -0
  191. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_6cceb2cd._.js.map +1 -0
  192. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_861297ac._.js +6 -0
  193. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_861297ac._.js.map +1 -0
  194. package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_client_components_43abb007._.js → edd96_next_dist_client_components_85c7e922._.js} +2 -2
  195. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_85c7e922._.js.map +1 -0
  196. package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_client_components_builtin_forbidden_462fb25e.js → edd96_next_dist_client_components_builtin_forbidden_0eb1cacd.js} +2 -2
  197. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_forbidden_0eb1cacd.js.map +1 -0
  198. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_global-error_e64e654b.js +3 -0
  199. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_global-error_e64e654b.js.map +1 -0
  200. package/mcp-server/.next/server/chunks/ssr/{c80b1_next_dist_client_components_builtin_unauthorized_9a1b3d4d.js → edd96_next_dist_client_components_builtin_unauthorized_06e7b5f5.js} +2 -2
  201. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_client_components_builtin_unauthorized_06e7b5f5.js.map +1 -0
  202. package/mcp-server/.next/server/chunks/ssr/{_262bbdcd._.js → edd96_next_dist_esm_build_templates_app-page_f82c7ca4.js} +3 -3
  203. package/mcp-server/.next/server/chunks/ssr/edd96_next_dist_esm_build_templates_app-page_f82c7ca4.js.map +1 -0
  204. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_layout_tsx_afa41767._.js +1 -1
  205. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_page_tsx_9fc46577._.js +1 -1
  206. package/mcp-server/.next/server/chunks/ssr/mcp-server_components_dark-mode-toggle_tsx_f31dd15d._.js +1 -1
  207. package/mcp-server/.next/server/chunks/ssr/mcp-server_components_dark-mode-toggle_tsx_f31dd15d._.js.map +1 -1
  208. package/mcp-server/.next/server/chunks/ssr/node_modules__bun_39d5fbaf._.js +3 -0
  209. package/mcp-server/.next/server/chunks/ssr/node_modules__bun_39d5fbaf._.js.map +1 -0
  210. package/mcp-server/.next/server/chunks/ssr/node_modules__bun_d6d37386._.js +5 -0
  211. package/mcp-server/.next/server/chunks/ssr/node_modules__bun_d6d37386._.js.map +1 -0
  212. package/mcp-server/.next/server/middleware-build-manifest.js +5 -5
  213. package/mcp-server/.next/server/pages/404.html +1 -1
  214. package/mcp-server/.next/server/pages/500.html +2 -2
  215. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  216. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  217. package/mcp-server/.next/static/chunks/10099c90a1ca89ea.js +4 -0
  218. package/mcp-server/.next/static/chunks/{86092b19e32d6ddb.js → 10c04cb580a9beec.js} +1 -1
  219. package/mcp-server/.next/static/chunks/13606014ef33124c.js +2 -0
  220. package/mcp-server/.next/static/chunks/2422ea9ed874427b.js +1 -0
  221. package/mcp-server/.next/static/chunks/39e9bdcc541cc428.js +1 -0
  222. package/mcp-server/.next/static/chunks/4785978304fb9e19.js +1 -0
  223. package/mcp-server/.next/static/chunks/5df77c9395248155.js +1 -0
  224. package/mcp-server/.next/static/chunks/807aef58565dccb1.js +1 -0
  225. package/mcp-server/.next/static/chunks/a6dad97d9634a72d.js.map +1 -1
  226. package/mcp-server/.next/static/chunks/{5c8ff2f81b2fec4d.js → b8eb42a9560f7980.js} +3 -3
  227. package/mcp-server/.next/static/chunks/{ba2f63419c181083.js → cbbf49c419347401.js} +1 -1
  228. package/mcp-server/.next/static/chunks/ea7b53054294e7bb.js +3 -0
  229. package/mcp-server/.next/static/chunks/{turbopack-2c2bdfdb92058782.js → turbopack-b64e111cadf03885.js} +2 -2
  230. package/mcp-server/app/mcp/tools.ts +4 -1
  231. package/mcp-server/package.json +1 -0
  232. package/mcp-server/start-production.mjs +5 -1
  233. package/package.json +8 -12
  234. package/src/tui-interface-impl.tsx +47 -25
  235. package/mcp-server/.next/build/chunks/node_modules__pnpm_806d01c0._.js.map +0 -47
  236. package/mcp-server/.next/server/chunks/[root-of-the-server]__141a5bc7._.js +0 -17
  237. package/mcp-server/.next/server/chunks/[root-of-the-server]__141a5bc7._.js.map +0 -1
  238. package/mcp-server/.next/server/chunks/[root-of-the-server]__1ca296d3._.js +0 -3
  239. package/mcp-server/.next/server/chunks/[root-of-the-server]__1ca296d3._.js.map +0 -1
  240. package/mcp-server/.next/server/chunks/[root-of-the-server]__21bdfd19._.js +0 -3
  241. package/mcp-server/.next/server/chunks/[root-of-the-server]__21bdfd19._.js.map +0 -1
  242. package/mcp-server/.next/server/chunks/[root-of-the-server]__31a16876._.js +0 -3
  243. package/mcp-server/.next/server/chunks/[root-of-the-server]__31a16876._.js.map +0 -1
  244. package/mcp-server/.next/server/chunks/[root-of-the-server]__340a77dc._.js.map +0 -1
  245. package/mcp-server/.next/server/chunks/[root-of-the-server]__4aa77621._.js.map +0 -1
  246. package/mcp-server/.next/server/chunks/[root-of-the-server]__52809b10._.js +0 -3
  247. package/mcp-server/.next/server/chunks/[root-of-the-server]__52809b10._.js.map +0 -1
  248. package/mcp-server/.next/server/chunks/[root-of-the-server]__714e8bcf._.js.map +0 -1
  249. package/mcp-server/.next/server/chunks/[root-of-the-server]__81270bcf._.js +0 -3
  250. package/mcp-server/.next/server/chunks/[root-of-the-server]__81270bcf._.js.map +0 -1
  251. package/mcp-server/.next/server/chunks/[root-of-the-server]__8589759c._.js.map +0 -1
  252. package/mcp-server/.next/server/chunks/[root-of-the-server]__90514e85._.js +0 -4
  253. package/mcp-server/.next/server/chunks/[root-of-the-server]__90514e85._.js.map +0 -1
  254. package/mcp-server/.next/server/chunks/[root-of-the-server]__90569352._.js +0 -3
  255. package/mcp-server/.next/server/chunks/[root-of-the-server]__90569352._.js.map +0 -1
  256. package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js +0 -7
  257. package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js.map +0 -1
  258. package/mcp-server/.next/server/chunks/[root-of-the-server]__945b2b7b._.js.map +0 -1
  259. package/mcp-server/.next/server/chunks/[root-of-the-server]__ad4d66b0._.js +0 -3
  260. package/mcp-server/.next/server/chunks/[root-of-the-server]__ad4d66b0._.js.map +0 -1
  261. package/mcp-server/.next/server/chunks/[root-of-the-server]__b4ecebbe._.js +0 -3
  262. package/mcp-server/.next/server/chunks/[root-of-the-server]__b4ecebbe._.js.map +0 -1
  263. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js +0 -7
  264. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js.map +0 -1
  265. package/mcp-server/.next/server/chunks/[root-of-the-server]__e7efb7fe._.js +0 -3
  266. package/mcp-server/.next/server/chunks/[root-of-the-server]__e7efb7fe._.js.map +0 -1
  267. package/mcp-server/.next/server/chunks/[root-of-the-server]__fa4b0e38._.js +0 -4
  268. package/mcp-server/.next/server/chunks/[root-of-the-server]__fa4b0e38._.js.map +0 -1
  269. package/mcp-server/.next/server/chunks/[root-of-the-server]__fd2bf649._.js +0 -3
  270. package/mcp-server/.next/server/chunks/[root-of-the-server]__fd2bf649._.js.map +0 -1
  271. package/mcp-server/.next/server/chunks/c80b1_next_d479b5fa._.js +0 -14
  272. package/mcp-server/.next/server/chunks/c80b1_next_d479b5fa._.js.map +0 -1
  273. package/mcp-server/.next/server/chunks/c80b1_next_dist_579c473d._.js.map +0 -1
  274. package/mcp-server/.next/server/chunks/c80b1_next_dist_esm_build_templates_app-route_ea10d5ad.js +0 -3
  275. package/mcp-server/.next/server/chunks/c80b1_next_dist_esm_build_templates_app-route_ea10d5ad.js.map +0 -1
  276. package/mcp-server/.next/server/chunks/c80b1_next_f225a77d._.js +0 -3
  277. package/mcp-server/.next/server/chunks/c80b1_next_f225a77d._.js.map +0 -1
  278. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1d6b73d5._.js +0 -3
  279. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1d6b73d5._.js.map +0 -1
  280. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__27ae22d6._.js +0 -3
  281. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__27ae22d6._.js.map +0 -1
  282. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__324715a4._.js +0 -3
  283. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__324715a4._.js.map +0 -1
  284. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__50b48a29._.js.map +0 -1
  285. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__64e0f342._.js.map +0 -1
  286. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__75b45b88._.js +0 -3
  287. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__ab72cb3d._.js.map +0 -1
  288. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__bbed00c8._.js.map +0 -1
  289. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__bc51e8b7._.js.map +0 -1
  290. package/mcp-server/.next/server/chunks/ssr/_262bbdcd._.js.map +0 -1
  291. package/mcp-server/.next/server/chunks/ssr/_9a178862._.js.map +0 -1
  292. package/mcp-server/.next/server/chunks/ssr/_aabc0f14._.js.map +0 -1
  293. package/mcp-server/.next/server/chunks/ssr/_be1b41b5._.js.map +0 -1
  294. package/mcp-server/.next/server/chunks/ssr/_e92c871d._.js.map +0 -1
  295. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_0d37e039._.js +0 -3
  296. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_0d37e039._.js.map +0 -1
  297. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_5f2de86d._.js.map +0 -1
  298. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_81d07c6e._.js +0 -10
  299. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_81d07c6e._.js.map +0 -1
  300. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_889a708f._.js +0 -6
  301. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_889a708f._.js.map +0 -1
  302. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_43abb007._.js.map +0 -1
  303. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_forbidden_462fb25e.js.map +0 -1
  304. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_global-error_f3bf1365.js +0 -3
  305. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_global-error_f3bf1365.js.map +0 -1
  306. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_client_components_builtin_unauthorized_9a1b3d4d.js.map +0 -1
  307. package/mcp-server/.next/server/chunks/ssr/c80b1_next_dist_esm_build_templates_app-page_9b0ce51c.js.map +0 -1
  308. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_98754805._.js +0 -5
  309. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_98754805._.js.map +0 -1
  310. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_b801224a._.js +0 -3
  311. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_b801224a._.js.map +0 -1
  312. package/mcp-server/.next/static/chunks/0ceacd9ff62ffa24.js +0 -1
  313. package/mcp-server/.next/static/chunks/41c5312e59752fb5.js +0 -1
  314. package/mcp-server/.next/static/chunks/47219b9a153e0530.js +0 -3
  315. package/mcp-server/.next/static/chunks/4b70aaeeb4b78390.js +0 -1
  316. package/mcp-server/.next/static/chunks/6bd8e9b9ad938cba.js +0 -1
  317. package/mcp-server/.next/static/chunks/a782bd48b8755eeb.js +0 -1
  318. package/mcp-server/.next/static/chunks/f09e07f5359ffb6b.js +0 -4
  319. package/mcp-server/.next/static/chunks/f5ae99caea655ac1.js +0 -2
  320. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__532c5da6._.js.map → [root-of-the-server]__7ed5139a._.js.map} +0 -0
  321. /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__75b45b88._.js.map → [root-of-the-server]__6d9fa861._.js.map} +0 -0
  322. /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__90e175f7._.js.map → [root-of-the-server]__9913ce94._.js.map} +0 -0
  323. /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__3c6c75a6._.js.map → [root-of-the-server]__a8fcf205._.js.map} +0 -0
  324. /package/mcp-server/.next/static/{w4nXrGobMpURW0AYMnAQ8 → gicQOhS3xoSQe_xAaJ-se}/_buildManifest.js +0 -0
  325. /package/mcp-server/.next/static/{w4nXrGobMpURW0AYMnAQ8 → gicQOhS3xoSQe_xAaJ-se}/_clientMiddlewareManifest.json +0 -0
  326. /package/mcp-server/.next/static/{w4nXrGobMpURW0AYMnAQ8 → gicQOhS3xoSQe_xAaJ-se}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,76552,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},9517,(e,t,r)=>{"use strict";var n=e.r(41975).__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;r.c=function(e){return n.H.useMemoCache(e)}},69093,(e,t,r)=>{"use strict";t.exports=e.r(9517)},30061,(e,t,r)=>{"use strict";function n({widthInt:e,heightInt:t,blurWidth:r,blurHeight:n,blurDataURL:i,objectFit:o}){let l=r?40*r:e,a=n?40*n:t,s=l&&a?`viewBox='0 0 ${l} ${a}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${s}%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='${s?"none":"contain"===o?"xMidYMid":"cover"===o?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${i}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},88477,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={VALID_LOADERS:function(){return o},imageConfigDefault:function(){return l}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=["default","imgix","cloudinary","akamai","custom"],l={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},34930,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return u}}),e.r(76552);let n=e.r(51296),i=e.r(30061),o=e.r(88477),l=["-moz-initial","fill","none","scale-down",void 0];function a(e){return void 0!==e.default}function s(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 u({src:e,sizes:t,unoptimized:r=!1,priority:u=!1,preload:d=!1,loading:c,className:f,quality:p,width:g,height:m,fill:h=!1,style:b,overrideSrc:y,onLoad:_,onLoadingComplete:v,placeholder:w="empty",blurDataURL:j,fetchPriority:O,decoding:P="async",layout:E,objectFit:S,objectPosition:C,lazyBoundary:x,lazyRoot:R,...M},z){var I;let $,D,T,{imgConf:A,showAltText:N,blurComplete:k,defaultLoader:U}=z,L=A||o.imageConfigDefault;if("allSizes"in L)$=L;else{let e=[...L.deviceSizes,...L.imageSizes].sort((e,t)=>e-t),t=L.deviceSizes.sort((e,t)=>e-t),r=L.qualities?.sort((e,t)=>e-t);$={...L,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===U)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 q=M.loader||U;delete M.loader,delete M.srcSet;let F="__next_img_default"in q;if(F){if("custom"===$.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2
- Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=q;q=t=>{let{config:r,...n}=t;return e(n)}}if(E){"fill"===E&&(h=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[E];e&&(b={...b,...e});let r={responsive:"100vw",fill:"100vw"}[E];r&&!t&&(t=r)}let B="",G=s(g),W=s(m);if((I=e)&&"object"==typeof I&&(a(I)||void 0!==I.src)){let t=a(e)?e.default:e;if(!t.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(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.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(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(D=t.blurWidth,T=t.blurHeight,j=j||t.blurDataURL,B=t.src,!h)if(G||W){if(G&&!W){let e=G/t.width;W=Math.round(t.height*e)}else if(!G&&W){let e=W/t.height;G=Math.round(t.width*e)}}else G=t.width,W=t.height}let H=!u&&!d&&("lazy"===c||void 0===c);(!(e="string"==typeof e?e:B)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,H=!1),$.unoptimized&&(r=!0),F&&!$.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let X=s(p),V=Object.assign(h?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:S,objectPosition:C}:{},N?{}:{color:"transparent"},b),Y=k||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,i.getImageBlurSvg)({widthInt:G,heightInt:W,blurWidth:D,blurHeight:T,blurDataURL:j||"",objectFit:V.objectFit})}")`:`url("${w}")`,J=l.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,K=Y?{backgroundSize:J,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},Q=function({config:e,src:t,unoptimized:r,width:i,quality:o,sizes:l,loader:a}){if(r){let e=(0,n.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")&&e){let r=t.includes("?")?"&":"?";t=`${t}${r}dpl=${e}`}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:s,kind:u}=function({deviceSizes:e,allSizes:t},r,n){if(n){let r=/(^|\s)(1?\d?\d)vw/g,i=[];for(let e;e=r.exec(n);)i.push(parseInt(e[2]));if(i.length){let r=.01*Math.min(...i);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,i,l),d=s.length-1;return{sizes:l||"w"!==u?l:"100vw",srcSet:s.map((r,n)=>`${a({config:e,src:t,quality:o,width:r})} ${"w"===u?r:n+1}${u}`).join(", "),src:a({config:e,src:t,quality:o,width:s[d]})}}({config:$,src:e,unoptimized:r,width:G,quality:X,sizes:t,loader:q}),Z=H?"lazy":c;return{props:{...M,loading:Z,fetchPriority:O,width:G,height:W,decoding:P,className:f,style:{...V,...K},sizes:Q.sizes,srcSet:Q.srcSet,src:y||Q.src},meta:{unoptimized:r,preload:d||u,placeholder:w,fill:h}}}},81466,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(41975),i="undefined"==typeof window,o=i?()=>{}:n.useLayoutEffect,l=i?()=>{}:n.useEffect;function a(e){let{headManager:t,reduceComponentsToState:r}=e;function a(){if(t&&t.mountedInstances){let e=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return i&&(t?.mountedInstances?.add(e.children),a()),o(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),o(()=>(t&&(t._pendingUpdate=a),()=>{t&&(t._pendingUpdate=a)})),l(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},93152,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return m},defaultHead:function(){return c}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(81258),l=e.r(44066),a=e.r(47525),s=l._(e.r(41975)),u=o._(e.r(81466)),d=e.r(99060);function c(){return[(0,a.jsx)("meta",{charSet:"utf-8"},"charset"),(0,a.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===s.default.Fragment?e.concat(s.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(76552);let p=["name","httpEquiv","charSet","itemProp"];function g(e){let t,r,n,i;return e.reduce(f,[]).reverse().concat(c().reverse()).filter((t=new Set,r=new Set,n=new Set,i={},e=>{let o=!0,l=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){l=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?o=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?o=!1:r.add(e.type);break;case"meta":for(let t=0,r=p.length;t<r;t++){let r=p[t];if(e.props.hasOwnProperty(r))if("charSet"===r)n.has(r)?o=!1:n.add(r);else{let t=e.props[r],n=i[r]||new Set;("name"!==r||!l)&&n.has(t)?o=!1:(n.add(t),i[r]=n)}}}return o})).reverse().map((e,t)=>{let r=e.key||t;return s.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,s.useContext)(d.HeadManagerContext);return(0,a.jsx)(u.default,{reduceComponentsToState:g,headManager:t,children:e})};("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)},39079,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return o}});let n=e.r(81258)._(e.r(41975)),i=e.r(88477),o=n.default.createContext(i.imageConfigDefault)},83546,(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(41975)).default.createContext(null)},45228,(e,t,r)=>{"use strict";function n(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,0):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return n}})},88986,(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(45228),i=e.r(51296);function o({config:e,src:t,width:r,quality:o}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
3
- Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let l=(0,n.findClosestQuality)(o,e),a=(0,i.getDeploymentId)();return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${l}${t.startsWith("/")&&a?`&dpl=${a}`:""}`}o.__next_img_default=!0;let l=o},63904,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(41975);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=o(e,n)),t&&(i.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(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)},6547,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return v}});let n=e.r(81258),i=e.r(44066),o=e.r(47525),l=i._(e.r(41975)),a=n._(e.r(77452)),s=n._(e.r(93152)),u=e.r(34930),d=e.r(88477),c=e.r(39079);e.r(76552);let f=e.r(83546),p=n._(e.r(88986)),g=e.r(63904),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function h(e,t,r,n,i,o,l){let a=e?.src;e&&e["data-loaded-src"]!==a&&(e["data-loaded-src"]=a,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,i=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}n?.current&&n.current(e)}}))}function b(e){return l.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let y=(0,l.forwardRef)(({src:e,srcSet:t,sizes:r,height:n,width:i,decoding:a,className:s,style:u,fetchPriority:d,placeholder:c,loading:f,unoptimized:p,fill:m,onLoadRef:y,onLoadingCompleteRef:_,setBlurComplete:v,setShowAltText:w,sizesInput:j,onLoad:O,onError:P,...E},S)=>{let C=(0,l.useCallback)(e=>{e&&(P&&(e.src=e.src),e.complete&&h(e,c,y,_,v,p,j))},[e,c,y,_,v,P,p,j]),x=(0,g.useMergedRef)(S,C);return(0,o.jsx)("img",{...E,...b(d),loading:f,width:i,height:n,decoding:a,"data-nimg":m?"fill":"1",className:s,style:u,sizes:r,srcSet:t,src:e,ref:x,onLoad:e=>{h(e.currentTarget,c,y,_,v,p,j)},onError:e=>{w(!0),"empty"!==c&&v(!0),P&&P(e)}})});function _({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...b(t.fetchPriority)};return e&&a.default.preload?(a.default.preload(t.src,r),null):(0,o.jsx)(s.default,{children:(0,o.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let v=(0,l.forwardRef)((e,t)=>{let r=(0,l.useContext)(f.RouterContext),n=(0,l.useContext)(c.ImageConfigContext),i=(0,l.useMemo)(()=>{let e=m||n||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),i=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:i,localPatterns:"undefined"==typeof window?n?.localPatterns:e.localPatterns}},[n]),{onLoad:a,onLoadingComplete:s}=e,g=(0,l.useRef)(a);(0,l.useEffect)(()=>{g.current=a},[a]);let h=(0,l.useRef)(s);(0,l.useEffect)(()=>{h.current=s},[s]);let[b,v]=(0,l.useState)(!1),[w,j]=(0,l.useState)(!1),{props:O,meta:P}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:i,blurComplete:b,showAltText:w});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(y,{...O,unoptimized:P.unoptimized,placeholder:P.placeholder,fill:P.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:v,setShowAltText:j,sizesInput:e.sizes,ref:t}),P.preload?(0,o.jsx)(_,{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)},90911,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return d},getImageProps:function(){return u}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(81258),l=e.r(34930),a=e.r(6547),s=o._(e.r(88986));function u(e){let{props:t}=(0,l.getImgProps)(e,{defaultLoader:s.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[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 d=a.Image},29831,(e,t,r)=>{t.exports=e.r(90911)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2066,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},35066,(e,t,r)=>{"use strict";var n=e.r(23093).__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;r.c=function(e){return n.H.useMemoCache(e)}},36546,(e,t,r)=>{"use strict";t.exports=e.r(35066)},82587,(e,t,r)=>{"use strict";function n({widthInt:e,heightInt:t,blurWidth:r,blurHeight:n,blurDataURL:i,objectFit:o}){let l=r?40*r:e,a=n?40*n:t,s=l&&a?`viewBox='0 0 ${l} ${a}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${s}%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='${s?"none":"contain"===o?"xMidYMid":"cover"===o?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${i}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},65199,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={VALID_LOADERS:function(){return o},imageConfigDefault:function(){return l}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=["default","imgix","cloudinary","akamai","custom"],l={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},47289,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return u}}),e.r(2066);let n=e.r(32429),i=e.r(82587),o=e.r(65199),l=["-moz-initial","fill","none","scale-down",void 0];function a(e){return void 0!==e.default}function s(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 u({src:e,sizes:t,unoptimized:r=!1,priority:u=!1,preload:d=!1,loading:c,className:f,quality:p,width:g,height:m,fill:h=!1,style:b,overrideSrc:y,onLoad:_,onLoadingComplete:v,placeholder:w="empty",blurDataURL:j,fetchPriority:O,decoding:P="async",layout:E,objectFit:S,objectPosition:C,lazyBoundary:x,lazyRoot:R,...M},z){var I;let $,D,T,{imgConf:A,showAltText:N,blurComplete:k,defaultLoader:U}=z,L=A||o.imageConfigDefault;if("allSizes"in L)$=L;else{let e=[...L.deviceSizes,...L.imageSizes].sort((e,t)=>e-t),t=L.deviceSizes.sort((e,t)=>e-t),r=L.qualities?.sort((e,t)=>e-t);$={...L,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===U)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 q=M.loader||U;delete M.loader,delete M.srcSet;let F="__next_img_default"in q;if(F){if("custom"===$.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2
+ Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=q;q=t=>{let{config:r,...n}=t;return e(n)}}if(E){"fill"===E&&(h=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[E];e&&(b={...b,...e});let r={responsive:"100vw",fill:"100vw"}[E];r&&!t&&(t=r)}let B="",G=s(g),W=s(m);if((I=e)&&"object"==typeof I&&(a(I)||void 0!==I.src)){let t=a(e)?e.default:e;if(!t.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(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.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(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(D=t.blurWidth,T=t.blurHeight,j=j||t.blurDataURL,B=t.src,!h)if(G||W){if(G&&!W){let e=G/t.width;W=Math.round(t.height*e)}else if(!G&&W){let e=W/t.height;G=Math.round(t.width*e)}}else G=t.width,W=t.height}let H=!u&&!d&&("lazy"===c||void 0===c);(!(e="string"==typeof e?e:B)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,H=!1),$.unoptimized&&(r=!0),F&&!$.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let X=s(p),V=Object.assign(h?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:S,objectPosition:C}:{},N?{}:{color:"transparent"},b),Y=k||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,i.getImageBlurSvg)({widthInt:G,heightInt:W,blurWidth:D,blurHeight:T,blurDataURL:j||"",objectFit:V.objectFit})}")`:`url("${w}")`,J=l.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,K=Y?{backgroundSize:J,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},Q=function({config:e,src:t,unoptimized:r,width:i,quality:o,sizes:l,loader:a}){if(r){let e=(0,n.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")&&e){let r=t.includes("?")?"&":"?";t=`${t}${r}dpl=${e}`}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:s,kind:u}=function({deviceSizes:e,allSizes:t},r,n){if(n){let r=/(^|\s)(1?\d?\d)vw/g,i=[];for(let e;e=r.exec(n);)i.push(parseInt(e[2]));if(i.length){let r=.01*Math.min(...i);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,i,l),d=s.length-1;return{sizes:l||"w"!==u?l:"100vw",srcSet:s.map((r,n)=>`${a({config:e,src:t,quality:o,width:r})} ${"w"===u?r:n+1}${u}`).join(", "),src:a({config:e,src:t,quality:o,width:s[d]})}}({config:$,src:e,unoptimized:r,width:G,quality:X,sizes:t,loader:q}),Z=H?"lazy":c;return{props:{...M,loading:Z,fetchPriority:O,width:G,height:W,decoding:P,className:f,style:{...V,...K},sizes:Q.sizes,srcSet:Q.srcSet,src:y||Q.src},meta:{unoptimized:r,preload:d||u,placeholder:w,fill:h}}}},92331,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(23093),i="undefined"==typeof window,o=i?()=>{}:n.useLayoutEffect,l=i?()=>{}:n.useEffect;function a(e){let{headManager:t,reduceComponentsToState:r}=e;function a(){if(t&&t.mountedInstances){let e=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return i&&(t?.mountedInstances?.add(e.children),a()),o(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),o(()=>(t&&(t._pendingUpdate=a),()=>{t&&(t._pendingUpdate=a)})),l(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},85547,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return m},defaultHead:function(){return c}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(40192),l=e.r(75244),a=e.r(42073),s=l._(e.r(23093)),u=o._(e.r(92331)),d=e.r(67258);function c(){return[(0,a.jsx)("meta",{charSet:"utf-8"},"charset"),(0,a.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===s.default.Fragment?e.concat(s.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(2066);let p=["name","httpEquiv","charSet","itemProp"];function g(e){let t,r,n,i;return e.reduce(f,[]).reverse().concat(c().reverse()).filter((t=new Set,r=new Set,n=new Set,i={},e=>{let o=!0,l=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){l=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?o=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?o=!1:r.add(e.type);break;case"meta":for(let t=0,r=p.length;t<r;t++){let r=p[t];if(e.props.hasOwnProperty(r))if("charSet"===r)n.has(r)?o=!1:n.add(r);else{let t=e.props[r],n=i[r]||new Set;("name"!==r||!l)&&n.has(t)?o=!1:(n.add(t),i[r]=n)}}}return o})).reverse().map((e,t)=>{let r=e.key||t;return s.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,s.useContext)(d.HeadManagerContext);return(0,a.jsx)(u.default,{reduceComponentsToState:g,headManager:t,children:e})};("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)},80416,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return o}});let n=e.r(40192)._(e.r(23093)),i=e.r(65199),o=n.default.createContext(i.imageConfigDefault)},92391,(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(40192)._(e.r(23093)).default.createContext(null)},10324,(e,t,r)=>{"use strict";function n(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,0):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return n}})},57207,(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(10324),i=e.r(32429);function o({config:e,src:t,width:r,quality:o}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
3
+ Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let l=(0,n.findClosestQuality)(o,e),a=(0,i.getDeploymentId)();return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${l}${t.startsWith("/")&&a?`&dpl=${a}`:""}`}o.__next_img_default=!0;let l=o},38821,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(23093);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=o(e,n)),t&&(i.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(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)},81411,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return v}});let n=e.r(40192),i=e.r(75244),o=e.r(42073),l=i._(e.r(23093)),a=n._(e.r(28746)),s=n._(e.r(85547)),u=e.r(47289),d=e.r(65199),c=e.r(80416);e.r(2066);let f=e.r(92391),p=n._(e.r(57207)),g=e.r(38821),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function h(e,t,r,n,i,o,l){let a=e?.src;e&&e["data-loaded-src"]!==a&&(e["data-loaded-src"]=a,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,i=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}n?.current&&n.current(e)}}))}function b(e){return l.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let y=(0,l.forwardRef)(({src:e,srcSet:t,sizes:r,height:n,width:i,decoding:a,className:s,style:u,fetchPriority:d,placeholder:c,loading:f,unoptimized:p,fill:m,onLoadRef:y,onLoadingCompleteRef:_,setBlurComplete:v,setShowAltText:w,sizesInput:j,onLoad:O,onError:P,...E},S)=>{let C=(0,l.useCallback)(e=>{e&&(P&&(e.src=e.src),e.complete&&h(e,c,y,_,v,p,j))},[e,c,y,_,v,P,p,j]),x=(0,g.useMergedRef)(S,C);return(0,o.jsx)("img",{...E,...b(d),loading:f,width:i,height:n,decoding:a,"data-nimg":m?"fill":"1",className:s,style:u,sizes:r,srcSet:t,src:e,ref:x,onLoad:e=>{h(e.currentTarget,c,y,_,v,p,j)},onError:e=>{w(!0),"empty"!==c&&v(!0),P&&P(e)}})});function _({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...b(t.fetchPriority)};return e&&a.default.preload?(a.default.preload(t.src,r),null):(0,o.jsx)(s.default,{children:(0,o.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let v=(0,l.forwardRef)((e,t)=>{let r=(0,l.useContext)(f.RouterContext),n=(0,l.useContext)(c.ImageConfigContext),i=(0,l.useMemo)(()=>{let e=m||n||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),i=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:i,localPatterns:"undefined"==typeof window?n?.localPatterns:e.localPatterns}},[n]),{onLoad:a,onLoadingComplete:s}=e,g=(0,l.useRef)(a);(0,l.useEffect)(()=>{g.current=a},[a]);let h=(0,l.useRef)(s);(0,l.useEffect)(()=>{h.current=s},[s]);let[b,v]=(0,l.useState)(!1),[w,j]=(0,l.useState)(!1),{props:O,meta:P}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:i,blurComplete:b,showAltText:w});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(y,{...O,unoptimized:P.unoptimized,placeholder:P.placeholder,fill:P.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:v,setShowAltText:j,sizesInput:e.sizes,ref:t}),P.preload?(0,o.jsx)(_,{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)},22043,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return d},getImageProps:function(){return u}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(40192),l=e.r(47289),a=e.r(81411),s=o._(e.r(57207));function u(e){let{props:t}=(0,l.getImgProps)(e,{defaultLoader:s.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[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 d=a.Image},61550,(e,t,r)=>{t.exports=e.r(22043)}]);
@@ -1,3 +1,3 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,79296,(e,t,r)=>{t.exports=e.r(38629)},54735,e=>{"use strict";var t=e.i(47525),r=e.i(69093),s=e.i(29831),n=e.i(79296),l=e.i(41975),a=e.i(68860),o=e.i(54768);let i="#4A7C7E",c="#FF6B6B",d="#FFA500",u="#87CEEB",x="#B0B0B0",m="#9370DB",p="#FF69B4",g="#DDA0DD",h="#F0E68C",f="#F0E68C",b="#DC143C",N="#9370DB",j="#DDA0DD",v="#A0A0A0";function y(e){return[u,p,g,h,f,"#DDA0DD",j].includes(e)?"#000":"#FFF"}function w(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=[],s=e.split("\n"),n=null;for(let e of s){if(!e.trim())continue;let s=e.match(t);if(s){let t,l;n&&r.push(n);let[a,o,i]=s,c=e.substring(a.length),d=/^TAB-\d+\.\d+$/.test(i),u=i,x=c;if(d){t=i;let e=c.match(/^\[([^\]]+)\] /);if(e&&(u=e[1],(x=c.substring(e[0].length)).includes("User-Agent:"))){let e=x.match(/User-Agent: ([^,\n]+)/);e&&(l=e[1])}}let m=x.match(/\[SCREENSHOT\] ([^\s[]+)/)?.[1],p=x.match(/\[SCREENCAST\] View jank analysis: ([^\s]+)/)?.[1],g=function(e){let t=e.match(/^\[CONSOLE LOG\] (.+)$/);if(!t)return e;let r=t[1];if(!r.includes("%c"))return e;let s=r;return s=(s=(s=s.replace(/%c/g,"")).replace(/\s+color:\s*[^{}\n]*?(?=\s*[{[]|$)/g,"")).replace(/\s+/g," ").trim(),`[CONSOLE LOG] ${s}`}(x);if((g=g.replace(/ \[CHROME_EXTENSION\]$/,"")).includes("[Network.webSocketFrameSent]")||g.includes("[Network.webSocketFrameReceived]")||g.includes("[Network.webSocketFrame")||g.includes("webSocketDebuggerUrl")&&g.includes("localhost")||g.includes("[NETWORK")&&g.includes("__PAGE__")&&g.includes("refresh")){n=null;continue}let h=o;if(/^\d{2}:\d{2}:\d{2}\.\d{3}$/.test(o)){let e=new Date,[t,r,s]=o.split(":"),[n,l]=s.split(".");e.setHours(parseInt(t,10),parseInt(r,10),parseInt(n,10),parseInt(l,10)),h=e.toISOString()}n={timestamp:h,source:u,message:g,screenshot:m,screencast:p,original:e,tabIdentifier:t,userAgent:l}}else n&&(n.message+=`
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52867,(e,t,r)=>{t.exports=e.r(33104)},54735,e=>{"use strict";var t=e.i(42073),r=e.i(36546),s=e.i(61550),n=e.i(52867),l=e.i(23093),a=e.i(68860),o=e.i(54768);let i="#4A7C7E",c="#FF6B6B",d="#FFA500",u="#87CEEB",x="#B0B0B0",m="#9370DB",p="#FF69B4",g="#DDA0DD",h="#F0E68C",f="#F0E68C",b="#DC143C",N="#9370DB",j="#DDA0DD",v="#A0A0A0";function y(e){return[u,p,g,h,f,"#DDA0DD",j].includes(e)?"#000":"#FFF"}function w(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=[],s=e.split("\n"),n=null;for(let e of s){if(!e.trim())continue;let s=e.match(t);if(s){let t,l;n&&r.push(n);let[a,o,i]=s,c=e.substring(a.length),d=/^TAB-\d+\.\d+$/.test(i),u=i,x=c;if(d){t=i;let e=c.match(/^\[([^\]]+)\] /);if(e&&(u=e[1],(x=c.substring(e[0].length)).includes("User-Agent:"))){let e=x.match(/User-Agent: ([^,\n]+)/);e&&(l=e[1])}}let m=x.match(/\[SCREENSHOT\] ([^\s[]+)/)?.[1],p=x.match(/\[SCREENCAST\] View jank analysis: ([^\s]+)/)?.[1],g=function(e){let t=e.match(/^\[CONSOLE LOG\] (.+)$/);if(!t)return e;let r=t[1];if(!r.includes("%c"))return e;let s=r;return s=(s=(s=s.replace(/%c/g,"")).replace(/\s+color:\s*[^{}\n]*?(?=\s*[{[]|$)/g,"")).replace(/\s+/g," ").trim(),`[CONSOLE LOG] ${s}`}(x);if((g=g.replace(/ \[CHROME_EXTENSION\]$/,"")).includes("[Network.webSocketFrameSent]")||g.includes("[Network.webSocketFrameReceived]")||g.includes("[Network.webSocketFrame")||g.includes("webSocketDebuggerUrl")&&g.includes("localhost")||g.includes("[NETWORK")&&g.includes("__PAGE__")&&g.includes("refresh")){n=null;continue}let h=o;if(/^\d{2}:\d{2}:\d{2}\.\d{3}$/.test(o)){let e=new Date,[t,r,s]=o.split(":"),[n,l]=s.split(".");e.setHours(parseInt(t,10),parseInt(r,10),parseInt(n,10),parseInt(l,10)),h=e.toISOString()}n={timestamp:h,source:u,message:g,screenshot:m,screencast:p,original:e,tabIdentifier:t,userAgent:l}}else n&&(n.message+=`
2
2
  ${e}`,n.original+=`
3
3
  ${e}`)}return n&&r.push(n),r}function C(e){let s,n,a=(0,r.c)(9),{url:o,maxLength:i}=e,c=void 0===i?60:i,[d,u]=(0,l.useState)(!1);if(o.length<=c){let e;return a[0]!==o?(e=(0,t.jsx)("a",{href:o,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:o}),a[0]=o,a[1]=e):e=a[1],e}a[2]!==c||a[3]!==o?(s=o.substring(0,c),a[2]=c,a[3]=o,a[4]=s):s=a[4];let x=`${s}...`;return a[5]!==d||a[6]!==x||a[7]!==o?(n=(0,t.jsx)("span",{className:"inline-block",children:d?(0,t.jsxs)("span",{children:[(0,t.jsx)("a",{href:o,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:o}),(0,t.jsx)("button",{type:"button",onClick:()=>u(!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:o,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:x}),(0,t.jsx)("button",{type:"button",onClick:()=>u(!0),className:"ml-1 text-xs text-muted-foreground hover:text-foreground px-1 py-0.5 rounded hover:bg-muted",children:"[expand]"})]})}),a[5]=d,a[6]=x,a[7]=o,a[8]=n):n=a[8],n}function k({content:e}){let[r,s]=(0,l.useState)(!1);try{let n=JSON.parse(e);if(n&&"object"==typeof n&&"object"===n.type&&n.properties){let e=n.properties,l=n.description||"Object",a=n.overflow;return(0,t.jsxs)("div",{className:"inline-block",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>s(!r),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 ${r?"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}),!r&&(0,t.jsxs)("span",{className:"text-gray-500",children:[a?"...":""," ","{",e.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?`"${e.value}"`:"number"===e.type?e.value:"object"===e.type?"array"===e.subtype?e.value:"{...}":e.value})]},`${e.name}-${r}`)),e.length>3&&", ...","}"]})]}),r&&(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:[e.map((r,s)=>(0,t.jsxs)("div",{className:"py-0.5",children:[(0,t.jsx)("span",{className:"text-red-600",children:r.name}),(0,t.jsx)("span",{className:"text-gray-500",children:": "}),(0,t.jsx)("span",{className:"string"===r.type?"text-green-600":"number"===r.type?"text-blue-600":"object"===r.type?"text-purple-600":"text-orange-600",children:"string"===r.type?`"${String(r.value)}"`:"number"===r.type?String(r.value):"object"===r.type?"array"===r.subtype?String(r.value):"{...}":String(r.value)}),s<e.length-1&&(0,t.jsx)("span",{className:"text-gray-500",children:","})]},`${r.name}-${s}`)),a&&(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(!r),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 ${r?"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"}),!r&&(0,t.jsxs)("span",{className:"text-gray-500",children:["{","...","}"]})]}),r&&(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(n,null,2)})})]})}catch(r){return(0,t.jsx)("span",{children:e})}}function E(e){let n,l,a,o,w,E,T,A,I,L,$,D,F,B,M,P,W,H,G,V,U,_=(0,r.c)(59),{entry:z,darkMode:K}=e;_[0]!==z.message?(n=function(e){return e.includes("[INTERACTION]")?{type:"INTERACTION",backgroundColor:j,textColor:y(j)}:e.includes("[ERROR]")?{type:"ERROR",backgroundColor:c,textColor:y(c)}:e.includes("[WARNING]")?{type:"WARNING",backgroundColor:d,textColor:y(d)}:e.includes("[INFO]")?{type:"INFO",backgroundColor:u,textColor:y(u)}:e.includes("[LOG]")?{type:"LOG",backgroundColor:x,textColor:y(x)}:e.includes("[DEBUG]")?{type:"DEBUG",backgroundColor:m,textColor:y(m)}:e.includes("[SCREENSHOT]")?{type:"SCREENSHOT",backgroundColor:p,textColor:y(p)}:e.includes("[NAVIGATION]")||e.includes("[PAGE]")||e.includes("[DOM]")?{type:"DOM",backgroundColor:g,textColor:y(g)}:e.includes("[CDP]")?{type:"CDP",backgroundColor:h,textColor:y(h)}:e.includes("[NETWORK]")?{type:"NETWORK",backgroundColor:i,textColor:y(i)}:e.includes("[CRASH]")?{type:"CRASH",backgroundColor:b,textColor:y(b)}:e.includes("[CHROME]")?{type:"CHROME",backgroundColor:f,textColor:y(f)}:e.includes("[REPLAY]")?{type:"REPLAY",backgroundColor:N,textColor:y(N)}:{type:"DEFAULT",color:"bg-gray-50 dark:bg-gray-800/50 border-gray-200 dark:border-gray-700",backgroundColor:v,textColor:y(v)}}(z.message),_[0]=z.message,_[1]=n):n=_[1];let J=n;_[2]!==J.backgroundColor||_[3]!==J.textColor?(l=e=>{let r,s=/\[([A-Z\s]+)\]/g,n=/\{[^{}]*(?:\{[^{}]*\}[^{}]*)*\}/g,l=/(https?:\/\/[^\s]+)/g,a=[],o=0;for(r=s.exec(e);null!==r;)r.index>o&&a.push(e.slice(o,r.index)),a.push((0,t.jsx)("span",{className:"inline-block px-1.5 py-0.5 rounded text-xs font-medium mr-1",style:{backgroundColor:J.backgroundColor,color:J.textColor},children:r[1]},r.index)),o=r.index+r[0].length,r=s.exec(e);return a.push(...((e,r)=>{let s=[...e.matchAll(n)],a=[...e.matchAll(l)],o=[...s.map(O),...a.map(S)];if(o.sort(R),0===o.length)return[e];let i=[],c=0;return o.forEach((s,n)=>{(s.index??0)>c&&i.push(e.slice(c,s.index??0)),"json"===s.type?i.push((0,t.jsx)(k,{content:s[0]},`${r}-json-${s.index}-${s[0].slice(0,20)}`)):"url"===s.type&&i.push((0,t.jsx)(C,{url:s[0]},`${r}-url-${s.index}-${s[0]}`)),c=(s.index??0)+s[0].length}),c<e.length&&i.push(e.slice(c)),i})(e.slice(o),"main")),a.length>0?a:e},_[2]=J.backgroundColor,_[3]=J.textColor,_[4]=l):l=_[4];let Y=l;_[5]!==K||_[6]!==J.type?(a=()=>{let e=J.type;if(K)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]=K,_[6]=J.type,_[7]=a):a=_[7];let X=a;_[8]!==J.type?(o=()=>{switch(J.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"}},_[8]=J.type,_[9]=o):o=_[9];let Z=o,q=`border-l-4 ${Z()} pl-4 py-2`;_[10]!==X?(w=X(),_[10]=X,_[11]=w):w=_[11],_[12]!==z.timestamp?(E=new Date(z.timestamp).toLocaleTimeString(),_[12]=z.timestamp,_[13]=E):E=_[13],_[14]!==E?(T=(0,t.jsx)("div",{className:"text-xs text-muted-foreground font-mono whitespace-nowrap pt-1",children:E}),_[14]=E,_[15]=T):T=_[15];let Q="SERVER"===z.source?"#32CD32":"#00CED1";if(_[16]!==Q?(A={backgroundColor:Q,color:"#000"},_[16]=Q,_[17]=A):A=_[17],_[18]!==z.source||_[19]!==A?(I=(0,t.jsx)("div",{className:"px-2 py-1 rounded text-xs font-medium whitespace-nowrap",style:A,children:z.source}),_[18]=z.source,_[19]=A,_[20]=I):I=_[20],_[21]!==z.message||_[22]!==Y?(L=Y(z.message),_[21]=z.message,_[22]=Y,_[23]=L):L=_[23],_[24]!==L?($=(0,t.jsx)("div",{className:"flex-1 min-w-0",children:L}),_[24]=L,_[25]=$):$=_[25],_[26]!==z.tabIdentifier?(D=z.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:z.tabIdentifier}),_[26]=z.tabIdentifier,_[27]=D):D=_[27],_[28]!==z.userAgent?(F=z.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:z.userAgent.includes("Chrome")?"Chrome":z.userAgent.includes("Firefox")?"Firefox":z.userAgent.includes("Safari")?"Safari":z.userAgent.includes("Edge")?"Edge":"Browser"}),_[28]=z.userAgent,_[29]=F):F=_[29],_[30]!==z.message||_[31]!==z.source||_[32]!==z.tabIdentifier){let e,r;B="BROWSER"===z.source&&(e=z.message.includes("[PLAYWRIGHT]"),r=z.message.includes("[CHROME_EXTENSION]")||z.tabIdentifier,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),_[30]=z.message,_[31]=z.source,_[32]=z.tabIdentifier,_[33]=B}else B=_[33];return _[34]!==z.message||_[35]!==z.source?(M="SERVER"===z.source&&(()=>{let e=z.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})(),_[34]=z.message,_[35]=z.source,_[36]=M):M=_[36],_[37]!==D||_[38]!==F||_[39]!==B||_[40]!==M?(P=(0,t.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0",children:[D,F,B,M]}),_[37]=D,_[38]=F,_[39]=B,_[40]=M,_[41]=P):P=_[41],_[42]!==$||_[43]!==P?(W=(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:[$,P]})}),_[42]=$,_[43]=P,_[44]=W):W=_[44],_[45]!==I||_[46]!==W||_[47]!==T?(H=(0,t.jsxs)("div",{className:"grid grid-cols-[auto_auto_1fr] gap-3 items-start",children:[T,I,W]}),_[45]=I,_[46]=W,_[47]=T,_[48]=H):H=_[48],_[49]!==z.screenshot?(G=z.screenshot&&(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(s.default,{src:z.screenshot.startsWith("http")?z.screenshot:`/api/screenshots/${z.screenshot}`,alt:"Screenshot",width:800,height:600,className:"w-full h-auto max-w-2xl border rounded shadow-sm",style:{maxHeight:"600px",objectFit:"contain"},unoptimized:!0})}),_[49]=z.screenshot,_[50]=G):G=_[50],_[51]!==z.screencast?(V=z.screencast&&(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsxs)("a",{href:z.screencast,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded-lg font-medium transition-colors",children:[(0,t.jsxs)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:[(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"}),(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})]}),"View Jank Analysis Video"]})}),_[51]=z.screencast,_[52]=V):V=_[52],_[53]!==H||_[54]!==G||_[55]!==V||_[56]!==q||_[57]!==w?(U=(0,t.jsxs)("div",{className:q,style:w,children:[H,G,V]}),_[53]=H,_[54]=G,_[55]=V,_[56]=q,_[57]=w,_[58]=U):U=_[58],U}function R(e,t){return(e.index??0)-(t.index??0)}function S(e){return{...e,type:"url"}}function O(e){return{...e,type:"json"}}function T({version:e,initialData:r}){let s=(0,n.useRouter)(),i=(0,n.useSearchParams)(),[c,d]=(0,o.useDarkMode)(),[u,x]=(0,l.useState)(r?.logs||[]),[m,p]=(0,l.useState)(r?.mode||"tail");(0,l.useEffect)(()=>{let e=i.get("mode");e&&e!==m&&p(e)},[i,m]);let[g,h]=(0,l.useState)(!0),[f,b]=(0,l.useState)(!r),[N,j]=(0,l.useState)(r?.logs.length||0),[v,y]=(0,l.useState)(null),[C,k]=(0,l.useState)(r?.logFiles||[]),[R,S]=(0,l.useState)(r?.currentLogFile||""),[O,T]=(0,l.useState)(""),[A,I]=(0,l.useState)(!1),[L,$]=(0,l.useState)(!1),[D,F]=(0,l.useState)(!1),[B,M]=(0,l.useState)(!1),[P,W]=(0,l.useState)([]),[H,G]=(0,l.useState)(!1),[V,U]=(0,l.useState)(0),[_]=(0,l.useState)(5),[z,K]=(0,l.useState)(null),[J,Y]=(0,l.useState)(!1),[X,Z]=(0,l.useState)({browser:!0,server:!0,interaction:!0,screenshot:!0}),[q,Q]=(0,l.useState)({}),[ee,et]=(0,l.useState)([]),er=(0,l.useRef)(null),es=(0,l.useRef)(null),en=(0,l.useRef)(null),el=(0,l.useRef)(null),ea=(0,l.useRef)(null),eo=(0,l.useRef)(!1),ei=(0,l.useCallback)(async()=>{try{let e=await fetch("/api/logs/list");if(e.ok){let t=await e.json();return k(t.files),S(t.currentFile),T(t.projectName),!0}return!1}catch(e){return console.error("Error loading available logs:",e),!1}},[]),ec=(0,l.useCallback)(async()=>{if("tail"===m)try{let e=i.get("file"),t="",r=!0;if(e&&C.length>0){let s=C.find(t=>t.name===e);t=s?.path||R,r=s?.isCurrent!==!1}else t=R,r=!0;if(!r)return;let s=t?`/api/logs/tail?lines=50&logPath=${encodeURIComponent(t)}`:"/api/logs/tail?lines=50";if(z===s&&V>=_){console.error(`Maximum retry attempts (${_}) reached for ${s}. Stopping polling.`),en.current&&(clearInterval(en.current),en.current=null);return}let n=await fetch(s);if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);(z===s||V>0)&&(U(0),K(null));let l=await n.json();if(!l.logs)return void console.warn("No logs data in response");let a=w(l.logs);if(a.length>N)if(g)y(new Date),ee.length>0?(x([...u,...ee,...a.slice(N)]),et([])):x(a),j(a.length),eo.current||setTimeout(()=>{er.current?.scrollIntoView({behavior:"smooth"})},50);else{let e=a.slice(N);e.length>0&&(et(t=>[...t,...e]),j(a.length))}}catch(s){console.error("Error polling logs:",s);let e=i.get("file"),t="";if(e&&C.length>0){let r=C.find(t=>t.name===e);t=r?.path||R}else t=R;let r=t?`/api/logs/tail?lines=50&logPath=${encodeURIComponent(t)}`:"/api/logs/tail?lines=50";if(z===r){let e=V+1;U(e),e>=_&&(console.error(`Maximum retry attempts (${_}) reached for ${r}. Stopping polling.`),en.current&&(clearInterval(en.current),en.current=null))}else K(r),U(1)}},[m,g,i,C,R,N,ee,u,V,z,_]);(0,l.useEffect)(()=>{if("tail"===m&&V<_)return en.current=setInterval(ec,3e3),()=>{en.current&&clearInterval(en.current)};en.current&&clearInterval(en.current)},[m,ec,V,_]);let ed=(0,l.useCallback)(async()=>{if(V>=_)return void console.log("Max retries reached, not attempting to load");if(b(!0),!await ei())return void b(!1);try{let e=i.get("file"),t="";if(e&&C.length>0){let r=C.find(t=>t.name===e);t=r?.path||R}else t=R;let r=t?`/api/logs/${m}?lines=1000&logPath=${encodeURIComponent(t)}`:`/api/logs/${m}?lines=1000`;if(z===r&&V>=_){console.error(`Maximum retry attempts (${_}) reached for ${r}. Not attempting to load.`),x([]),b(!1);return}let s=await fetch(r);if(!s.ok)throw Error(`HTTP ${s.status}: ${s.statusText}`);(z===r||V>0)&&(U(0),K(null));let n=await s.json();if(!n.logs){console.warn("No logs data in response"),x([]),b(!1);return}let l=w(n.logs);if(x(l),j(l.length),y(new Date),b(!1),"tail"===m&&!eo.current){h(!0);let e=()=>{er.current?er.current.scrollIntoView({behavior:"auto"}):es.current&&(es.current.scrollTop=es.current.scrollHeight)};setTimeout(e,0),setTimeout(e,100)}}catch(s){console.error("Error loading logs:",s);let e=i.get("file"),t="";if(e&&C.length>0){let r=C.find(t=>t.name===e);t=r?.path||R}else t=R;let r=t?`/api/logs/${m}?lines=1000&logPath=${encodeURIComponent(t)}`:`/api/logs/${m}?lines=1000`;if(z===r){let e=V+1;U(e),e>=_&&console.error(`Maximum retry attempts (${_}) reached for initial load of ${r}.`)}else K(r),U(1);x([])}finally{b(!1)}},[ei,i,C,R,m,V,z,_]);(0,l.useEffect)(()=>{let e=r?.logs&&r?.logs.length>0;if(J||e||u.length){if(e&&0===u.length&&(x(r.logs),b(!1),"tail"===m&&!eo.current)){h(!0);let e=()=>{er.current?er.current.scrollIntoView({behavior:"auto"}):es.current&&(es.current.scrollTop=es.current.scrollHeight)};setTimeout(e,0),setTimeout(e,100),setTimeout(e,300)}}else Y(!0),ed()},[m,r,u.length,J,ed]),(0,l.useEffect)(()=>{u.length>0&&"tail"===m&&g&&!eo.current&&setTimeout(()=>{er.current?er.current.scrollIntoView({behavior:"auto"}):es.current&&(es.current.scrollTop=es.current.scrollHeight)},0)},[u.length,m,g]),(0,l.useEffect)(()=>()=>{en.current&&clearInterval(en.current)},[]),(0,l.useEffect)(()=>{let e=e=>{el.current&&!el.current.contains(e.target)&&I(!1),ea.current&&!ea.current.contains(e.target)&&F(!1)};if(A||D)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[A,D]);let eu=async()=>{if(R&&!H&&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.")){G(!0);try{let e=await fetch("/api/logs/rotate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentLogPath:R})});if(e.ok)x([]),j(0),y(null),await ei(),await ed();else{let t=await e.json();console.error("Failed to rotate log:",t),alert(`Failed to rotate log: ${t.error}`)}}catch(e){console.error("Error rotating log:",e),alert("Error rotating log")}finally{G(!1)}}},ex=(0,l.useMemo)(()=>{let e=new Set;return u.forEach(t=>{"BROWSER"===t.source&&t.userAgent&&e.add(t.userAgent)}),Array.from(e).sort()},[u]);(0,l.useEffect)(()=>{ex.length>0&&Q(e=>{let t={...e};return ex.forEach(e=>{e in t||(t[e]=!0)}),t})},[ex]);let em=(0,l.useMemo)(()=>u.filter(e=>{let t=e.message.includes("[INTERACTION]"),r=e.message.includes("[SCREENSHOT]");if(t)return X.interaction;if(r)return X.screenshot;if("SERVER"===e.source)return X.server;if("BROWSER"===e.source){if(!X.browser)return!1;if(ex.length>0&&e.userAgent)return!1!==q[e.userAgent]}return!0}),[u,X,q,ex]);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",e,")"]})]}),C.length>1?(0,t.jsxs)("div",{className:"relative",ref:el,children:[(0,t.jsxs)("button",{type:"button",onClick:()=>I(!A),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:f&&!R?(0,t.jsx)("div",{className:"h-4 bg-muted rounded animate-pulse",style:{width:"220px"}}):R?"Current":"No log file"}),(0,t.jsx)("svg",{className:`w-4 h-4 transition-transform ${A?"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"})})]}),A&&C.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:[O," logs (",C.length,")"]}),C.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{I(!1),s.push(`/logs?file=${encodeURIComponent(e.name)}&mode=${m}`)},className:`w-full text-left px-3 py-2 text-sm hover:bg-accent flex items-center justify-between ${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:f&&!R?(0,t.jsx)("div",{className:"h-4 bg-gray-200 rounded animate-pulse",style:{width:"220px"}}):R?R.split("/").pop():"No log file"})}),u.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:[u.length," entries"]}),R&&!f&&(0,t.jsx)("button",{type:"button",onClick:eu,disabled:H,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:H?(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"})})})]}),ee.length>0&&!g&&(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:["+",ee.length," buffered"]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[!1,(0,t.jsxs)("div",{className:"relative",ref:ea,children:[(0,t.jsxs)("button",{type:"button",onClick:()=>F(!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:X.server,onChange:e=>Z(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:u.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:X.browser,onChange:e=>Z(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:u.filter(e=>"BROWSER"===e.source).length})]}),ex.length>1&&X.browser&&(0,t.jsx)("div",{className:"ml-6 border-l border-border pl-2",children:ex.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!==q[e],onChange:t=>Q(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:u.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:X.interaction,onChange:e=>Z(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:u.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:X.screenshot,onChange:e=>Z(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:u.filter(e=>e.message.includes("[SCREENSHOT]")).length})]})]})})]}),(0,t.jsx)(a.DarkModeToggle,{darkMode:c,setDarkMode:d,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,s=e+r>=t-10;g&&!s&&(eo.current=!0),h(s)}},children:f?(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===u.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:V>=_?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"text-red-500 mb-2",children:["Failed to load logs after ",_," attempts."]}),(0,t.jsx)("button",{type:"button",onClick:()=>{U(0),K(null),Y(!1),ed()},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===em.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:[em.map((e,r)=>(0,t.jsx)(E,{entry:e,darkMode:c},`${e.timestamp}-${r}`)),(0,t.jsx)("div",{ref:er})]})})}),(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:[v&&(0,t.jsxs)("span",{className:"text-xs text-muted-foreground font-mono",children:["Last updated ",v.toLocaleTimeString()]}),R&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground font-mono break-all",children:R})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("div",{className:`flex items-center gap-1 text-green-600 ${"tail"===m&&g?"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:()=>{eo.current=!1,ee.length>0&&(x(e=>[...e,...ee]),et([]),y(new Date)),er.current?.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 ${"tail"===m&&!g?"visible":"invisible"}`,children:"↓ Live"})]})]})})]})}e.s(["default",()=>T],54735)}]);
@@ -0,0 +1,3 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2066,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},35066,(e,t,r)=>{"use strict";var n=e.r(23093).__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;r.c=function(e){return n.H.useMemoCache(e)}},36546,(e,t,r)=>{"use strict";t.exports=e.r(35066)},82587,(e,t,r)=>{"use strict";function n({widthInt:e,heightInt:t,blurWidth:r,blurHeight:n,blurDataURL:i,objectFit:l}){let a=r?40*r:e,s=n?40*n:t,o=a&&s?`viewBox='0 0 ${a} ${s}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${o}%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='${o?"none":"contain"===l?"xMidYMid":"cover"===l?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${i}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},65199,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={VALID_LOADERS:function(){return l},imageConfigDefault:function(){return a}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let l=["default","imgix","cloudinary","akamai","custom"],a={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},47289,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return u}}),e.r(2066);let n=e.r(32429),i=e.r(82587),l=e.r(65199),a=["-moz-initial","fill","none","scale-down",void 0];function s(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 u({src:e,sizes:t,unoptimized:r=!1,priority:u=!1,preload:d=!1,loading:c,className:f,quality:m,width:p,height:g,fill:h=!1,style:b,overrideSrc:y,onLoad:_,onLoadingComplete:v,placeholder:x="empty",blurDataURL:j,fetchPriority:w,decoding:S="async",layout:P,objectFit:O,objectPosition:E,lazyBoundary:C,lazyRoot:R,...N},M){var I;let $,z,k,{imgConf:D,showAltText:T,blurComplete:A,defaultLoader:L}=M,B=D||l.imageConfigDefault;if("allSizes"in B)$=B;else{let e=[...B.deviceSizes,...B.imageSizes].sort((e,t)=>e-t),t=B.deviceSizes.sort((e,t)=>e-t),r=B.qualities?.sort((e,t)=>e-t);$={...B,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===L)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=N.loader||L;delete N.loader,delete N.srcSet;let F="__next_img_default"in U;if(F){if("custom"===$.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2
+ Read 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(P){"fill"===P&&(h=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[P];e&&(b={...b,...e});let r={responsive:"100vw",fill:"100vw"}[P];r&&!t&&(t=r)}let q="",W=o(p),G=o(g);if((I=e)&&"object"==typeof I&&(s(I)||void 0!==I.src)){let t=s(e)?e.default:e;if(!t.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(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.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(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(z=t.blurWidth,k=t.blurHeight,j=j||t.blurDataURL,q=t.src,!h)if(W||G){if(W&&!G){let e=W/t.width;G=Math.round(t.height*e)}else if(!W&&G){let e=G/t.height;W=Math.round(t.width*e)}}else W=t.width,G=t.height}let H=!u&&!d&&("lazy"===c||void 0===c);(!(e="string"==typeof e?e:q)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,H=!1),$.unoptimized&&(r=!0),F&&!$.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let X=o(m),V=Object.assign(h?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:O,objectPosition:E}:{},T?{}:{color:"transparent"},b),Y=A||"empty"===x?null:"blur"===x?`url("data:image/svg+xml;charset=utf-8,${(0,i.getImageBlurSvg)({widthInt:W,heightInt:G,blurWidth:z,blurHeight:k,blurDataURL:j||"",objectFit:V.objectFit})}")`:`url("${x}")`,J=a.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,K=Y?{backgroundSize:J,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},Q=function({config:e,src:t,unoptimized:r,width:i,quality:l,sizes:a,loader:s}){if(r){let e=(0,n.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")&&e){let r=t.includes("?")?"&":"?";t=`${t}${r}dpl=${e}`}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:o,kind:u}=function({deviceSizes:e,allSizes:t},r,n){if(n){let r=/(^|\s)(1?\d?\d)vw/g,i=[];for(let e;e=r.exec(n);)i.push(parseInt(e[2]));if(i.length){let r=.01*Math.min(...i);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,i,a),d=o.length-1;return{sizes:a||"w"!==u?a:"100vw",srcSet:o.map((r,n)=>`${s({config:e,src:t,quality:l,width:r})} ${"w"===u?r:n+1}${u}`).join(", "),src:s({config:e,src:t,quality:l,width:o[d]})}}({config:$,src:e,unoptimized:r,width:W,quality:X,sizes:t,loader:U}),Z=H?"lazy":c;return{props:{...N,loading:Z,fetchPriority:w,width:W,height:G,decoding:S,className:f,style:{...V,...K},sizes:Q.sizes,srcSet:Q.srcSet,src:y||Q.src},meta:{unoptimized:r,preload:d||u,placeholder:x,fill:h}}}},92331,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let n=e.r(23093),i="undefined"==typeof window,l=i?()=>{}:n.useLayoutEffect,a=i?()=>{}:n.useEffect;function s(e){let{headManager:t,reduceComponentsToState:r}=e;function s(){if(t&&t.mountedInstances){let e=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return i&&(t?.mountedInstances?.add(e.children),s()),l(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),l(()=>(t&&(t._pendingUpdate=s),()=>{t&&(t._pendingUpdate=s)})),a(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},85547,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return g},defaultHead:function(){return c}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let l=e.r(40192),a=e.r(75244),s=e.r(42073),o=a._(e.r(23093)),u=l._(e.r(92331)),d=e.r(67258);function c(){return[(0,s.jsx)("meta",{charSet:"utf-8"},"charset"),(0,s.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===o.default.Fragment?e.concat(o.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(2066);let m=["name","httpEquiv","charSet","itemProp"];function p(e){let t,r,n,i;return e.reduce(f,[]).reverse().concat(c().reverse()).filter((t=new Set,r=new Set,n=new Set,i={},e=>{let l=!0,a=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){a=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?l=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?l=!1:r.add(e.type);break;case"meta":for(let t=0,r=m.length;t<r;t++){let r=m[t];if(e.props.hasOwnProperty(r))if("charSet"===r)n.has(r)?l=!1:n.add(r);else{let t=e.props[r],n=i[r]||new Set;("name"!==r||!a)&&n.has(t)?l=!1:(n.add(t),i[r]=n)}}}return l})).reverse().map((e,t)=>{let r=e.key||t;return o.default.cloneElement(e,{key:r})})}let g=function({children:e}){let t=(0,o.useContext)(d.HeadManagerContext);return(0,s.jsx)(u.default,{reduceComponentsToState:p,headManager:t,children:e})};("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)},80416,(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(40192)._(e.r(23093)),i=e.r(65199),l=n.default.createContext(i.imageConfigDefault)},92391,(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(40192)._(e.r(23093)).default.createContext(null)},10324,(e,t,r)=>{"use strict";function n(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,0):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return n}})},57207,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(10324),i=e.r(32429);function l({config:e,src:t,width:r,quality:l}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
3
+ Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let a=(0,n.findClosestQuality)(l,e),s=(0,i.getDeploymentId)();return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${a}${t.startsWith("/")&&s?`&dpl=${s}`:""}`}l.__next_img_default=!0;let a=l},38821,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(23093);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=l(e,n)),t&&(i.current=l(t,n))},[e,t])}function l(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(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)},81411,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return v}});let n=e.r(40192),i=e.r(75244),l=e.r(42073),a=i._(e.r(23093)),s=n._(e.r(28746)),o=n._(e.r(85547)),u=e.r(47289),d=e.r(65199),c=e.r(80416);e.r(2066);let f=e.r(92391),m=n._(e.r(57207)),p=e.r(38821),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function h(e,t,r,n,i,l,a){let s=e?.src;e&&e["data-loaded-src"]!==s&&(e["data-loaded-src"]=s,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,i=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}n?.current&&n.current(e)}}))}function b(e){return a.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let y=(0,a.forwardRef)(({src:e,srcSet:t,sizes:r,height:n,width:i,decoding:s,className:o,style:u,fetchPriority:d,placeholder:c,loading:f,unoptimized:m,fill:g,onLoadRef:y,onLoadingCompleteRef:_,setBlurComplete:v,setShowAltText:x,sizesInput:j,onLoad:w,onError:S,...P},O)=>{let E=(0,a.useCallback)(e=>{e&&(S&&(e.src=e.src),e.complete&&h(e,c,y,_,v,m,j))},[e,c,y,_,v,S,m,j]),C=(0,p.useMergedRef)(O,E);return(0,l.jsx)("img",{...P,...b(d),loading:f,width:i,height:n,decoding:s,"data-nimg":g?"fill":"1",className:o,style:u,sizes:r,srcSet:t,src:e,ref:C,onLoad:e=>{h(e.currentTarget,c,y,_,v,m,j)},onError:e=>{x(!0),"empty"!==c&&v(!0),S&&S(e)}})});function _({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...b(t.fetchPriority)};return e&&s.default.preload?(s.default.preload(t.src,r),null):(0,l.jsx)(o.default,{children:(0,l.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let v=(0,a.forwardRef)((e,t)=>{let r=(0,a.useContext)(f.RouterContext),n=(0,a.useContext)(c.ImageConfigContext),i=(0,a.useMemo)(()=>{let e=g||n||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),i=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:i,localPatterns:"undefined"==typeof window?n?.localPatterns:e.localPatterns}},[n]),{onLoad:s,onLoadingComplete:o}=e,p=(0,a.useRef)(s);(0,a.useEffect)(()=>{p.current=s},[s]);let h=(0,a.useRef)(o);(0,a.useEffect)(()=>{h.current=o},[o]);let[b,v]=(0,a.useState)(!1),[x,j]=(0,a.useState)(!1),{props:w,meta:S}=(0,u.getImgProps)(e,{defaultLoader:m.default,imgConf:i,blurComplete:b,showAltText:x});return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(y,{...w,unoptimized:S.unoptimized,placeholder:S.placeholder,fill:S.fill,onLoadRef:p,onLoadingCompleteRef:h,setBlurComplete:v,setShowAltText:j,sizesInput:e.sizes,ref:t}),S.preload?(0,l.jsx)(_,{isAppRouter:!r,imgAttributes:w}):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)},22043,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return d},getImageProps:function(){return u}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let l=e.r(40192),a=e.r(47289),s=e.r(81411),o=l._(e.r(57207));function u(e){let{props:t}=(0,a.getImgProps)(e,{defaultLoader:o.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[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 d=s.Image},61550,(e,t,r)=>{t.exports=e.r(22043)},88659,e=>{"use strict";var t=e.i(42073),r=e.i(36546),n=e.i(61550),i=e.i(23093);function l(e){let l,d,c,f,m,p,g,h,b,y,_,v,x,j,w,S,P,O,E,C,R,N,M,I,$,z,k,D,T,A,L,B=(0,r.c)(87),{params:U}=e,{session:F}=(0,i.use)(U);B[0]===Symbol.for("react.memo_cache_sentinel")?(l=[],B[0]=l):l=B[0];let[q,W]=(0,i.useState)(l),[G,H]=(0,i.useState)(0),[X,V]=(0,i.useState)(!1),[Y,J]=(0,i.useState)(10);B[1]===Symbol.for("react.memo_cache_sentinel")?(d={width:1920,height:1080},B[1]=d):d=B[1];let[K,Q]=(0,i.useState)(d),[Z,ee]=(0,i.useState)(null);B[2]===Symbol.for("react.memo_cache_sentinel")?(c=[],B[2]=c):c=B[2];let[et,er]=(0,i.useState)(c);B[3]!==F?(f=()=>{fetch(`/api/screenshots/list?pattern=${F}`).then(u).then(e=>{let t=e.files.filter(e=>e.includes("jank-")&&e.includes(F)).sort(o);if(W(t),t.length>0){let e=new Image;e.onload=()=>{Q({width:e.naturalWidth,height:e.naturalHeight})},e.src=`/api/screenshots/${t[0]}`}}),fetch(`/api/jank/${F}`).then(s).then(e=>{er(e.clsMarkers||[])}).catch(()=>{er([])})},m=[F],B[3]=F,B[4]=f,B[5]=m):(f=B[4],m=B[5]),(0,i.useEffect)(f,m),B[6]!==Y||B[7]!==q.length||B[8]!==X?(p=()=>{if(!X||0===q.length)return;let e=setInterval(()=>{H(e=>e>=q.length-1?(V(!1),e):e+1)},1e3/Y);return()=>clearInterval(e)},g=[X,q.length,Y],B[6]=Y,B[7]=q.length,B[8]=X,B[9]=p,B[10]=g):(p=B[9],g=B[10]),(0,i.useEffect)(p,g);let[,en]=(0,i.useState)(0);if(B[11]!==en?(h=()=>{let e=()=>en(a);return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},B[11]=en,B[12]=h):h=B[12],B[13]===Symbol.for("react.memo_cache_sentinel")?(b=[],B[13]=b):b=B[13],(0,i.useEffect)(h,b),0===q.length){let e;return B[14]===Symbol.for("react.memo_cache_sentinel")?(e=(0,t.jsx)("div",{className:"p-8",children:"Loading frames..."}),B[14]=e):e=B[14],e}let ei=q[G];B[15]!==ei?(y=ei?.match(/jank-(\d+)ms/)?.[1]||"0",B[15]=ei,B[16]=y):y=B[16];let el=y,ea=parseInt(el,10);if(B[17]!==et||B[18]!==ea){let e;B[20]!==ea?(e=e=>100>Math.abs(e.timestamp-ea),B[20]=ea,B[21]=e):e=B[21],_=et.find(e),B[17]=et,B[18]=ea,B[19]=_}else _=B[19];let es=_;B[22]===Symbol.for("react.memo_cache_sentinel")?(v={},B[22]=v):v=B[22];let eo=v;if(Z&&es?.boundingBox){let e;B[23]!==Z.parentElement?(e=Z.parentElement?.getBoundingClientRect(),B[23]=Z.parentElement,B[24]=e):e=B[24];let t=e,r=K.width,n=K.height;if(t){let e,i,l,a,s,o=t.width/t.height,u=r/n;o>u?(e=(i=t.height)*u,l=(t.width-e)/2,a=0):(i=(e=t.width)/u,l=0,a=(t.height-i)/2);let d=e/r,c=`${l+es.boundingBox.x*d}px`,f=`${a+es.boundingBox.y*d}px`,m=`${es.boundingBox.width*d}px`,p=`${es.boundingBox.height*d}px`;B[25]!==c||B[26]!==f||B[27]!==m||B[28]!==p?(s={left:c,top:f,width:m,height:p},B[25]=c,B[26]=f,B[27]=m,B[28]=p,B[29]=s):s=B[29],eo=s}}let eu=`/api/screenshots/${ei}`,ed=`Frame ${G}`;B[30]!==eu||B[31]!==ed?(x=(0,t.jsx)(n.default,{ref:ee,src:eu,alt:ed,className:"w-full h-full object-contain",fill:!0,unoptimized:!0}),B[30]=eu,B[31]=ed,B[32]=x):x=B[32],B[33]!==es?.boundingBox||B[34]!==Z||B[35]!==eo?(j=es?.boundingBox&&Z&&(0,t.jsx)("div",{className:"absolute border-2 border-red-500 pointer-events-none",style:eo}),B[33]=es?.boundingBox,B[34]=Z,B[35]=eo,B[36]=j):j=B[36],B[37]!==x||B[38]!==j?(w=(0,t.jsxs)("div",{className:"flex-1 flex items-center justify-center relative overflow-hidden",children:[x,j]}),B[37]=x,B[38]=j,B[39]=w):w=B[39],B[40]!==X?(S=()=>V(!X),B[40]=X,B[41]=S):S=B[41];let ec=X?"Pause":"Play";B[42]!==S||B[43]!==ec?(P=(0,t.jsx)("button",{type:"button",onClick:S,className:"px-4 py-2 bg-blue-600 hover:bg-blue-700 rounded",children:ec}),B[42]=S,B[43]=ec,B[44]=P):P=B[44],B[45]!==G?(O=()=>H(Math.max(0,G-1)),B[45]=G,B[46]=O):O=B[46];let ef=0===G;B[47]!==O||B[48]!==ef?(E=(0,t.jsx)("button",{type:"button",onClick:O,disabled:ef,className:"px-4 py-2 bg-gray-700 hover:bg-gray-600 rounded disabled:opacity-50",children:"Previous"}),B[47]=O,B[48]=ef,B[49]=E):E=B[49],B[50]!==G||B[51]!==q.length?(C=()=>H(Math.min(q.length-1,G+1)),B[50]=G,B[51]=q.length,B[52]=C):C=B[52];let em=G===q.length-1;B[53]!==C||B[54]!==em?(R=(0,t.jsx)("button",{type:"button",onClick:C,disabled:em,className:"px-4 py-2 bg-gray-700 hover:bg-gray-600 rounded disabled:opacity-50",children:"Next"}),B[53]=C,B[54]=em,B[55]=R):R=B[55];let ep=G+1;B[56]!==el||B[57]!==q.length||B[58]!==ep?(N=(0,t.jsxs)("span",{className:"flex-1 text-center",children:["Frame ",ep," / ",q.length," (",el,"ms)"]}),B[56]=el,B[57]=q.length,B[58]=ep,B[59]=N):N=B[59],B[60]===Symbol.for("react.memo_cache_sentinel")?(M=e=>J(Number(e.target.value)),B[60]=M):M=B[60],B[61]!==Y?(I=(0,t.jsxs)("label",{className:"flex items-center gap-2",children:["Speed:",(0,t.jsx)("input",{type:"range",min:"1",max:"30",value:Y,onChange:M,className:"w-32"}),(0,t.jsxs)("span",{className:"w-12",children:[Y," fps"]})]}),B[61]=Y,B[62]=I):I=B[62],B[63]!==P||B[64]!==E||B[65]!==R||B[66]!==N||B[67]!==I?($=(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[P,E,R,N,I]}),B[63]=P,B[64]=E,B[65]=R,B[66]=N,B[67]=I,B[68]=$):$=B[68];let eg=q.length-1;if(B[69]===Symbol.for("react.memo_cache_sentinel")?(z=e=>H(Number(e.target.value)),B[69]=z):z=B[69],B[70]!==G||B[71]!==eg?(k=(0,t.jsx)("input",{type:"range",min:"0",max:eg,value:G,onChange:z,className:"w-full"}),B[70]=G,B[71]=eg,B[72]=k):k=B[72],B[73]!==et||B[74]!==q){let e;B[76]!==q?(e=e=>{let r=q.findIndex(t=>parseInt(t.match(/jank-(\d+)ms/)?.[1]||"0",10)>=e.timestamp);if(-1===r)return null;let n=r/(q.length-1)*100;return(0,t.jsxs)("div",{className:"absolute top-0 h-full pointer-events-none",style:{left:`${n}%`},children:[(0,t.jsx)("div",{className:"w-0.5 h-full bg-red-500"}),(0,t.jsx)("div",{className:"absolute -top-6 left-0 -translate-x-1/2 bg-red-500 text-white text-xs px-2 py-0.5 rounded whitespace-nowrap",children:e.clsScore?(0,t.jsxs)(t.Fragment,{children:["CLS ",e.clsScore.toFixed(4)," @ ",e.timestamp,"ms",e.element&&(0,t.jsxs)("span",{className:"ml-1 opacity-75",children:["<",e.element.toLowerCase(),">"]})]}):`CLS ${e.timestamp}ms`})]},e.timestamp)},B[76]=q,B[77]=e):e=B[77],D=et.map(e),B[73]=et,B[74]=q,B[75]=D}else D=B[75];return B[78]!==k||B[79]!==D?(T=(0,t.jsxs)("div",{className:"relative w-full",children:[k,D]}),B[78]=k,B[79]=D,B[80]=T):T=B[80],B[81]!==$||B[82]!==T?(A=(0,t.jsxs)("div",{className:"bg-gray-900 text-white p-4 space-y-4",children:[$,T]}),B[81]=$,B[82]=T,B[83]=A):A=B[83],B[84]!==w||B[85]!==A?(L=(0,t.jsxs)("div",{className:"flex flex-col h-screen bg-black",children:[w,A]}),B[84]=w,B[85]=A,B[86]=L):L=B[86],L}function a(e){return e+1}function s(e){return e.json()}function o(e,t){return parseInt(e.match(/jank-(\d+)ms/)?.[1]||"0",10)-parseInt(t.match(/jank-(\d+)ms/)?.[1]||"0",10)}function u(e){return e.json()}e.s(["default",()=>l])}]);
@@ -1,4 +1,4 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/41c5312e59752fb5.js","static/chunks/f09e07f5359ffb6b.js","static/chunks/f5ae99caea655ac1.js","static/chunks/0ceacd9ff62ffa24.js"],runtimeModuleIds:[96713]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=(self.TURBOPACK_CHUNK_SUFFIX??document?.currentScript?.getAttribute?.("src")?.replace(/^(.*(?=\?)|^.*$)/,""))||"",n=new WeakMap;function o(e,t){this.m=e,this.e=t}let i=o.prototype,l=Object.prototype.hasOwnProperty,s="undefined"!=typeof Symbol&&Symbol.toStringTag;function u(e,t,r){l.call(e,t)||Object.defineProperty(e,t,r)}function a(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 f(e,t){u(e,"__esModule",{value:!0}),s&&u(e,s,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)u(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?u(e,n,{get:o,set:t[r++],enumerable:!0}):u(e,n,{get:o,enumerable:!0})}Object.seal(e)}i.s=function(e,t){let r,n;null!=t?n=(r=a(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,f(n,e)},i.j=function(e,t){var r,o;let i,s,u;null!=t?s=(i=a(this.c,t)).exports:(i=this.m,s=this.e);let c=(r=i,o=s,(u=n.get(r))||(n.set(r,u=[]),r.exports=r.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 u){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of u)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),u);"object"==typeof e&&null!==e&&c.push(e)},i.v=function(e,t){(null!=t?a(this.c,t):this.m).exports=e},i.n=function(e,t){let r;(r=null!=t?a(this.c,t):this.m).exports=r.namespaceObject=e};let p=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,h=[null,p({}),p([]),p(p)];function d(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!h.includes(t);t=p(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)),f(t,n),t}function m(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=d(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function b(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function y(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}i.i=m,i.A=function(e){return this.r(e)(m.bind(this))},i.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},i.r=function(e){return B(e,this.m).exports},i.f=function(e){function t(t){if(t=b(t),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(t=b(t),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 O=Symbol("turbopack queues"),g=Symbol("turbopack exports"),w=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}i.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=y(),u=Object.assign(s,{[g]:r.exports,[O]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[g]=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(O in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[g]:{},[O]:e=>e(t)};return e.then(e=>{r[g]=e,C(t)},e=>{r[w]=e,C(t)}),r}}return{[g]:e,[O]:()=>{}}}),r=()=>t.map(e=>{if(e[w])throw e[w];return e[g]}),{promise:i,resolve:l}=y(),s=Object.assign(()=>l(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[O](u)),s.queueCount?i:r()},function(e){e?l(u[w]=e):i(u[g]),C(n)}),n&&-1===n.status&&(n.status=0)};let U=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 R(e,t){throw Error(`Invariant: ${t(e)}`)}U.prototype=URL.prototype,i.U=U,i.z=function(e){throw Error("dynamic usage of require is not supported")},i.g=globalThis;let j=o.prototype;var k,_=((k=_||{})[k.Runtime=0]="Runtime",k[k.Parent=1]="Parent",k[k.Update=2]="Update",k);let v=new Map;i.M=v;let $=new Map,P=new Map;async function S(e,t,r){let n;if("string"==typeof r)return E(e,t,K(r));let o=r.included||[],i=o.map(e=>!!v.has(e)||$.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>P.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)P.has(e)||r.add(e);for(let n of r){let r=E(e,t,K(n));P.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=E(e,t,K(r.path)),l))P.has(o)||P.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}j.l=function(e){return S(1,this.m.id,e)};let T=Promise.resolve(void 0),A=new WeakMap;function E(t,r,n){let o=e.loadChunkCached(t,n),i=A.get(o);if(void 0===i){let e=A.set.bind(A,o,T);i=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:R(t,e=>`Unknown source type: ${e}`)}let i=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw i.name="ChunkLoadError",i}),A.set(o,i)}return i}function K(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}j.L=function(e){return E(1,this.m.id,e)},j.R=function(e){let t=this.r(e);return t?.default??t},j.P=function(e){return`/ROOT/${e??""}`},j.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/39e9bdcc541cc428.js","static/chunks/10099c90a1ca89ea.js","static/chunks/13606014ef33124c.js","static/chunks/4785978304fb9e19.js"],runtimeModuleIds:[35972]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=(self.TURBOPACK_CHUNK_SUFFIX??document?.currentScript?.getAttribute?.("src")?.replace(/^(.*(?=\?)|^.*$)/,""))||"",n=new WeakMap;function o(e,t){this.m=e,this.e=t}let i=o.prototype,l=Object.prototype.hasOwnProperty,s="undefined"!=typeof Symbol&&Symbol.toStringTag;function u(e,t,r){l.call(e,t)||Object.defineProperty(e,t,r)}function c(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 f(e,t){u(e,"__esModule",{value:!0}),s&&u(e,s,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)u(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?u(e,n,{get:o,set:t[r++],enumerable:!0}):u(e,n,{get:o,enumerable:!0})}Object.seal(e)}i.s=function(e,t){let r,n;null!=t?n=(r=c(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,f(n,e)},i.j=function(e,t){var r,o;let i,s,u;null!=t?s=(i=c(this.c,t)).exports:(i=this.m,s=this.e);let a=(r=i,o=s,(u=n.get(r))||(n.set(r,u=[]),r.exports=r.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 u){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of u)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),u);"object"==typeof e&&null!==e&&a.push(e)},i.v=function(e,t){(null!=t?c(this.c,t):this.m).exports=e},i.n=function(e,t){let r;(r=null!=t?c(this.c,t):this.m).exports=r.namespaceObject=e};let p=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,h=[null,p({}),p([]),p(p)];function d(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!h.includes(t);t=p(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)),f(t,n),t}function m(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=d(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function b(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function y(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}i.i=m,i.A=function(e){return this.r(e)(m.bind(this))},i.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},i.r=function(e){return B(e,this.m).exports},i.f=function(e){function t(t){if(t=b(t),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(t=b(t),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 O=Symbol("turbopack queues"),g=Symbol("turbopack exports"),w=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}i.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=y(),u=Object.assign(s,{[g]:r.exports,[O]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),c={get:()=>u,set(e){e!==u&&(u[g]=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(O in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[g]:{},[O]:e=>e(t)};return e.then(e=>{r[g]=e,C(t)},e=>{r[w]=e,C(t)}),r}}return{[g]:e,[O]:()=>{}}}),r=()=>t.map(e=>{if(e[w])throw e[w];return e[g]}),{promise:i,resolve:l}=y(),s=Object.assign(()=>l(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[O](u)),s.queueCount?i:r()},function(e){e?l(u[w]=e):i(u[g]),C(n)}),n&&-1===n.status&&(n.status=0)};let U=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 R(e,t){throw Error(`Invariant: ${t(e)}`)}U.prototype=URL.prototype,i.U=U,i.z=function(e){throw Error("dynamic usage of require is not supported")},i.g=globalThis;let j=o.prototype;var k,_=((k=_||{})[k.Runtime=0]="Runtime",k[k.Parent=1]="Parent",k[k.Update=2]="Update",k);let v=new Map;i.M=v;let $=new Map,P=new Map;async function S(e,t,r){let n;if("string"==typeof r)return E(e,t,K(r));let o=r.included||[],i=o.map(e=>!!v.has(e)||$.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>P.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)P.has(e)||r.add(e);for(let n of r){let r=E(e,t,K(n));P.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=E(e,t,K(r.path)),l))P.has(o)||P.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}j.l=function(e){return S(1,this.m.id,e)};let T=Promise.resolve(void 0),A=new WeakMap;function E(t,r,n){let o=e.loadChunkCached(t,n),i=A.get(o);if(void 0===i){let e=A.set.bind(A,o,T);i=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:R(t,e=>`Unknown source type: ${e}`)}let i=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw i.name="ChunkLoadError",i}),A.set(o,i)}return i}function K(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}j.L=function(e){return E(1,this.m.id,e)},j.R=function(e){let t=this.r(e);return t?.default??t},j.P=function(e){return`/ROOT/${e??""}`},j.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
2
2
  self.TURBOPACK_CHUNK_SUFFIX = ${JSON.stringify(r)};
3
3
  self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(K),null,2)};
4
- importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let x=/\.js(?:\?[^#]*)?(?:#.*)?$/,N=/\.css(?:\?[^#]*)?(?:#.*)?$/;function M(e){return N.test(e)}i.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},i.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let L={};i.c=L;let B=(e,t)=>{let r=L[e];if(r){if(r.error)throw r.error;return r}return q(e,_.Parent,t.id)};function q(e,t,r){let n=v.get(e);if("function"!=typeof n)throw Error(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:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let i=c(e),l=i.exports;L[e]=i;let s=new o(i,l);try{n(s,i,l)}catch(e){throw i.error=e,e}return i.namespaceObject&&i.exports!==i.namespaceObject&&d(i.exports,i.namespaceObject),i}function I(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 i=e[n];for(Object.defineProperty(i,"name",{value:"module evaluation"});o<n;o++)t=e[o],r.set(t,i)}o=n+1}}(r,0,v)),e.registerChunk(o,n)}let W=new Map;function H(e){let t=W.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},W.set(e,t)}return t}e={async registerChunk(e,t){if(H(K(e)).resolve(),null!=t){for(let e of t.otherChunks)H(K("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>S(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=L[t];if(r){if(r.error)throw r.error;return}q(t,_.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=H(t);if(r.loadingStarted)return r.promise;if(e===_.Runtime)return r.loadingStarted=!0,M(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(M(t));else if(x.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(M(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(x.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(K(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(K(r));return await WebAssembly.compileStreaming(o)}};let F=globalThis.TURBOPACK;globalThis.TURBOPACK={push:I},F.forEach(I)})();
4
+ importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let x=/\.js(?:\?[^#]*)?(?:#.*)?$/,N=/\.css(?:\?[^#]*)?(?:#.*)?$/;function M(e){return N.test(e)}i.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},i.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let L={};i.c=L;let B=(e,t)=>{let r=L[e];if(r){if(r.error)throw r.error;return r}return q(e,_.Parent,t.id)};function q(e,t,r){let n=v.get(e);if("function"!=typeof n)throw Error(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:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let i=a(e),l=i.exports;L[e]=i;let s=new o(i,l);try{n(s,i,l)}catch(e){throw i.error=e,e}return i.namespaceObject&&i.exports!==i.namespaceObject&&d(i.exports,i.namespaceObject),i}function I(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 i=e[n];for(Object.defineProperty(i,"name",{value:"module evaluation"});o<n;o++)t=e[o],r.set(t,i)}o=n+1}}(r,0,v)),e.registerChunk(o,n)}let W=new Map;function H(e){let t=W.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},W.set(e,t)}return t}e={async registerChunk(e,t){if(H(K(e)).resolve(),null!=t){for(let e of t.otherChunks)H(K("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>S(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=L[t];if(r){if(r.error)throw r.error;return}q(t,_.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=H(t);if(r.loadingStarted)return r.promise;if(e===_.Runtime)return r.loadingStarted=!0,M(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(M(t));else if(x.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(M(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(x.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(K(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(K(r));return await WebAssembly.compileStreaming(o)}};let F=globalThis.TURBOPACK;globalThis.TURBOPACK={push:I},F.forEach(I)})();
@@ -197,7 +197,10 @@ function calculateErrorPriority(
197
197
  }
198
198
 
199
199
  // Count occurrences of similar errors
200
- const errorPattern = errorLine.replace(/\d+/g, "\\d+").substring(0, 100)
200
+ // Strip ANSI escape codes before constructing regex pattern (fixes #74)
201
+ // biome-ignore lint/suspicious/noControlCharactersInRegex: ANSI escape codes require control characters
202
+ const cleanLine = errorLine.replace(/\x1b\[[0-9;]*m/g, "")
203
+ const errorPattern = cleanLine.replace(/\d+/g, "\\d+").substring(0, 100)
201
204
  const occurrences = allErrors.filter((e) => new RegExp(errorPattern).test(e)).length
202
205
  if (occurrences > 1) {
203
206
  score += (occurrences - 1) * 50
@@ -2,6 +2,7 @@
2
2
  "name": "dev3000-mcp-server",
3
3
  "version": "1.0.0",
4
4
  "private": true,
5
+ "packageManager": "bun@1.2.5",
5
6
  "scripts": {
6
7
  "dev": "next dev --turbopack",
7
8
  "build": "next build --turbopack",
@@ -14,13 +14,17 @@ process.env.PORT = process.env.PORT || "3684"
14
14
  process.chdir(__dirname)
15
15
 
16
16
  // Check if we're in a global install by looking for Next.js in parent directories
17
+ // Note: We use next/dist/bin/next directly instead of .bin/next because the .bin
18
+ // symlinks break when dereferenced during the build process (the relative imports
19
+ // in the .bin/next script point to wrong locations)
17
20
  const findNext = () => {
18
21
  let currentDir = __dirname
19
22
  const maxLevels = 5 // Prevent infinite loop
20
23
  let levels = 0
21
24
 
22
25
  while (levels < maxLevels) {
23
- const nextBin = path.join(currentDir, "node_modules", ".bin", "next")
26
+ // Use the actual next package binary, not the .bin symlink
27
+ const nextBin = path.join(currentDir, "node_modules", "next", "dist", "bin", "next")
24
28
  if (existsSync(nextBin)) {
25
29
  return nextBin
26
30
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev3000",
3
- "version": "0.0.135",
3
+ "version": "0.0.138",
4
4
  "description": "AI-powered development tools with browser monitoring and MCP server integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -36,7 +36,7 @@
36
36
  "scripts": {
37
37
  "build": "tsc && mkdir -p dist/src && cp src/loading.html dist/src/ && cp src/tui-interface-impl.tsx dist/src/ && cp -r src/skills dist/",
38
38
  "typegen": "./scripts/typegen.sh",
39
- "typecheck": "pnpm -r run typecheck",
39
+ "typecheck": "bun run --filter '*' typecheck",
40
40
  "format": "biome format --write .",
41
41
  "lint": "biome check src mcp-server www scripts --vcs-use-ignore-file=true",
42
42
  "lint:fix": "biome check --write src mcp-server www scripts",
@@ -93,15 +93,7 @@
93
93
  "vitest": "^3.2.4"
94
94
  },
95
95
  "optionalDependencies": {
96
- "@d3k/darwin-arm64": "0.0.135"
97
- },
98
- "pnpm": {
99
- "peerDependencyRules": {
100
- "allowAny": [
101
- "react",
102
- "react-dom"
103
- ]
104
- }
96
+ "@d3k/darwin-arm64": "0.0.138"
105
97
  },
106
98
  "engines": {
107
99
  "node": ">=18.0.0"
@@ -112,5 +104,9 @@
112
104
  },
113
105
  "author": "Lindsey Simon <lindsey@vercel.com>",
114
106
  "license": "MIT",
115
- "packageManager": "pnpm@10.25.0"
107
+ "packageManager": "bun@1.2.5",
108
+ "workspaces": [
109
+ "www",
110
+ "mcp-server"
111
+ ]
116
112
  }
@@ -20,6 +20,7 @@ export interface TUIOptions {
20
20
  version: string
21
21
  projectName?: string
22
22
  updateInfo?: UpdateInfo
23
+ useHttps?: boolean
23
24
  }
24
25
 
25
26
  interface LogEntry {
@@ -155,26 +156,28 @@ const TUIApp = ({
155
156
  version,
156
157
  projectName,
157
158
  updateInfo: initialUpdateInfo,
159
+ useHttps: initialUseHttps,
158
160
  onStatusUpdate,
159
161
  onAppPortUpdate,
160
- onUpdateInfoUpdate
162
+ onUpdateInfoUpdate,
163
+ onUseHttpsUpdate
161
164
  }: TUIOptions & {
162
165
  onStatusUpdate: (fn: (status: string | null) => void) => void
163
166
  onAppPortUpdate: (fn: (port: string) => void) => void
164
167
  onUpdateInfoUpdate: (fn: (info: UpdateInfo) => void) => void
168
+ onUseHttpsUpdate: (fn: (useHttps: boolean) => void) => void
165
169
  }) => {
166
170
  const [logs, setLogs] = useState<LogEntry[]>([])
167
171
  const [scrollOffset, setScrollOffset] = useState(0)
168
172
  const [initStatus, setInitStatus] = useState<string | null>(null)
169
173
  const [appPort, setAppPort] = useState<string>(initialAppPort)
174
+ const [useHttps, setUseHttps] = useState<boolean>(initialUseHttps || false)
170
175
  const [updateInfo, setUpdateInfo] = useState<UpdateInfo>(initialUpdateInfo || null)
171
176
  const [portConfirmed, setPortConfirmed] = useState<boolean>(false)
172
177
  const logIdCounter = useRef(0)
173
178
  const [clearFromLogId, setClearFromLogId] = useState<number>(0) // Track log ID to clear from
174
179
  const { stdout } = useStdout()
175
- // Show pane switching hint if running inside tmux
176
- const isInTmux = !!process.env.TMUX
177
- const ctrlCMessageDefault = isInTmux ? "^B←→ panes ^L clear ^C quit" : "^L clear ^C quit"
180
+ const ctrlCMessageDefault = "" // Removed - click to focus/resize works now
178
181
  const [ctrlCMessage, setCtrlCMessage] = useState(ctrlCMessageDefault)
179
182
  const maxScrollOffsetRef = useRef(0)
180
183
 
@@ -254,14 +257,21 @@ const TUIApp = ({
254
257
  })
255
258
  }, [onUpdateInfoUpdate])
256
259
 
260
+ // Provide useHttps update function to parent
261
+ useEffect(() => {
262
+ onUseHttpsUpdate((https: boolean) => {
263
+ setUseHttps(https)
264
+ })
265
+ }, [onUseHttpsUpdate])
266
+
257
267
  // Calculate available lines for logs dynamically based on terminal height and mode
258
268
  const calculateMaxVisibleLogs = () => {
259
269
  if (isVeryCompact) {
260
270
  // In very compact mode, use most of the screen for logs, account for bottom status line
261
- return Math.max(3, termHeight - 8)
271
+ return Math.max(3, termHeight - 7)
262
272
  } else if (isCompact) {
263
273
  // In compact mode, reduce header size, account for bottom status line
264
- return Math.max(3, termHeight - 10)
274
+ return Math.max(3, termHeight - 9)
265
275
  } else {
266
276
  // Normal mode calculation - account for all UI elements
267
277
  const headerBorderLines = 2 // Top border (with title) + bottom border
@@ -270,15 +280,14 @@ const TUIApp = ({
270
280
  const logBoxHeaderLines = 1 // "Logs (X total)" text
271
281
  const logBoxFooterLines = 1 // Always reserve space for "(X lines below)" to keep layout stable
272
282
  const bottomStatusLine = 1 // Log path and quit message
273
- const safetyBuffer = 0 // No buffer needed with explicit heights
274
283
  const totalReservedLines =
275
284
  headerBorderLines +
276
285
  headerContentLines +
277
286
  logBoxBorderLines +
278
287
  logBoxHeaderLines +
279
288
  logBoxFooterLines +
280
- bottomStatusLine +
281
- safetyBuffer
289
+ bottomStatusLine -
290
+ 1 // Reclaim the extra blank line
282
291
  return Math.max(3, termHeight - totalReservedLines)
283
292
  }
284
293
  }
@@ -436,16 +445,18 @@ const TUIApp = ({
436
445
  filteredLogs.length - scrollOffset
437
446
  )
438
447
 
448
+ // Get clean project name (strip hash suffix like "-935beb")
449
+ const cleanProjectName = projectName ? projectName.replace(/-[a-f0-9]{6}$/, "") : ""
450
+
439
451
  // Render compact header for small terminals
440
452
  const renderCompactHeader = () => (
441
- <Box borderStyle="single" borderColor="#A18CE5" paddingX={1} marginBottom={1}>
453
+ <Box borderStyle="single" borderColor="#A18CE5" paddingX={1}>
442
454
  <Box flexDirection="column" width="100%">
443
455
  <Box>
444
456
  <Text color="#A18CE5" bold>
445
457
  {COMPACT_LOGO}
446
458
  </Text>
447
- <Text> v{version} </Text>
448
- {initStatus && <Text dimColor>- {initStatus}</Text>}
459
+ <Text dimColor> v{version}</Text>
449
460
  </Box>
450
461
  {!isVeryCompact && (
451
462
  <Box flexDirection="column">
@@ -465,7 +476,8 @@ const TUIApp = ({
465
476
  // Render normal header
466
477
  const renderNormalHeader = () => {
467
478
  // Create custom top border with title embedded (like Claude Code)
468
- const title = ` ${commandName} v${version} ${initStatus ? `- ${initStatus} ` : ""}`
479
+ // Note: commandName omitted since ASCII art already shows "d3k"
480
+ const title = ` v${version} ${initStatus ? `- ${initStatus} ` : ""}`
469
481
  const borderChar = "─"
470
482
  const leftPadding = 2
471
483
  // Account for border characters and padding
@@ -495,7 +507,9 @@ const TUIApp = ({
495
507
  {/* Info on the right */}
496
508
  <Box flexDirection="column" flexGrow={1}>
497
509
  <Box>
498
- <Text color="cyan">🌐 App: http://localhost:{appPort} </Text>
510
+ <Text color="cyan">
511
+ 🌐 App: {useHttps ? "https" : "http"}://localhost:{appPort}{" "}
512
+ </Text>
499
513
  {!portConfirmed && <Spinner type="dots" />}
500
514
  </Box>
501
515
  <Text color="cyan">🤖 MCP: http://localhost:{mcpPort}</Text>
@@ -547,22 +561,20 @@ const TUIApp = ({
547
561
  )}
548
562
  </Box>
549
563
 
550
- {/* Bottom status line - no border, just text */}
551
- <Box paddingX={1} justifyContent="space-between">
552
- <Box>
553
- <Text color="#A18CE5">
554
- ⏵⏵{" "}
555
- {isVeryCompact
556
- ? logFile.split("/").slice(-2, -1)[0] || "logs" // Just show directory name
557
- : logFile.replace(process.env.HOME || "", "~")}
558
- </Text>
559
- </Box>
564
+ {/* Bottom status line */}
565
+ <Box paddingX={1} justifyContent={isCompact ? "flex-end" : "space-between"}>
566
+ {!isCompact && (
567
+ <Box>
568
+ <Text color="#A18CE5">{logFile.replace(process.env.HOME || "", "~")}</Text>
569
+ </Box>
570
+ )}
560
571
  <Box gap={2}>
572
+ {isCompact && <Text color="#A18CE5">{cleanProjectName || "d3k"}</Text>}
561
573
  {updateInfo?.type === "available" && (
562
574
  <Text color="yellow">↑ v{updateInfo.latestVersion} available (d3k upgrade)</Text>
563
575
  )}
564
576
  {updateInfo?.type === "updated" && <Text color="green">✓ Updated to v{updateInfo.newVersion}</Text>}
565
- <Text color="#A18CE5">{ctrlCMessage}</Text>
577
+ {ctrlCMessage && <Text color="#A18CE5">{ctrlCMessage}</Text>}
566
578
  </Box>
567
579
  </Box>
568
580
  </Box>
@@ -574,12 +586,14 @@ export async function runTUI(options: TUIOptions): Promise<{
574
586
  updateStatus: (status: string | null) => void
575
587
  updateAppPort: (port: string) => void
576
588
  updateUpdateInfo: (info: UpdateInfo) => void
589
+ updateUseHttps: (useHttps: boolean) => void
577
590
  }> {
578
591
  return new Promise((resolve, reject) => {
579
592
  try {
580
593
  let statusUpdater: ((status: string | null) => void) | null = null
581
594
  let appPortUpdater: ((port: string) => void) | null = null
582
595
  let updateInfoUpdater: ((info: UpdateInfo) => void) | null = null
596
+ let httpsUpdater: ((useHttps: boolean) => void) | null = null
583
597
 
584
598
  // Wrap stdout.write to add synchronized update escape sequences
585
599
  // This tells the terminal to buffer all output until the end marker
@@ -619,6 +633,9 @@ export async function runTUI(options: TUIOptions): Promise<{
619
633
  onUpdateInfoUpdate={(fn) => {
620
634
  updateInfoUpdater = fn
621
635
  }}
636
+ onUseHttpsUpdate={(fn) => {
637
+ httpsUpdater = fn
638
+ }}
622
639
  />,
623
640
  { exitOnCtrlC: false }
624
641
  )
@@ -641,6 +658,11 @@ export async function runTUI(options: TUIOptions): Promise<{
641
658
  if (updateInfoUpdater) {
642
659
  updateInfoUpdater(info)
643
660
  }
661
+ },
662
+ updateUseHttps: (useHttps: boolean) => {
663
+ if (httpsUpdater) {
664
+ httpsUpdater(useHttps)
665
+ }
644
666
  }
645
667
  })
646
668
  })