@chinchillaenterprises/mcp-dev-logger 2.1.0 โ 2.3.0
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 +206 -4
- package/dist/index.js +708 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
|
-
# MCP Dev Logger v2.
|
|
1
|
+
# MCP Dev Logger v2.3.0
|
|
2
2
|
|
|
3
|
-
A Model Context Protocol (MCP) server for capturing and streaming development server output with enhanced organization and automatic cleanup. Perfect for monitoring `npm run dev`, `yarn dev`, `pnpm dev`, or any other development server commands across all frameworks (Next.js, Vite, Create React App, etc.).
|
|
3
|
+
A Model Context Protocol (MCP) server for capturing and streaming development server output with browser console logging, enhanced organization, and automatic cleanup. Perfect for monitoring `npm run dev`, `yarn dev`, `pnpm dev`, or any other development server commands across all frameworks (Next.js, Vite, Create React App, etc.).
|
|
4
4
|
|
|
5
|
-
## ๐ New in v2.
|
|
5
|
+
## ๐ New in v2.3.0
|
|
6
|
+
|
|
7
|
+
- **One-Click Student Workflow**: New `dev_start_frontend_with_browser` tool that starts server AND launches browser automatically
|
|
8
|
+
- **Smart Port Detection**: Automatically detects which port your dev server is using
|
|
9
|
+
- **Server Ready Detection**: Waits for server to be fully ready before launching browser
|
|
10
|
+
- **Simplified Teaching**: Reduces student setup from 3 commands to just 1
|
|
11
|
+
|
|
12
|
+
## Previous Features (v2.2.0)
|
|
13
|
+
|
|
14
|
+
- **Browser Console Capture**: Capture browser console.log, console.error, and other console outputs alongside server logs
|
|
15
|
+
- **Unified Log Stream**: See both server-side and client-side logs in one place
|
|
16
|
+
- **Student-Friendly Browser**: TEST BROWSER with visual indicators for teaching
|
|
17
|
+
|
|
18
|
+
## Previous Features (v2.1.0)
|
|
6
19
|
|
|
7
20
|
- **Organized Log Structure**: Logs are now organized by process type (frontend/backend/amplify/custom)
|
|
8
21
|
- **Automatic Cleanup**: Keeps only the last 3 days of logs to prevent disk space issues
|
|
@@ -11,6 +24,7 @@ A Model Context Protocol (MCP) server for capturing and streaming development se
|
|
|
11
24
|
## Features
|
|
12
25
|
|
|
13
26
|
- **Universal Dev Server Logging**: Works with any development server command
|
|
27
|
+
- **Browser Console Capture**: Capture console.log, console.error, console.warn from the browser
|
|
14
28
|
- **Multi-Process Support**: Run multiple dev servers simultaneously (frontend + backend)
|
|
15
29
|
- **Real-time Log Streaming**: Capture build errors, TypeScript errors, hot reload events
|
|
16
30
|
- **Organized Log Storage**: Structured as `logs/YYYY-MM-DD/processType/logfile.log`
|
|
@@ -21,6 +35,7 @@ A Model Context Protocol (MCP) server for capturing and streaming development se
|
|
|
21
35
|
- **Auto-Generated Process IDs**: Intelligent process ID generation based on command and output file
|
|
22
36
|
- **Process State Persistence**: Maintains process state across server restarts (where possible)
|
|
23
37
|
- **Signal Handling**: Proper cleanup with SIGTERM for graceful shutdowns
|
|
38
|
+
- **Unified Server + Browser Logs**: See both frontend and backend logs in one stream
|
|
24
39
|
|
|
25
40
|
## Installation
|
|
26
41
|
|
|
@@ -129,6 +144,86 @@ Clear the log file.
|
|
|
129
144
|
- `processId` (optional): Process ID to clear logs for (smart fallback for single process)
|
|
130
145
|
- `backup` (optional): Whether to backup logs before clearing (default: false)
|
|
131
146
|
|
|
147
|
+
### 8. dev_launch_test_browser
|
|
148
|
+
Launch a TEST BROWSER for students to interact with. All console logs from this browser are captured automatically. Students should use THIS browser (not their regular browser) to test their app.
|
|
149
|
+
|
|
150
|
+
**Parameters:**
|
|
151
|
+
- `processId` (optional): Process ID to attach browser console to
|
|
152
|
+
- `browserUrl` (optional): URL to open in test browser (default: http://localhost:3000)
|
|
153
|
+
- `teachingMode` (optional): Enable teaching mode with DevTools open and slower actions (default: true)
|
|
154
|
+
- `viewport` (optional): Browser window size (default: { width: 1280, height: 800 })
|
|
155
|
+
- `highlightErrors` (optional): Add visual indicator when console errors occur (default: true)
|
|
156
|
+
|
|
157
|
+
**Key Features:**
|
|
158
|
+
- ๐ช Always visible browser window (not headless)
|
|
159
|
+
- ๐ DevTools automatically open in teaching mode
|
|
160
|
+
- ๐ Slower actions for easier teaching/learning
|
|
161
|
+
- โก Red flash on console errors
|
|
162
|
+
- ๐ Green banner showing "TEST BROWSER" status
|
|
163
|
+
- ๐ฏ All console logs captured to the same log file as server logs
|
|
164
|
+
|
|
165
|
+
**Example:**
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"processId": "npm-frontend",
|
|
169
|
+
"browserUrl": "http://localhost:3000",
|
|
170
|
+
"teachingMode": true,
|
|
171
|
+
"highlightErrors": true
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### 9. dev_stop_browser_console
|
|
176
|
+
Stop browser console capture for a specific process.
|
|
177
|
+
|
|
178
|
+
**Parameters:**
|
|
179
|
+
- `processId` (optional): Process ID to stop browser console capture for
|
|
180
|
+
|
|
181
|
+
### 10. dev_start_frontend_with_browser ๐ NEW in v2.3.0!
|
|
182
|
+
**ONE-CLICK STUDENT WORKFLOW**: Start frontend server AND automatically launch test browser when ready. Perfect for teaching environments - reduces setup from 3 commands to 1!
|
|
183
|
+
|
|
184
|
+
**Parameters:**
|
|
185
|
+
- `command` (optional): Dev command to run (default: "npm run dev")
|
|
186
|
+
- `port` (optional): Port to wait for (default: auto-detect from output)
|
|
187
|
+
- `waitTimeout` (optional): Max time to wait for server in ms (default: 30000)
|
|
188
|
+
- `browserDelay` (optional): Delay after server ready in ms (default: 1000)
|
|
189
|
+
- `teachingMode` (optional): Enable teaching features (default: true)
|
|
190
|
+
- `processId` (optional): Custom process ID (default: "frontend-with-browser")
|
|
191
|
+
- `env` (optional): Environment variables
|
|
192
|
+
- `cwd` (optional): Working directory
|
|
193
|
+
|
|
194
|
+
**Key Features:**
|
|
195
|
+
- ๐ฏ Automatically detects when server is ready
|
|
196
|
+
- ๐ช Launches test browser with DevTools open
|
|
197
|
+
- ๐ Captures both server AND browser console logs
|
|
198
|
+
- โก Red flash on browser errors
|
|
199
|
+
- ๐งช Green "TEST BROWSER" banner
|
|
200
|
+
- โฑ๏ธ Single command instead of multiple steps
|
|
201
|
+
|
|
202
|
+
**Example:**
|
|
203
|
+
```json
|
|
204
|
+
{
|
|
205
|
+
"command": "npm run dev",
|
|
206
|
+
"teachingMode": true,
|
|
207
|
+
"processId": "student-project"
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Success Output:**
|
|
212
|
+
```
|
|
213
|
+
โ
Starting development server...
|
|
214
|
+
โ
Server ready on http://localhost:3000
|
|
215
|
+
โ
Launching test browser...
|
|
216
|
+
|
|
217
|
+
๐ฏ TEST BROWSER LAUNCHED!
|
|
218
|
+
|
|
219
|
+
๐ Use the browser window that just opened (with green banner)
|
|
220
|
+
๐ All console logs are being saved
|
|
221
|
+
๐ DevTools is open for debugging
|
|
222
|
+
โ ๏ธ Errors will flash red on screen
|
|
223
|
+
|
|
224
|
+
Happy debugging! ๐
|
|
225
|
+
```
|
|
226
|
+
|
|
132
227
|
## Usage Examples
|
|
133
228
|
|
|
134
229
|
### Multi-Process Development (v2.0.0)
|
|
@@ -219,7 +314,7 @@ logs/
|
|
|
219
314
|
|
|
220
315
|
## Log Format
|
|
221
316
|
|
|
222
|
-
Logs are written with timestamps, process IDs, and error markers:
|
|
317
|
+
Logs are written with timestamps, process IDs, and error markers. Browser console logs are prefixed with [BROWSER]:
|
|
223
318
|
|
|
224
319
|
```
|
|
225
320
|
[2024-01-15T10:30:45.123Z] Starting: npm run dev (Process ID: npm-frontend)
|
|
@@ -228,6 +323,11 @@ Logs are written with timestamps, process IDs, and error markers:
|
|
|
228
323
|
[2024-01-15T10:30:47.123Z] [npm-frontend] โฒ Next.js 14.0.0
|
|
229
324
|
[2024-01-15T10:30:47.124Z] [npm-frontend] - Local: http://localhost:3000
|
|
230
325
|
[2024-01-15T10:30:48.789Z] [npm-frontend] [ERROR] Error: Cannot find module './components/Header'
|
|
326
|
+
[2024-01-15T10:30:49.123Z] [npm-frontend] [BROWSER] Console capture started for http://localhost:3000
|
|
327
|
+
[2024-01-15T10:30:49.456Z] [npm-frontend] [BROWSER] [LOG] React DevTools detected
|
|
328
|
+
[2024-01-15T10:30:49.789Z] [npm-frontend] [BROWSER] [WARN] React: Each child should have a unique key prop
|
|
329
|
+
[2024-01-15T10:30:50.123Z] [npm-frontend] [BROWSER] [ERROR] Failed to fetch /api/user: 404 Not Found
|
|
330
|
+
[2024-01-15T10:30:50.456Z] [npm-frontend] [BROWSER] [LOG] { user: null, loading: false }
|
|
231
331
|
|
|
232
332
|
[2024-01-15T10:30:50.123Z] Starting: npx ampx sandbox --stream-function-logs (Process ID: npx-backend)
|
|
233
333
|
[2024-01-15T10:30:51.456Z] [npx-backend] [INFO] Amplify sandbox starting...
|
|
@@ -288,6 +388,108 @@ dev_start_log_streaming {
|
|
|
288
388
|
dev_tail_logs { "processId": "amplify-backend", "filter": "ERROR|WARN", "lines": 100 }
|
|
289
389
|
```
|
|
290
390
|
|
|
391
|
+
### 6. Student Testing Workflow (v2.2.0)
|
|
392
|
+
```typescript
|
|
393
|
+
// Step 1: Start the student's dev server
|
|
394
|
+
dev_start_log_streaming({
|
|
395
|
+
"command": "npm run dev",
|
|
396
|
+
"processId": "student-app"
|
|
397
|
+
})
|
|
398
|
+
|
|
399
|
+
// Step 2: Launch the TEST BROWSER for the student
|
|
400
|
+
dev_launch_test_browser({
|
|
401
|
+
"processId": "student-app",
|
|
402
|
+
"browserUrl": "http://localhost:3000",
|
|
403
|
+
"teachingMode": true // DevTools open, slower actions
|
|
404
|
+
})
|
|
405
|
+
|
|
406
|
+
// Step 3: Tell student: "Use the TEST BROWSER window that just opened!"
|
|
407
|
+
// They click buttons, fill forms, trigger errors - ALL console logs are captured
|
|
408
|
+
|
|
409
|
+
// Step 4: When student says "I clicked submit and nothing happened"
|
|
410
|
+
dev_tail_logs({
|
|
411
|
+
"processId": "student-app",
|
|
412
|
+
"filter": "\\[BROWSER\\].*\\[ERROR\\]",
|
|
413
|
+
"lines": 20
|
|
414
|
+
})
|
|
415
|
+
// Shows: [BROWSER] [ERROR] Cannot read property 'name' of undefined
|
|
416
|
+
|
|
417
|
+
// Step 5: Show all browser activity
|
|
418
|
+
dev_tail_logs({
|
|
419
|
+
"processId": "student-app",
|
|
420
|
+
"filter": "\\[BROWSER\\]",
|
|
421
|
+
"lines": 50
|
|
422
|
+
})
|
|
423
|
+
|
|
424
|
+
// Step 6: When done testing
|
|
425
|
+
dev_stop_browser_console({ "processId": "student-app" })
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
**What Students See:**
|
|
429
|
+
- A browser window opens with "๐งช TEST BROWSER" banner
|
|
430
|
+
- DevTools is already open to the Console tab
|
|
431
|
+
- When errors occur, the browser flashes red
|
|
432
|
+
- All their console.log() statements are captured
|
|
433
|
+
- They can debug using the actual browser they're testing in
|
|
434
|
+
|
|
435
|
+
### Tips for Instructors/TAs:
|
|
436
|
+
1. **Always emphasize**: Students must use the TEST BROWSER, not their regular browser
|
|
437
|
+
2. **Common mistake**: Students open localhost:3000 in their regular Chrome - no logs captured!
|
|
438
|
+
3. **Quick check**: Look for [BROWSER] prefix in logs to confirm they're using test browser
|
|
439
|
+
4. **Teaching moment**: Show how server errors appear without [BROWSER] prefix
|
|
440
|
+
5. **Debugging together**: The red flash makes it easy to spot when errors occur
|
|
441
|
+
|
|
442
|
+
### 7. Simplified One-Click Workflow (v2.3.0) ๐ฏ
|
|
443
|
+
The new `dev_start_frontend_with_browser` combines steps 1 and 2 above into a single command:
|
|
444
|
+
|
|
445
|
+
```typescript
|
|
446
|
+
// BEFORE (v2.2.0): Two separate commands
|
|
447
|
+
dev_start_log_streaming({ "command": "npm run dev", "processId": "student-app" })
|
|
448
|
+
// Wait for server to start...
|
|
449
|
+
dev_launch_test_browser({ "processId": "student-app" })
|
|
450
|
+
|
|
451
|
+
// NOW (v2.3.0): Single command does everything!
|
|
452
|
+
dev_start_frontend_with_browser({
|
|
453
|
+
"command": "npm run dev",
|
|
454
|
+
"processId": "student-project",
|
|
455
|
+
"teachingMode": true
|
|
456
|
+
})
|
|
457
|
+
// Server starts, waits for ready, then browser launches automatically!
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
**Benefits for Students:**
|
|
461
|
+
- ๐ One command instead of two
|
|
462
|
+
- โฑ๏ธ No need to wait and guess when server is ready
|
|
463
|
+
- ๐ฏ Browser launches at the perfect time
|
|
464
|
+
- ๐ All logs in one place from the start
|
|
465
|
+
- ๐ง Less chance for mistakes
|
|
466
|
+
|
|
467
|
+
**Common Student Scenarios:**
|
|
468
|
+
|
|
469
|
+
```typescript
|
|
470
|
+
// Scenario 1: React app on default port
|
|
471
|
+
dev_start_frontend_with_browser()
|
|
472
|
+
// That's it! Uses all smart defaults
|
|
473
|
+
|
|
474
|
+
// Scenario 2: Vite app with custom command
|
|
475
|
+
dev_start_frontend_with_browser({
|
|
476
|
+
"command": "npm run dev -- --host",
|
|
477
|
+
"processId": "vite-project"
|
|
478
|
+
})
|
|
479
|
+
|
|
480
|
+
// Scenario 3: Next.js on different port
|
|
481
|
+
dev_start_frontend_with_browser({
|
|
482
|
+
"command": "npm run dev",
|
|
483
|
+
"port": 3001, // If auto-detect fails
|
|
484
|
+
"env": { "PORT": "3001" }
|
|
485
|
+
})
|
|
486
|
+
|
|
487
|
+
// Scenario 4: Quick demo mode (no DevTools)
|
|
488
|
+
dev_start_frontend_with_browser({
|
|
489
|
+
"teachingMode": false // Faster, no DevTools
|
|
490
|
+
})
|
|
491
|
+
```
|
|
492
|
+
|
|
291
493
|
## Troubleshooting
|
|
292
494
|
|
|
293
495
|
### Dev Server Not Starting
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { writeFileSync, readFileSync, existsSync, appendFileSync, copyFileSync,
|
|
|
8
8
|
import { join, resolve } from "path";
|
|
9
9
|
import { tmpdir } from "os";
|
|
10
10
|
import { promisify } from "util";
|
|
11
|
+
import { chromium } from "playwright";
|
|
11
12
|
const execAsync = promisify(exec);
|
|
12
13
|
// Schema definitions
|
|
13
14
|
const StartLogStreamingArgsSchema = z.object({
|
|
@@ -47,6 +48,16 @@ const CheckRunningProcessesArgsSchema = z.object({
|
|
|
47
48
|
const DiscoverLogsArgsSchema = z.object({
|
|
48
49
|
sessionDate: z.string().optional().describe("Specific session date (YYYY-MM-DD) to discover logs for (defaults to most recent)")
|
|
49
50
|
});
|
|
51
|
+
const StartFrontendWithBrowserArgsSchema = z.object({
|
|
52
|
+
command: z.string().optional().describe("Dev command to run (default: npm run dev)"),
|
|
53
|
+
port: z.number().optional().describe("Port to wait for (default: auto-detect from output)"),
|
|
54
|
+
waitTimeout: z.number().optional().describe("Max time to wait for server in ms (default: 30000)"),
|
|
55
|
+
browserDelay: z.number().optional().describe("Delay after server ready in ms (default: 1000)"),
|
|
56
|
+
teachingMode: z.boolean().optional().describe("Enable teaching features (default: true)"),
|
|
57
|
+
processId: z.string().optional().describe("Custom process ID (default: frontend-with-browser)"),
|
|
58
|
+
env: z.record(z.string()).optional().describe("Environment variables"),
|
|
59
|
+
cwd: z.string().optional().describe("Working directory")
|
|
60
|
+
});
|
|
50
61
|
class DevLoggerServer {
|
|
51
62
|
server;
|
|
52
63
|
activeServers;
|
|
@@ -438,9 +449,13 @@ class DevLoggerServer {
|
|
|
438
449
|
console.error('Log cleanup error:', error);
|
|
439
450
|
}
|
|
440
451
|
}
|
|
441
|
-
killAllProcesses() {
|
|
452
|
+
async killAllProcesses() {
|
|
442
453
|
for (const [id, info] of this.activeServers) {
|
|
443
454
|
try {
|
|
455
|
+
// Close browser if running
|
|
456
|
+
if (info.browser) {
|
|
457
|
+
await info.browser.close();
|
|
458
|
+
}
|
|
444
459
|
if (info.process) {
|
|
445
460
|
// Remove all event listeners to prevent memory leaks
|
|
446
461
|
info.process.stdout?.removeAllListeners('data');
|
|
@@ -633,6 +648,93 @@ class DevLoggerServer {
|
|
|
633
648
|
}
|
|
634
649
|
}
|
|
635
650
|
}
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
name: "dev_launch_test_browser",
|
|
654
|
+
description: "Launch a TEST BROWSER for students to interact with. All console logs from this browser are captured automatically. Students should use THIS browser (not their regular browser) to test their app.",
|
|
655
|
+
inputSchema: {
|
|
656
|
+
type: "object",
|
|
657
|
+
properties: {
|
|
658
|
+
processId: {
|
|
659
|
+
type: "string",
|
|
660
|
+
description: "Process ID to attach browser console to"
|
|
661
|
+
},
|
|
662
|
+
browserUrl: {
|
|
663
|
+
type: "string",
|
|
664
|
+
description: "URL to open in test browser (default: http://localhost:3000)"
|
|
665
|
+
},
|
|
666
|
+
teachingMode: {
|
|
667
|
+
type: "boolean",
|
|
668
|
+
description: "Enable teaching mode with DevTools open and slower actions (default: true)"
|
|
669
|
+
},
|
|
670
|
+
viewport: {
|
|
671
|
+
type: "object",
|
|
672
|
+
properties: {
|
|
673
|
+
width: { type: "number", default: 1280 },
|
|
674
|
+
height: { type: "number", default: 800 }
|
|
675
|
+
},
|
|
676
|
+
description: "Browser window size"
|
|
677
|
+
},
|
|
678
|
+
highlightErrors: {
|
|
679
|
+
type: "boolean",
|
|
680
|
+
description: "Add visual indicator when console errors occur (default: true)"
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
name: "dev_stop_browser_console",
|
|
687
|
+
description: "Stop browser console capture for a specific process",
|
|
688
|
+
inputSchema: {
|
|
689
|
+
type: "object",
|
|
690
|
+
properties: {
|
|
691
|
+
processId: {
|
|
692
|
+
type: "string",
|
|
693
|
+
description: "Process ID to stop browser console capture for"
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
name: "dev_start_frontend_with_browser",
|
|
700
|
+
description: "๐ ONE-CLICK STUDENT WORKFLOW: Start frontend server AND automatically launch test browser when ready. Perfect for teaching environments - reduces setup from 3 commands to 1. Browser launches with DevTools open, error highlighting, and all console logs captured.",
|
|
701
|
+
inputSchema: {
|
|
702
|
+
type: "object",
|
|
703
|
+
properties: {
|
|
704
|
+
command: {
|
|
705
|
+
type: "string",
|
|
706
|
+
description: "Dev command to run (default: npm run dev)"
|
|
707
|
+
},
|
|
708
|
+
port: {
|
|
709
|
+
type: "number",
|
|
710
|
+
description: "Port to wait for (default: auto-detect from output)"
|
|
711
|
+
},
|
|
712
|
+
waitTimeout: {
|
|
713
|
+
type: "number",
|
|
714
|
+
description: "Max time to wait for server in ms (default: 30000)"
|
|
715
|
+
},
|
|
716
|
+
browserDelay: {
|
|
717
|
+
type: "number",
|
|
718
|
+
description: "Delay after server ready in ms (default: 1000)"
|
|
719
|
+
},
|
|
720
|
+
teachingMode: {
|
|
721
|
+
type: "boolean",
|
|
722
|
+
description: "Enable teaching features (default: true)"
|
|
723
|
+
},
|
|
724
|
+
processId: {
|
|
725
|
+
type: "string",
|
|
726
|
+
description: "Custom process ID (default: frontend-with-browser)"
|
|
727
|
+
},
|
|
728
|
+
env: {
|
|
729
|
+
type: "object",
|
|
730
|
+
description: "Environment variables"
|
|
731
|
+
},
|
|
732
|
+
cwd: {
|
|
733
|
+
type: "string",
|
|
734
|
+
description: "Working directory"
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
}
|
|
636
738
|
}
|
|
637
739
|
];
|
|
638
740
|
return { tools };
|
|
@@ -843,6 +945,10 @@ class DevLoggerServer {
|
|
|
843
945
|
};
|
|
844
946
|
}
|
|
845
947
|
try {
|
|
948
|
+
// Close browser if running
|
|
949
|
+
if (serverInfo.browser) {
|
|
950
|
+
await serverInfo.browser.close();
|
|
951
|
+
}
|
|
846
952
|
// Remove all event listeners to prevent memory leaks
|
|
847
953
|
if (serverInfo.process) {
|
|
848
954
|
serverInfo.process.stdout?.removeAllListeners('data');
|
|
@@ -890,6 +996,10 @@ class DevLoggerServer {
|
|
|
890
996
|
const stoppedProcesses = [];
|
|
891
997
|
for (const [processId, serverInfo] of this.activeServers) {
|
|
892
998
|
try {
|
|
999
|
+
// Close browser if running
|
|
1000
|
+
if (serverInfo.browser) {
|
|
1001
|
+
await serverInfo.browser.close();
|
|
1002
|
+
}
|
|
893
1003
|
// Remove all event listeners to prevent memory leaks
|
|
894
1004
|
if (serverInfo.process) {
|
|
895
1005
|
serverInfo.process.stdout?.removeAllListeners('data');
|
|
@@ -1233,6 +1343,603 @@ class DevLoggerServer {
|
|
|
1233
1343
|
throw new Error(`Failed to discover logs: ${error instanceof Error ? error.message : String(error)}`);
|
|
1234
1344
|
}
|
|
1235
1345
|
}
|
|
1346
|
+
case "dev_launch_test_browser": {
|
|
1347
|
+
const validatedArgs = z.object({
|
|
1348
|
+
processId: z.string().optional(),
|
|
1349
|
+
browserUrl: z.string().optional(),
|
|
1350
|
+
teachingMode: z.boolean().optional(),
|
|
1351
|
+
viewport: z.object({
|
|
1352
|
+
width: z.number().default(1280),
|
|
1353
|
+
height: z.number().default(800)
|
|
1354
|
+
}).optional(),
|
|
1355
|
+
highlightErrors: z.boolean().optional()
|
|
1356
|
+
}).parse(args);
|
|
1357
|
+
try {
|
|
1358
|
+
// Find the process to attach to
|
|
1359
|
+
const processId = this.findProcessOrDefault(validatedArgs.processId);
|
|
1360
|
+
if (!processId) {
|
|
1361
|
+
return {
|
|
1362
|
+
content: [
|
|
1363
|
+
{
|
|
1364
|
+
type: "text",
|
|
1365
|
+
text: JSON.stringify({
|
|
1366
|
+
status: "error",
|
|
1367
|
+
message: "No dev server process found. Start a dev server first with dev_start_log_streaming"
|
|
1368
|
+
}, null, 2)
|
|
1369
|
+
}
|
|
1370
|
+
]
|
|
1371
|
+
};
|
|
1372
|
+
}
|
|
1373
|
+
const serverInfo = this.activeServers.get(processId);
|
|
1374
|
+
// Check if browser already running for this process
|
|
1375
|
+
if (serverInfo.browser) {
|
|
1376
|
+
return {
|
|
1377
|
+
content: [
|
|
1378
|
+
{
|
|
1379
|
+
type: "text",
|
|
1380
|
+
text: JSON.stringify({
|
|
1381
|
+
status: "already_running",
|
|
1382
|
+
message: `Browser console capture already active for process '${processId}'`
|
|
1383
|
+
}, null, 2)
|
|
1384
|
+
}
|
|
1385
|
+
]
|
|
1386
|
+
};
|
|
1387
|
+
}
|
|
1388
|
+
// Launch browser with student-friendly defaults
|
|
1389
|
+
const teachingMode = validatedArgs.teachingMode !== false;
|
|
1390
|
+
const viewport = validatedArgs.viewport || { width: 1280, height: 800 };
|
|
1391
|
+
const browser = await chromium.launch({
|
|
1392
|
+
headless: false, // Always visible for students
|
|
1393
|
+
slowMo: teachingMode ? 50 : 0, // Slow down actions in teaching mode
|
|
1394
|
+
devtools: teachingMode, // Open DevTools in teaching mode
|
|
1395
|
+
args: [
|
|
1396
|
+
`--window-size=${viewport.width},${viewport.height}`,
|
|
1397
|
+
'--window-position=100,100',
|
|
1398
|
+
'--disable-features=RendererCodeIntegrity' // Prevent some security warnings
|
|
1399
|
+
]
|
|
1400
|
+
});
|
|
1401
|
+
const context = await browser.newContext({
|
|
1402
|
+
viewport: viewport,
|
|
1403
|
+
ignoreHTTPSErrors: true // Common in dev environments
|
|
1404
|
+
});
|
|
1405
|
+
const page = await context.newPage();
|
|
1406
|
+
// Add page title to identify this as the test browser
|
|
1407
|
+
await page.evaluate(() => {
|
|
1408
|
+
// @ts-ignore - browser context
|
|
1409
|
+
document.title = '๐งช TEST BROWSER - Console Logs Captured';
|
|
1410
|
+
});
|
|
1411
|
+
// Set up console event handler with student-friendly features
|
|
1412
|
+
const highlightErrors = validatedArgs.highlightErrors !== false;
|
|
1413
|
+
page.on('console', (msg) => {
|
|
1414
|
+
const msgType = msg.type();
|
|
1415
|
+
const timestamp = new Date().toISOString();
|
|
1416
|
+
const args = msg.args();
|
|
1417
|
+
// Format console message
|
|
1418
|
+
let messageText = msg.text();
|
|
1419
|
+
// Visual feedback for errors in teaching mode
|
|
1420
|
+
if (highlightErrors && msgType === 'error') {
|
|
1421
|
+
page.evaluate(() => {
|
|
1422
|
+
// @ts-ignore - browser context
|
|
1423
|
+
const flash = document.createElement('div');
|
|
1424
|
+
flash.style.cssText = `
|
|
1425
|
+
position: fixed;
|
|
1426
|
+
top: 0;
|
|
1427
|
+
left: 0;
|
|
1428
|
+
right: 0;
|
|
1429
|
+
bottom: 0;
|
|
1430
|
+
border: 5px solid red;
|
|
1431
|
+
pointer-events: none;
|
|
1432
|
+
z-index: 999999;
|
|
1433
|
+
animation: flash 0.5s ease-in-out;
|
|
1434
|
+
`;
|
|
1435
|
+
flash.innerHTML = `
|
|
1436
|
+
<div style="
|
|
1437
|
+
background: red;
|
|
1438
|
+
color: white;
|
|
1439
|
+
padding: 10px;
|
|
1440
|
+
position: absolute;
|
|
1441
|
+
top: 0;
|
|
1442
|
+
left: 0;
|
|
1443
|
+
right: 0;
|
|
1444
|
+
text-align: center;
|
|
1445
|
+
font-family: monospace;
|
|
1446
|
+
">โ ๏ธ Console Error Detected - Check Logs!</div>
|
|
1447
|
+
`;
|
|
1448
|
+
// @ts-ignore - browser context
|
|
1449
|
+
document.body.appendChild(flash);
|
|
1450
|
+
setTimeout(() => flash.remove(), 2000);
|
|
1451
|
+
}).catch(() => { });
|
|
1452
|
+
}
|
|
1453
|
+
// Try to get better formatting for objects
|
|
1454
|
+
if (args.length > 0) {
|
|
1455
|
+
Promise.all(args.map(arg => arg.jsonValue().catch(() => arg.toString())))
|
|
1456
|
+
.then(values => {
|
|
1457
|
+
const formattedMsg = values.map(v => typeof v === 'object' ? JSON.stringify(v, null, 2) : String(v)).join(' ');
|
|
1458
|
+
const logEntry = `[${timestamp}] [${processId}] [BROWSER] [${msgType.toUpperCase()}] ${formattedMsg}\n`;
|
|
1459
|
+
appendFileSync(serverInfo.outputFile, logEntry);
|
|
1460
|
+
// Also log to terminal for immediate feedback
|
|
1461
|
+
if (msgType === 'error' || msgType === 'warning') {
|
|
1462
|
+
console.error(`[STUDENT BROWSER] ${msgType === 'warning' ? 'WARN' : msgType.toUpperCase()}: ${formattedMsg}`);
|
|
1463
|
+
}
|
|
1464
|
+
})
|
|
1465
|
+
.catch(() => {
|
|
1466
|
+
// Fallback to simple text
|
|
1467
|
+
const logEntry = `[${timestamp}] [${processId}] [BROWSER] [${msgType.toUpperCase()}] ${messageText}\n`;
|
|
1468
|
+
appendFileSync(serverInfo.outputFile, logEntry);
|
|
1469
|
+
});
|
|
1470
|
+
}
|
|
1471
|
+
else {
|
|
1472
|
+
const logEntry = `[${timestamp}] [${processId}] [BROWSER] [${msgType.toUpperCase()}] ${messageText}\n`;
|
|
1473
|
+
appendFileSync(serverInfo.outputFile, logEntry);
|
|
1474
|
+
}
|
|
1475
|
+
});
|
|
1476
|
+
// Handle page errors
|
|
1477
|
+
page.on('pageerror', (error) => {
|
|
1478
|
+
const timestamp = new Date().toISOString();
|
|
1479
|
+
const logEntry = `[${timestamp}] [${processId}] [BROWSER] [PAGE ERROR] ${error.message}\n${error.stack}\n`;
|
|
1480
|
+
appendFileSync(serverInfo.outputFile, logEntry);
|
|
1481
|
+
});
|
|
1482
|
+
// Navigate to URL
|
|
1483
|
+
const browserUrl = validatedArgs.browserUrl || "http://localhost:3000";
|
|
1484
|
+
try {
|
|
1485
|
+
await page.goto(browserUrl, { waitUntil: 'domcontentloaded' });
|
|
1486
|
+
// Add student instruction banner
|
|
1487
|
+
if (teachingMode) {
|
|
1488
|
+
await page.evaluate(() => {
|
|
1489
|
+
// @ts-ignore - browser context
|
|
1490
|
+
const banner = document.createElement('div');
|
|
1491
|
+
banner.id = 'test-browser-banner';
|
|
1492
|
+
banner.style.cssText = `
|
|
1493
|
+
position: fixed;
|
|
1494
|
+
top: 0;
|
|
1495
|
+
left: 0;
|
|
1496
|
+
right: 0;
|
|
1497
|
+
background: #4CAF50;
|
|
1498
|
+
color: white;
|
|
1499
|
+
padding: 10px;
|
|
1500
|
+
text-align: center;
|
|
1501
|
+
z-index: 99999;
|
|
1502
|
+
font-family: monospace;
|
|
1503
|
+
font-size: 14px;
|
|
1504
|
+
box-shadow: 0 2px 5px rgba(0,0,0,0.2);
|
|
1505
|
+
`;
|
|
1506
|
+
banner.innerHTML = `
|
|
1507
|
+
๐งช TEST BROWSER - All console logs are being captured!
|
|
1508
|
+
<button onclick="this.parentElement.style.display='none'" style="
|
|
1509
|
+
margin-left: 20px;
|
|
1510
|
+
background: transparent;
|
|
1511
|
+
border: 1px solid white;
|
|
1512
|
+
color: white;
|
|
1513
|
+
padding: 2px 10px;
|
|
1514
|
+
cursor: pointer;
|
|
1515
|
+
">Hide</button>
|
|
1516
|
+
`;
|
|
1517
|
+
// @ts-ignore - browser context
|
|
1518
|
+
document.body.prepend(banner);
|
|
1519
|
+
}).catch(() => { });
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
catch (error) {
|
|
1523
|
+
const timestamp = new Date().toISOString();
|
|
1524
|
+
const logEntry = `[${timestamp}] [${processId}] [BROWSER] [NAVIGATION ERROR] Failed to navigate to ${browserUrl}: ${error}\n`;
|
|
1525
|
+
appendFileSync(serverInfo.outputFile, logEntry);
|
|
1526
|
+
}
|
|
1527
|
+
// Update server info
|
|
1528
|
+
serverInfo.browser = browser;
|
|
1529
|
+
serverInfo.page = page;
|
|
1530
|
+
serverInfo.browserUrl = browserUrl;
|
|
1531
|
+
serverInfo.consoleCapture = true;
|
|
1532
|
+
// Log browser start
|
|
1533
|
+
const timestamp = new Date().toISOString();
|
|
1534
|
+
const logEntry = `[${timestamp}] [${processId}] [BROWSER] Console capture started for ${browserUrl}\n`;
|
|
1535
|
+
appendFileSync(serverInfo.outputFile, logEntry);
|
|
1536
|
+
return {
|
|
1537
|
+
content: [
|
|
1538
|
+
{
|
|
1539
|
+
type: "text",
|
|
1540
|
+
text: JSON.stringify({
|
|
1541
|
+
status: "started",
|
|
1542
|
+
processId: processId,
|
|
1543
|
+
browserUrl: browserUrl,
|
|
1544
|
+
teachingMode: teachingMode,
|
|
1545
|
+
message: `๐งช TEST BROWSER LAUNCHED!\n\n` +
|
|
1546
|
+
`๐ IMPORTANT: Students should use THIS browser window (not their regular browser)\n` +
|
|
1547
|
+
`๐ All console logs are being captured to: ${serverInfo.outputFile}\n` +
|
|
1548
|
+
`๐ DevTools is ${teachingMode ? 'OPEN' : 'CLOSED'} for debugging\n` +
|
|
1549
|
+
`โ ๏ธ Errors will ${highlightErrors ? 'flash red' : 'not flash'} on screen\n\n` +
|
|
1550
|
+
`Students can now interact with the app at: ${browserUrl}`
|
|
1551
|
+
}, null, 2)
|
|
1552
|
+
}
|
|
1553
|
+
]
|
|
1554
|
+
};
|
|
1555
|
+
}
|
|
1556
|
+
catch (error) {
|
|
1557
|
+
throw new Error(`Failed to start browser console capture: ${error instanceof Error ? error.message : String(error)}`);
|
|
1558
|
+
}
|
|
1559
|
+
}
|
|
1560
|
+
case "dev_stop_browser_console": {
|
|
1561
|
+
const validatedArgs = z.object({
|
|
1562
|
+
processId: z.string().optional()
|
|
1563
|
+
}).parse(args);
|
|
1564
|
+
try {
|
|
1565
|
+
const processId = this.findProcessOrDefault(validatedArgs.processId);
|
|
1566
|
+
if (!processId) {
|
|
1567
|
+
return {
|
|
1568
|
+
content: [
|
|
1569
|
+
{
|
|
1570
|
+
type: "text",
|
|
1571
|
+
text: JSON.stringify({
|
|
1572
|
+
status: "error",
|
|
1573
|
+
message: "No process found"
|
|
1574
|
+
}, null, 2)
|
|
1575
|
+
}
|
|
1576
|
+
]
|
|
1577
|
+
};
|
|
1578
|
+
}
|
|
1579
|
+
const serverInfo = this.activeServers.get(processId);
|
|
1580
|
+
if (!serverInfo || !serverInfo.browser) {
|
|
1581
|
+
return {
|
|
1582
|
+
content: [
|
|
1583
|
+
{
|
|
1584
|
+
type: "text",
|
|
1585
|
+
text: JSON.stringify({
|
|
1586
|
+
status: "not_running",
|
|
1587
|
+
message: `No browser console capture running for process '${processId}'`
|
|
1588
|
+
}, null, 2)
|
|
1589
|
+
}
|
|
1590
|
+
]
|
|
1591
|
+
};
|
|
1592
|
+
}
|
|
1593
|
+
// Close browser
|
|
1594
|
+
await serverInfo.browser.close();
|
|
1595
|
+
// Clear browser info
|
|
1596
|
+
serverInfo.browser = undefined;
|
|
1597
|
+
serverInfo.page = undefined;
|
|
1598
|
+
serverInfo.browserUrl = undefined;
|
|
1599
|
+
serverInfo.consoleCapture = false;
|
|
1600
|
+
// Log browser stop
|
|
1601
|
+
const timestamp = new Date().toISOString();
|
|
1602
|
+
const logEntry = `[${timestamp}] [${processId}] [BROWSER] Console capture stopped\n`;
|
|
1603
|
+
appendFileSync(serverInfo.outputFile, logEntry);
|
|
1604
|
+
return {
|
|
1605
|
+
content: [
|
|
1606
|
+
{
|
|
1607
|
+
type: "text",
|
|
1608
|
+
text: JSON.stringify({
|
|
1609
|
+
status: "stopped",
|
|
1610
|
+
processId: processId,
|
|
1611
|
+
message: `Browser console capture stopped for process '${processId}'`
|
|
1612
|
+
}, null, 2)
|
|
1613
|
+
}
|
|
1614
|
+
]
|
|
1615
|
+
};
|
|
1616
|
+
}
|
|
1617
|
+
catch (error) {
|
|
1618
|
+
throw new Error(`Failed to stop browser console capture: ${error instanceof Error ? error.message : String(error)}`);
|
|
1619
|
+
}
|
|
1620
|
+
}
|
|
1621
|
+
case "dev_start_frontend_with_browser": {
|
|
1622
|
+
const validatedArgs = StartFrontendWithBrowserArgsSchema.parse(args);
|
|
1623
|
+
// Defaults
|
|
1624
|
+
const command = validatedArgs.command || "npm run dev";
|
|
1625
|
+
const processId = validatedArgs.processId || "frontend-with-browser";
|
|
1626
|
+
const cwd = resolve(validatedArgs.cwd || process.cwd());
|
|
1627
|
+
const waitTimeout = validatedArgs.waitTimeout || 30000;
|
|
1628
|
+
const browserDelay = validatedArgs.browserDelay || 1000;
|
|
1629
|
+
const teachingMode = validatedArgs.teachingMode !== false; // default true
|
|
1630
|
+
try {
|
|
1631
|
+
// Check if process already exists
|
|
1632
|
+
if (this.activeServers.has(processId)) {
|
|
1633
|
+
throw new Error(`Process '${processId}' is already running. Stop it first or use a different processId.`);
|
|
1634
|
+
}
|
|
1635
|
+
// Step 1: Start the dev server
|
|
1636
|
+
const outputFile = this.createStructuredLogPath(command, undefined, "frontend");
|
|
1637
|
+
this.cleanupOldLogs(3);
|
|
1638
|
+
const [program, ...cmdArgs] = command.split(' ');
|
|
1639
|
+
// Initial log entry
|
|
1640
|
+
writeFileSync(outputFile, `[${new Date().toISOString()}] Starting: ${command} (Process ID: ${processId})\n`);
|
|
1641
|
+
appendFileSync(outputFile, `[${new Date().toISOString()}] [${processId}] โ
Starting development server...\n`);
|
|
1642
|
+
// Spawn the process
|
|
1643
|
+
const devProcess = spawn(program, cmdArgs, {
|
|
1644
|
+
cwd: cwd,
|
|
1645
|
+
env: { ...process.env, ...validatedArgs.env },
|
|
1646
|
+
detached: true,
|
|
1647
|
+
stdio: ['ignore', 'pipe', 'pipe']
|
|
1648
|
+
});
|
|
1649
|
+
const serverInfo = {
|
|
1650
|
+
process: devProcess,
|
|
1651
|
+
command: command,
|
|
1652
|
+
cwd: cwd,
|
|
1653
|
+
outputFile: outputFile,
|
|
1654
|
+
startTime: new Date(),
|
|
1655
|
+
pid: devProcess.pid,
|
|
1656
|
+
processId: processId
|
|
1657
|
+
};
|
|
1658
|
+
this.activeServers.set(processId, serverInfo);
|
|
1659
|
+
// Variables for port detection
|
|
1660
|
+
let detectedPort = validatedArgs.port || null;
|
|
1661
|
+
let serverReady = false;
|
|
1662
|
+
let outputBuffer = "";
|
|
1663
|
+
// Common port patterns
|
|
1664
|
+
const portPatterns = [
|
|
1665
|
+
/(?:Local|Listening|ready).*?(\d{4})/i,
|
|
1666
|
+
/localhost:(\d{4})/,
|
|
1667
|
+
/port\s*:?\s*(\d{4})/i,
|
|
1668
|
+
/on\s+http:\/\/localhost:(\d{4})/i,
|
|
1669
|
+
/Server running at.*?:(\d{4})/i
|
|
1670
|
+
];
|
|
1671
|
+
// Ready indicators
|
|
1672
|
+
const readyPatterns = [
|
|
1673
|
+
/Local:\s*http:\/\/localhost/i,
|
|
1674
|
+
/ready on http:\/\/localhost/i,
|
|
1675
|
+
/Server running at/i,
|
|
1676
|
+
/Listening on port/i,
|
|
1677
|
+
/started server on/i,
|
|
1678
|
+
/Ready in \d+ms/i,
|
|
1679
|
+
/compiled successfully/i
|
|
1680
|
+
];
|
|
1681
|
+
// Create promise for server ready detection
|
|
1682
|
+
const serverReadyPromise = new Promise((resolve, reject) => {
|
|
1683
|
+
const timeout = setTimeout(() => {
|
|
1684
|
+
reject(new Error(`Server did not start within ${waitTimeout}ms`));
|
|
1685
|
+
}, waitTimeout);
|
|
1686
|
+
const checkOutput = (data) => {
|
|
1687
|
+
const text = data.toString();
|
|
1688
|
+
outputBuffer += text;
|
|
1689
|
+
// Check for port if not detected
|
|
1690
|
+
if (!detectedPort) {
|
|
1691
|
+
for (const pattern of portPatterns) {
|
|
1692
|
+
const match = outputBuffer.match(pattern);
|
|
1693
|
+
if (match && match[1]) {
|
|
1694
|
+
detectedPort = parseInt(match[1]);
|
|
1695
|
+
appendFileSync(outputFile, `[${new Date().toISOString()}] [${processId}] ๐ Detected port: ${detectedPort}\n`);
|
|
1696
|
+
break;
|
|
1697
|
+
}
|
|
1698
|
+
}
|
|
1699
|
+
}
|
|
1700
|
+
// Check for ready state
|
|
1701
|
+
if (!serverReady) {
|
|
1702
|
+
for (const pattern of readyPatterns) {
|
|
1703
|
+
if (pattern.test(outputBuffer)) {
|
|
1704
|
+
serverReady = true;
|
|
1705
|
+
clearTimeout(timeout);
|
|
1706
|
+
// If we have a port, resolve immediately
|
|
1707
|
+
if (detectedPort) {
|
|
1708
|
+
resolve(detectedPort);
|
|
1709
|
+
}
|
|
1710
|
+
else {
|
|
1711
|
+
// Try common ports
|
|
1712
|
+
const commonPorts = [3000, 3001, 5173, 8080, 4200];
|
|
1713
|
+
detectedPort = commonPorts[0]; // Default to 3000
|
|
1714
|
+
appendFileSync(outputFile, `[${new Date().toISOString()}] [${processId}] โ ๏ธ Could not detect port, defaulting to ${detectedPort}\n`);
|
|
1715
|
+
resolve(detectedPort);
|
|
1716
|
+
}
|
|
1717
|
+
break;
|
|
1718
|
+
}
|
|
1719
|
+
}
|
|
1720
|
+
}
|
|
1721
|
+
};
|
|
1722
|
+
// Attach listeners
|
|
1723
|
+
devProcess.stdout?.on('data', checkOutput);
|
|
1724
|
+
devProcess.stderr?.on('data', checkOutput);
|
|
1725
|
+
});
|
|
1726
|
+
// Stream stdout to file
|
|
1727
|
+
devProcess.stdout?.on('data', (data) => {
|
|
1728
|
+
const timestamp = new Date().toISOString();
|
|
1729
|
+
const logEntry = `[${timestamp}] [${processId}] ${data}`;
|
|
1730
|
+
appendFileSync(outputFile, logEntry);
|
|
1731
|
+
});
|
|
1732
|
+
// Stream stderr to file
|
|
1733
|
+
devProcess.stderr?.on('data', (data) => {
|
|
1734
|
+
const timestamp = new Date().toISOString();
|
|
1735
|
+
const logEntry = `[${timestamp}] [${processId}] [ERROR] ${data}`;
|
|
1736
|
+
appendFileSync(outputFile, logEntry);
|
|
1737
|
+
});
|
|
1738
|
+
// Handle process exit
|
|
1739
|
+
devProcess.on('exit', (code, signal) => {
|
|
1740
|
+
const timestamp = new Date().toISOString();
|
|
1741
|
+
const exitMessage = `[${timestamp}] [${processId}] Process exited with code ${code} and signal ${signal}\n`;
|
|
1742
|
+
appendFileSync(outputFile, exitMessage);
|
|
1743
|
+
this.activeServers.delete(processId);
|
|
1744
|
+
this.saveState();
|
|
1745
|
+
});
|
|
1746
|
+
// Handle process errors
|
|
1747
|
+
devProcess.on('error', (error) => {
|
|
1748
|
+
const timestamp = new Date().toISOString();
|
|
1749
|
+
const errorMessage = `[${timestamp}] [${processId}] Process error: ${error.message}\n`;
|
|
1750
|
+
appendFileSync(outputFile, errorMessage);
|
|
1751
|
+
});
|
|
1752
|
+
this.saveState();
|
|
1753
|
+
// Step 2: Wait for server to be ready
|
|
1754
|
+
let port;
|
|
1755
|
+
try {
|
|
1756
|
+
port = await serverReadyPromise;
|
|
1757
|
+
appendFileSync(outputFile, `[${new Date().toISOString()}] [${processId}] โ
Server ready on http://localhost:${port}\n`);
|
|
1758
|
+
}
|
|
1759
|
+
catch (error) {
|
|
1760
|
+
// Server didn't start properly, clean up
|
|
1761
|
+
const failedServerInfo = this.activeServers.get(processId);
|
|
1762
|
+
if (failedServerInfo) {
|
|
1763
|
+
try {
|
|
1764
|
+
// Close browser if it exists
|
|
1765
|
+
if (failedServerInfo.browser) {
|
|
1766
|
+
await failedServerInfo.browser.close();
|
|
1767
|
+
}
|
|
1768
|
+
// Remove all event listeners to prevent memory leaks
|
|
1769
|
+
if (failedServerInfo.process) {
|
|
1770
|
+
failedServerInfo.process.stdout?.removeAllListeners('data');
|
|
1771
|
+
failedServerInfo.process.stderr?.removeAllListeners('data');
|
|
1772
|
+
failedServerInfo.process.removeAllListeners('exit');
|
|
1773
|
+
failedServerInfo.process.removeAllListeners('error');
|
|
1774
|
+
}
|
|
1775
|
+
// Kill the process
|
|
1776
|
+
if (failedServerInfo.pid) {
|
|
1777
|
+
process.kill(failedServerInfo.pid, 'SIGTERM');
|
|
1778
|
+
}
|
|
1779
|
+
}
|
|
1780
|
+
catch (killError) {
|
|
1781
|
+
// Ignore errors during cleanup
|
|
1782
|
+
}
|
|
1783
|
+
this.activeServers.delete(processId);
|
|
1784
|
+
this.saveState();
|
|
1785
|
+
}
|
|
1786
|
+
throw error;
|
|
1787
|
+
}
|
|
1788
|
+
// Step 3: Wait a bit more for stability
|
|
1789
|
+
appendFileSync(outputFile, `[${new Date().toISOString()}] [${processId}] โณ Waiting ${browserDelay}ms before launching browser...\n`);
|
|
1790
|
+
await new Promise(resolve => setTimeout(resolve, browserDelay));
|
|
1791
|
+
// Step 4: Launch the test browser
|
|
1792
|
+
try {
|
|
1793
|
+
appendFileSync(outputFile, `[${new Date().toISOString()}] [${processId}] โ
Launching test browser...\n`);
|
|
1794
|
+
const browser = await chromium.launch({
|
|
1795
|
+
headless: false,
|
|
1796
|
+
slowMo: teachingMode ? 50 : 0,
|
|
1797
|
+
devtools: teachingMode,
|
|
1798
|
+
args: ['--window-size=1280,800', '--window-position=100,100']
|
|
1799
|
+
});
|
|
1800
|
+
const context = await browser.newContext({
|
|
1801
|
+
viewport: { width: 1280, height: 800 }
|
|
1802
|
+
});
|
|
1803
|
+
const page = await context.newPage();
|
|
1804
|
+
// Add banner to identify test browser
|
|
1805
|
+
await page.addInitScript(() => {
|
|
1806
|
+
// @ts-ignore - browser context
|
|
1807
|
+
const banner = document.createElement('div');
|
|
1808
|
+
banner.id = 'test-browser-banner';
|
|
1809
|
+
banner.innerHTML = '๐งช TEST BROWSER - All console logs are being captured ๐';
|
|
1810
|
+
banner.style.cssText = `
|
|
1811
|
+
position: fixed;
|
|
1812
|
+
top: 0;
|
|
1813
|
+
left: 0;
|
|
1814
|
+
right: 0;
|
|
1815
|
+
background: #22c55e;
|
|
1816
|
+
color: white;
|
|
1817
|
+
padding: 8px;
|
|
1818
|
+
text-align: center;
|
|
1819
|
+
font-family: monospace;
|
|
1820
|
+
font-size: 14px;
|
|
1821
|
+
z-index: 999999;
|
|
1822
|
+
box-shadow: 0 2px 4px rgba(0,0,0,0.2);
|
|
1823
|
+
`;
|
|
1824
|
+
// @ts-ignore - browser context
|
|
1825
|
+
if (document.readyState === 'loading') {
|
|
1826
|
+
// @ts-ignore - browser context
|
|
1827
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
1828
|
+
// @ts-ignore - browser context
|
|
1829
|
+
document.body.insertBefore(banner, document.body.firstChild);
|
|
1830
|
+
});
|
|
1831
|
+
}
|
|
1832
|
+
else {
|
|
1833
|
+
// @ts-ignore - browser context
|
|
1834
|
+
document.body.insertBefore(banner, document.body.firstChild);
|
|
1835
|
+
}
|
|
1836
|
+
});
|
|
1837
|
+
// Set up console capture
|
|
1838
|
+
page.on('console', (msg) => {
|
|
1839
|
+
const timestamp = new Date().toISOString();
|
|
1840
|
+
const msgType = msg.type().toUpperCase();
|
|
1841
|
+
const msgText = msg.text();
|
|
1842
|
+
const logEntry = `[${timestamp}] [${processId}] [BROWSER] [${msgType}] ${msgText}\n`;
|
|
1843
|
+
appendFileSync(outputFile, logEntry);
|
|
1844
|
+
// Flash red on errors
|
|
1845
|
+
if (msgType === 'ERROR') {
|
|
1846
|
+
page.evaluate(() => {
|
|
1847
|
+
// @ts-ignore - browser context
|
|
1848
|
+
const flash = document.createElement('div');
|
|
1849
|
+
flash.style.cssText = `
|
|
1850
|
+
position: fixed;
|
|
1851
|
+
top: 0;
|
|
1852
|
+
left: 0;
|
|
1853
|
+
right: 0;
|
|
1854
|
+
bottom: 0;
|
|
1855
|
+
background: rgba(239, 68, 68, 0.3);
|
|
1856
|
+
z-index: 999998;
|
|
1857
|
+
pointer-events: none;
|
|
1858
|
+
animation: errorFlash 0.5s ease-out;
|
|
1859
|
+
`;
|
|
1860
|
+
// @ts-ignore - browser context
|
|
1861
|
+
const style = document.createElement('style');
|
|
1862
|
+
style.textContent = `
|
|
1863
|
+
@keyframes errorFlash {
|
|
1864
|
+
0% { opacity: 1; }
|
|
1865
|
+
100% { opacity: 0; }
|
|
1866
|
+
}
|
|
1867
|
+
`;
|
|
1868
|
+
// @ts-ignore - browser context
|
|
1869
|
+
document.head.appendChild(style);
|
|
1870
|
+
// @ts-ignore - browser context
|
|
1871
|
+
document.body.appendChild(flash);
|
|
1872
|
+
setTimeout(() => flash.remove(), 500);
|
|
1873
|
+
}).catch(() => { }); // Ignore errors from flashing
|
|
1874
|
+
}
|
|
1875
|
+
});
|
|
1876
|
+
// Navigate to the app
|
|
1877
|
+
const browserUrl = `http://localhost:${port}`;
|
|
1878
|
+
await page.goto(browserUrl, { waitUntil: 'domcontentloaded' });
|
|
1879
|
+
// Update server info with browser details
|
|
1880
|
+
serverInfo.browser = browser;
|
|
1881
|
+
serverInfo.page = page;
|
|
1882
|
+
serverInfo.browserUrl = browserUrl;
|
|
1883
|
+
serverInfo.consoleCapture = true;
|
|
1884
|
+
// Log success
|
|
1885
|
+
const successMessage = `
|
|
1886
|
+
๐ฏ TEST BROWSER LAUNCHED!
|
|
1887
|
+
|
|
1888
|
+
๐ Use the browser window that just opened (with green banner)
|
|
1889
|
+
๐ All console logs are being saved
|
|
1890
|
+
๐ DevTools is open for debugging
|
|
1891
|
+
โ ๏ธ Errors will flash red on screen
|
|
1892
|
+
|
|
1893
|
+
Happy debugging! ๐
|
|
1894
|
+
`;
|
|
1895
|
+
appendFileSync(outputFile, `[${new Date().toISOString()}] [${processId}] [BROWSER] Console capture started for ${browserUrl}\n`);
|
|
1896
|
+
appendFileSync(outputFile, `[${new Date().toISOString()}] [${processId}] ${successMessage}\n`);
|
|
1897
|
+
return {
|
|
1898
|
+
content: [
|
|
1899
|
+
{
|
|
1900
|
+
type: "text",
|
|
1901
|
+
text: JSON.stringify({
|
|
1902
|
+
status: "success",
|
|
1903
|
+
message: successMessage.trim(),
|
|
1904
|
+
processId: processId,
|
|
1905
|
+
serverPid: devProcess.pid,
|
|
1906
|
+
serverUrl: `http://localhost:${port}`,
|
|
1907
|
+
logFile: outputFile,
|
|
1908
|
+
browserStatus: "launched",
|
|
1909
|
+
teachingMode: teachingMode
|
|
1910
|
+
}, null, 2)
|
|
1911
|
+
}
|
|
1912
|
+
]
|
|
1913
|
+
};
|
|
1914
|
+
}
|
|
1915
|
+
catch (browserError) {
|
|
1916
|
+
// Browser launch failed, but server is running
|
|
1917
|
+
const errorMsg = browserError instanceof Error ? browserError.message : String(browserError);
|
|
1918
|
+
appendFileSync(outputFile, `[${new Date().toISOString()}] [${processId}] [ERROR] Failed to launch browser: ${errorMsg}\n`);
|
|
1919
|
+
return {
|
|
1920
|
+
content: [
|
|
1921
|
+
{
|
|
1922
|
+
type: "text",
|
|
1923
|
+
text: JSON.stringify({
|
|
1924
|
+
status: "partial_success",
|
|
1925
|
+
message: `Server started successfully on http://localhost:${port}, but browser launch failed`,
|
|
1926
|
+
error: errorMsg,
|
|
1927
|
+
processId: processId,
|
|
1928
|
+
serverPid: devProcess.pid,
|
|
1929
|
+
serverUrl: `http://localhost:${port}`,
|
|
1930
|
+
logFile: outputFile,
|
|
1931
|
+
browserStatus: "failed",
|
|
1932
|
+
manualInstructions: "Open http://localhost:" + port + " in your browser manually"
|
|
1933
|
+
}, null, 2)
|
|
1934
|
+
}
|
|
1935
|
+
]
|
|
1936
|
+
};
|
|
1937
|
+
}
|
|
1938
|
+
}
|
|
1939
|
+
catch (error) {
|
|
1940
|
+
throw new Error(`Failed to start frontend with browser: ${error instanceof Error ? error.message : String(error)}`);
|
|
1941
|
+
}
|
|
1942
|
+
}
|
|
1236
1943
|
default:
|
|
1237
1944
|
throw new Error(`Unknown tool: ${name}`);
|
|
1238
1945
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chinchillaenterprises/mcp-dev-logger",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "MCP server for capturing and streaming development server output (npm run dev, etc.)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"license": "MIT",
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
28
|
+
"playwright": "^1.54.1",
|
|
28
29
|
"zod": "^3.22.0"
|
|
29
30
|
},
|
|
30
31
|
"devDependencies": {
|