@auto-engineer/cli 0.8.5 → 0.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +3 -2
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/plugin-loader.d.ts +1 -0
  6. package/dist/src/plugin-loader.d.ts.map +1 -1
  7. package/dist/src/plugin-loader.js +22 -29
  8. package/dist/src/plugin-loader.js.map +1 -1
  9. package/dist/src/server/dashboard.html +330 -52
  10. package/dist/src/server/event-processor.d.ts +21 -9
  11. package/dist/src/server/event-processor.d.ts.map +1 -1
  12. package/dist/src/server/event-processor.js +101 -25
  13. package/dist/src/server/event-processor.js.map +1 -1
  14. package/dist/src/server/file-syncer/index.d.ts.map +1 -1
  15. package/dist/src/server/file-syncer/index.js +6 -2
  16. package/dist/src/server/file-syncer/index.js.map +1 -1
  17. package/dist/src/server/file-syncer/sync/{computeDesiredSet.d.ts → resolveSyncFileSet.d.ts} +2 -2
  18. package/dist/src/server/file-syncer/sync/resolveSyncFileSet.d.ts.map +1 -0
  19. package/dist/src/server/file-syncer/sync/{computeDesiredSet.js → resolveSyncFileSet.js} +7 -7
  20. package/dist/src/server/file-syncer/sync/resolveSyncFileSet.js.map +1 -0
  21. package/dist/src/server/http-routes.d.ts +4 -5
  22. package/dist/src/server/http-routes.d.ts.map +1 -1
  23. package/dist/src/server/http-routes.js +234 -31
  24. package/dist/src/server/http-routes.js.map +1 -1
  25. package/dist/src/server/server.d.ts +8 -10
  26. package/dist/src/server/server.d.ts.map +1 -1
  27. package/dist/src/server/server.js +20 -12
  28. package/dist/src/server/server.js.map +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +8 -4
  31. package/dist/src/server/file-syncer/sync/computeDesiredSet.d.ts.map +0 -1
  32. package/dist/src/server/file-syncer/sync/computeDesiredSet.js.map +0 -1
@@ -475,7 +475,7 @@
475
475
  transition: background-color 0.3s ease;
476
476
  }
477
477
 
