dev3000 0.0.66 → 0.0.68

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 (208) hide show
  1. package/README.md +56 -7
  2. package/dist/cdp-monitor.d.ts +4 -1
  3. package/dist/cdp-monitor.d.ts.map +1 -1
  4. package/dist/cdp-monitor.js +39 -7
  5. package/dist/cdp-monitor.js.map +1 -1
  6. package/dist/cli.d.ts +1 -1
  7. package/dist/cli.js +12 -7
  8. package/dist/cli.js.map +1 -1
  9. package/dist/dev-environment.d.ts +2 -0
  10. package/dist/dev-environment.d.ts.map +1 -1
  11. package/dist/dev-environment.js +174 -42
  12. package/dist/dev-environment.js.map +1 -1
  13. package/dist/services/parsers/log-parsers/base.d.ts +1 -1
  14. package/dist/services/parsers/log-parsers/base.d.ts.map +1 -1
  15. package/dist/src/tui-interface-impl.tsx +163 -48
  16. package/dist/tui-interface-impl.d.ts.map +1 -1
  17. package/dist/tui-interface-impl.js +72 -14
  18. package/dist/tui-interface-impl.js.map +1 -1
  19. package/dist/utils/project-name.d.ts +18 -0
  20. package/dist/utils/project-name.d.ts.map +1 -0
  21. package/dist/utils/project-name.js +114 -0
  22. package/dist/utils/project-name.js.map +1 -0
  23. package/dist/utils/timestamp.d.ts +8 -0
  24. package/dist/utils/timestamp.d.ts.map +1 -0
  25. package/dist/utils/timestamp.js +18 -0
  26. package/dist/utils/timestamp.js.map +1 -0
  27. package/mcp-server/.next/BUILD_ID +1 -1
  28. package/mcp-server/.next/app-build-manifest.json +8 -6
  29. package/mcp-server/.next/build-manifest.json +2 -2
  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 +10 -10
  34. package/mcp-server/.next/required-server-files.json +1 -0
  35. package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
  36. package/mcp-server/.next/server/app/_global-error.html +2 -2
  37. package/mcp-server/.next/server/app/_global-error.rsc +1 -1
  38. package/mcp-server/.next/server/app/_not-found/page/app-build-manifest.json +1 -1
  39. package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
  40. package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  41. package/mcp-server/.next/server/app/_not-found.html +1 -1
  42. package/mcp-server/.next/server/app/_not-found.rsc +2 -2
  43. package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
  44. package/mcp-server/.next/server/app/api/logs/head/route.js.nft.json +1 -1
  45. package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  46. package/mcp-server/.next/server/app/api/logs/rotate/route.js.nft.json +1 -1
  47. package/mcp-server/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  48. package/mcp-server/.next/server/app/api/logs/tail/route.js.nft.json +1 -1
  49. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js.nft.json +1 -1
  50. package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -1
  51. package/mcp-server/.next/server/app/index.html +1 -1
  52. package/mcp-server/.next/server/app/index.rsc +3 -3
  53. package/mcp-server/.next/server/app/logs/page/app-build-manifest.json +4 -3
  54. package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
  55. package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  56. package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
  57. package/mcp-server/.next/server/app/page/app-build-manifest.json +3 -2
  58. package/mcp-server/.next/server/app/page.js.nft.json +1 -1
  59. package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
  60. package/mcp-server/.next/server/chunks/ssr/{node_modules__pnpm_4f58b96e._.js → _188bfe33._.js} +2 -2
  61. package/mcp-server/.next/server/chunks/ssr/_188bfe33._.js.map +1 -0
  62. package/mcp-server/.next/server/chunks/ssr/_9d670a6b._.js +2 -2
  63. package/mcp-server/.next/server/chunks/ssr/_9d670a6b._.js.map +1 -1
  64. package/mcp-server/.next/server/chunks/ssr/_d858c4cd._.js +1 -1
  65. package/mcp-server/.next/server/chunks/ssr/_d858c4cd._.js.map +1 -1
  66. package/mcp-server/.next/server/chunks/ssr/_dae9c1d5._.js +1 -1
  67. package/mcp-server/.next/server/chunks/ssr/_dae9c1d5._.js.map +1 -1
  68. package/mcp-server/.next/server/chunks/ssr/{node_modules__pnpm_87fb6266._.js → _f03e80a8._.js} +2 -2
  69. package/mcp-server/.next/server/chunks/ssr/_f03e80a8._.js.map +1 -0
  70. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_layout_tsx_afa41767._.js +1 -1
  71. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_layout_tsx_afa41767._.js.map +1 -1
  72. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  73. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  74. package/mcp-server/.next/static/chunks/5a5edc75ee7e7de4.js +1 -0
  75. package/mcp-server/.next/static/chunks/65b18bf1ede9811a.css +1 -0
  76. package/mcp-server/.next/static/chunks/90585d882461b546.js +1 -0
  77. package/mcp-server/.next/static/chunks/c5f8464bc8083ee7.js +1 -0
  78. package/mcp-server/app/api/screenshots/[filename]/route.ts +15 -9
  79. package/mcp-server/app/api/tools/route.ts +22 -5
  80. package/mcp-server/app/layout.tsx +4 -2
  81. package/mcp-server/app/logs/LogsClient.infinite-loop.test.tsx +127 -0
  82. package/mcp-server/app/logs/LogsClient.tsx +318 -201
  83. package/mcp-server/app/logs/page.tsx +19 -3
  84. package/mcp-server/app/logs/utils.ts +15 -3
  85. package/mcp-server/app/mcp/route.ts +75 -509
  86. package/mcp-server/app/mcp/tools.ts +747 -0
  87. package/mcp-server/app/page.tsx +244 -169
  88. package/mcp-server/next.config.ts +1 -1
  89. package/mcp-server/package.json +14 -6
  90. package/mcp-server/public/favicon-16.svg +4 -0
  91. package/mcp-server/public/favicon-180.png +0 -0
  92. package/mcp-server/public/favicon-64.svg +4 -0
  93. package/mcp-server/public/favicon-preview.html +67 -0
  94. package/mcp-server/public/favicon.ico +0 -0
  95. package/mcp-server/public/favicon.svg +4 -0
  96. package/mcp-server/public/screenshots/test.txt +1 -0
  97. package/mcp-server/start-production.js +60 -0
  98. package/package.json +28 -15
  99. package/src/tui-interface-impl.tsx +163 -48
  100. package/mcp-server/.next/build/chunks/[root-of-the-server]__25374c4f._.js +0 -496
  101. package/mcp-server/.next/build/chunks/[root-of-the-server]__25374c4f._.js.map +0 -11
  102. package/mcp-server/.next/build/chunks/[root-of-the-server]__4718a9dd._.js +0 -408
  103. package/mcp-server/.next/build/chunks/[root-of-the-server]__4718a9dd._.js.map +0 -7
  104. package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js +0 -205
  105. package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js.map +0 -8
  106. package/mcp-server/.next/build/chunks/[root-of-the-server]__c7ae8543._.js +0 -496
  107. package/mcp-server/.next/build/chunks/[root-of-the-server]__c7ae8543._.js.map +0 -11
  108. package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_d723d216._.js +0 -13
  109. package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_d723d216._.js.map +0 -5
  110. package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_webpack-loaders_ts_5a40237e._.js +0 -12
  111. package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_webpack-loaders_ts_5a40237e._.js.map +0 -5
  112. package/mcp-server/.next/build/chunks/[turbopack]_runtime.js +0 -770
  113. package/mcp-server/.next/build/chunks/[turbopack]_runtime.js.map +0 -10
  114. package/mcp-server/.next/build/chunks/node_modules__pnpm_806d01c0._.js +0 -6759
  115. package/mcp-server/.next/build/chunks/node_modules__pnpm_806d01c0._.js.map +0 -47
  116. package/mcp-server/.next/cache/.previewinfo +0 -1
  117. package/mcp-server/.next/cache/.rscinfo +0 -1
  118. package/mcp-server/.next/cache/.tsbuildinfo +0 -1
  119. package/mcp-server/.next/cache/next-devtools-config.json +0 -1
  120. package/mcp-server/.next/cache/webpack/client-development/0.pack.gz +0 -0
  121. package/mcp-server/.next/cache/webpack/client-development/1.pack.gz +0 -0
  122. package/mcp-server/.next/cache/webpack/client-development/2.pack.gz +0 -0
  123. package/mcp-server/.next/cache/webpack/client-development/3.pack.gz +0 -0
  124. package/mcp-server/.next/cache/webpack/client-development/4.pack.gz +0 -0
  125. package/mcp-server/.next/cache/webpack/client-development/index.pack.gz +0 -0
  126. package/mcp-server/.next/cache/webpack/client-development/index.pack.gz.old +0 -0
  127. package/mcp-server/.next/cache/webpack/server-development/0.pack.gz +0 -0
  128. package/mcp-server/.next/cache/webpack/server-development/1.pack.gz +0 -0
  129. package/mcp-server/.next/cache/webpack/server-development/2.pack.gz +0 -0
  130. package/mcp-server/.next/cache/webpack/server-development/3.pack.gz +0 -0
  131. package/mcp-server/.next/cache/webpack/server-development/4.pack.gz +0 -0
  132. package/mcp-server/.next/cache/webpack/server-development/5.pack.gz +0 -0
  133. package/mcp-server/.next/cache/webpack/server-development/index.pack.gz +0 -0
  134. package/mcp-server/.next/cache/webpack/server-development/index.pack.gz.old +0 -0
  135. package/mcp-server/.next/diagnostics/build-diagnostics.json +0 -6
  136. package/mcp-server/.next/diagnostics/framework.json +0 -1
  137. package/mcp-server/.next/server/chunks/0916f_next_ab257ac1._.js +0 -17
  138. package/mcp-server/.next/server/chunks/0916f_next_ab257ac1._.js.map +0 -1
  139. package/mcp-server/.next/server/chunks/250ae__next-internal_server_app_api_screenshots_[filename]_route_actions_4f8d6e37.js +0 -3
  140. package/mcp-server/.next/server/chunks/250ae__next-internal_server_app_api_screenshots_[filename]_route_actions_4f8d6e37.js.map +0 -1
  141. package/mcp-server/.next/server/chunks/[root-of-the-server]__1b561deb._.js +0 -3
  142. package/mcp-server/.next/server/chunks/[root-of-the-server]__1b561deb._.js.map +0 -1
  143. package/mcp-server/.next/server/chunks/[root-of-the-server]__38e8baae._.js +0 -22
  144. package/mcp-server/.next/server/chunks/[root-of-the-server]__38e8baae._.js.map +0 -1
  145. package/mcp-server/.next/server/chunks/[root-of-the-server]__47380b6c._.js +0 -7
  146. package/mcp-server/.next/server/chunks/[root-of-the-server]__47380b6c._.js.map +0 -1
  147. package/mcp-server/.next/server/chunks/[root-of-the-server]__674284d7._.js +0 -3
  148. package/mcp-server/.next/server/chunks/[root-of-the-server]__674284d7._.js.map +0 -1
  149. package/mcp-server/.next/server/chunks/[root-of-the-server]__6a89b7dc._.js +0 -3
  150. package/mcp-server/.next/server/chunks/[root-of-the-server]__6a89b7dc._.js.map +0 -1
  151. package/mcp-server/.next/server/chunks/[root-of-the-server]__729bfe09._.js +0 -11
  152. package/mcp-server/.next/server/chunks/[root-of-the-server]__729bfe09._.js.map +0 -1
  153. package/mcp-server/.next/server/chunks/[root-of-the-server]__a433711a._.js +0 -3
  154. package/mcp-server/.next/server/chunks/[root-of-the-server]__a433711a._.js.map +0 -1
  155. package/mcp-server/.next/server/chunks/[root-of-the-server]__a58600d8._.js +0 -3
  156. package/mcp-server/.next/server/chunks/[root-of-the-server]__a58600d8._.js.map +0 -1
  157. package/mcp-server/.next/server/chunks/[root-of-the-server]__bc43993b._.js +0 -3
  158. package/mcp-server/.next/server/chunks/[root-of-the-server]__bc43993b._.js.map +0 -1
  159. package/mcp-server/.next/server/chunks/[root-of-the-server]__c464573d._.js +0 -3
  160. package/mcp-server/.next/server/chunks/[root-of-the-server]__c464573d._.js.map +0 -1
  161. package/mcp-server/.next/server/chunks/[root-of-the-server]__e6d29491._.js +0 -4
  162. package/mcp-server/.next/server/chunks/[root-of-the-server]__e6d29491._.js.map +0 -1
  163. package/mcp-server/.next/server/chunks/[turbopack]_runtime.js +0 -770
  164. package/mcp-server/.next/server/chunks/[turbopack]_runtime.js.map +0 -10
  165. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_append_route_actions_bc66060f.js +0 -3
  166. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_append_route_actions_bc66060f.js.map +0 -1
  167. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_head_route_actions_1152480c.js +0 -3
  168. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_head_route_actions_1152480c.js.map +0 -1
  169. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_list_route_actions_b9e24400.js +0 -3
  170. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_list_route_actions_b9e24400.js.map +0 -1
  171. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_rotate_route_actions_76075d08.js +0 -3
  172. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_rotate_route_actions_76075d08.js.map +0 -1
  173. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_stream_route_actions_16e5c553.js +0 -3
  174. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_stream_route_actions_16e5c553.js.map +0 -1
  175. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_tail_route_actions_55440150.js +0 -3
  176. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_tail_route_actions_55440150.js.map +0 -1
  177. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_tools_route_actions_007f3c7c.js +0 -3
  178. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_tools_route_actions_007f3c7c.js.map +0 -1
  179. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_mcp_route_actions_7f7b5be4.js +0 -3
  180. package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_mcp_route_actions_7f7b5be4.js.map +0 -1
  181. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_4f58b96e._.js.map +0 -1
  182. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_87fb6266._.js.map +0 -1
  183. package/mcp-server/.next/server/pages/404.html +0 -1
  184. package/mcp-server/.next/server/pages/500.html +0 -2
  185. package/mcp-server/.next/server/pages/_app/build-manifest.json +0 -9
  186. package/mcp-server/.next/server/pages/_app/client-build-manifest.json +0 -1
  187. package/mcp-server/.next/server/pages/_app/next-font-manifest.json +0 -6
  188. package/mcp-server/.next/server/pages/_app/pages-manifest.json +0 -1
  189. package/mcp-server/.next/server/pages/_app/react-loadable-manifest.json +0 -1
  190. package/mcp-server/.next/server/pages/_document/next-font-manifest.json +0 -6
  191. package/mcp-server/.next/server/pages/_document/pages-manifest.json +0 -1
  192. package/mcp-server/.next/server/pages/_document/react-loadable-manifest.json +0 -1
  193. package/mcp-server/.next/server/pages/_error/build-manifest.json +0 -9
  194. package/mcp-server/.next/server/pages/_error/client-build-manifest.json +0 -1
  195. package/mcp-server/.next/server/pages/_error/next-font-manifest.json +0 -6
  196. package/mcp-server/.next/server/pages/_error/pages-manifest.json +0 -1
  197. package/mcp-server/.next/server/pages/_error/react-loadable-manifest.json +0 -1
  198. package/mcp-server/.next/static/chunks/11f1b53bdf7a9af0.js +0 -1
  199. package/mcp-server/.next/static/chunks/3d4ea64f6384f2c6.js +0 -1
  200. package/mcp-server/.next/static/chunks/50335dad5c51aab8.js +0 -1
  201. package/mcp-server/.next/static/chunks/bdd0789390bc312f.css +0 -1
  202. package/mcp-server/.next/trace +0 -1
  203. package/mcp-server/.next/turbopack +0 -0
  204. package/mcp-server/.next/types/routes.d.ts +0 -82
  205. package/mcp-server/.next/types/validator.ts +0 -160
  206. /package/mcp-server/.next/static/{mZfouQw6OHfahPQayuVeY → 9VUbGT0H5KtrSKNmmAF__}/_buildManifest.js +0 -0
  207. /package/mcp-server/.next/static/{mZfouQw6OHfahPQayuVeY → 9VUbGT0H5KtrSKNmmAF__}/_clientMiddlewareManifest.json +0 -0
  208. /package/mcp-server/.next/static/{mZfouQw6OHfahPQayuVeY → 9VUbGT0H5KtrSKNmmAF__}/_ssgManifest.js +0 -0
