dev3000 0.0.41 → 0.0.43
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/dist/cdp-monitor.d.ts.map +1 -1
- package/dist/cdp-monitor.js +21 -11
- package/dist/cdp-monitor.js.map +1 -1
- package/mcp-server/app/api/replay/route.ts +131 -164
- package/mcp-server/app/layout.tsx +11 -2
- package/mcp-server/app/logs/LogsClient.tsx +98 -34
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdp-monitor.d.ts","sourceRoot":"","sources":["../src/cdp-monitor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAM/B,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,SAAS,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,aAAa,CAAgD;IACrE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAA+B;gBAGrD,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,EACjD,KAAK,GAAE,OAAe;IAQxB,OAAO,CAAC,QAAQ;IAMV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB5B,OAAO,CAAC,iBAAiB;YAkCX,YAAY;YA4DZ,YAAY;YA2GZ,cAAc;YAsDd,gBAAgB;IAuC9B,OAAO,CAAC,kBAAkB;IAqO1B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,gBAAgB;IAelB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA4ClC,wBAAwB;
|
|
1
|
+
{"version":3,"file":"cdp-monitor.d.ts","sourceRoot":"","sources":["../src/cdp-monitor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAM/B,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,SAAS,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,aAAa,CAAgD;IACrE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAA+B;gBAGrD,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,EACjD,KAAK,GAAE,OAAe;IAQxB,OAAO,CAAC,QAAQ;IAMV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB5B,OAAO,CAAC,iBAAiB;YAkCX,YAAY;YA4DZ,YAAY;YA2GZ,cAAc;YAsDd,gBAAgB;IAuC9B,OAAO,CAAC,kBAAkB;IAqO1B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,gBAAgB;IAelB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA4ClC,wBAAwB;IA2KtC,OAAO,CAAC,6BAA6B;YAevB,cAAc;IA4BtB,kBAAkB,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA0DnD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAuBhC"}
|
package/dist/cdp-monitor.js
CHANGED
|
@@ -554,12 +554,12 @@ export class CDPMonitor {
|
|
|
554
554
|
return JSON.stringify(details);
|
|
555
555
|
}
|
|
556
556
|
|
|
557
|
-
// Scroll coalescing variables
|
|
557
|
+
// Scroll coalescing variables
|
|
558
558
|
let scrollTimeout = null;
|
|
559
|
-
let lastScrollX =
|
|
560
|
-
let lastScrollY =
|
|
561
|
-
let scrollStartX =
|
|
562
|
-
let scrollStartY =
|
|
559
|
+
let lastScrollX = 0;
|
|
560
|
+
let lastScrollY = 0;
|
|
561
|
+
let scrollStartX = 0;
|
|
562
|
+
let scrollStartY = 0;
|
|
563
563
|
let scrollTarget = 'document';
|
|
564
564
|
|
|
565
565
|
// Add click tracking with element details
|
|
@@ -574,29 +574,39 @@ export class CDPMonitor {
|
|
|
574
574
|
console.log('[DEV3000_INTERACTION] KEY ' + e.key + ' in ' + details);
|
|
575
575
|
});
|
|
576
576
|
|
|
577
|
-
// Add coalesced scroll tracking
|
|
577
|
+
// Add coalesced scroll tracking with capture to catch all scroll events
|
|
578
578
|
document.addEventListener('scroll', function(e) {
|
|
579
579
|
let target = e.target === document ? 'document' : getElementSelector(e.target);
|
|
580
|
+
let currentScrollX, currentScrollY;
|
|
581
|
+
|
|
582
|
+
// Get scroll position from the actual scrolling element
|
|
583
|
+
if (e.target === document) {
|
|
584
|
+
currentScrollX = window.scrollX;
|
|
585
|
+
currentScrollY = window.scrollY;
|
|
586
|
+
} else {
|
|
587
|
+
currentScrollX = e.target.scrollLeft;
|
|
588
|
+
currentScrollY = e.target.scrollTop;
|
|
589
|
+
}
|
|
580
590
|
|
|
581
591
|
// If this is the first scroll event or different target, reset
|
|
582
592
|
if (scrollTimeout === null) {
|
|
583
|
-
scrollStartX =
|
|
584
|
-
scrollStartY =
|
|
593
|
+
scrollStartX = currentScrollX;
|
|
594
|
+
scrollStartY = currentScrollY;
|
|
585
595
|
scrollTarget = target;
|
|
586
596
|
} else {
|
|
587
597
|
clearTimeout(scrollTimeout);
|
|
588
598
|
}
|
|
589
599
|
|
|
590
600
|
// Update current position
|
|
591
|
-
lastScrollX =
|
|
592
|
-
lastScrollY =
|
|
601
|
+
lastScrollX = currentScrollX;
|
|
602
|
+
lastScrollY = currentScrollY;
|
|
593
603
|
|
|
594
604
|
// Set timeout to log scroll after 150ms of no scrolling
|
|
595
605
|
scrollTimeout = setTimeout(function() {
|
|
596
606
|
console.log('[DEV3000_INTERACTION] SCROLL from ' + scrollStartX + ',' + scrollStartY + ' to ' + lastScrollX + ',' + lastScrollY + ' in ' + target);
|
|
597
607
|
scrollTimeout = null;
|
|
598
608
|
}, 150);
|
|
599
|
-
});
|
|
609
|
+
}, true); // Use capture: true to catch scroll events on all elements
|
|
600
610
|
}
|
|
601
611
|
} catch (err) {
|
|
602
612
|
console.log('[DEV3000_INTERACTION] ERROR: ' + err.message);
|
package/dist/cdp-monitor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdp-monitor.js","sourceRoot":"","sources":["../src/cdp-monitor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cdp-monitor.js","sourceRoot":"","sources":["../src/cdp-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -212,24 +212,20 @@ export async function POST(request: NextRequest) {
|
|
|
212
212
|
const { action, replayData, speed = 1 } = body;
|
|
213
213
|
|
|
214
214
|
if (action === 'execute') {
|
|
215
|
-
//
|
|
216
|
-
const cdpCommands = generateCDPCommands(replayData, speed);
|
|
217
|
-
|
|
218
|
-
// Try to execute the commands via CDP
|
|
215
|
+
// Execute replay via MCP server's execute_browser_action tool
|
|
219
216
|
try {
|
|
220
|
-
const result = await
|
|
217
|
+
const result = await executeBrowserActions(replayData, speed);
|
|
221
218
|
return NextResponse.json({
|
|
222
219
|
success: true,
|
|
223
|
-
message: 'Replay executed successfully',
|
|
220
|
+
message: 'Replay executed successfully via MCP server',
|
|
224
221
|
result: result,
|
|
225
|
-
|
|
222
|
+
totalEvents: result.totalEvents,
|
|
223
|
+
executedEvents: result.executed
|
|
226
224
|
});
|
|
227
225
|
} catch (error) {
|
|
228
|
-
// Fallback: return commands for manual execution
|
|
229
226
|
return NextResponse.json({
|
|
230
227
|
success: false,
|
|
231
|
-
message: '
|
|
232
|
-
commands: cdpCommands,
|
|
228
|
+
message: 'MCP server execution failed',
|
|
233
229
|
error: error instanceof Error ? error.message : 'Unknown error'
|
|
234
230
|
});
|
|
235
231
|
}
|
|
@@ -245,168 +241,139 @@ export async function POST(request: NextRequest) {
|
|
|
245
241
|
}
|
|
246
242
|
}
|
|
247
243
|
|
|
248
|
-
interface CDPCommand {
|
|
249
|
-
method: string;
|
|
250
|
-
params: any;
|
|
251
|
-
delay: number;
|
|
252
|
-
description: string;
|
|
253
|
-
}
|
|
254
244
|
|
|
255
|
-
function
|
|
256
|
-
const events = [
|
|
257
|
-
...replayData.interactions.map(i => ({ ...i, eventType: 'interaction' })),
|
|
258
|
-
...replayData.navigations.map(n => ({ ...n, eventType: 'navigation' }))
|
|
259
|
-
].sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime());
|
|
260
|
-
|
|
261
|
-
const commands: CDPCommand[] = [];
|
|
262
|
-
const startTime = new Date(replayData.startTime).getTime();
|
|
263
|
-
|
|
264
|
-
for (const event of events) {
|
|
265
|
-
const eventTime = new Date(event.timestamp).getTime();
|
|
266
|
-
const delay = Math.max(0, (eventTime - startTime) / speed);
|
|
267
|
-
|
|
268
|
-
if (event.eventType === 'navigation') {
|
|
269
|
-
commands.push({
|
|
270
|
-
method: 'Page.navigate',
|
|
271
|
-
params: { url: event.url },
|
|
272
|
-
delay: delay,
|
|
273
|
-
description: `Navigate to ${event.url}`
|
|
274
|
-
});
|
|
275
|
-
} else if (event.eventType === 'interaction') {
|
|
276
|
-
if ('type' in event && event.type === 'CLICK' && event.x !== undefined && event.y !== undefined) {
|
|
277
|
-
// Mouse down
|
|
278
|
-
commands.push({
|
|
279
|
-
method: 'Input.dispatchMouseEvent',
|
|
280
|
-
params: {
|
|
281
|
-
type: 'mousePressed',
|
|
282
|
-
x: event.x,
|
|
283
|
-
y: event.y,
|
|
284
|
-
button: 'left',
|
|
285
|
-
clickCount: 1
|
|
286
|
-
},
|
|
287
|
-
delay: delay,
|
|
288
|
-
description: `Click at (${event.x}, ${event.y}) on ${event.target}`
|
|
289
|
-
});
|
|
290
|
-
|
|
291
|
-
// Mouse up (after small delay)
|
|
292
|
-
commands.push({
|
|
293
|
-
method: 'Input.dispatchMouseEvent',
|
|
294
|
-
params: {
|
|
295
|
-
type: 'mouseReleased',
|
|
296
|
-
x: event.x,
|
|
297
|
-
y: event.y,
|
|
298
|
-
button: 'left',
|
|
299
|
-
clickCount: 1
|
|
300
|
-
},
|
|
301
|
-
delay: 50, // 50ms between down and up
|
|
302
|
-
description: `Release click at (${event.x}, ${event.y})`
|
|
303
|
-
});
|
|
304
|
-
} else if ('type' in event && event.type === 'SCROLL' && event.x !== undefined && event.y !== undefined) {
|
|
305
|
-
commands.push({
|
|
306
|
-
method: 'Runtime.evaluate',
|
|
307
|
-
params: {
|
|
308
|
-
expression: `window.scrollTo({left: ${event.x}, top: ${event.y}, behavior: 'smooth'})`
|
|
309
|
-
},
|
|
310
|
-
delay: delay,
|
|
311
|
-
description: `Scroll to (${event.x}, ${event.y})`
|
|
312
|
-
});
|
|
313
|
-
} else if ('type' in event && event.type === 'KEY' && event.key) {
|
|
314
|
-
// Key down
|
|
315
|
-
commands.push({
|
|
316
|
-
method: 'Input.dispatchKeyEvent',
|
|
317
|
-
params: {
|
|
318
|
-
type: 'keyDown',
|
|
319
|
-
key: event.key,
|
|
320
|
-
text: event.key.length === 1 ? event.key : undefined
|
|
321
|
-
},
|
|
322
|
-
delay: delay,
|
|
323
|
-
description: `Key down: ${event.key}`
|
|
324
|
-
});
|
|
325
|
-
|
|
326
|
-
// Key up
|
|
327
|
-
commands.push({
|
|
328
|
-
method: 'Input.dispatchKeyEvent',
|
|
329
|
-
params: {
|
|
330
|
-
type: 'keyUp',
|
|
331
|
-
key: event.key
|
|
332
|
-
},
|
|
333
|
-
delay: 50,
|
|
334
|
-
description: `Key up: ${event.key}`
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
return commands;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
async function executeCDPCommands(commands: CDPCommand[]): Promise<any> {
|
|
344
|
-
const WebSocket = require('ws');
|
|
345
|
-
|
|
245
|
+
async function executeBrowserActions(replayData: ReplayData, speed: number): Promise<any> {
|
|
346
246
|
try {
|
|
347
|
-
//
|
|
348
|
-
const
|
|
349
|
-
|
|
350
|
-
const
|
|
247
|
+
// Get MCP server URL from environment (defaults to local MCP server)
|
|
248
|
+
const mcpServerUrl = process.env.MCP_SERVER_URL || 'http://localhost:3684';
|
|
249
|
+
|
|
250
|
+
const events = [
|
|
251
|
+
...replayData.interactions.map(i => ({ ...i, eventType: 'interaction' })),
|
|
252
|
+
...replayData.navigations.map(n => ({ ...n, eventType: 'navigation' }))
|
|
253
|
+
].sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime());
|
|
351
254
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
255
|
+
const results: any[] = [];
|
|
256
|
+
const startTime = new Date(replayData.startTime).getTime();
|
|
257
|
+
|
|
258
|
+
// Execute events sequentially with proper timing
|
|
259
|
+
for (let i = 0; i < events.length; i++) {
|
|
260
|
+
const event = events[i];
|
|
261
|
+
const eventTime = new Date(event.timestamp).getTime();
|
|
262
|
+
const delay = Math.max(0, (eventTime - startTime) / speed);
|
|
357
263
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
ws.close();
|
|
363
|
-
resolve({ executed: commandIndex, results });
|
|
364
|
-
return;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
const command = commands[commandIndex];
|
|
368
|
-
const message = {
|
|
369
|
-
id: nextId++,
|
|
370
|
-
method: command.method,
|
|
371
|
-
params: command.params
|
|
372
|
-
};
|
|
373
|
-
|
|
374
|
-
ws.send(JSON.stringify(message));
|
|
375
|
-
commandIndex++;
|
|
376
|
-
|
|
377
|
-
// Schedule next command with delay
|
|
378
|
-
setTimeout(executeNext, command.delay || 100);
|
|
379
|
-
};
|
|
380
|
-
|
|
381
|
-
// Start executing commands
|
|
382
|
-
executeNext();
|
|
383
|
-
});
|
|
264
|
+
// Wait for the calculated delay
|
|
265
|
+
if (delay > 0) {
|
|
266
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
267
|
+
}
|
|
384
268
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
269
|
+
try {
|
|
270
|
+
let response;
|
|
271
|
+
|
|
272
|
+
if (event.eventType === 'navigation') {
|
|
273
|
+
// Navigate to URL
|
|
274
|
+
response = await fetch(`${mcpServerUrl}/mcp`, {
|
|
275
|
+
method: 'POST',
|
|
276
|
+
headers: { 'Content-Type': 'application/json' },
|
|
277
|
+
body: JSON.stringify({
|
|
278
|
+
jsonrpc: '2.0',
|
|
279
|
+
id: i + 1,
|
|
280
|
+
method: 'tools/call',
|
|
281
|
+
params: {
|
|
282
|
+
name: 'execute_browser_action',
|
|
283
|
+
arguments: {
|
|
284
|
+
action: 'navigate',
|
|
285
|
+
url: event.url
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
})
|
|
289
|
+
});
|
|
290
|
+
} else if (event.eventType === 'interaction') {
|
|
291
|
+
if ('type' in event && event.type === 'CLICK' && event.x !== undefined && event.y !== undefined) {
|
|
292
|
+
// Click action
|
|
293
|
+
response = await fetch(`${mcpServerUrl}/mcp`, {
|
|
294
|
+
method: 'POST',
|
|
295
|
+
headers: { 'Content-Type': 'application/json' },
|
|
296
|
+
body: JSON.stringify({
|
|
297
|
+
jsonrpc: '2.0',
|
|
298
|
+
id: i + 1,
|
|
299
|
+
method: 'tools/call',
|
|
300
|
+
params: {
|
|
301
|
+
name: 'execute_browser_action',
|
|
302
|
+
arguments: {
|
|
303
|
+
action: 'click',
|
|
304
|
+
x: event.x,
|
|
305
|
+
y: event.y
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
})
|
|
309
|
+
});
|
|
310
|
+
} else if ('type' in event && event.type === 'SCROLL' && event.x !== undefined && event.y !== undefined) {
|
|
311
|
+
// Scroll action
|
|
312
|
+
response = await fetch(`${mcpServerUrl}/mcp`, {
|
|
313
|
+
method: 'POST',
|
|
314
|
+
headers: { 'Content-Type': 'application/json' },
|
|
315
|
+
body: JSON.stringify({
|
|
316
|
+
jsonrpc: '2.0',
|
|
317
|
+
id: i + 1,
|
|
318
|
+
method: 'tools/call',
|
|
319
|
+
params: {
|
|
320
|
+
name: 'execute_browser_action',
|
|
321
|
+
arguments: {
|
|
322
|
+
action: 'scroll',
|
|
323
|
+
x: 0,
|
|
324
|
+
y: 0,
|
|
325
|
+
deltaX: event.x,
|
|
326
|
+
deltaY: event.y
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
})
|
|
330
|
+
});
|
|
331
|
+
} else if ('type' in event && event.type === 'KEY' && event.key) {
|
|
332
|
+
// Type action
|
|
333
|
+
response = await fetch(`${mcpServerUrl}/mcp`, {
|
|
334
|
+
method: 'POST',
|
|
335
|
+
headers: { 'Content-Type': 'application/json' },
|
|
336
|
+
body: JSON.stringify({
|
|
337
|
+
jsonrpc: '2.0',
|
|
338
|
+
id: i + 1,
|
|
339
|
+
method: 'tools/call',
|
|
340
|
+
params: {
|
|
341
|
+
name: 'execute_browser_action',
|
|
342
|
+
arguments: {
|
|
343
|
+
action: 'type',
|
|
344
|
+
text: event.key
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
})
|
|
348
|
+
});
|
|
390
349
|
}
|
|
391
|
-
} catch (error) {
|
|
392
|
-
// Ignore parsing errors for events
|
|
393
350
|
}
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
351
|
+
|
|
352
|
+
if (response) {
|
|
353
|
+
const result = await response.json();
|
|
354
|
+
results.push({
|
|
355
|
+
event,
|
|
356
|
+
result,
|
|
357
|
+
description: `${event.eventType}: ${event.eventType === 'navigation' ? event.url : event.type}`
|
|
358
|
+
});
|
|
400
359
|
}
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
360
|
+
|
|
361
|
+
} catch (error) {
|
|
362
|
+
results.push({
|
|
363
|
+
event,
|
|
364
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
365
|
+
description: `Failed: ${event.eventType}`
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
return {
|
|
371
|
+
executed: results.length,
|
|
372
|
+
results,
|
|
373
|
+
totalEvents: events.length
|
|
374
|
+
};
|
|
375
|
+
|
|
409
376
|
} catch (error) {
|
|
410
|
-
throw new Error(`Failed to
|
|
377
|
+
throw new Error(`Failed to execute replay via MCP server: ${error}`);
|
|
411
378
|
}
|
|
412
379
|
}
|
|
@@ -4,12 +4,21 @@ export default function RootLayout({
|
|
|
4
4
|
children,
|
|
5
5
|
}: any) {
|
|
6
6
|
return (
|
|
7
|
-
<html lang="en">
|
|
7
|
+
<html lang="en" className="h-full">
|
|
8
8
|
<head>
|
|
9
9
|
<title>🎯 dev3000</title>
|
|
10
10
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
11
|
+
<script
|
|
12
|
+
dangerouslySetInnerHTML={{
|
|
13
|
+
__html: `
|
|
14
|
+
tailwind.config = {
|
|
15
|
+
darkMode: 'class',
|
|
16
|
+
}
|
|
17
|
+
`,
|
|
18
|
+
}}
|
|
19
|
+
/>
|
|
11
20
|
</head>
|
|
12
|
-
<body>{children}</body>
|
|
21
|
+
<body className="h-full">{children}</body>
|
|
13
22
|
</html>
|
|
14
23
|
);
|
|
15
24
|
}
|
|
@@ -3,6 +3,51 @@
|
|
|
3
3
|
import { useState, useEffect, useRef, useMemo } from 'react';
|
|
4
4
|
import { LogEntry, LogsApiResponse, ConfigApiResponse, LogFile, LogListResponse } from '@/types';
|
|
5
5
|
|
|
6
|
+
// Hook for dark mode with system preference detection
|
|
7
|
+
function useDarkMode() {
|
|
8
|
+
const [darkMode, setDarkMode] = useState<boolean>(() => {
|
|
9
|
+
if (typeof window !== 'undefined') {
|
|
10
|
+
// Check localStorage first
|
|
11
|
+
const saved = localStorage.getItem('dev3000-dark-mode');
|
|
12
|
+
if (saved !== null) {
|
|
13
|
+
return JSON.parse(saved);
|
|
14
|
+
}
|
|
15
|
+
// Default to system preference
|
|
16
|
+
return window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
// Save to localStorage
|
|
23
|
+
localStorage.setItem('dev3000-dark-mode', JSON.stringify(darkMode));
|
|
24
|
+
|
|
25
|
+
// Apply dark class to document
|
|
26
|
+
if (darkMode) {
|
|
27
|
+
document.documentElement.classList.add('dark');
|
|
28
|
+
} else {
|
|
29
|
+
document.documentElement.classList.remove('dark');
|
|
30
|
+
}
|
|
31
|
+
}, [darkMode]);
|
|
32
|
+
|
|
33
|
+
// Listen for system theme changes
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
|
36
|
+
const handler = (e: MediaQueryListEvent) => {
|
|
37
|
+
// Only update if no explicit choice has been made
|
|
38
|
+
const saved = localStorage.getItem('dev3000-dark-mode');
|
|
39
|
+
if (saved === null) {
|
|
40
|
+
setDarkMode(e.matches);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
mediaQuery.addEventListener('change', handler);
|
|
45
|
+
return () => mediaQuery.removeEventListener('change', handler);
|
|
46
|
+
}, []);
|
|
47
|
+
|
|
48
|
+
return [darkMode, setDarkMode] as const;
|
|
49
|
+
}
|
|
50
|
+
|
|
6
51
|
export function parseLogEntries(logContent: string): LogEntry[] {
|
|
7
52
|
// Split by timestamp pattern - each timestamp starts a new log entry
|
|
8
53
|
const timestampPattern = /\[(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z)\] \[([^\]]+)\] /;
|
|
@@ -75,7 +120,7 @@ function URLRenderer({ url, maxLength = 60 }: { url: string, maxLength?: number
|
|
|
75
120
|
href={url}
|
|
76
121
|
target="_blank"
|
|
77
122
|
rel="noopener noreferrer"
|
|
78
|
-
className="text-blue-600 hover:text-blue-800 underline"
|
|
123
|
+
className="text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline"
|
|
79
124
|
>
|
|
80
125
|
{url}
|
|
81
126
|
</a>
|
|
@@ -92,13 +137,13 @@ function URLRenderer({ url, maxLength = 60 }: { url: string, maxLength?: number
|
|
|
92
137
|
href={url}
|
|
93
138
|
target="_blank"
|
|
94
139
|
rel="noopener noreferrer"
|
|
95
|
-
className="text-blue-600 hover:text-blue-800 underline"
|
|
140
|
+
className="text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline"
|
|
96
141
|
>
|
|
97
142
|
{url}
|
|
98
143
|
</a>
|
|
99
144
|
<button
|
|
100
145
|
onClick={() => setIsExpanded(false)}
|
|
101
|
-
className="ml-2 text-xs text-gray-500 hover:text-gray-700 px-1 py-0.5 rounded hover:bg-gray-100"
|
|
146
|
+
className="ml-2 text-xs text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 px-1 py-0.5 rounded hover:bg-gray-100 dark:hover:bg-gray-700"
|
|
102
147
|
>
|
|
103
148
|
[collapse]
|
|
104
149
|
</button>
|
|
@@ -109,13 +154,13 @@ function URLRenderer({ url, maxLength = 60 }: { url: string, maxLength?: number
|
|
|
109
154
|
href={url}
|
|
110
155
|
target="_blank"
|
|
111
156
|
rel="noopener noreferrer"
|
|
112
|
-
className="text-blue-600 hover:text-blue-800 underline"
|
|
157
|
+
className="text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline"
|
|
113
158
|
>
|
|
114
159
|
{truncated}
|
|
115
160
|
</a>
|
|
116
161
|
<button
|
|
117
162
|
onClick={() => setIsExpanded(true)}
|
|
118
|
-
className="ml-1 text-xs text-gray-500 hover:text-gray-700 px-1 py-0.5 rounded hover:bg-gray-100"
|
|
163
|
+
className="ml-1 text-xs text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 px-1 py-0.5 rounded hover:bg-gray-100 dark:hover:bg-gray-700"
|
|
119
164
|
>
|
|
120
165
|
[expand]
|
|
121
166
|
</button>
|
|
@@ -247,17 +292,17 @@ function ObjectRenderer({ content }: { content: string }) {
|
|
|
247
292
|
}
|
|
248
293
|
|
|
249
294
|
function LogEntryComponent({ entry }: { entry: LogEntry }) {
|
|
250
|
-
// Parse log type from message patterns
|
|
295
|
+
// Parse log type from message patterns with dark mode support
|
|
251
296
|
const parseLogType = (message: string) => {
|
|
252
|
-
if (message.includes('[INTERACTION]')) return { type: 'INTERACTION', color: 'bg-purple-50 border-purple-200', tag: 'bg-purple-100 text-purple-800' };
|
|
253
|
-
if (message.includes('[CONSOLE ERROR]')) return { type: 'ERROR', color: 'bg-red-50 border-red-200', tag: 'bg-red-100 text-red-800' };
|
|
254
|
-
if (message.includes('[CONSOLE WARN]')) return { type: 'WARNING', color: 'bg-yellow-50 border-yellow-200', tag: 'bg-yellow-100 text-yellow-800' };
|
|
255
|
-
if (message.includes('[SCREENSHOT]')) return { type: 'SCREENSHOT', color: 'bg-blue-50 border-blue-200', tag: 'bg-blue-100 text-blue-800' };
|
|
256
|
-
if (message.includes('[NAVIGATION]')) return { type: 'NAVIGATION', color: 'bg-indigo-50 border-indigo-200', tag: 'bg-indigo-100 text-indigo-800' };
|
|
257
|
-
if (message.includes('[NETWORK ERROR]')) return { type: 'NETWORK', color: 'bg-red-50 border-red-200', tag: 'bg-red-100 text-red-800' };
|
|
258
|
-
if (message.includes('[NETWORK REQUEST]')) return { type: 'NETWORK', color: 'bg-gray-50 border-gray-200', tag: 'bg-gray-100 text-gray-700' };
|
|
259
|
-
if (message.includes('[PAGE ERROR]')) return { type: 'ERROR', color: 'bg-red-50 border-red-200', tag: 'bg-red-100 text-red-800' };
|
|
260
|
-
return { type: 'DEFAULT', color: 'border-gray-200', tag: 'bg-gray-100 text-gray-700' };
|
|
297
|
+
if (message.includes('[INTERACTION]')) return { type: 'INTERACTION', color: 'bg-purple-50 dark:bg-purple-900/20 border-purple-200 dark:border-purple-800', tag: 'bg-purple-100 dark:bg-purple-800 text-purple-800 dark:text-purple-200' };
|
|
298
|
+
if (message.includes('[CONSOLE ERROR]')) return { type: 'ERROR', color: 'bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800', tag: 'bg-red-100 dark:bg-red-800 text-red-800 dark:text-red-200' };
|
|
299
|
+
if (message.includes('[CONSOLE WARN]')) return { type: 'WARNING', color: 'bg-yellow-50 dark:bg-yellow-900/20 border-yellow-200 dark:border-yellow-800', tag: 'bg-yellow-100 dark:bg-yellow-800 text-yellow-800 dark:text-yellow-200' };
|
|
300
|
+
if (message.includes('[SCREENSHOT]')) return { type: 'SCREENSHOT', color: 'bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800', tag: 'bg-blue-100 dark:bg-blue-800 text-blue-800 dark:text-blue-200' };
|
|
301
|
+
if (message.includes('[NAVIGATION]')) return { type: 'NAVIGATION', color: 'bg-indigo-50 dark:bg-indigo-900/20 border-indigo-200 dark:border-indigo-800', tag: 'bg-indigo-100 dark:bg-indigo-800 text-indigo-800 dark:text-indigo-200' };
|
|
302
|
+
if (message.includes('[NETWORK ERROR]')) return { type: 'NETWORK', color: 'bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800', tag: 'bg-red-100 dark:bg-red-800 text-red-800 dark:text-red-200' };
|
|
303
|
+
if (message.includes('[NETWORK REQUEST]')) return { type: 'NETWORK', color: 'bg-gray-50 dark:bg-gray-800/50 border-gray-200 dark:border-gray-700', tag: 'bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300' };
|
|
304
|
+
if (message.includes('[PAGE ERROR]')) return { type: 'ERROR', color: 'bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800', tag: 'bg-red-100 dark:bg-red-800 text-red-800 dark:text-red-200' };
|
|
305
|
+
return { type: 'DEFAULT', color: 'border-gray-200 dark:border-gray-700', tag: 'bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300' };
|
|
261
306
|
};
|
|
262
307
|
|
|
263
308
|
const logTypeInfo = parseLogType(entry.message);
|
|
@@ -350,19 +395,19 @@ function LogEntryComponent({ entry }: { entry: LogEntry }) {
|
|
|
350
395
|
{/* Table-like layout using CSS Grid */}
|
|
351
396
|
<div className="grid grid-cols-[auto_auto_1fr] gap-3 items-start">
|
|
352
397
|
{/* Column 1: Timestamp */}
|
|
353
|
-
<div className="text-xs text-gray-500 font-mono whitespace-nowrap">
|
|
398
|
+
<div className="text-xs text-gray-500 dark:text-gray-400 font-mono whitespace-nowrap">
|
|
354
399
|
{new Date(entry.timestamp).toLocaleTimeString()}
|
|
355
400
|
</div>
|
|
356
401
|
|
|
357
402
|
{/* Column 2: Source */}
|
|
358
403
|
<div className={`px-2 py-1 rounded text-xs font-medium whitespace-nowrap ${
|
|
359
|
-
entry.source === 'SERVER' ? 'bg-blue-100 text-blue-800' : 'bg-green-100 text-green-800'
|
|
404
|
+
entry.source === 'SERVER' ? 'bg-blue-100 dark:bg-blue-800 text-blue-800 dark:text-blue-200' : 'bg-green-100 dark:bg-green-800 text-green-800 dark:text-green-200'
|
|
360
405
|
}`}>
|
|
361
406
|
{entry.source}
|
|
362
407
|
</div>
|
|
363
408
|
|
|
364
409
|
{/* Column 3: Message content */}
|
|
365
|
-
<div className="font-mono text-sm min-w-0">
|
|
410
|
+
<div className="font-mono text-sm min-w-0 text-gray-900 dark:text-gray-100">
|
|
366
411
|
{renderMessage(entry.message)}
|
|
367
412
|
</div>
|
|
368
413
|
</div>
|
|
@@ -386,6 +431,7 @@ interface LogsClientProps {
|
|
|
386
431
|
}
|
|
387
432
|
|
|
388
433
|
export default function LogsClient({ version }: LogsClientProps) {
|
|
434
|
+
const [darkMode, setDarkMode] = useDarkMode();
|
|
389
435
|
const [logs, setLogs] = useState<LogEntry[]>([]);
|
|
390
436
|
const [mode, setMode] = useState<'head' | 'tail'>('tail');
|
|
391
437
|
const [isAtBottom, setIsAtBottom] = useState(true);
|
|
@@ -674,15 +720,15 @@ export default function LogsClient({ version }: LogsClientProps) {
|
|
|
674
720
|
}, [logs, filters]);
|
|
675
721
|
|
|
676
722
|
return (
|
|
677
|
-
<div className="h-screen bg-gray-50 flex flex-col">
|
|
723
|
+
<div className="h-screen bg-gray-50 dark:bg-gray-900 flex flex-col transition-colors">
|
|
678
724
|
{/* Header - Fixed */}
|
|
679
|
-
<div className="bg-white shadow-sm border-b flex-none z-10">
|
|
725
|
+
<div className="bg-white dark:bg-gray-800 shadow-sm border-b border-gray-200 dark:border-gray-700 flex-none z-10">
|
|
680
726
|
<div className="max-w-7xl mx-auto px-4 py-3">
|
|
681
727
|
<div className="flex items-center justify-between">
|
|
682
728
|
<div className="flex items-center gap-2 sm:gap-4">
|
|
683
729
|
<div className="flex items-center gap-1">
|
|
684
|
-
<h1 className="text-xl sm:text-2xl font-bold text-gray-900 whitespace-nowrap">dev3000</h1>
|
|
685
|
-
<span className="text-xs text-gray-400 whitespace-nowrap">(v{version})</span>
|
|
730
|
+
<h1 className="text-xl sm:text-2xl font-bold text-gray-900 dark:text-white whitespace-nowrap">dev3000</h1>
|
|
731
|
+
<span className="text-xs text-gray-400 dark:text-gray-500 whitespace-nowrap">(v{version})</span>
|
|
686
732
|
</div>
|
|
687
733
|
|
|
688
734
|
{/* Log File Selector */}
|
|
@@ -690,11 +736,11 @@ export default function LogsClient({ version }: LogsClientProps) {
|
|
|
690
736
|
<div className="relative" ref={dropdownRef}>
|
|
691
737
|
<button
|
|
692
738
|
onClick={() => setShowLogSelector(!showLogSelector)}
|
|
693
|
-
className="flex items-center gap-2 px-3 py-1 text-sm text-gray-600 hover:text-gray-900 hover:bg-gray-50 rounded-md transition-colors"
|
|
739
|
+
className="flex items-center gap-2 px-3 py-1 text-sm text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-gray-700 rounded-md transition-colors"
|
|
694
740
|
>
|
|
695
741
|
<span className="font-mono text-xs whitespace-nowrap">
|
|
696
742
|
{isInitialLoading && !currentLogFile ? (
|
|
697
|
-
<div className="h-4 bg-gray-200 rounded animate-pulse" style={{width: '220px'}} />
|
|
743
|
+
<div className="h-4 bg-gray-200 dark:bg-gray-700 rounded animate-pulse" style={{width: '220px'}} />
|
|
698
744
|
) : (
|
|
699
745
|
currentLogFile ? currentLogFile.split('/').pop() : 'dev3000.log'
|
|
700
746
|
)}
|
|
@@ -711,9 +757,9 @@ export default function LogsClient({ version }: LogsClientProps) {
|
|
|
711
757
|
|
|
712
758
|
{/* Dropdown */}
|
|
713
759
|
{showLogSelector && availableLogs.length > 1 && (
|
|
714
|
-
<div className="absolute top-full left-0 mt-1 bg-white border border-gray-200 rounded-md shadow-lg z-20 min-w-80">
|
|
760
|
+
<div className="absolute top-full left-0 mt-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-md shadow-lg z-20 min-w-80">
|
|
715
761
|
<div className="py-1 max-h-60 overflow-y-auto">
|
|
716
|
-
<div className="px-3 py-2 text-xs font-medium text-gray-500 border-b">
|
|
762
|
+
<div className="px-3 py-2 text-xs font-medium text-gray-500 dark:text-gray-400 border-b border-gray-200 dark:border-gray-600">
|
|
717
763
|
{projectName} logs ({availableLogs.length})
|
|
718
764
|
</div>
|
|
719
765
|
{availableLogs.map((logFile) => (
|
|
@@ -771,8 +817,26 @@ export default function LogsClient({ version }: LogsClientProps) {
|
|
|
771
817
|
)}
|
|
772
818
|
</div>
|
|
773
819
|
|
|
774
|
-
{/* Mode Toggle with Replay Button */}
|
|
820
|
+
{/* Dark Mode Toggle, Mode Toggle with Replay Button */}
|
|
775
821
|
<div className="flex items-center gap-2">
|
|
822
|
+
{/* Dark Mode Toggle */}
|
|
823
|
+
<button
|
|
824
|
+
onClick={() => setDarkMode(!darkMode)}
|
|
825
|
+
className="p-2 rounded-md text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors"
|
|
826
|
+
title={darkMode ? 'Switch to light mode' : 'Switch to dark mode'}
|
|
827
|
+
>
|
|
828
|
+
{darkMode ? (
|
|
829
|
+
// Sun icon for light mode
|
|
830
|
+
<svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
831
|
+
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z" />
|
|
832
|
+
</svg>
|
|
833
|
+
) : (
|
|
834
|
+
// Moon icon for dark mode
|
|
835
|
+
<svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
836
|
+
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z" />
|
|
837
|
+
</svg>
|
|
838
|
+
)}
|
|
839
|
+
</button>
|
|
776
840
|
{/* Replay Button with Hover Preview */}
|
|
777
841
|
<div className="relative">
|
|
778
842
|
<button
|
|
@@ -938,15 +1002,15 @@ export default function LogsClient({ version }: LogsClientProps) {
|
|
|
938
1002
|
</div>
|
|
939
1003
|
) : logs.length === 0 ? (
|
|
940
1004
|
<div className="text-center py-12">
|
|
941
|
-
<div className="text-gray-400 text-lg">📝 No logs yet</div>
|
|
942
|
-
<div className="text-gray-500 text-sm mt-2">
|
|
1005
|
+
<div className="text-gray-400 dark:text-gray-500 text-lg">📝 No logs yet</div>
|
|
1006
|
+
<div className="text-gray-500 dark:text-gray-400 text-sm mt-2">
|
|
943
1007
|
Logs will appear here as your development server runs
|
|
944
1008
|
</div>
|
|
945
1009
|
</div>
|
|
946
1010
|
) : filteredLogs.length === 0 ? (
|
|
947
1011
|
<div className="text-center py-12">
|
|
948
|
-
<div className="text-gray-400 text-lg">🔍 No logs match current filters</div>
|
|
949
|
-
<div className="text-gray-500 text-sm mt-2">
|
|
1012
|
+
<div className="text-gray-400 dark:text-gray-500 text-lg">🔍 No logs match current filters</div>
|
|
1013
|
+
<div className="text-gray-500 dark:text-gray-400 text-sm mt-2">
|
|
950
1014
|
Try adjusting your filter settings to see more logs
|
|
951
1015
|
</div>
|
|
952
1016
|
</div>
|
|
@@ -962,17 +1026,17 @@ export default function LogsClient({ version }: LogsClientProps) {
|
|
|
962
1026
|
</div>
|
|
963
1027
|
|
|
964
1028
|
{/* Footer - Fixed */}
|
|
965
|
-
<div className="border-t border-gray-200 bg-gray-50 flex-none">
|
|
1029
|
+
<div className="border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 flex-none">
|
|
966
1030
|
<div className="max-w-7xl mx-auto px-4 py-3 flex items-center justify-between">
|
|
967
1031
|
<div className="flex items-center gap-3">
|
|
968
1032
|
{isLoadingNew && (
|
|
969
1033
|
<div className="flex items-center gap-1">
|
|
970
1034
|
<div className="w-3 h-3 border border-gray-300 border-t-blue-500 rounded-full animate-spin"></div>
|
|
971
|
-
<span className="text-xs text-gray-500">Loading...</span>
|
|
1035
|
+
<span className="text-xs text-gray-500 dark:text-gray-400">Loading...</span>
|
|
972
1036
|
</div>
|
|
973
1037
|
)}
|
|
974
1038
|
{!isLoadingNew && lastFetched && (
|
|
975
|
-
<span className="text-xs text-gray-400 font-mono">
|
|
1039
|
+
<span className="text-xs text-gray-400 dark:text-gray-500 font-mono">
|
|
976
1040
|
Last updated {lastFetched.toLocaleTimeString()}
|
|
977
1041
|
</span>
|
|
978
1042
|
)}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dev3000",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.43",
|
|
4
4
|
"description": "AI-powered development tools with browser monitoring and MCP server integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
|
-
"dev3000": "dist/cli.js"
|
|
8
|
+
"dev3000": "dist/cli.js",
|
|
9
|
+
"d3k": "dist/cli.js"
|
|
9
10
|
},
|
|
10
11
|
"files": [
|
|
11
12
|
"dist/",
|