478
- .events-header {
478
+ .messages-header {
479
479
  padding: 16px 20px;
480
480
  background: var(--bg-tertiary);
481
481
  border-bottom: 1px solid var(--border);
@@ -484,7 +484,7 @@
484
484
  align-items: center;
485
485
  }
486
486
 
487
- .events-title {
487
+ .messages-title {
488
488
  font-size: 11px;
489
489
  font-weight: 600;
490
490
  text-transform: uppercase;
@@ -494,17 +494,147 @@
494
494
  align-items: center;
495
495
  }
496
496
 
497
- .events-controls {
497
+ .messages-controls {
498
498
  display: flex;
499
499
  gap: 8px;
500
500
  }
501
501
 
502
- .events-list {
502
+ .message-filters {
503
+ padding: 12px 20px;
504
+ background: var(--bg-secondary);
505
+ border-bottom: 1px solid var(--border);
506
+ display: flex;
507
+ flex-direction: column;
508
+ gap: 8px;
509
+ }
510
+
511
+ .filter-row {
512
+ display: flex;
513
+ gap: 8px;
514
+ }
515
+
516
+ .filter-row select,
517
+ .filter-row input,
518
+ .filter-row textarea {
519
+ flex: 1;
520
+ padding: 6px 8px;
521
+ border: 1px solid var(--border);
522
+ border-radius: 4px;
523
+ background: var(--bg-primary);
524
+ color: var(--text-primary);
525
+ font-size: 11px;
526
+ font-family: 'SF Mono', 'Monaco', monospace;
527
+ }
528
+
529
+ .filter-row textarea {
530
+ resize: vertical;
531
+ min-height: 32px;
532
+ }
533
+
534
+ .filter-stats {
535
+ font-size: 10px;
536
+ color: var(--text-tertiary);
537
+ text-align: center;
538
+ padding: 4px 0;
539
+ }
540
+
541
+ .messages-list {
503
542
  flex: 1;
504
543
  overflow-y: auto;
505
544
  padding: 12px;
506
545
  }
507
546
 
547
+ .message-item {
548
+ background: var(--bg-secondary);
549
+ border: 1px solid var(--border);
550
+ border-radius: 6px;
551
+ margin-bottom: 8px;
552
+ overflow: hidden;
553
+ transition: all 0.2s ease;
554
+ }
555
+
556
+ .message-item:hover {
557
+ border-color: var(--accent);
558
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
559
+ }
560
+
561
+ .message-header {
562
+ padding: 8px 12px;
563
+ background: var(--bg-tertiary);
564
+ border-bottom: 1px solid var(--border);
565
+ display: flex;
566
+ justify-content: space-between;
567
+ align-items: center;
568
+ }
569
+
570
+ .message-type {
571
+ display: flex;
572
+ align-items: center;
573
+ gap: 6px;
574
+ }
575
+
576
+ .message-type-indicator {
577
+ width: 8px;
578
+ height: 8px;
579
+ border-radius: 2px;
580
+ }
581
+
582
+ .message-type-indicator.command {
583
+ background: #42c3f7;
584
+ }
585
+
586
+ .message-type-indicator.event {
587
+ background: #ff8a1d;
588
+ }
589
+
590
+ .message-name {
591
+ font-family: 'SF Mono', 'Monaco', monospace;
592
+ font-size: 11px;
593
+ font-weight: 600;
594
+ color: var(--text-primary);
595
+ }
596
+
597
+ .message-timestamp {
598
+ font-size: 9px;
599
+ color: var(--text-tertiary);
600
+ font-family: 'SF Mono', 'Monaco', monospace;
601
+ }
602
+
603
+ .message-body {
604
+ padding: 12px;
605
+ }
606
+
607
+ .message-ids {
608
+ display: flex;
609
+ gap: 12px;
610
+ margin-bottom: 8px;
611
+ font-size: 9px;
612
+ color: var(--text-tertiary);
613
+ font-family: 'SF Mono', 'Monaco', monospace;
614
+ }
615
+
616
+ .message-id {
617
+ display: flex;
618
+ gap: 4px;
619
+ }
620
+
621
+ .message-id-label {
622
+ color: var(--text-secondary);
623
+ }
624
+
625
+ .message-data {
626
+ background: var(--bg-primary);
627
+ border: 1px solid var(--border);
628
+ border-radius: 4px;
629
+ padding: 8px;
630
+ font-family: 'SF Mono', 'Monaco', monospace;
631
+ font-size: 10px;
632
+ line-height: 1.4;
633
+ color: var(--text-primary);
634
+ max-height: 200px;
635
+ overflow-y: auto;
636
+ }
637
+
508
638
  /* Registry sections in left sidebar */
509
639
  .handlers-section {
510
640
  flex: 1;
@@ -1030,20 +1160,50 @@
1030
1160
  </div>
1031
1161
  </div>
1032
1162
 
1033
- <!-- Right Sidebar: Events -->
1163
+ <!-- Right Sidebar: Messages -->
1034
1164
  <div class="sidebar-right">
1035
- <div class="events-header">
1036
- <div class="events-title">
1037
- <span class="tab-indicator event"></span>
1038
- Events
1165
+ <div class="messages-header">
1166
+ <div class="messages-title">
1167
+ <span class="tab-indicator message"></span>
1168
+ Messages
1039
1169
  </div>
1040
- <div class="events-controls">
1041
- <button class="button button-small button-secondary" onclick="loadEvents()">↻</button>
1042
- <button class="button button-small button-secondary" onclick="clearEvents()">Clear</button>
1170
+ <div class="messages-controls">
1171
+ <button class="button button-small button-secondary" onclick="loadMessages()">↻</button>
1172
+ <button class="button button-small button-secondary" onclick="clearMessageFilters()">Clear Filters</button>
1043
1173
  </div>
1044
1174
  </div>
1045
- <div class="events-list" id="eventsContainer">
1046
- <div class="empty">No events yet</div>
1175
+
1176
+ <!-- Message Filters -->
1177
+ <div class="message-filters">
1178
+ <div class="filter-row">
1179
+ <select id="messageTypeFilter" onchange="applyMessageFilters()">
1180
+ <option value="">All Types</option>
1181
+ <option value="command">Commands</option>
1182
+ <option value="event">Events</option>
1183
+ </select>
1184
+
1185
+ <select id="sessionFilter" onchange="applyMessageFilters()">
1186
+ <option value="">All Sessions</option>
1187
+ </select>
1188
+ </div>
1189
+
1190
+ <div class="filter-row">
1191
+ <input type="text" id="messageNameFilter" placeholder="Message name..." onchange="applyMessageFilters()" />
1192
+ <input type="text" id="correlationIdFilter" placeholder="Correlation ID..." onchange="applyMessageFilters()" />
1193
+ </div>
1194
+
1195
+ <div class="filter-row">
1196
+ <textarea id="jsonFilter" placeholder='JSON Filter (e.g., {"userId": "123"})'
1197
+ onchange="applyMessageFilters()" rows="2"></textarea>
1198
+ </div>
1199
+
1200
+ <div class="filter-stats" id="filterStats">
1201
+ Showing all messages
1202
+ </div>
1203
+ </div>
1204
+
1205
+ <div class="messages-list" id="messagesContainer">
1206
+ <div class="empty">No messages yet</div>
1047
1207
  </div>
1048
1208
  </div>
1049
1209
  </div>
@@ -1051,7 +1211,9 @@
1051
1211
  <script>
1052
1212
  const API_BASE = window.location.origin;
1053
1213
  let currentState = {};
1054
- let currentEvents = [];
1214
+ let currentMessages = [];
1215
+ let filteredMessages = [];
1216
+ let availableSessions = [];
1055
1217
  let responseStartTime;
1056
1218
  let availableCommands = [];
1057
1219
  let currentCommand = localStorage.getItem('lastCommand') || null;
@@ -1356,66 +1518,182 @@
1356
1518
  }
1357
1519
  }
1358
1520
 
1359
- async function loadEvents() {
1521
+ async function loadMessages() {
1360
1522
  try {
1361
- const response = await fetch(`${API_BASE}/events`);
1362
- currentEvents = await response.json();
1363
- displayEvents();
1523
+ // Load all messages
1524
+ const messagesResponse = await fetch(`${API_BASE}/messages?count=500`);
1525
+ currentMessages = await messagesResponse.json();
1526
+
1527
+ // Load available sessions for filter dropdown
1528
+ const sessionsResponse = await fetch(`${API_BASE}/sessions`);
1529
+ availableSessions = await sessionsResponse.json();
1530
+ updateSessionFilter();
1531
+
1532
+ applyMessageFilters();
1364
1533
  } catch (error) {
1365
- console.error('Failed to load events:', error);
1366
- document.getElementById('eventsContainer').innerHTML = '<div class="empty">Failed to load events</div>';
1534
+ console.error('Failed to load messages:', error);
1535
+ document.getElementById('messagesContainer').innerHTML = '<div class="empty">Failed to load messages</div>';
1367
1536
  }
1368
1537
  }
1369
1538
 
1370
- function displayEvents() {
1371
- const searchTerm = ''; // Event search removed for now
1372
- const container = document.getElementById('eventsContainer');
1539
+ function updateSessionFilter() {
1540
+ const sessionFilter = document.getElementById('sessionFilter');
1541
+ const currentValue = sessionFilter.value;
1373
1542
 
1374
- if (currentEvents.length === 0) {
1375
- container.innerHTML = '<div class="empty">No events yet</div>';
1376
- return;
1377
- }
1543
+ sessionFilter.innerHTML = '<option value="">All Sessions</option>';
1378
1544
 
1379
- let filteredEvents = currentEvents;
1380
- if (searchTerm) {
1381
- filteredEvents = currentEvents.filter(item => {
1382
- const eventStr = JSON.stringify(item.event).toLowerCase();
1383
- return eventStr.includes(searchTerm) || item.event.type.toLowerCase().includes(searchTerm);
1545
+ availableSessions
1546
+ .sort((a, b) => new Date(b.startedAt) - new Date(a.startedAt))
1547
+ .forEach(session => {
1548
+ const startTime = new Date(session.startedAt).toLocaleString();
1549
+ const option = document.createElement('option');
1550
+ option.value = session.sessionId;
1551
+ option.textContent = `${session.sessionId} (${startTime})`;
1552
+ sessionFilter.appendChild(option);
1384
1553
  });
1554
+
1555
+ // Restore previous selection
1556
+ sessionFilter.value = currentValue;
1557
+ }
1558
+
1559
+ function applyMessageFilters() {
1560
+ const messageTypeFilter = document.getElementById('messageTypeFilter').value;
1561
+ const sessionFilter = document.getElementById('sessionFilter').value;
1562
+ const messageNameFilter = document.getElementById('messageNameFilter').value.toLowerCase();
1563
+ const correlationIdFilter = document.getElementById('correlationIdFilter').value.toLowerCase();
1564
+ const jsonFilterText = document.getElementById('jsonFilter').value.trim();
1565
+
1566
+ let jsonFilterObj = null;
1567
+ if (jsonFilterText) {
1568
+ try {
1569
+ jsonFilterObj = JSON.parse(jsonFilterText);
1570
+ } catch (error) {
1571
+ console.warn('Invalid JSON filter:', error);
1572
+ }
1573
+ }
1574
+
1575
+ filteredMessages = currentMessages.filter(message => {
1576
+ // Message type filter
1577
+ if (messageTypeFilter && message.messageType !== messageTypeFilter) {
1578
+ return false;
1579
+ }
1580
+
1581
+ // Session filter
1582
+ if (sessionFilter && message.sessionId !== sessionFilter) {
1583
+ return false;
1584
+ }
1585
+
1586
+ // Message name filter
1587
+ if (messageNameFilter && !message.message.type.toLowerCase().includes(messageNameFilter)) {
1588
+ return false;
1589
+ }
1590
+
1591
+ // Correlation ID filter
1592
+ if (correlationIdFilter) {
1593
+ const correlationId = message.message.correlationId || '';
1594
+ if (!correlationId.toLowerCase().includes(correlationIdFilter)) {
1595
+ return false;
1596
+ }
1597
+ }
1598
+
1599
+ // JSON filter
1600
+ if (jsonFilterObj) {
1601
+ if (!matchesJsonFilter(message.message.data, jsonFilterObj)) {
1602
+ return false;
1603
+ }
1604
+ }
1605
+
1606
+ return true;
1607
+ });
1608
+
1609
+ displayMessages();
1610
+ }
1611
+
1612
+ function matchesJsonFilter(data, filterObj) {
1613
+ for (const [key, expectedValue] of Object.entries(filterObj)) {
1614
+ if (data[key] !== expectedValue) {
1615
+ return false;
1616
+ }
1385
1617
  }
1618
+ return true;
1619
+ }
1620
+
1621
+ function displayMessages() {
1622
+ const container = document.getElementById('messagesContainer');
1623
+ const statsElement = document.getElementById('filterStats');
1386
1624
 
1387
- if (filteredEvents.length === 0) {
1388
- container.innerHTML = '<div class="empty">No matching events</div>';
1625
+ if (filteredMessages.length === 0) {
1626
+ container.innerHTML = '<div class="empty">No messages match the current filters</div>';
1627
+ statsElement.textContent = `Showing 0 of ${currentMessages.length} messages`;
1389
1628
  return;
1390
1629
  }
1391
1630
 
1392
- // Display events in reverse chronological order (newest first)
1393
- const eventsHtml = filteredEvents
1631
+ // Update stats
1632
+ const commandCount = filteredMessages.filter(m => m.messageType === 'command').length;
1633
+ const eventCount = filteredMessages.filter(m => m.messageType === 'event').length;
1634
+ statsElement.textContent = `Showing ${filteredMessages.length} of ${currentMessages.length} messages (${commandCount} commands, ${eventCount} events)`;
1635
+
1636
+ // Display messages in reverse chronological order (newest first)
1637
+ const messagesHtml = filteredMessages
1394
1638
  .slice()
1395
1639
  .reverse()
1396
- .map((item, index) => {
1397
- const time = new Date(item.timestamp).toLocaleTimeString();
1640
+ .map((message) => {
1641
+ const time = new Date(message.timestamp).toLocaleTimeString();
1642
+ const date = new Date(message.timestamp).toLocaleDateString();
1643
+
1644
+ const correlationId = message.message.correlationId || 'none';
1645
+ const requestId = message.message.requestId || 'none';
1646
+ const sessionId = message.sessionId || 'none';
1647
+
1398
1648
  return `
1399
- <div class="event-item">
1400
- <div class="event-header">
1401
- <div class="event-type">${item.event.type}</div>
1402
- <div class="event-time">${time}</div>
1649
+ <div class="message-item">
1650
+ <div class="message-header">
1651
+ <div class="message-type">
1652
+ <div class="message-type-indicator ${message.messageType}"></div>
1653
+ <div class="message-name">${message.message.type}</div>
1654
+ </div>
1655
+ <div class="message-timestamp">${date} ${time}</div>
1656
+ </div>
1657
+ <div class="message-body">
1658
+ <div class="message-ids">
1659
+ <div class="message-id">
1660
+ <span class="message-id-label">Session:</span>
1661
+ <span>${sessionId.substring(0, 8)}...</span>
1662
+ </div>
1663
+ <div class="message-id">
1664
+ <span class="message-id-label">Correlation:</span>
1665
+ <span>${correlationId.substring(0, 8)}...</span>
1666
+ </div>
1667
+ <div class="message-id">
1668
+ <span class="message-id-label">Request:</span>
1669
+ <span>${requestId.substring(0, 8)}...</span>
1670
+ </div>
1671
+ </div>
1672
+ <div class="message-data">${JSON.stringify(message.message.data, null, 2)}</div>
1403
1673
  </div>
1404
- <div class="event-data">${JSON.stringify(item.event.data, null, 2)}</div>
1405
1674
  </div>
1406
1675
  `;
1407
1676
  })
1408
1677
  .join('');
1409
1678
 
1410
- container.innerHTML = eventsHtml;
1679
+ container.innerHTML = messagesHtml;
1680
+ }
1681
+
1682
+ function clearMessageFilters() {
1683
+ document.getElementById('messageTypeFilter').value = '';
1684
+ document.getElementById('sessionFilter').value = '';
1685
+ document.getElementById('messageNameFilter').value = '';
1686
+ document.getElementById('correlationIdFilter').value = '';
1687
+ document.getElementById('jsonFilter').value = '';
1688
+ applyMessageFilters();
1411
1689
  }
1412
1690
 
1413
1691
  // Event search removed - no longer needed
1414
1692
  // document.getElementById('eventSearch').addEventListener('input', displayEvents);
1415
1693
 
1694
+ // Legacy function - no longer needed with new message system
1416
1695
  async function clearEvents() {
1417
- currentEvents = [];
1418
- displayEvents();
1696
+ console.log('clearEvents is deprecated - use clearMessageFilters instead');
1419
1697
  }
1420
1698
 
1421
1699
 
@@ -1439,8 +1717,8 @@
1439
1717
  if (message.type === 'event' || message.type === 'state') {
1440
1718
  // Reload state when events occur
1441
1719
  loadState();
1442
- // Also reload events
1443
- loadEvents();
1720
+ // Also reload messages
1721
+ loadMessages();
1444
1722
  } else if (message.type === 'commandError') {
1445
1723
  // Show command error in response
1446
1724
  document.getElementById('responseContent').textContent = JSON.stringify({
@@ -1468,15 +1746,15 @@
1468
1746
  // Initial load
1469
1747
  loadRegistry();
1470
1748
  loadState();
1471
- loadEvents();
1749
+ loadMessages();
1472
1750
 
1473
1751
  // Initial command will be restored when registry loads
1474
1752
 
1475
1753
  // Refresh registry every 5 seconds
1476
1754
  setInterval(loadRegistry, 5000);
1477
1755
 
1478
- // Auto-refresh events every 2 seconds
1479
- setInterval(loadEvents, 2000);
1756
+ // Auto-refresh messages every 2 seconds
1757
+ setInterval(loadMessages, 2000);
1480
1758
  </script>
1481
1759
  </body>
1482
1760
  </html>
@@ -1,14 +1,15 @@
1
- import type { MessageBus, Event } from '@auto-engineer/message-bus';
1
+ import type { MessageBus, Event, Command } from '@auto-engineer/message-bus';
2
+ import type { IMessageStore } from '@auto-engineer/message-store';
2
3
  import type { StateManager } from './state-manager';
3
4
  import type { EventRegistration } from '../dsl/types';
4
5
  export declare class EventProcessor {
5
6
  private messageBus;
7
+ private messageStore;
6
8
  private stateManager;
7
9
  private onEventBroadcast;
8
10
  private eventHandlers;
9
- private eventHistory;
10
- private readonly maxEventHistory;
11
- constructor(messageBus: MessageBus, stateManager: StateManager<Record<string, unknown>>, onEventBroadcast: (event: Event) => void);
11
+ private correlationContext;
12
+ constructor(messageBus: MessageBus, messageStore: IMessageStore, stateManager: StateManager<Record<string, unknown>>, onEventBroadcast: (event: Event) => void);
12
13
  setupGlobalEventListener(): void;
13
14
  registerEventHandler(registration: EventRegistration): void;
14
15
  private processHandlerResult;
@@ -20,10 +21,21 @@ export declare class EventProcessor {
20
21
  private handleSequentialDispatch;
21
22
  private handleCustomDispatch;
22
23
  getEventHandlers(): Map<string, Array<(event: Event) => void>>;
23
- getEventHistory(): Array<{
24
- event: Event;
25
- timestamp: string;
26
- }>;
27
- clearEventHistory(): void;
24
+ /**
25
+ * Store a command in the message store
26
+ */
27
+ storeCommand(command: Command): Promise<void>;
28
+ /**
29
+ * Enhance command with proper request and correlation IDs
30
+ */
31
+ private enhanceCommandWithIds;
32
+ /**
33
+ * Try to find a correlation ID to inherit from the current context
34
+ */
35
+ private findInheritedCorrelationId;
36
+ /**
37
+ * Clear correlation context periodically to prevent memory leaks
38
+ */
39
+ private cleanupCorrelationContext;
28
40
  }
29
41
  //# sourceMappingURL=event-processor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-processor.d.ts","sourceRoot":"","sources":["../../../src/server/event-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAW,MAAM,4BAA4B,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,cAAc,CAAC;AAKtE,qBAAa,cAAc;IAMvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IAP1B,OAAO,CAAC,aAAa,CAAyD;IAC9E,OAAO,CAAC,YAAY,CAAkD;IACtE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;gBAG9B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACnD,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;IAGlD,wBAAwB,IAAI,IAAI;IAyChC,oBAAoB,CAAC,YAAY,EAAE,iBAAiB,GAAG,IAAI;YA+B7C,oBAAoB;YAUpB,mBAAmB;YAgBnB,sBAAsB;YAUtB,qBAAqB;YAiBrB,oBAAoB;YAOpB,sBAAsB;YAOtB,wBAAwB;YASxB,oBAAoB;IAUlC,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC;IAI9D,eAAe,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAI7D,iBAAiB,IAAI,IAAI;CAG1B"}
1
+ {"version":3,"file":"event-processor.d.ts","sourceRoot":"","sources":["../../../src/server/event-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,cAAc,CAAC;AAMtE,qBAAa,cAAc;IAKvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IAP1B,OAAO,CAAC,aAAa,CAAyD;IAC9E,OAAO,CAAC,kBAAkB,CAAkC;gBAGlD,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,aAAa,EAC3B,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACnD,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;IAGlD,wBAAwB,IAAI,IAAI;IAuChC,oBAAoB,CAAC,YAAY,EAAE,iBAAiB,GAAG,IAAI;YA+B7C,oBAAoB;YAUpB,mBAAmB;YAiBnB,sBAAsB;YAWtB,qBAAqB;YAiBrB,oBAAoB;YAQpB,sBAAsB;YAQtB,wBAAwB;YAUxB,oBAAoB;IAWlC,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC;IAI9D;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAclC;;OAEG;IACH,OAAO,CAAC,yBAAyB;CAYlC"}