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.
- package/README.md +56 -7
- package/dist/cdp-monitor.d.ts +4 -1
- package/dist/cdp-monitor.d.ts.map +1 -1
- package/dist/cdp-monitor.js +39 -7
- package/dist/cdp-monitor.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +12 -7
- package/dist/cli.js.map +1 -1
- package/dist/dev-environment.d.ts +2 -0
- package/dist/dev-environment.d.ts.map +1 -1
- package/dist/dev-environment.js +174 -42
- package/dist/dev-environment.js.map +1 -1
- package/dist/services/parsers/log-parsers/base.d.ts +1 -1
- package/dist/services/parsers/log-parsers/base.d.ts.map +1 -1
- package/dist/src/tui-interface-impl.tsx +163 -48
- package/dist/tui-interface-impl.d.ts.map +1 -1
- package/dist/tui-interface-impl.js +72 -14
- package/dist/tui-interface-impl.js.map +1 -1
- package/dist/utils/project-name.d.ts +18 -0
- package/dist/utils/project-name.d.ts.map +1 -0
- package/dist/utils/project-name.js +114 -0
- package/dist/utils/project-name.js.map +1 -0
- package/dist/utils/timestamp.d.ts +8 -0
- package/dist/utils/timestamp.d.ts.map +1 -0
- package/dist/utils/timestamp.js +18 -0
- package/dist/utils/timestamp.js.map +1 -0
- package/mcp-server/.next/BUILD_ID +1 -1
- package/mcp-server/.next/app-build-manifest.json +8 -6
- package/mcp-server/.next/build-manifest.json +2 -2
- package/mcp-server/.next/fallback-build-manifest.json +2 -2
- package/mcp-server/.next/next-minimal-server.js.nft.json +1 -1
- package/mcp-server/.next/next-server.js.nft.json +1 -1
- package/mcp-server/.next/prerender-manifest.json +10 -10
- package/mcp-server/.next/required-server-files.json +1 -0
- package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/_global-error.html +2 -2
- package/mcp-server/.next/server/app/_global-error.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found/page/app-build-manifest.json +1 -1
- package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/app/_not-found.html +1 -1
- package/mcp-server/.next/server/app/_not-found.rsc +2 -2
- package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/head/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/rotate/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/logs/tail/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/index.html +1 -1
- package/mcp-server/.next/server/app/index.rsc +3 -3
- package/mcp-server/.next/server/app/logs/page/app-build-manifest.json +4 -3
- package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
- package/mcp-server/.next/server/app/page/app-build-manifest.json +3 -2
- package/mcp-server/.next/server/app/page.js.nft.json +1 -1
- package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/mcp-server/.next/server/chunks/ssr/{node_modules__pnpm_4f58b96e._.js → _188bfe33._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/_188bfe33._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/_9d670a6b._.js +2 -2
- package/mcp-server/.next/server/chunks/ssr/_9d670a6b._.js.map +1 -1
- package/mcp-server/.next/server/chunks/ssr/_d858c4cd._.js +1 -1
- package/mcp-server/.next/server/chunks/ssr/_d858c4cd._.js.map +1 -1
- package/mcp-server/.next/server/chunks/ssr/_dae9c1d5._.js +1 -1
- package/mcp-server/.next/server/chunks/ssr/_dae9c1d5._.js.map +1 -1
- package/mcp-server/.next/server/chunks/ssr/{node_modules__pnpm_87fb6266._.js → _f03e80a8._.js} +2 -2
- package/mcp-server/.next/server/chunks/ssr/_f03e80a8._.js.map +1 -0
- package/mcp-server/.next/server/chunks/ssr/mcp-server_app_layout_tsx_afa41767._.js +1 -1
- package/mcp-server/.next/server/chunks/ssr/mcp-server_app_layout_tsx_afa41767._.js.map +1 -1
- package/mcp-server/.next/server/server-reference-manifest.js +1 -1
- package/mcp-server/.next/server/server-reference-manifest.json +1 -1
- package/mcp-server/.next/static/chunks/5a5edc75ee7e7de4.js +1 -0
- package/mcp-server/.next/static/chunks/65b18bf1ede9811a.css +1 -0
- package/mcp-server/.next/static/chunks/90585d882461b546.js +1 -0
- package/mcp-server/.next/static/chunks/c5f8464bc8083ee7.js +1 -0
- package/mcp-server/app/api/screenshots/[filename]/route.ts +15 -9
- package/mcp-server/app/api/tools/route.ts +22 -5
- package/mcp-server/app/layout.tsx +4 -2
- package/mcp-server/app/logs/LogsClient.infinite-loop.test.tsx +127 -0
- package/mcp-server/app/logs/LogsClient.tsx +318 -201
- package/mcp-server/app/logs/page.tsx +19 -3
- package/mcp-server/app/logs/utils.ts +15 -3
- package/mcp-server/app/mcp/route.ts +75 -509
- package/mcp-server/app/mcp/tools.ts +747 -0
- package/mcp-server/app/page.tsx +244 -169
- package/mcp-server/next.config.ts +1 -1
- package/mcp-server/package.json +14 -6
- package/mcp-server/public/favicon-16.svg +4 -0
- package/mcp-server/public/favicon-180.png +0 -0
- package/mcp-server/public/favicon-64.svg +4 -0
- package/mcp-server/public/favicon-preview.html +67 -0
- package/mcp-server/public/favicon.ico +0 -0
- package/mcp-server/public/favicon.svg +4 -0
- package/mcp-server/public/screenshots/test.txt +1 -0
- package/mcp-server/start-production.js +60 -0
- package/package.json +28 -15
- package/src/tui-interface-impl.tsx +163 -48
- package/mcp-server/.next/build/chunks/[root-of-the-server]__25374c4f._.js +0 -496
- package/mcp-server/.next/build/chunks/[root-of-the-server]__25374c4f._.js.map +0 -11
- package/mcp-server/.next/build/chunks/[root-of-the-server]__4718a9dd._.js +0 -408
- package/mcp-server/.next/build/chunks/[root-of-the-server]__4718a9dd._.js.map +0 -7
- package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js +0 -205
- package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js.map +0 -8
- package/mcp-server/.next/build/chunks/[root-of-the-server]__c7ae8543._.js +0 -496
- package/mcp-server/.next/build/chunks/[root-of-the-server]__c7ae8543._.js.map +0 -11
- package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_d723d216._.js +0 -13
- package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_d723d216._.js.map +0 -5
- package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_webpack-loaders_ts_5a40237e._.js +0 -12
- package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_webpack-loaders_ts_5a40237e._.js.map +0 -5
- package/mcp-server/.next/build/chunks/[turbopack]_runtime.js +0 -770
- package/mcp-server/.next/build/chunks/[turbopack]_runtime.js.map +0 -10
- package/mcp-server/.next/build/chunks/node_modules__pnpm_806d01c0._.js +0 -6759
- package/mcp-server/.next/build/chunks/node_modules__pnpm_806d01c0._.js.map +0 -47
- package/mcp-server/.next/cache/.previewinfo +0 -1
- package/mcp-server/.next/cache/.rscinfo +0 -1
- package/mcp-server/.next/cache/.tsbuildinfo +0 -1
- package/mcp-server/.next/cache/next-devtools-config.json +0 -1
- package/mcp-server/.next/cache/webpack/client-development/0.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/client-development/1.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/client-development/2.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/client-development/3.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/client-development/4.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/client-development/index.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/client-development/index.pack.gz.old +0 -0
- package/mcp-server/.next/cache/webpack/server-development/0.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/server-development/1.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/server-development/2.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/server-development/3.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/server-development/4.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/server-development/5.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/server-development/index.pack.gz +0 -0
- package/mcp-server/.next/cache/webpack/server-development/index.pack.gz.old +0 -0
- package/mcp-server/.next/diagnostics/build-diagnostics.json +0 -6
- package/mcp-server/.next/diagnostics/framework.json +0 -1
- package/mcp-server/.next/server/chunks/0916f_next_ab257ac1._.js +0 -17
- package/mcp-server/.next/server/chunks/0916f_next_ab257ac1._.js.map +0 -1
- package/mcp-server/.next/server/chunks/250ae__next-internal_server_app_api_screenshots_[filename]_route_actions_4f8d6e37.js +0 -3
- package/mcp-server/.next/server/chunks/250ae__next-internal_server_app_api_screenshots_[filename]_route_actions_4f8d6e37.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__1b561deb._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__1b561deb._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__38e8baae._.js +0 -22
- package/mcp-server/.next/server/chunks/[root-of-the-server]__38e8baae._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__47380b6c._.js +0 -7
- package/mcp-server/.next/server/chunks/[root-of-the-server]__47380b6c._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__674284d7._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__674284d7._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6a89b7dc._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__6a89b7dc._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__729bfe09._.js +0 -11
- package/mcp-server/.next/server/chunks/[root-of-the-server]__729bfe09._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__a433711a._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__a433711a._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__a58600d8._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__a58600d8._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__bc43993b._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__bc43993b._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__c464573d._.js +0 -3
- package/mcp-server/.next/server/chunks/[root-of-the-server]__c464573d._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__e6d29491._.js +0 -4
- package/mcp-server/.next/server/chunks/[root-of-the-server]__e6d29491._.js.map +0 -1
- package/mcp-server/.next/server/chunks/[turbopack]_runtime.js +0 -770
- package/mcp-server/.next/server/chunks/[turbopack]_runtime.js.map +0 -10
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_append_route_actions_bc66060f.js +0 -3
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_append_route_actions_bc66060f.js.map +0 -1
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_head_route_actions_1152480c.js +0 -3
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_head_route_actions_1152480c.js.map +0 -1
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_list_route_actions_b9e24400.js +0 -3
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_list_route_actions_b9e24400.js.map +0 -1
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_rotate_route_actions_76075d08.js +0 -3
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_rotate_route_actions_76075d08.js.map +0 -1
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_stream_route_actions_16e5c553.js +0 -3
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_stream_route_actions_16e5c553.js.map +0 -1
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_tail_route_actions_55440150.js +0 -3
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_logs_tail_route_actions_55440150.js.map +0 -1
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_tools_route_actions_007f3c7c.js +0 -3
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_api_tools_route_actions_007f3c7c.js.map +0 -1
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_mcp_route_actions_7f7b5be4.js +0 -3
- package/mcp-server/.next/server/chunks/mcp-server__next-internal_server_app_mcp_route_actions_7f7b5be4.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_4f58b96e._.js.map +0 -1
- package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_87fb6266._.js.map +0 -1
- package/mcp-server/.next/server/pages/404.html +0 -1
- package/mcp-server/.next/server/pages/500.html +0 -2
- package/mcp-server/.next/server/pages/_app/build-manifest.json +0 -9
- package/mcp-server/.next/server/pages/_app/client-build-manifest.json +0 -1
- package/mcp-server/.next/server/pages/_app/next-font-manifest.json +0 -6
- package/mcp-server/.next/server/pages/_app/pages-manifest.json +0 -1
- package/mcp-server/.next/server/pages/_app/react-loadable-manifest.json +0 -1
- package/mcp-server/.next/server/pages/_document/next-font-manifest.json +0 -6
- package/mcp-server/.next/server/pages/_document/pages-manifest.json +0 -1
- package/mcp-server/.next/server/pages/_document/react-loadable-manifest.json +0 -1
- package/mcp-server/.next/server/pages/_error/build-manifest.json +0 -9
- package/mcp-server/.next/server/pages/_error/client-build-manifest.json +0 -1
- package/mcp-server/.next/server/pages/_error/next-font-manifest.json +0 -6
- package/mcp-server/.next/server/pages/_error/pages-manifest.json +0 -1
- package/mcp-server/.next/server/pages/_error/react-loadable-manifest.json +0 -1
- package/mcp-server/.next/static/chunks/11f1b53bdf7a9af0.js +0 -1
- package/mcp-server/.next/static/chunks/3d4ea64f6384f2c6.js +0 -1
- package/mcp-server/.next/static/chunks/50335dad5c51aab8.js +0 -1
- package/mcp-server/.next/static/chunks/bdd0789390bc312f.css +0 -1
- package/mcp-server/.next/trace +0 -1
- package/mcp-server/.next/turbopack +0 -0
- package/mcp-server/.next/types/routes.d.ts +0 -82
- package/mcp-server/.next/types/validator.ts +0 -160
- /package/mcp-server/.next/static/{mZfouQw6OHfahPQayuVeY → 9VUbGT0H5KtrSKNmmAF__}/_buildManifest.js +0 -0
- /package/mcp-server/.next/static/{mZfouQw6OHfahPQayuVeY → 9VUbGT0H5KtrSKNmmAF__}/_clientMiddlewareManifest.json +0 -0
- /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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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,
|