@lvce-editor/chat-debug-view 7.1.0 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1524,30 +1524,6 @@ const diff2 = uid => {
1524
1524
  return diff(oldState, newState);
1525
1525
  };
1526
1526
 
1527
- const getMenuIds = () => {
1528
- return [555, 556, 557];
1529
- };
1530
-
1531
- const getErrorMessage = error => {
1532
- if (error instanceof Error) {
1533
- return error.message;
1534
- }
1535
- if (typeof error === 'string') {
1536
- return error;
1537
- }
1538
- if (error && typeof error === 'object' && 'message' in error && typeof error.message === 'string') {
1539
- return error.message;
1540
- }
1541
- return undefined;
1542
- };
1543
- const getFailedToLoadMessage = (sessionId, error) => {
1544
- const errorMessage = getErrorMessage(error);
1545
- if (errorMessage) {
1546
- return `Failed to load chat debug session "${sessionId}": ${errorMessage}`;
1547
- }
1548
- return `Failed to load chat debug session "${sessionId}". Please try again.`;
1549
- };
1550
-
1551
1527
  const hasMatchingToolName = (startedEvent, finishedEvent) => {
1552
1528
  if (typeof startedEvent.toolName === 'string' && typeof finishedEvent.toolName === 'string') {
1553
1529
  return startedEvent.toolName === finishedEvent.toolName;
@@ -1579,29 +1555,10 @@ const getEndedTimestamp = event => {
1579
1555
  return getTimestamp(event.ended) ?? getTimestamp(event.endTime) ?? getTimestamp(event.endTimestamp) ?? getTimestamp(event.timestamp);
1580
1556
  };
1581
1557
 
1582
- const eventStableIds = new WeakMap();
1583
- const eventStableIdState = {
1584
- nextStableEventId: 1
1585
- };
1586
-
1587
- const getOrCreateStableEventId = event => {
1588
- const existingStableEventId = eventStableIds.get(event);
1589
- if (existingStableEventId) {
1590
- return existingStableEventId;
1591
- }
1592
- const stableEventId = `event-${eventStableIdState.nextStableEventId++}`;
1593
- eventStableIds.set(event, stableEventId);
1594
- return stableEventId;
1595
- };
1596
-
1597
1558
  const getStartedTimestamp = event => {
1598
1559
  return getTimestamp(event.started) ?? getTimestamp(event.startTime) ?? getTimestamp(event.startTimestamp) ?? getTimestamp(event.timestamp);
1599
1560
  };
1600
1561
 
1601
- const setStableEventId = (event, stableEventId) => {
1602
- eventStableIds.set(event, stableEventId);
1603
- };
1604
-
1605
1562
  const mergeToolExecutionEvents = (startedEvent, finishedEvent) => {
1606
1563
  const ended = getEndedTimestamp(finishedEvent);
1607
1564
  const {
@@ -1622,15 +1579,9 @@ const mergeToolExecutionEvents = (startedEvent, finishedEvent) => {
1622
1579
  }),
1623
1580
  type: mergedEventType
1624
1581
  };
1625
- const stableEventId = `${getOrCreateStableEventId(startedEvent)}:${getOrCreateStableEventId(finishedEvent)}`;
1626
- setStableEventId(mergedEvent, stableEventId);
1627
1582
  return mergedEvent;
1628
1583
  };
1629
1584
 
1630
- const getStableEventId = event => {
1631
- return getOrCreateStableEventId(event);
1632
- };
1633
-
1634
1585
  const collapseToolExecutionEvents = events => {
1635
1586
  const collapsedEvents = [];
1636
1587
  for (let i = 0; i < events.length; i++) {
@@ -1715,24 +1666,6 @@ const getFilteredEvents = (events, filterValue, eventCategoryFilter, showInputEv
1715
1666
  return filteredByCategory.filter(event => JSON.stringify(event).toLowerCase().includes(filterText));
1716
1667
  };
1717
1668
 
1718
- const ParseChatDebugUriErrorCode = {
1719
- InvalidSessionId: 'invalid-session-id',
1720
- InvalidUriEncoding: 'invalid-uri-encoding',
1721
- InvalidUriFormat: 'invalid-uri-format',
1722
- MissingUri: 'missing-uri'
1723
- };
1724
-
1725
- const getInvalidUriMessage = (uri, code) => {
1726
- if (code === ParseChatDebugUriErrorCode.MissingUri) {
1727
- return 'Unable to load debug session: missing URI. Expected format: chat-debug://<sessionId>.';
1728
- }
1729
- return `Unable to load debug session: invalid URI "${uri}". Expected format: chat-debug://<sessionId>.`;
1730
- };
1731
-
1732
- const getSessionNotFoundMessage = sessionId => {
1733
- return `No chat session found for sessionId "${sessionId}".`;
1734
- };
1735
-
1736
1669
  const toTimeNumber = value => {
1737
1670
  if (typeof value === 'number' && Number.isFinite(value)) {
1738
1671
  return value;
@@ -1884,6 +1817,122 @@ const getTimelineInfo = (events, startValue, endValue) => {
1884
1817
  };
1885
1818
  };
1886
1819
 
1820
+ const getCurrentEvents$3 = state => {
1821
+ const filteredEvents = getFilteredEvents(state.events, state.filterValue, state.eventCategoryFilter, state.showInputEvents, state.showResponsePartEvents, state.showEventStreamFinishedEvents);
1822
+ return filterEventsByTimelineRange(filteredEvents, state.timelineStartSeconds, state.timelineEndSeconds);
1823
+ };
1824
+ const selectEventAtIndex = async (state, selectedEventIndex, dependencies) => {
1825
+ const currentEvents = getCurrentEvents$3(state);
1826
+ const selectedEvent = currentEvents[selectedEventIndex];
1827
+ if (!selectedEvent) {
1828
+ return {
1829
+ ...state,
1830
+ selectedEvent: null,
1831
+ selectedEventId: null,
1832
+ selectedEventIndex
1833
+ };
1834
+ }
1835
+ if (typeof selectedEvent.eventId !== 'number') {
1836
+ return {
1837
+ ...state,
1838
+ selectedEvent,
1839
+ selectedEventId: null,
1840
+ selectedEventIndex
1841
+ };
1842
+ }
1843
+ const selectedEventDetails = await dependencies.loadSelectedEvent(state.databaseName, state.dataBaseVersion, state.eventStoreName, state.sessionId, state.sessionIdIndexName, selectedEvent.eventId, selectedEvent.type);
1844
+ return {
1845
+ ...state,
1846
+ selectedEvent: selectedEventDetails ?? selectedEvent,
1847
+ selectedEventId: selectedEvent.eventId,
1848
+ selectedEventIndex
1849
+ };
1850
+ };
1851
+
1852
+ const devtoolsRootGap = 4;
1853
+ const devtoolsTopHeight = 28;
1854
+ const devtoolsTimelineHeight = 88;
1855
+ const devtoolsTableHeaderHeight = 24;
1856
+ const devtoolsTableRowHeight = 24;
1857
+ const getTableBodyY = (state, hasTimeline) => {
1858
+ return state.y + viewPadding + devtoolsTopHeight + devtoolsRootGap + (hasTimeline ? devtoolsTimelineHeight : 0) + devtoolsTableHeaderHeight;
1859
+ };
1860
+ const getTableBodyEventIndex = (state, eventX, eventY) => {
1861
+ if (!state.useDevtoolsLayout) {
1862
+ return -1;
1863
+ }
1864
+ const currentEvents = getCurrentEvents$3(state);
1865
+ if (currentEvents.length === 0) {
1866
+ return -1;
1867
+ }
1868
+ const tableX = state.x + leftPadding;
1869
+ const tableWidth = clampTableWidth(state.width, state.tableWidth);
1870
+ const hasTimeline = currentEvents.length > 0;
1871
+ const tableBodyY = getTableBodyY(state, hasTimeline);
1872
+ const relativeX = eventX - tableX;
1873
+ const relativeY = eventY - tableBodyY;
1874
+ if (relativeX < 0 || relativeX >= tableWidth || relativeY < 0) {
1875
+ return -1;
1876
+ }
1877
+ const eventIndex = Math.floor(relativeY / devtoolsTableRowHeight);
1878
+ if (eventIndex < 0 || eventIndex >= currentEvents.length) {
1879
+ return -1;
1880
+ }
1881
+ return eventIndex;
1882
+ };
1883
+
1884
+ const MenuChatDebugTableBody = 2190;
1885
+ const handleTableBodyContextMenu = async (state, eventX, eventY) => {
1886
+ const eventIndex = getTableBodyEventIndex(state, eventX, eventY);
1887
+ await showContextMenu2(state.uid, MenuChatDebugTableBody, eventX, eventY, {
1888
+ eventIndex,
1889
+ menuId: MenuChatDebugTableBody
1890
+ });
1891
+ return state;
1892
+ };
1893
+
1894
+ const getMenuIds = () => {
1895
+ return [MenuChatDebugTableBody, 556, 557];
1896
+ };
1897
+
1898
+ const getErrorMessage = error => {
1899
+ if (error instanceof Error) {
1900
+ return error.message;
1901
+ }
1902
+ if (typeof error === 'string') {
1903
+ return error;
1904
+ }
1905
+ if (error && typeof error === 'object' && 'message' in error && typeof error.message === 'string') {
1906
+ return error.message;
1907
+ }
1908
+ return undefined;
1909
+ };
1910
+ const getFailedToLoadMessage = (sessionId, error) => {
1911
+ const errorMessage = getErrorMessage(error);
1912
+ if (errorMessage) {
1913
+ return `Failed to load chat debug session "${sessionId}": ${errorMessage}`;
1914
+ }
1915
+ return `Failed to load chat debug session "${sessionId}". Please try again.`;
1916
+ };
1917
+
1918
+ const ParseChatDebugUriErrorCode = {
1919
+ InvalidSessionId: 'invalid-session-id',
1920
+ InvalidUriEncoding: 'invalid-uri-encoding',
1921
+ InvalidUriFormat: 'invalid-uri-format',
1922
+ MissingUri: 'missing-uri'
1923
+ };
1924
+
1925
+ const getInvalidUriMessage = (uri, code) => {
1926
+ if (code === ParseChatDebugUriErrorCode.MissingUri) {
1927
+ return 'Unable to load debug session: missing URI. Expected format: chat-debug://<sessionId>.';
1928
+ }
1929
+ return `Unable to load debug session: invalid URI "${uri}". Expected format: chat-debug://<sessionId>.`;
1930
+ };
1931
+
1932
+ const getSessionNotFoundMessage = sessionId => {
1933
+ return `No chat session found for sessionId "${sessionId}".`;
1934
+ };
1935
+
1887
1936
  const listChatViewEventsDependencies = {
1888
1937
  listChatViewEventsFromWorker: listChatViewEvents$1
1889
1938
  };
@@ -1951,7 +2000,7 @@ const loadEventsDependencies = {
1951
2000
  listChatViewEvents: listChatViewEvents,
1952
2001
  loadSelectedEvent: loadSelectedEvent
1953
2002
  };
1954
- const getCurrentEvents$3 = state => {
2003
+ const getCurrentEvents$2 = state => {
1955
2004
  const filteredEvents = getFilteredEvents(state.events, state.filterValue, state.eventCategoryFilter, state.showInputEvents, state.showResponsePartEvents, state.showEventStreamFinishedEvents);
1956
2005
  return filterEventsByTimelineRange(filteredEvents, state.timelineStartSeconds, state.timelineEndSeconds);
1957
2006
  };
@@ -1963,7 +2012,7 @@ const restoreSelectedEvent = async state => {
1963
2012
  selectedEventIndex: null
1964
2013
  };
1965
2014
  }
1966
- const currentEvents = getCurrentEvents$3(state);
2015
+ const currentEvents = getCurrentEvents$2(state);
1967
2016
  const selectedEventIndex = currentEvents.findIndex(event => event.eventId === state.selectedEventId);
1968
2017
  if (selectedEventIndex === -1) {
1969
2018
  return {
@@ -2106,13 +2155,12 @@ const handleDetailTab = (state, value) => {
2106
2155
  };
2107
2156
  };
2108
2157
 
2109
- const getCurrentEvents$2 = state => {
2158
+ const getCurrentEvents$1 = state => {
2110
2159
  const filteredEvents = getFilteredEvents(state.events, state.filterValue, state.eventCategoryFilter, state.showInputEvents, state.showResponsePartEvents, state.showEventStreamFinishedEvents);
2111
2160
  return filterEventsByTimelineRange(filteredEvents, state.timelineStartSeconds, state.timelineEndSeconds);
2112
2161
  };
2113
2162
  const getEventIndexByStableId$1 = (events, event) => {
2114
- const stableEventId = getStableEventId(event);
2115
- return events.findIndex(candidate => getStableEventId(candidate) === stableEventId);
2163
+ return events.findIndex(candidate => candidate.eventId === event.eventId);
2116
2164
  };
2117
2165
  const getSelectedEventIndex$1 = state => {
2118
2166
  const {
@@ -2121,7 +2169,7 @@ const getSelectedEventIndex$1 = state => {
2121
2169
  if (selectedEventIndex === null) {
2122
2170
  return null;
2123
2171
  }
2124
- const filteredEvents = getCurrentEvents$2(state);
2172
+ const filteredEvents = getCurrentEvents$1(state);
2125
2173
  const selectedEvent = filteredEvents[selectedEventIndex];
2126
2174
  if (!selectedEvent) {
2127
2175
  return null;
@@ -2139,12 +2187,12 @@ const getPreservedSelectedEventIndex$1 = (oldState, newState) => {
2139
2187
  if (selectedEventIndex === null) {
2140
2188
  return null;
2141
2189
  }
2142
- const oldFilteredEvents = getCurrentEvents$2(oldState);
2190
+ const oldFilteredEvents = getCurrentEvents$1(oldState);
2143
2191
  const selectedEvent = oldFilteredEvents[selectedEventIndex];
2144
2192
  if (!selectedEvent) {
2145
2193
  return null;
2146
2194
  }
2147
- const newFilteredEvents = getCurrentEvents$2(newState);
2195
+ const newFilteredEvents = getCurrentEvents$1(newState);
2148
2196
  const newIndex = getEventIndexByStableId$1(newFilteredEvents, selectedEvent);
2149
2197
  if (newIndex === -1) {
2150
2198
  return null;
@@ -2169,38 +2217,6 @@ const handleEventCategoryFilter = (state, value) => {
2169
2217
  return withPreservedSelection$1(state, nextState);
2170
2218
  };
2171
2219
 
2172
- const getCurrentEvents$1 = state => {
2173
- const filteredEvents = getFilteredEvents(state.events, state.filterValue, state.eventCategoryFilter, state.showInputEvents, state.showResponsePartEvents, state.showEventStreamFinishedEvents);
2174
- return filterEventsByTimelineRange(filteredEvents, state.timelineStartSeconds, state.timelineEndSeconds);
2175
- };
2176
- const selectEventAtIndex = async (state, selectedEventIndex, dependencies) => {
2177
- const currentEvents = getCurrentEvents$1(state);
2178
- const selectedEvent = currentEvents[selectedEventIndex];
2179
- if (!selectedEvent) {
2180
- return {
2181
- ...state,
2182
- selectedEvent: null,
2183
- selectedEventId: null,
2184
- selectedEventIndex
2185
- };
2186
- }
2187
- if (typeof selectedEvent.eventId !== 'number') {
2188
- return {
2189
- ...state,
2190
- selectedEvent,
2191
- selectedEventId: null,
2192
- selectedEventIndex
2193
- };
2194
- }
2195
- const selectedEventDetails = await dependencies.loadSelectedEvent(state.databaseName, state.dataBaseVersion, state.eventStoreName, state.sessionId, state.sessionIdIndexName, selectedEvent.eventId, selectedEvent.type);
2196
- return {
2197
- ...state,
2198
- selectedEvent: selectedEventDetails ?? selectedEvent,
2199
- selectedEventId: selectedEvent.eventId,
2200
- selectedEventIndex
2201
- };
2202
- };
2203
-
2204
2220
  const handleEventRowClickDependencies = {
2205
2221
  loadSelectedEvent: loadSelectedEvent
2206
2222
  };
@@ -2265,8 +2281,7 @@ const parseTimelineRangePreset$1 = value => {
2265
2281
  };
2266
2282
  };
2267
2283
  const getEventIndexByStableId = (events, event) => {
2268
- const stableEventId = getStableEventId(event);
2269
- return events.findIndex(candidate => getStableEventId(candidate) === stableEventId);
2284
+ return events.findIndex(candidate => candidate.eventId === event.eventId);
2270
2285
  };
2271
2286
  const getSelectedEventIndex = state => {
2272
2287
  const {
@@ -2433,47 +2448,6 @@ const handleSashPointerUp = (state, eventX, eventY) => {
2433
2448
  return state;
2434
2449
  };
2435
2450
 
2436
- const devtoolsRootGap = 4;
2437
- const devtoolsTopHeight = 28;
2438
- const devtoolsTimelineHeight = 88;
2439
- const devtoolsTableHeaderHeight = 24;
2440
- const devtoolsTableRowHeight = 24;
2441
- const MenuChatDebugTableBody = 2190;
2442
- const getTableBodyY = (state, hasTimeline) => {
2443
- return state.y + viewPadding + devtoolsTopHeight + devtoolsRootGap + (hasTimeline ? devtoolsTimelineHeight : 0) + devtoolsTableHeaderHeight;
2444
- };
2445
- const getTableBodyEventIndex = (state, eventX, eventY) => {
2446
- if (!state.useDevtoolsLayout) {
2447
- return -1;
2448
- }
2449
- const currentEvents = getCurrentEvents$1(state);
2450
- if (currentEvents.length === 0) {
2451
- return -1;
2452
- }
2453
- const tableX = state.x + leftPadding;
2454
- const tableWidth = clampTableWidth(state.width, state.tableWidth);
2455
- const hasTimeline = currentEvents.length > 0;
2456
- const tableBodyY = getTableBodyY(state, hasTimeline);
2457
- const relativeX = eventX - tableX;
2458
- const relativeY = eventY - tableBodyY;
2459
- if (relativeX < 0 || relativeX >= tableWidth || relativeY < 0) {
2460
- return -1;
2461
- }
2462
- const eventIndex = Math.floor(relativeY / devtoolsTableRowHeight);
2463
- if (eventIndex < 0 || eventIndex >= currentEvents.length) {
2464
- return -1;
2465
- }
2466
- return eventIndex;
2467
- };
2468
- const handleTableBodyContextMenu = async (state, eventX, eventY) => {
2469
- const eventIndex = getTableBodyEventIndex(state, eventX, eventY);
2470
- await showContextMenu2(state.uid, MenuChatDebugTableBody, eventX, eventY, {
2471
- eventIndex,
2472
- menuId: MenuChatDebugTableBody
2473
- });
2474
- return state;
2475
- };
2476
-
2477
2451
  const clearTimelineSelectionState = state => {
2478
2452
  return {
2479
2453
  ...state,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/chat-debug-view",
3
- "version": "7.1.0",
3
+ "version": "7.3.0",
4
4
  "description": "Chat Debug View Worker",
5
5
  "repository": {
6
6
  "type": "git",