@lvce-editor/chat-debug-view 10.16.0 → 10.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chatDebugViewWorkerMain.js +258 -63
- package/package.json +1 -1
|
@@ -1471,6 +1471,7 @@ const FailedToLoadChatDebugSession = 'Failed to load chat debug session "{PH1}".
|
|
|
1471
1471
|
const FailedToLoadChatDebugSessionWithError = 'Failed to load chat debug session "{PH1}": {PH2}';
|
|
1472
1472
|
const FilterEvents = 'Filter events';
|
|
1473
1473
|
const FromSeconds = 'from {PH1}s';
|
|
1474
|
+
const General = 'General';
|
|
1474
1475
|
const Headers = 'Headers';
|
|
1475
1476
|
const ImageCouldNotBeLoaded = 'image could not be loaded';
|
|
1476
1477
|
const InputTokens = 'Input Tokens';
|
|
@@ -1492,10 +1493,15 @@ const Preview = 'Preview';
|
|
|
1492
1493
|
const Refresh = 'Refresh';
|
|
1493
1494
|
const RefreshEvents = 'Refresh events';
|
|
1494
1495
|
const ResetColumns = 'Reset columns';
|
|
1496
|
+
const RequestHeaders = 'Request Headers';
|
|
1497
|
+
const RequestMethod = 'Request Method';
|
|
1498
|
+
const RequestUrl = 'Request URL';
|
|
1495
1499
|
const Response = 'Response';
|
|
1500
|
+
const ResponseHeaders = 'Response Headers';
|
|
1496
1501
|
const SecondsRange = '{PH1}s-{PH2}s';
|
|
1497
1502
|
const Started = 'Started';
|
|
1498
1503
|
const Status$2 = 'Status';
|
|
1504
|
+
const StatusCode = 'Status Code';
|
|
1499
1505
|
const Stream = 'Stream';
|
|
1500
1506
|
const TableSummaryPlural = '{PH1} events, {PH2} from start to finish';
|
|
1501
1507
|
const TableSummarySingular = '{PH1} event, {PH2} from start to finish';
|
|
@@ -1556,6 +1562,9 @@ const fromSeconds = seconds => {
|
|
|
1556
1562
|
PH1: seconds
|
|
1557
1563
|
});
|
|
1558
1564
|
};
|
|
1565
|
+
const general = () => {
|
|
1566
|
+
return i18nString(General);
|
|
1567
|
+
};
|
|
1559
1568
|
const headers = () => {
|
|
1560
1569
|
return i18nString(Headers);
|
|
1561
1570
|
};
|
|
@@ -1617,6 +1626,18 @@ const refresh$1 = () => {
|
|
|
1617
1626
|
const refreshEvents$1 = () => {
|
|
1618
1627
|
return i18nString(RefreshEvents);
|
|
1619
1628
|
};
|
|
1629
|
+
const requestHeaders = () => {
|
|
1630
|
+
return i18nString(RequestHeaders);
|
|
1631
|
+
};
|
|
1632
|
+
const requestMethod = () => {
|
|
1633
|
+
return i18nString(RequestMethod);
|
|
1634
|
+
};
|
|
1635
|
+
const requestUrl = () => {
|
|
1636
|
+
return i18nString(RequestUrl);
|
|
1637
|
+
};
|
|
1638
|
+
const responseHeaders = () => {
|
|
1639
|
+
return i18nString(ResponseHeaders);
|
|
1640
|
+
};
|
|
1620
1641
|
const resetColumns = () => {
|
|
1621
1642
|
return i18nString(ResetColumns);
|
|
1622
1643
|
};
|
|
@@ -1635,6 +1656,9 @@ const started = () => {
|
|
|
1635
1656
|
const stream = () => {
|
|
1636
1657
|
return i18nString(Stream);
|
|
1637
1658
|
};
|
|
1659
|
+
const statusCode = () => {
|
|
1660
|
+
return i18nString(StatusCode);
|
|
1661
|
+
};
|
|
1638
1662
|
const timing = () => {
|
|
1639
1663
|
return i18nString(Timing);
|
|
1640
1664
|
};
|
|
@@ -2071,7 +2095,13 @@ const isHeadersRecord$1 = value => {
|
|
|
2071
2095
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
2072
2096
|
};
|
|
2073
2097
|
const hasHeadersDetails = event => {
|
|
2074
|
-
|
|
2098
|
+
if (event.type !== 'ai-request') {
|
|
2099
|
+
return false;
|
|
2100
|
+
}
|
|
2101
|
+
if (isHeadersRecord$1(event.headers)) {
|
|
2102
|
+
return true;
|
|
2103
|
+
}
|
|
2104
|
+
return isHeadersRecord$1(event.endValue) && isHeadersRecord$1(event.endValue.headers);
|
|
2075
2105
|
};
|
|
2076
2106
|
|
|
2077
2107
|
const hasTimingDetails = event => {
|
|
@@ -2082,6 +2112,11 @@ const hasTimingDetails = event => {
|
|
|
2082
2112
|
};
|
|
2083
2113
|
|
|
2084
2114
|
const getResponseEvent = event => {
|
|
2115
|
+
// @ts-ignore
|
|
2116
|
+
if (event && event.endValue && event.endValue.value) {
|
|
2117
|
+
// @ts-ignore
|
|
2118
|
+
return event.endValue.value;
|
|
2119
|
+
}
|
|
2085
2120
|
const {
|
|
2086
2121
|
responseEvent
|
|
2087
2122
|
} = event;
|
|
@@ -2713,6 +2748,9 @@ const getFilteredEvents = (events, filterValue, eventCategoryFilters, showInputE
|
|
|
2713
2748
|
};
|
|
2714
2749
|
|
|
2715
2750
|
const getDurationText = event => {
|
|
2751
|
+
if (event.time) {
|
|
2752
|
+
return event.time;
|
|
2753
|
+
}
|
|
2716
2754
|
const explicitDuration = event.durationMs ?? event.duration;
|
|
2717
2755
|
if (typeof explicitDuration === 'number' && Number.isFinite(explicitDuration)) {
|
|
2718
2756
|
return `${explicitDuration}ms`;
|
|
@@ -2888,7 +2926,12 @@ const getSelectedDetailTab = detailTabs => {
|
|
|
2888
2926
|
return detailTabs[0]?.name ?? Response$1;
|
|
2889
2927
|
};
|
|
2890
2928
|
|
|
2891
|
-
const loadSelectedEvent = async (
|
|
2929
|
+
const loadSelectedEvent = async ({
|
|
2930
|
+
endEventId,
|
|
2931
|
+
eventId,
|
|
2932
|
+
sessionId,
|
|
2933
|
+
type
|
|
2934
|
+
}) => {
|
|
2892
2935
|
const raw = await loadSelectedEvent$1(sessionId, eventId, type);
|
|
2893
2936
|
if (endEventId && endEventId !== -1) {
|
|
2894
2937
|
const end = await loadSelectedEvent$1(sessionId, endEventId, type);
|
|
@@ -3158,12 +3201,8 @@ const withPreparedSelectedEventPreview = async event => {
|
|
|
3158
3201
|
|
|
3159
3202
|
const selectEventAtIndex = async (state, selectedEventIndex) => {
|
|
3160
3203
|
const {
|
|
3161
|
-
databaseName,
|
|
3162
|
-
dataBaseVersion,
|
|
3163
3204
|
detailTabs,
|
|
3164
|
-
|
|
3165
|
-
sessionId,
|
|
3166
|
-
sessionIdIndexName
|
|
3205
|
+
sessionId
|
|
3167
3206
|
} = state;
|
|
3168
3207
|
const selectedDetailTab = getSelectedDetailTab(detailTabs);
|
|
3169
3208
|
const currentEvents = getCurrentEvents$1(state);
|
|
@@ -3184,9 +3223,13 @@ const selectEventAtIndex = async (state, selectedEventIndex) => {
|
|
|
3184
3223
|
selectedEventIndex
|
|
3185
3224
|
};
|
|
3186
3225
|
}
|
|
3187
|
-
const selectedEventDetails = await loadSelectedEvent(
|
|
3188
|
-
|
|
3189
|
-
|
|
3226
|
+
const selectedEventDetails = await loadSelectedEvent({
|
|
3227
|
+
// @ts-ignore
|
|
3228
|
+
endEventId: selectedEvent['eventEndId'] || 0,
|
|
3229
|
+
eventId: selectedEvent.eventId,
|
|
3230
|
+
sessionId,
|
|
3231
|
+
type: selectedEvent.type
|
|
3232
|
+
});
|
|
3190
3233
|
const resolvedSelectedEvent = await withPreparedSelectedEventPreview(mergeSelectedEventDetails(selectedEvent, selectedEventDetails));
|
|
3191
3234
|
return withSelectedEventVisible({
|
|
3192
3235
|
...state,
|
|
@@ -3371,6 +3414,47 @@ const getResponseMap = events => {
|
|
|
3371
3414
|
return seen;
|
|
3372
3415
|
};
|
|
3373
3416
|
|
|
3417
|
+
const getMergedRequestResponseEvent = (item, response) => {
|
|
3418
|
+
const parsedStart = new Date(item.timestamp || '');
|
|
3419
|
+
const parsedEnd = new Date(response.timestamp || '');
|
|
3420
|
+
const durationMs = parsedEnd.getTime() - parsedStart.getTime();
|
|
3421
|
+
const started = getStartedTimestamp(item);
|
|
3422
|
+
const ended = getEndedTimestamp(response);
|
|
3423
|
+
const timestamp = item.timestamp ?? started;
|
|
3424
|
+
if (Number.isFinite(durationMs) && durationMs >= 0) {
|
|
3425
|
+
return {
|
|
3426
|
+
durationMs,
|
|
3427
|
+
...(ended === undefined ? {} : {
|
|
3428
|
+
ended
|
|
3429
|
+
}),
|
|
3430
|
+
eventEndId: response.eventId,
|
|
3431
|
+
eventId: item.eventId,
|
|
3432
|
+
method: 'POST',
|
|
3433
|
+
...(started === undefined ? {} : {
|
|
3434
|
+
started
|
|
3435
|
+
}),
|
|
3436
|
+
...(timestamp === undefined ? {} : {
|
|
3437
|
+
timestamp
|
|
3438
|
+
}),
|
|
3439
|
+
type: 'ai-request-response'
|
|
3440
|
+
};
|
|
3441
|
+
}
|
|
3442
|
+
return {
|
|
3443
|
+
...(ended === undefined ? {} : {
|
|
3444
|
+
ended
|
|
3445
|
+
}),
|
|
3446
|
+
eventEndId: response.eventId,
|
|
3447
|
+
eventId: item.eventId,
|
|
3448
|
+
method: 'POST',
|
|
3449
|
+
...(started === undefined ? {} : {
|
|
3450
|
+
started
|
|
3451
|
+
}),
|
|
3452
|
+
...(timestamp === undefined ? {} : {
|
|
3453
|
+
timestamp
|
|
3454
|
+
}),
|
|
3455
|
+
type: 'ai-request-response'
|
|
3456
|
+
};
|
|
3457
|
+
};
|
|
3374
3458
|
const toPrettyEvents = rawEvents => {
|
|
3375
3459
|
if (rawEvents.type === 'error') {
|
|
3376
3460
|
return [];
|
|
@@ -3381,11 +3465,7 @@ const toPrettyEvents = rawEvents => {
|
|
|
3381
3465
|
if (item.type === 'ai-request' && 'requestId' in item && typeof item.requestId === 'string') {
|
|
3382
3466
|
const response = map[item.requestId];
|
|
3383
3467
|
if (response) {
|
|
3384
|
-
pretty.push(
|
|
3385
|
-
eventEndId: response.eventId,
|
|
3386
|
-
eventId: item.eventId,
|
|
3387
|
-
type: 'ai-request-response'
|
|
3388
|
-
});
|
|
3468
|
+
pretty.push(getMergedRequestResponseEvent(item, response));
|
|
3389
3469
|
} else {
|
|
3390
3470
|
pretty.push(item);
|
|
3391
3471
|
}
|
|
@@ -3625,7 +3705,11 @@ const restoreSelectedEvent = async state => {
|
|
|
3625
3705
|
selectedEventIndex: null
|
|
3626
3706
|
};
|
|
3627
3707
|
}
|
|
3628
|
-
const selectedEventDetails = await loadEventsDependencies.loadSelectedEvent(
|
|
3708
|
+
const selectedEventDetails = await loadEventsDependencies.loadSelectedEvent({
|
|
3709
|
+
eventId: selectedEvent.eventId,
|
|
3710
|
+
sessionId: state.sessionId,
|
|
3711
|
+
type: selectedEvent.type
|
|
3712
|
+
});
|
|
3629
3713
|
const resolvedSelectedEvent = await withPreparedSelectedEventPreview(mergeSelectedEventDetails(selectedEvent, selectedEventDetails));
|
|
3630
3714
|
return {
|
|
3631
3715
|
...state,
|
|
@@ -5212,6 +5296,24 @@ const getCss = state => {
|
|
|
5212
5296
|
width: 100%;
|
|
5213
5297
|
}
|
|
5214
5298
|
|
|
5299
|
+
.ChatDebugViewHeadersSection {
|
|
5300
|
+
display: flex;
|
|
5301
|
+
flex-direction: column;
|
|
5302
|
+
}
|
|
5303
|
+
|
|
5304
|
+
.ChatDebugViewHeadersSection + .ChatDebugViewHeadersSection {
|
|
5305
|
+
margin-top: 16px;
|
|
5306
|
+
}
|
|
5307
|
+
|
|
5308
|
+
.ChatDebugViewHeadersSectionHeading {
|
|
5309
|
+
color: var(--vscode-descriptionForeground, rgba(255, 255, 255, 0.7));
|
|
5310
|
+
font-size: 11px;
|
|
5311
|
+
font-weight: 600;
|
|
5312
|
+
letter-spacing: 0.08em;
|
|
5313
|
+
margin-bottom: 6px;
|
|
5314
|
+
text-transform: uppercase;
|
|
5315
|
+
}
|
|
5316
|
+
|
|
5215
5317
|
.ChatDebugViewHeadersCell {
|
|
5216
5318
|
border-bottom: 1px solid var(--vscode-panel-border, rgba(255, 255, 255, 0.12));
|
|
5217
5319
|
color: var(--vscode-editor-foreground);
|
|
@@ -5647,6 +5749,8 @@ const ChatDebugViewHeadersHead = 'ChatDebugViewHeadersHead';
|
|
|
5647
5749
|
const ChatDebugViewHeadersRow = 'ChatDebugViewHeadersRow';
|
|
5648
5750
|
const ChatDebugViewHeadersRowEven = 'ChatDebugViewHeadersRowEven';
|
|
5649
5751
|
const ChatDebugViewHeadersRowOdd = 'ChatDebugViewHeadersRowOdd';
|
|
5752
|
+
const ChatDebugViewHeadersSection = 'ChatDebugViewHeadersSection';
|
|
5753
|
+
const ChatDebugViewHeadersSectionHeading = 'ChatDebugViewHeadersSectionHeading';
|
|
5650
5754
|
const ChatDebugViewHeadersTable = 'ChatDebugViewHeadersTable';
|
|
5651
5755
|
const ChatDebugViewDevtoolsSplit = 'ChatDebugViewDevtoolsSplit';
|
|
5652
5756
|
const ChatDebugViewEmpty = 'ChatDebugViewEmpty';
|
|
@@ -5923,22 +6027,22 @@ const getDetailContentDom = (selectedDetailTab, safeSelectedDetailTab, contentNo
|
|
|
5923
6027
|
}, ...contentNodes];
|
|
5924
6028
|
};
|
|
5925
6029
|
|
|
5926
|
-
const
|
|
5927
|
-
'aria-label': closeDetails(),
|
|
5928
|
-
childCount: 1,
|
|
5929
|
-
className: ChatDebugViewDetailsClose,
|
|
5930
|
-
name: CloseDetails$1,
|
|
5931
|
-
onChange: HandleCloseDetails,
|
|
5932
|
-
onClick: HandleCloseDetails,
|
|
5933
|
-
type: Button$1,
|
|
5934
|
-
value: 'close'
|
|
5935
|
-
}, {
|
|
6030
|
+
const icon = {
|
|
5936
6031
|
childCount: 0,
|
|
5937
6032
|
className: 'MaskIcon MaskIconClose',
|
|
5938
6033
|
type: Div
|
|
5939
|
-
}
|
|
6034
|
+
};
|
|
5940
6035
|
const getDetailsCloseButtonDom = () => {
|
|
5941
|
-
return
|
|
6036
|
+
return [{
|
|
6037
|
+
'aria-label': closeDetails(),
|
|
6038
|
+
childCount: 1,
|
|
6039
|
+
className: ChatDebugViewDetailsClose,
|
|
6040
|
+
name: CloseDetails$1,
|
|
6041
|
+
onChange: HandleCloseDetails,
|
|
6042
|
+
onClick: HandleCloseDetails,
|
|
6043
|
+
type: Button$1,
|
|
6044
|
+
value: 'close'
|
|
6045
|
+
}, icon];
|
|
5942
6046
|
};
|
|
5943
6047
|
|
|
5944
6048
|
const getDetailTabDom = detailTab => {
|
|
@@ -5970,13 +6074,14 @@ const getTabNodes = detailTabs => {
|
|
|
5970
6074
|
}, ...detailTabs.flatMap(getDetailTabDom)];
|
|
5971
6075
|
};
|
|
5972
6076
|
|
|
6077
|
+
const parentNode = {
|
|
6078
|
+
childCount: 2,
|
|
6079
|
+
className: ChatDebugViewDetailsTop,
|
|
6080
|
+
onContextMenu: HandleDetailsTopContextMenu,
|
|
6081
|
+
type: Div
|
|
6082
|
+
};
|
|
5973
6083
|
const getDetailsTopVirtualDom = detailTabs => {
|
|
5974
|
-
return [
|
|
5975
|
-
childCount: 2,
|
|
5976
|
-
className: ChatDebugViewDetailsTop,
|
|
5977
|
-
onContextMenu: HandleDetailsTopContextMenu,
|
|
5978
|
-
type: Div
|
|
5979
|
-
}, ...getDetailsCloseButtonDom(), ...getTabNodes(detailTabs)];
|
|
6084
|
+
return [parentNode, ...getDetailsCloseButtonDom(), ...getTabNodes(detailTabs)];
|
|
5980
6085
|
};
|
|
5981
6086
|
|
|
5982
6087
|
const getNormalizedDetailTabs = (selectedEvent, detailTabs) => {
|
|
@@ -5989,6 +6094,25 @@ const getNormalizedDetailTabs = (selectedEvent, detailTabs) => {
|
|
|
5989
6094
|
const isHeadersRecord = value => {
|
|
5990
6095
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
5991
6096
|
};
|
|
6097
|
+
const isNonEmptyString = value => {
|
|
6098
|
+
return typeof value === 'string' && value.length > 0;
|
|
6099
|
+
};
|
|
6100
|
+
const getStatusCodeValue = selectedEvent => {
|
|
6101
|
+
if (!selectedEvent) {
|
|
6102
|
+
return undefined;
|
|
6103
|
+
}
|
|
6104
|
+
const endValue = isHeadersRecord(selectedEvent.endValue) ? selectedEvent.endValue : undefined;
|
|
6105
|
+
if (endValue?.statusCode !== undefined) {
|
|
6106
|
+
return endValue.statusCode;
|
|
6107
|
+
}
|
|
6108
|
+
if (selectedEvent.statusCode !== undefined) {
|
|
6109
|
+
return selectedEvent.statusCode;
|
|
6110
|
+
}
|
|
6111
|
+
if (selectedEvent.type === 'ai-request' || selectedEvent.type === 'ai-response') {
|
|
6112
|
+
return getStatusText(selectedEvent);
|
|
6113
|
+
}
|
|
6114
|
+
return undefined;
|
|
6115
|
+
};
|
|
5992
6116
|
const stringifyHeaderValue = value => {
|
|
5993
6117
|
try {
|
|
5994
6118
|
return JSON.stringify(value, (_key, nestedValue) => {
|
|
@@ -6022,11 +6146,28 @@ const getHeaderValueText = value => {
|
|
|
6022
6146
|
}
|
|
6023
6147
|
return stringifyHeaderValue(value);
|
|
6024
6148
|
};
|
|
6025
|
-
const getHeaders =
|
|
6026
|
-
if (
|
|
6149
|
+
const getHeaders = value => {
|
|
6150
|
+
if (!isHeadersRecord(value)) {
|
|
6027
6151
|
return [];
|
|
6028
6152
|
}
|
|
6029
|
-
return Object.entries(
|
|
6153
|
+
return Object.entries(value);
|
|
6154
|
+
};
|
|
6155
|
+
const getGeneralEntries = selectedEvent => {
|
|
6156
|
+
if (!selectedEvent) {
|
|
6157
|
+
return [];
|
|
6158
|
+
}
|
|
6159
|
+
const entries = [];
|
|
6160
|
+
if (isNonEmptyString(selectedEvent.url)) {
|
|
6161
|
+
entries.push([requestUrl(), selectedEvent.url]);
|
|
6162
|
+
}
|
|
6163
|
+
if (isNonEmptyString(selectedEvent.method)) {
|
|
6164
|
+
entries.push([requestMethod(), selectedEvent.method]);
|
|
6165
|
+
}
|
|
6166
|
+
const statusCode$1 = getStatusCodeValue(selectedEvent);
|
|
6167
|
+
if (statusCode$1 !== undefined && statusCode$1 !== '') {
|
|
6168
|
+
entries.push([statusCode(), statusCode$1]);
|
|
6169
|
+
}
|
|
6170
|
+
return entries;
|
|
6030
6171
|
};
|
|
6031
6172
|
const getHeaderRowNodes = (headerName, headerValue, index) => {
|
|
6032
6173
|
return [{
|
|
@@ -6043,11 +6184,7 @@ const getHeaderRowNodes = (headerName, headerValue, index) => {
|
|
|
6043
6184
|
type: Td
|
|
6044
6185
|
}, text(getHeaderValueText(headerValue))];
|
|
6045
6186
|
};
|
|
6046
|
-
const
|
|
6047
|
-
const headers = getHeaders(selectedEvent);
|
|
6048
|
-
if (headers.length === 0) {
|
|
6049
|
-
return responseEventNodes;
|
|
6050
|
-
}
|
|
6187
|
+
const getHeadersTableNodes = headers => {
|
|
6051
6188
|
const headerRows = [];
|
|
6052
6189
|
for (const [index, [headerName, headerValue]] of headers.entries()) {
|
|
6053
6190
|
headerRows.push(...getHeaderRowNodes(headerName, headerValue, index));
|
|
@@ -6078,6 +6215,36 @@ const getHeadersContentNodes = (responseEventNodes, selectedEvent) => {
|
|
|
6078
6215
|
type: TBody
|
|
6079
6216
|
}, ...headerRows];
|
|
6080
6217
|
};
|
|
6218
|
+
const getHeaderSectionNodes = (label, headers) => {
|
|
6219
|
+
return [{
|
|
6220
|
+
childCount: 2,
|
|
6221
|
+
className: ChatDebugViewHeadersSection,
|
|
6222
|
+
type: Div
|
|
6223
|
+
}, {
|
|
6224
|
+
childCount: 1,
|
|
6225
|
+
className: ChatDebugViewHeadersSectionHeading,
|
|
6226
|
+
type: Div
|
|
6227
|
+
}, text(label), ...getHeadersTableNodes(headers)];
|
|
6228
|
+
};
|
|
6229
|
+
const getHeadersContentNodes = (responseEventNodes, selectedEvent) => {
|
|
6230
|
+
const generalEntries = getGeneralEntries(selectedEvent);
|
|
6231
|
+
const requestHeaders$1 = getHeaders(selectedEvent?.headers);
|
|
6232
|
+
const responseHeaders$1 = getHeaders(isHeadersRecord(selectedEvent?.endValue) ? selectedEvent.endValue.headers : undefined);
|
|
6233
|
+
if (generalEntries.length === 0 && requestHeaders$1.length === 0 && responseHeaders$1.length === 0) {
|
|
6234
|
+
return responseEventNodes;
|
|
6235
|
+
}
|
|
6236
|
+
const nodes = [];
|
|
6237
|
+
if (generalEntries.length > 0) {
|
|
6238
|
+
nodes.push(...getHeaderSectionNodes(general(), generalEntries));
|
|
6239
|
+
}
|
|
6240
|
+
if (requestHeaders$1.length > 0) {
|
|
6241
|
+
nodes.push(...getHeaderSectionNodes(requestHeaders(), requestHeaders$1));
|
|
6242
|
+
}
|
|
6243
|
+
if (responseHeaders$1.length > 0) {
|
|
6244
|
+
nodes.push(...getHeaderSectionNodes(responseHeaders(), responseHeaders$1));
|
|
6245
|
+
}
|
|
6246
|
+
return nodes;
|
|
6247
|
+
};
|
|
6081
6248
|
|
|
6082
6249
|
const getEditorRowDom = line => {
|
|
6083
6250
|
return [{
|
|
@@ -6963,7 +7130,13 @@ const getTextEvent = (previewEvent, selectedEvent, previewTextCursor, virtualiza
|
|
|
6963
7130
|
const showLineNumbers = !isInvalidImageMessage && !isChatMessageUpdatedPreview;
|
|
6964
7131
|
return getTextNode(previewEvent, showLineNumbers, showLineNumbers ? previewTextCursor ?? null : null, undefined, virtualization);
|
|
6965
7132
|
};
|
|
7133
|
+
const isOpenAiRequestPreviewEvent = previewEvent => {
|
|
7134
|
+
return isRecord(previewEvent) && previewEvent.type === 'ai-request' && isRecord(previewEvent.endValue) && isRecord(previewEvent.endValue.value) && typeof previewEvent.endValue.value.output_text === 'string';
|
|
7135
|
+
};
|
|
6966
7136
|
const getPreviewEventNodes = (previewEvent, selectedEvent, previewTextCursor, virtualization) => {
|
|
7137
|
+
if (isOpenAiRequestPreviewEvent(previewEvent)) {
|
|
7138
|
+
return getTextEvent(previewEvent.endValue.value.output_text);
|
|
7139
|
+
}
|
|
6967
7140
|
if (typeof previewEvent === 'string') {
|
|
6968
7141
|
return getTextEvent(previewEvent, selectedEvent, previewTextCursor, virtualization);
|
|
6969
7142
|
}
|
|
@@ -7196,10 +7369,22 @@ const getDetailsDom = (previewEventNodes, payloadEventNodes = previewEventNodes,
|
|
|
7196
7369
|
}, ...getDetailsTopVirtualDom(normalizedDetailTabs), ...getDetailContentDom(selectedDetailTab, safeSelectedDetailTab, contentNodes)];
|
|
7197
7370
|
};
|
|
7198
7371
|
|
|
7372
|
+
const td$1 = {
|
|
7373
|
+
childCount: 1,
|
|
7374
|
+
className: mergeClassNames(TableCell, ChatDebugViewCellDuration),
|
|
7375
|
+
type: Td
|
|
7376
|
+
};
|
|
7377
|
+
const getCellDurationDom = event => {
|
|
7378
|
+
return [td$1, text(getEventTableDurationText(event))];
|
|
7379
|
+
};
|
|
7380
|
+
|
|
7199
7381
|
const getMethods = new Set(['list_dir', 'list_files', 'read_file']);
|
|
7200
7382
|
const postMethods = new Set(['create_directory', 'create_file', 'mkdir', 'write_file']);
|
|
7201
7383
|
const deleteMethods = new Set(['delete_directory', 'delete_file', 'delete_folder', 'remove_directory', 'remove_file', 'remove_folder']);
|
|
7202
7384
|
const getEventTableMethodLabel = event => {
|
|
7385
|
+
if (event.method) {
|
|
7386
|
+
return event.method;
|
|
7387
|
+
}
|
|
7203
7388
|
const toolName = getToolName(event);
|
|
7204
7389
|
if (!toolName) {
|
|
7205
7390
|
return '';
|
|
@@ -7216,36 +7401,46 @@ const getEventTableMethodLabel = event => {
|
|
|
7216
7401
|
return '';
|
|
7217
7402
|
};
|
|
7218
7403
|
|
|
7404
|
+
const td = {
|
|
7405
|
+
childCount: 1,
|
|
7406
|
+
className: TableCell,
|
|
7407
|
+
type: Td
|
|
7408
|
+
};
|
|
7409
|
+
const getCellMethodDom = event => {
|
|
7410
|
+
return [td, text(getEventTableMethodLabel(event))];
|
|
7411
|
+
};
|
|
7412
|
+
|
|
7413
|
+
const getCellStatusDom = (event, isErrorStatus) => {
|
|
7414
|
+
return [{
|
|
7415
|
+
childCount: 1,
|
|
7416
|
+
className: mergeClassNames(TableCell, isErrorStatus ? ChatDebugViewCellStatusError : ''),
|
|
7417
|
+
type: Td
|
|
7418
|
+
}, text(getStatusText(event))];
|
|
7419
|
+
};
|
|
7420
|
+
|
|
7421
|
+
const getCellTypeDom = event => {
|
|
7422
|
+
return [{
|
|
7423
|
+
childCount: 1,
|
|
7424
|
+
className: TableCell,
|
|
7425
|
+
type: Td
|
|
7426
|
+
}, text(getEventTableTypeLabel(event))];
|
|
7427
|
+
};
|
|
7428
|
+
|
|
7219
7429
|
const getTableCellDom = (column, event, isErrorStatus) => {
|
|
7220
7430
|
switch (column) {
|
|
7221
7431
|
case Duration:
|
|
7222
|
-
return
|
|
7223
|
-
childCount: 1,
|
|
7224
|
-
className: mergeClassNames(TableCell, ChatDebugViewCellDuration),
|
|
7225
|
-
type: Td
|
|
7226
|
-
}, text(getEventTableDurationText(event))];
|
|
7432
|
+
return getCellDurationDom(event);
|
|
7227
7433
|
case Method:
|
|
7228
|
-
return
|
|
7229
|
-
childCount: 1,
|
|
7230
|
-
className: TableCell,
|
|
7231
|
-
type: Td
|
|
7232
|
-
}, text(getEventTableMethodLabel(event))];
|
|
7434
|
+
return getCellMethodDom(event);
|
|
7233
7435
|
case Status$1:
|
|
7234
|
-
return
|
|
7235
|
-
childCount: 1,
|
|
7236
|
-
className: mergeClassNames(TableCell, isErrorStatus ? ChatDebugViewCellStatusError : ''),
|
|
7237
|
-
type: Td
|
|
7238
|
-
}, text(getStatusText(event))];
|
|
7436
|
+
return getCellStatusDom(event, isErrorStatus);
|
|
7239
7437
|
case Type:
|
|
7240
|
-
return
|
|
7241
|
-
childCount: 1,
|
|
7242
|
-
className: TableCell,
|
|
7243
|
-
type: Td
|
|
7244
|
-
}, text(getEventTableTypeLabel(event))];
|
|
7438
|
+
return getCellTypeDom(event);
|
|
7245
7439
|
default:
|
|
7246
7440
|
return [];
|
|
7247
7441
|
}
|
|
7248
7442
|
};
|
|
7443
|
+
|
|
7249
7444
|
const getRowCellNodes = (event, isErrorStatus, visibleTableColumns) => {
|
|
7250
7445
|
const orderedVisibleTableColumns = getOrderedVisibleTableColumns(visibleTableColumns);
|
|
7251
7446
|
return orderedVisibleTableColumns.flatMap(column => {
|
|
@@ -8026,7 +8221,7 @@ const renderEventListeners = () => {
|
|
|
8026
8221
|
params: ['handleTimelineDoubleClick']
|
|
8027
8222
|
}, {
|
|
8028
8223
|
name: HandlePreviewTextPointerDown,
|
|
8029
|
-
params: ['handlePreviewTextPointerDown'
|
|
8224
|
+
params: ['handlePreviewTextPointerDown']
|
|
8030
8225
|
}];
|
|
8031
8226
|
};
|
|
8032
8227
|
|