@@ -25,7 +25,8 @@ async function getLogFiles() {
25
25
 
26
26
  const dirContents = readdirSync(logDir)
27
27
  const logFiles = dirContents
28
- .filter((file) => file.startsWith(`dev3000-${projectName}-`) && file.endsWith(".log"))
28
+ // Get all dev3000 log files
29
+ .filter((file) => file.startsWith("dev3000-") && file.endsWith(".log"))
29
30
  .map((file) => {
30
31
  const filePath = join(logDir, file)
31
32
  const stats = statSync(filePath)
@@ -85,14 +86,29 @@ export default async function LogsPage({ searchParams }: PageProps) {
85
86
 
86
87
  // If project parameter is provided, find latest file for that project
87
88
  if (params.project && !params.file) {
88
- const projectFiles = files.filter((f) => f.name.includes(`dev3000-${params.project}-`))
89
+ // Look for files that contain the project name (could be partial match)
90
+ const projectFiles = files.filter((f) => {
91
+ // Extract the project part from filename: dev3000-<project>-timestamp.log
92
+ const match = f.name.match(/^dev3000-(.+?)-\d{4}-\d{2}-\d{2}T/)
93
+ if (match) {
94
+ const fileProject = match[1]
95
+ // Check if the file project contains the requested project as substring
96
+ return fileProject.includes(params.project ?? "")
97
+ }
98
+ return false
99
+ })
89
100
  if (projectFiles.length > 0) {
90
101
  redirect(`/logs?file=${encodeURIComponent(projectFiles[0].name)}&mode=tail`)
91
102
  }
103
+ // If no matching project files found but we have other files, show the latest
104
+ else if (files.length > 0) {
105
+ redirect(`/logs?file=${encodeURIComponent(files[0].name)}&mode=tail`)
106
+ }
107
+ // Otherwise fall through to render empty state
92
108
  }
93
109
 
94
110
  // If no file specified and we have files, redirect to latest with tail mode
95
- if (!params.file && files.length > 0) {
111
+ else if (!params.file && files.length > 0) {
96
112
  const latestFile = files[0].name
97
113
  redirect(`/logs?file=${encodeURIComponent(latestFile)}&mode=tail`)
98
114
  }
@@ -38,10 +38,11 @@ function cleanConsoleFormatting(message: string): string {
38
38
  }
39
39
 
40
40
  export function parseLogEntries(logContent: string): LogEntry[] {
41
- // Enhanced pattern to handle both formats:
41
+ // Enhanced pattern to handle multiple timestamp formats:
42
42
  // Format 1 (CDP): [timestamp] [SOURCE] message
43
43
  // Format 2 (Extension): [timestamp] [TAB-id] [SOURCE] [event] message
44
- const timestampPattern = /\[(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z)\] \[([^\]]+)\] /
44
+ // Format 3 (Short): [HH:MM:SS.mmm] [SOURCE] message
45
+ const timestampPattern = /\[(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z|\d{2}:\d{2}:\d{2}\.\d{3})\] \[([^\]]+)\] /
45
46
 
46
47
  const entries: LogEntry[] = []
47
48
  const lines = logContent.split("\n")
@@ -112,8 +113,19 @@ export function parseLogEntries(logContent: string): LogEntry[] {
112
113
  continue
113
114
  }
114
115
 
116
+ // Normalize timestamp to full ISO format if it's just time
117
+ let normalizedTimestamp = timestamp
118
+ if (/^\d{2}:\d{2}:\d{2}\.\d{3}$/.test(timestamp)) {
119
+ // It's just HH:MM:SS.mmm, convert to today's date with this time
120
+ const today = new Date()
121
+ const [hours, minutes, secondsMs] = timestamp.split(":")
122
+ const [seconds, ms] = secondsMs.split(".")
123
+ today.setHours(parseInt(hours, 10), parseInt(minutes, 10), parseInt(seconds, 10), parseInt(ms, 10))
124
+ normalizedTimestamp = today.toISOString()
125
+ }
126
+
115
127
  currentEntry = {
116
- timestamp,
128
+ timestamp: normalizedTimestamp,
117
129
  source,
118
130
  message: cleanedMessage,
119
131
  screenshot,