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.
@@ -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;IAiKtC,OAAO,CAAC,6BAA6B;YAevB,cAAc;IA4BtB,kBAAkB,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA0DnD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAuBhC"}
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"}
@@ -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 = window.scrollX;
560
- let lastScrollY = window.scrollY;
561
- let scrollStartX = window.scrollX;
562
- let scrollStartY = window.scrollY;
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 = lastScrollX;
584
- scrollStartY = lastScrollY;
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 = window.scrollX;
592
- lastScrollY = window.scrollY;
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);
@@ -1 +1 @@
1
- {"version":3,"file":"cdp-monitor.js","sourceRoot":"","sources":["../src/cdp-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAepC,MAAM,OAAO,UAAU;IACb,OAAO,GAAwB,IAAI,CAAC;IACpC,UAAU,GAAyB,IAAI,CAAC;IACxC,SAAS,GAAW,IAAI,CAAC;IACzB,aAAa,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC7D,UAAU,CAAS;IACnB,aAAa,CAAS;IACtB,MAAM,CAA4C;IAClD,KAAK,GAAY,KAAK,CAAC;IACvB,cAAc,GAAG,KAAK,CAAC;IACvB,eAAe,GAAG,CAAC,CAAC;IACpB,gBAAgB,GAA0B,IAAI,CAAC;IAEvD,YACE,UAAkB,EAClB,aAAqB,EACrB,MAAiD,EACjD,QAAiB,KAAK;QAEtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,QAAQ,CAAC,OAAe;QAC9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,iCAAiC;QACjC,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QAEzC,sCAAsC;QACtC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAE1C,kEAAkE;QAClE,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;QAEjD,iDAAiD;QACjD,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;QAC/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;IACtD,CAAC;IAEO,iBAAiB;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAErD,6CAA6C;QAC7C,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAC7D,IAAI,WAAmB,CAAC;QAExB,IAAI,CAAC;YACH,WAAW,GAAG,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sDAAsD;YACtD,WAAW,GAAG;;;;;;;;;QASZ,CAAC;QACL,CAAC;QAED,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACxC,OAAO,UAAU,WAAW,EAAE,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,qDAAqD;YACrD,MAAM,cAAc,GAAG;gBACrB,8DAA8D;gBAC9D,eAAe;gBACf,QAAQ;gBACR,UAAU;aACX,CAAC;YAEF,IAAI,CAAC,QAAQ,CACX,0DAA0D,IAAI,CAAC,SAAS,EAAE,CAC3E,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAEvD,IAAI,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;YAC5D,IAAI,CAAC,QAAQ,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;YAElD,IAAI,CAAC,OAAO,GAAG,KAAK,CAClB,UAAU,EACV;gBACE,2BAA2B,IAAI,CAAC,SAAS,EAAE;gBAC3C,mBAAmB,IAAI,CAAC,UAAU,EAAE;gBACpC,gBAAgB;gBAChB,IAAI,CAAC,iBAAiB,EAAE;aACzB,EACD;gBACE,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,KAAK;aAChB,CACF,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,+BAA+B;YAC/B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CAAC;gBAClE,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,QAAQ,CAAC,wCAAwC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAExE,4CAA4C;QAC5C,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,UAAU,GAAG,CAAC,CAAC;QAErB,OAAO,UAAU,GAAG,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,qDAAqD;gBACrD,MAAM,eAAe,GAAG,MAAM,KAAK,CACjC,oBAAoB,IAAI,CAAC,SAAS,OAAO,CAC1C,CAAC;gBACF,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC;gBAE7C,mCAAmC;gBACnC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAC7B,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CACxC,CAAC;gBACF,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBACpD,CAAC;gBAED,MAAM,KAAK,GAAG,UAAU,CAAC,oBAAoB,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CACX,sBAAsB,UAAU,CAAC,KAAK,IAAI,SAAS,MACjD,UAAU,CAAC,GACb,EAAE,CACH,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;gBAEjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACrC,IAAI,CAAC,QAAQ,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;oBAC5D,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;oBAEhC,6CAA6C;oBAC7C,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;oBAEvB,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;wBACjB,IAAI,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;wBAC1D,IAAI,CAAC,UAAU,GAAG;4BAChB,EAAE;4BACF,SAAS,EAAE,IAAI;4BACf,MAAM,EAAE,CAAC;yBACV,CAAC;wBACF,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wBACvB,IAAI,CAAC,QAAQ,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;wBACtD,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChB,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;wBACxB,IAAI,CAAC;4BACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;4BAC5C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;wBACjC,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,IAAI,CAAC,MAAM,CACT,SAAS,EACT,wCAAwC,KAAK,EAAE,CAChD,CAAC;wBACJ,CAAC;oBACH,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;wBAC9B,IAAI,CAAC,QAAQ,CACX,8BAA8B,IAAI,aAAa,MAAM,EAAE,CACxD,CAAC;wBACF,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;4BACzB,IAAI,CAAC,MAAM,CACT,SAAS,EACT,+CAA+C,IAAI,aAAa,MAAM,GAAG,CAC1E,CAAC;wBACJ,CAAC;oBACH,CAAC,CAAC,CAAC;oBAEH,qBAAqB;oBACrB,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,QAAQ,CACX,yBAAyB,EAAE,CAAC,UAAU,8CAA8C,CACrF,CAAC;wBACF,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;4BAC3C,IAAI,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAC;4BACzD,EAAE,CAAC,KAAK,EAAE,CAAC;4BACX,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;wBAC9C,CAAC;oBACH,CAAC,EAAE,IAAI,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,0BAA0B,UAAU,YAAY,KAAK,EAAE,CAAC,CAAC;gBAEvE,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;oBAC7B,MAAM,IAAI,KAAK,CACb,kCAAkC,UAAU,cAAc,KAAK,EAAE,CAClE,CAAC;gBACJ,CAAC;gBAED,sBAAsB;gBACtB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBACjE,IAAI,CAAC,QAAQ,CAAC,8BAA8B,KAAK,IAAI,CAAC,CAAC;gBACvD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,SAAc,EAAE;QAC3D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAW,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG;gBACd,EAAE;gBACF,MAAM;gBACN,MAAM;aACP,CAAC;YAEF,MAAM,cAAc,GAAG,CAAC,IAAS,EAAE,EAAE;gBACnC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC5C,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;wBACtB,IAAI,CAAC,UAAW,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;wBAC9D,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;4BAClB,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC3C,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAC1B,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,UAAW,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;oBAC9D,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,CAAC,UAAW,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YAElD,kBAAkB;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,UAAW,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gBAC9D,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC,CAAC;YACtD,CAAC,EAAE,KAAK,CAAC,CAAC;YAEV,0CAA0C;YAC1C,MAAM,eAAe,GAAG,OAAO,CAAC;YAChC,MAAM,cAAc,GAAG,MAAM,CAAC;YAC9B,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE;gBACvB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,eAAe,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC,CAAC;YACF,MAAM,GAAG,CAAC,MAAW,EAAE,EAAE;gBACvB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,cAAc,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC,CAAC;YAEF,IAAI,CAAC,UAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,2BAA2B;YACtC,SAAS,EAAE,6BAA6B;YACxC,MAAM,EAAE,0BAA0B;YAClC,KAAK,EAAE,gBAAgB;YACvB,aAAa,EAAE,sBAAsB;YACrC,UAAU,EAAE,kBAAkB;YAC9B,KAAK,EAAE,uBAAuB;YAC9B,OAAO,EAAE,kCAAkC;SAC5C,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;gBAChD,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,iBAAiB,MAAM,SAAS,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,QAAQ,CAAC,+BAA+B,MAAM,KAAK,KAAK,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,MAAM,CACT,SAAS,EACT,gCAAgC,MAAM,KAAK,KAAK,EAAE,CACnD,CAAC;gBACF,kDAAkD;YACpD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,cAAc,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAE3E,IAAI,CAAC,QAAQ,CAAC,oDAAoD,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,cAAc,CAAC,gCAAgC,EAAE;YAC1D,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;IACpD,CAAC;IAEO,kBAAkB;QACxB,qCAAqC;QACrC,IAAI,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,KAAK,EAAE,EAAE;YACpD,IAAI,CAAC,QAAQ,CACX,4CAA4C,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAChE,CAAC;YACF,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAEhD,uEAAuE;YACvE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,0BAA0B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzD,IAAI,CAAC,QAAQ,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,4CAA4C;YAC5C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBACxE,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;gBACxE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,iBAAiB,WAAW,EAAE,CAAC,CAAC;gBACvD,OAAO;YACT,CAAC;YAED,4EAA4E;YAC5E,IACE,IAAI,CAAC,MAAM,GAAG,CAAC;gBACf,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,0BAA0B,CAAC,EACnD,CAAC;gBACD,IAAI,CAAC,MAAM,CACT,SAAS,EACT,yDAAyD,CAC1D,CAAC;YACJ,CAAC;YAED,qDAAqD;YACrD,MAAM,MAAM,GAAG,IAAI;iBAChB,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAChB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACzC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrC,CAAC;gBACD,OAAO,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC;YACjC,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC,CAAC;YAEb,IAAI,MAAM,GAAG,YAAY,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;YAEzD,6BAA6B;YAC7B,IAAI,UAAU,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,aAAa,UAAU,CAAC,UAAU;qBACzC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qBACX,GAAG,CACF,CAAC,KAAU,EAAE,EAAE,CACb,GAAG,KAAK,CAAC,YAAY,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,IAC/C,KAAK,CAAC,UACR,EAAE,CACL;qBACA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,4CAA4C;QAC5C,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,EAAE;YACnD,IAAI,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC;YACxD,MAAM,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1C,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,GACvD,gBAAgB,CAAC;YAEnB,IAAI,QAAQ,GAAG,mBAAmB,IAAI,EAAE,CAAC;YACzC,IAAI,GAAG;gBAAE,QAAQ,IAAI,OAAO,GAAG,IAAI,UAAU,IAAI,YAAY,EAAE,CAAC;YAEhE,IAAI,UAAU,EAAE,CAAC;gBACf,QAAQ,IAAI,aAAa,UAAU,CAAC,UAAU;qBAC3C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qBACX,GAAG,CACF,CAAC,KAAU,EAAE,EAAE,CACb,GAAG,KAAK,CAAC,YAAY,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,IAC/C,KAAK,CAAC,UACR,EAAE,CACL;qBACA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEjC,0DAA0D;YAC1D,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,kEAAkE;QAClE,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;YAE/C,IAAI,MAAM,GAAG,YAAY,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;YACxD,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;gBACtB,MAAM,IAAI,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;YACvC,CAAC;YAED,qFAAqF;YACrF,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,KAAK,EAAE,EAAE;YACrD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAClD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YAEnD,IAAI,MAAM,GAAG,qBAAqB,MAAM,IAAI,GAAG,EAAE,CAAC;YAClD,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,IAAI,GAAG,CAAC;YACjC,IAAI,SAAS,EAAE,IAAI;gBAAE,MAAM,IAAI,iBAAiB,SAAS,CAAC,IAAI,EAAE,CAAC;YAEjE,wBAAwB;YACxB,MAAM,gBAAgB,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,gBAAgB;iBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBACzB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAC9B,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EACnC,EAAE,CACL;iBACA,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,IAAI,UAAU;gBAAE,MAAM,IAAI,KAAK,UAAU,GAAG,CAAC;YAC7C,IAAI,QAAQ;gBACV,MAAM,IAAI,UAAU,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GACxC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAClC,EAAE,CAAC;YAEL,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,sCAAsC;QACtC,IAAI,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,KAAK,EAAE,EAAE;YACpD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YACxC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;YAEvD,IAAI,MAAM,GAAG,sBAAsB,MAAM,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;YACjE,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,IAAI,GAAG,CAAC;YACjC,IAAI,QAAQ;gBAAE,MAAM,IAAI,KAAK,QAAQ,GAAG,CAAC;YAEzC,+BAA+B;YAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAC9C,CAAC;gBACF,IAAI,SAAS,GAAG,CAAC;oBAAE,MAAM,IAAI,KAAK,SAAS,KAAK,CAAC;YACnD,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,oCAAoC;QACpC,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/B,IAAI,KAAK,CAAC,QAAQ;gBAAE,OAAO,CAAC,iCAAiC;YAE7D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAEpD,wDAAwD;YACxD,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YACzC,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACrD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;YAClD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACnC,6CAA6C;YAC7C,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC3D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;YACpD,gEAAgE;YAChE,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;YAC1C,sDAAsD;YACtD,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,yDAAyD;QACzD,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,KAAK,EAAE,EAAE;YACrD,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,EAAE;YACnD,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;YACjD,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,wCAAwC;QACxC,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC1C,sDAAsD;YACtD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,uGAAuG;QACvG,wFAAwF;QACxF,uFAAuF;QAEvF,qDAAqD;QACrD,sDAAsD;QACtD,0CAA0C;QAC1C,wDAAwD;QACxD,mFAAmF;QACnF,OAAO;QACP,EAAE;QACF,uCAAuC;QACvC,0CAA0C;QAC1C,6DAA6D;QAC7D,oBAAoB;QACpB,6DAA6D;QAC7D,MAAM;QACN,MAAM;IACR,CAAC;IAEO,UAAU,CAAC,MAAc,EAAE,OAAkC;QACnE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAEO,gBAAgB,CAAC,OAAY;QACnC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAa;oBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;oBAC5B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;QACxD,sBAAsB;QACtB,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;YACzC,GAAG,EAAE,oBAAoB,IAAI,EAAE;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC;QAEtD,wDAAwD;QACxD,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;QAC9C,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,mFAAmF;QACnF,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACvC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACvC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,IAAI,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;QACjD,2FAA2F;QAC3F,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEtC,oFAAoF;QACpF,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACxC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACxC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC;QAEtD,0EAA0E;IAC5E,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,IAAI,CAAC;YACH,mEAAmE;YACnE,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgGtB,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;YAEpD,8CAA8C;YAC9C,IAAI,CAAC;gBACH,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAC7B,IAAI,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;YACvD,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,MAAM,YAAY,GAAG,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC9F,IAAI,CAAC,QAAQ,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAC;gBACnE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,6CAA6C,YAAY,EAAE,CAAC,CAAC;gBACpF,MAAM,IAAI,KAAK,CAAC,mCAAmC,YAAY,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,0BAA0B;YAC1B,MAAM,UAAU,GAAG,gEAAgE,CAAC;YACpF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;gBAC/D,UAAU,EAAE,UAAU;gBACtB,qBAAqB,EAAE,KAAK;aAC7B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,MAAM,CACT,SAAS,EACT,+BAA+B,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,WAAW,EAAE,CACzE,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;gBAC3D,UAAU,EAAE,cAAc;gBAC1B,qBAAqB,EAAE,KAAK;aAC7B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CACX,iDAAiD,IAAI,CAAC,SAAS,CAC7D,MAAM,CACP,EAAE,CACJ,CAAC;YACF,IAAI,CAAC,MAAM,CACT,SAAS,EACT,oCACE,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,WAC1B,EAAE,CACH,CAAC;YAEF,2CAA2C;YAC3C,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC5B,IAAI,CAAC,QAAQ,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;gBACxF,IAAI,CAAC,MAAM,CACT,SAAS,EACT,uCAAuC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,IAAI,eAAe,EAAE,CAC3G,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CACT,SAAS,EACT,4CAA4C,KAAK,EAAE,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,6BAA6B;QACnC,8CAA8C;QAC9C,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACtC,CAAC;YAED,sDAAsD;YACtD,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,KAAa;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE;gBACjE,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,SAAS,EAAE,gBAAgB;gBACjC,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,KAAK,MAAM,CAAC;YAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAE1D,wBAAwB;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAClD,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAEtC,yDAAyD;YACzD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,QAAQ,EAAE,CAAC,CAAC;YAEnD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,kCAAkC,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,kBAAkB,CAAC,WAAgB;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC;YACH,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzB,KAAK,OAAO;oBACV,MAAM,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAAE;wBACpD,IAAI,EAAE,cAAc;wBACpB,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;wBAC5B,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;wBAC5B,MAAM,EAAE,MAAM;wBACd,UAAU,EAAE,CAAC;qBACd,CAAC,CAAC;oBAEH,MAAM,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAAE;wBACpD,IAAI,EAAE,eAAe;wBACrB,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;wBAC5B,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;wBAC5B,MAAM,EAAE,MAAM;wBACd,UAAU,EAAE,CAAC;qBACd,CAAC,CAAC;oBACH,MAAM;gBAER,KAAK,SAAS;oBACZ,MAAM,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE;wBAClD,IAAI,EAAE,SAAS;wBACf,GAAG,EAAE,WAAW,CAAC,GAAG;wBACpB,IAAI,EAAE,WAAW,CAAC,IAAI;wBACtB,GAAG,WAAW,CAAC,SAAS;qBACzB,CAAC,CAAC;oBACH,MAAM;gBAER,KAAK,QAAQ;oBACX,MAAM,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAAE;wBACpD,IAAI,EAAE,YAAY;wBAClB,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;wBACnB,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;wBACnB,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;wBAC7C,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;qBAC9C,CAAC,CAAC;oBACH,MAAM;gBAER;oBACE,IAAI,CAAC,MAAM,CACT,SAAS,EACT,sCAAsC,WAAW,CAAC,IAAI,EAAE,CACzD,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CACT,SAAS,EACT,oCAAoC,WAAW,CAAC,IAAI,KAAK,KAAK,EAAE,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE7B,2CAA2C;YAC3C,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
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
- // Generate CDP commands for replay
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 executeCDPCommands(cdpCommands);
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
- totalCommands: cdpCommands.length
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: 'CDP execution failed, returning commands for manual execution',
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 generateCDPCommands(replayData: ReplayData, speed: number): CDPCommand[] {
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
- // Connect to Chrome DevTools Protocol on port 9222
348
- const response = await fetch('http://localhost:9222/json/version');
349
- const versionData = await response.json();
350
- const wsUrl = versionData.webSocketDebuggerUrl;
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
- return new Promise((resolve, reject) => {
353
- const ws = new WebSocket(wsUrl);
354
- let commandIndex = 0;
355
- let nextId = 1;
356
- const results: any[] = [];
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
- ws.on('open', () => {
359
- // Execute commands sequentially with proper timing
360
- const executeNext = () => {
361
- if (commandIndex >= commands.length) {
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
- ws.on('message', (data: any) => {
386
- try {
387
- const response = JSON.parse(data.toString());
388
- if (response.id) {
389
- results.push(response);
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
- ws.on('error', reject);
397
- ws.on('close', () => {
398
- if (commandIndex < commands.length) {
399
- reject(new Error(`Connection closed after executing ${commandIndex}/${commands.length} commands`));
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
- // Timeout after 30 seconds
404
- setTimeout(() => {
405
- ws.close();
406
- reject(new Error('Replay execution timed out'));
407
- }, 30000);
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 connect to CDP: ${error}`);
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.41",
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/",