@lvce-editor/chat-debug-view 10.20.0 → 10.21.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 +141 -64
- package/package.json +1 -1
|
@@ -1441,6 +1441,7 @@ const TimelineStartSeconds = 'timelineStartSeconds';
|
|
|
1441
1441
|
const TimelineEndSeconds = 'timelineEndSeconds';
|
|
1442
1442
|
const TimelineRangePreset = 'timelineRangePreset';
|
|
1443
1443
|
const Refresh$1 = 'refresh';
|
|
1444
|
+
const ToggleHeadersSection = 'toggleHeadersSection';
|
|
1444
1445
|
const All$1 = 'all';
|
|
1445
1446
|
const Tools$1 = 'tools';
|
|
1446
1447
|
const Network$1 = 'network';
|
|
@@ -1476,7 +1477,7 @@ const FailedToLoadChatDebugSession = 'Failed to load chat debug session "{PH1}".
|
|
|
1476
1477
|
const FailedToLoadChatDebugSessionWithError = 'Failed to load chat debug session "{PH1}": {PH2}';
|
|
1477
1478
|
const FilterEvents = 'Filter events';
|
|
1478
1479
|
const FromSeconds = 'from {PH1}s';
|
|
1479
|
-
const General = 'General';
|
|
1480
|
+
const General$1 = 'General';
|
|
1480
1481
|
const Headers = 'Headers';
|
|
1481
1482
|
const ImageCouldNotBeLoaded = 'image could not be loaded';
|
|
1482
1483
|
const InputTokens = 'Input Tokens';
|
|
@@ -1497,11 +1498,11 @@ const Preview = 'Preview';
|
|
|
1497
1498
|
const Refresh = 'Refresh';
|
|
1498
1499
|
const RefreshEvents = 'Refresh events';
|
|
1499
1500
|
const ResetColumns = 'Reset columns';
|
|
1500
|
-
const RequestHeaders = 'Request Headers';
|
|
1501
|
+
const RequestHeaders$1 = 'Request Headers';
|
|
1501
1502
|
const RequestMethod = 'Request Method';
|
|
1502
1503
|
const RequestUrl = 'Request URL';
|
|
1503
1504
|
const Response = 'Response';
|
|
1504
|
-
const ResponseHeaders = 'Response Headers';
|
|
1505
|
+
const ResponseHeaders$1 = 'Response Headers';
|
|
1505
1506
|
const SecondsRange = '{PH1}s-{PH2}s';
|
|
1506
1507
|
const Size$1 = 'Size';
|
|
1507
1508
|
const Started = 'Started';
|
|
@@ -1567,7 +1568,7 @@ const fromSeconds = seconds => {
|
|
|
1567
1568
|
});
|
|
1568
1569
|
};
|
|
1569
1570
|
const general = () => {
|
|
1570
|
-
return i18nString(General);
|
|
1571
|
+
return i18nString(General$1);
|
|
1571
1572
|
};
|
|
1572
1573
|
const headers = () => {
|
|
1573
1574
|
return i18nString(Headers);
|
|
@@ -1628,7 +1629,7 @@ const refreshEvents$1 = () => {
|
|
|
1628
1629
|
return i18nString(RefreshEvents);
|
|
1629
1630
|
};
|
|
1630
1631
|
const requestHeaders = () => {
|
|
1631
|
-
return i18nString(RequestHeaders);
|
|
1632
|
+
return i18nString(RequestHeaders$1);
|
|
1632
1633
|
};
|
|
1633
1634
|
const requestMethod = () => {
|
|
1634
1635
|
return i18nString(RequestMethod);
|
|
@@ -1637,7 +1638,7 @@ const requestUrl = () => {
|
|
|
1637
1638
|
return i18nString(RequestUrl);
|
|
1638
1639
|
};
|
|
1639
1640
|
const responseHeaders = () => {
|
|
1640
|
-
return i18nString(ResponseHeaders);
|
|
1641
|
+
return i18nString(ResponseHeaders$1);
|
|
1641
1642
|
};
|
|
1642
1643
|
const resetColumns = () => {
|
|
1643
1644
|
return i18nString(ResetColumns);
|
|
@@ -2441,6 +2442,7 @@ const createDefaultState = () => {
|
|
|
2441
2442
|
return {
|
|
2442
2443
|
assetDir: '',
|
|
2443
2444
|
categoryFilters: createCategoryFilters(),
|
|
2445
|
+
collapsedHeaderSections: [],
|
|
2444
2446
|
databaseName: 'lvce-chat-view-sessions',
|
|
2445
2447
|
dataBaseVersion: 2,
|
|
2446
2448
|
defaultTableWidth,
|
|
@@ -2540,7 +2542,7 @@ const RenderFocusContext = 4;
|
|
|
2540
2542
|
const RenderFocus = 5;
|
|
2541
2543
|
|
|
2542
2544
|
const diff = (oldState, newState) => {
|
|
2543
|
-
if (oldState.categoryFilters !== newState.categoryFilters || oldState.detailTabs !== newState.detailTabs || oldState.errorMessage !== newState.errorMessage || oldState.events !== newState.events || oldState.filterValue !== newState.filterValue || oldState.previewTextCursorColumnIndex !== newState.previewTextCursorColumnIndex || oldState.previewTextCursorRowIndex !== newState.previewTextCursorRowIndex || oldState.previewTextDeltaY !== newState.previewTextDeltaY || oldState.sessionId !== newState.sessionId || oldState.showEventStreamFinishedEvents !== newState.showEventStreamFinishedEvents || oldState.showInputEvents !== newState.showInputEvents || oldState.showResponsePartEvents !== newState.showResponsePartEvents || oldState.sortColumn !== newState.sortColumn || oldState.sortDescending !== newState.sortDescending || oldState.tableColumnWidths !== newState.tableColumnWidths || oldState.tableDeltaY !== newState.tableDeltaY || oldState.tableMaxLineY !== newState.tableMaxLineY || oldState.tableMinLineY !== newState.tableMinLineY || oldState.tableWidth !== newState.tableWidth || oldState.timelineEndSeconds !== newState.timelineEndSeconds || oldState.timelineHeight !== newState.timelineHeight || oldState.timelineHoverPercent !== newState.timelineHoverPercent || oldState.timelineHoverSeconds !== newState.timelineHoverSeconds || oldState.timelineSelectionActive !== newState.timelineSelectionActive || oldState.timelineSelectionAnchorSeconds !== newState.timelineSelectionAnchorSeconds || oldState.timelineSelectionFocusSeconds !== newState.timelineSelectionFocusSeconds || oldState.timelineStartSeconds !== newState.timelineStartSeconds || oldState.useDevtoolsLayout !== newState.useDevtoolsLayout || oldState.tableColumns !== newState.tableColumns || oldState.selectedEvent !== newState.selectedEvent || oldState.selectedEventIndex !== newState.selectedEventIndex || oldState.focus !== newState.focus || oldState.width !== newState.width || oldState.uid !== newState.uid) {
|
|
2545
|
+
if (oldState.categoryFilters !== newState.categoryFilters || oldState.collapsedHeaderSections !== newState.collapsedHeaderSections || oldState.detailTabs !== newState.detailTabs || oldState.errorMessage !== newState.errorMessage || oldState.events !== newState.events || oldState.filterValue !== newState.filterValue || oldState.previewTextCursorColumnIndex !== newState.previewTextCursorColumnIndex || oldState.previewTextCursorRowIndex !== newState.previewTextCursorRowIndex || oldState.previewTextDeltaY !== newState.previewTextDeltaY || oldState.sessionId !== newState.sessionId || oldState.showEventStreamFinishedEvents !== newState.showEventStreamFinishedEvents || oldState.showInputEvents !== newState.showInputEvents || oldState.showResponsePartEvents !== newState.showResponsePartEvents || oldState.sortColumn !== newState.sortColumn || oldState.sortDescending !== newState.sortDescending || oldState.tableColumnWidths !== newState.tableColumnWidths || oldState.tableDeltaY !== newState.tableDeltaY || oldState.tableMaxLineY !== newState.tableMaxLineY || oldState.tableMinLineY !== newState.tableMinLineY || oldState.tableWidth !== newState.tableWidth || oldState.timelineEndSeconds !== newState.timelineEndSeconds || oldState.timelineHeight !== newState.timelineHeight || oldState.timelineHoverPercent !== newState.timelineHoverPercent || oldState.timelineHoverSeconds !== newState.timelineHoverSeconds || oldState.timelineSelectionActive !== newState.timelineSelectionActive || oldState.timelineSelectionAnchorSeconds !== newState.timelineSelectionAnchorSeconds || oldState.timelineSelectionFocusSeconds !== newState.timelineSelectionFocusSeconds || oldState.timelineStartSeconds !== newState.timelineStartSeconds || oldState.useDevtoolsLayout !== newState.useDevtoolsLayout || oldState.tableColumns !== newState.tableColumns || oldState.selectedEvent !== newState.selectedEvent || oldState.selectedEventIndex !== newState.selectedEventIndex || oldState.focus !== newState.focus || oldState.width !== newState.width || oldState.uid !== newState.uid) {
|
|
2544
2546
|
return [RenderIncremental, RenderCss];
|
|
2545
2547
|
}
|
|
2546
2548
|
return [];
|
|
@@ -2800,25 +2802,38 @@ const getFilteredEvents = (events, filterValue, eventCategoryFilters, showInputE
|
|
|
2800
2802
|
return filteredByCategory.filter(event => JSON.stringify(event).toLowerCase().includes(filterText));
|
|
2801
2803
|
};
|
|
2802
2804
|
|
|
2805
|
+
const formatDurationSeconds = value => {
|
|
2806
|
+
return `${value.toFixed(1)}s`;
|
|
2807
|
+
};
|
|
2808
|
+
|
|
2809
|
+
const formatDurationText = durationMs => {
|
|
2810
|
+
if (durationMs >= 1000) {
|
|
2811
|
+
return formatDurationSeconds(durationMs / 1000);
|
|
2812
|
+
}
|
|
2813
|
+
return `${durationMs}ms`;
|
|
2814
|
+
};
|
|
2803
2815
|
const getDurationText = event => {
|
|
2804
2816
|
if (event.time) {
|
|
2805
2817
|
return event.time;
|
|
2806
2818
|
}
|
|
2807
2819
|
const explicitDuration = event.durationMs ?? event.duration;
|
|
2808
2820
|
if (typeof explicitDuration === 'number' && Number.isFinite(explicitDuration)) {
|
|
2809
|
-
return
|
|
2821
|
+
return formatDurationText(explicitDuration);
|
|
2810
2822
|
}
|
|
2811
2823
|
const start = toTimeNumber(event.started ?? event.startTime ?? event.startTimestamp ?? event.timestamp);
|
|
2812
2824
|
const end = toTimeNumber(event.ended ?? event.endTime ?? event.endTimestamp ?? event.timestamp);
|
|
2813
2825
|
if (start === undefined || end === undefined || end < start) {
|
|
2814
2826
|
return '-';
|
|
2815
2827
|
}
|
|
2816
|
-
return
|
|
2828
|
+
return formatDurationText(end - start);
|
|
2817
2829
|
};
|
|
2818
2830
|
|
|
2819
2831
|
const getEventTableDurationText = event => {
|
|
2820
2832
|
const durationText = getDurationText(event);
|
|
2821
2833
|
if (!durationText.endsWith('ms')) {
|
|
2834
|
+
if (durationText.endsWith('s')) {
|
|
2835
|
+
return `${durationText.slice(0, -1)} s`;
|
|
2836
|
+
}
|
|
2822
2837
|
return durationText;
|
|
2823
2838
|
}
|
|
2824
2839
|
return `${durationText.slice(0, -2)} ms`;
|
|
@@ -3995,6 +4010,28 @@ const getBoolean = value => {
|
|
|
3995
4010
|
return value === true || value === 'true' || value === 'on' || value === '1';
|
|
3996
4011
|
};
|
|
3997
4012
|
|
|
4013
|
+
const General = 'general';
|
|
4014
|
+
const RequestHeaders = 'requestHeaders';
|
|
4015
|
+
const ResponseHeaders = 'responseHeaders';
|
|
4016
|
+
const headerSectionKeys = [General, RequestHeaders, ResponseHeaders];
|
|
4017
|
+
const isHeaderSectionKey = value => {
|
|
4018
|
+
return headerSectionKeys.includes(value);
|
|
4019
|
+
};
|
|
4020
|
+
|
|
4021
|
+
const removeSection = (collapsedHeaderSections, section) => {
|
|
4022
|
+
return collapsedHeaderSections.filter(value => value !== section);
|
|
4023
|
+
};
|
|
4024
|
+
const toggleHeadersSection = (state, value) => {
|
|
4025
|
+
if (!isHeaderSectionKey(value)) {
|
|
4026
|
+
return state;
|
|
4027
|
+
}
|
|
4028
|
+
const isCollapsed = state.collapsedHeaderSections.includes(value);
|
|
4029
|
+
return {
|
|
4030
|
+
...state,
|
|
4031
|
+
collapsedHeaderSections: isCollapsed ? removeSection(state.collapsedHeaderSections, value) : [...state.collapsedHeaderSections, value]
|
|
4032
|
+
};
|
|
4033
|
+
};
|
|
4034
|
+
|
|
3998
4035
|
const parseTimelineRangePreset$1 = value => {
|
|
3999
4036
|
if (!value) {
|
|
4000
4037
|
return {
|
|
@@ -4164,6 +4201,9 @@ const handleDetailTab = (state, value) => {
|
|
|
4164
4201
|
detailTabs
|
|
4165
4202
|
};
|
|
4166
4203
|
};
|
|
4204
|
+
const handleToggleHeadersSection = (state, value) => {
|
|
4205
|
+
return toggleHeadersSection(state, value);
|
|
4206
|
+
};
|
|
4167
4207
|
const inputHandlers = {
|
|
4168
4208
|
[CloseDetails$1]: handleCloseDetails,
|
|
4169
4209
|
[DetailTab]: handleDetailTab,
|
|
@@ -4176,6 +4216,7 @@ const inputHandlers = {
|
|
|
4176
4216
|
[TimelineEndSeconds]: handleTimelineEndSeconds$1,
|
|
4177
4217
|
[TimelineRangePreset]: handleTimelineRangePreset$1,
|
|
4178
4218
|
[TimelineStartSeconds]: handleTimelineStartSeconds$1,
|
|
4219
|
+
[ToggleHeadersSection]: handleToggleHeadersSection,
|
|
4179
4220
|
[UseDevtoolsLayout]: handleUseDevtoolsLayout
|
|
4180
4221
|
};
|
|
4181
4222
|
const handleInput = (state, name, value, checked) => {
|
|
@@ -4278,9 +4319,6 @@ const getPayloadObject = (event, name) => {
|
|
|
4278
4319
|
};
|
|
4279
4320
|
};
|
|
4280
4321
|
const getPayloadEvent = event => {
|
|
4281
|
-
if (event && event.type === 'ai-request') {
|
|
4282
|
-
return event.body;
|
|
4283
|
-
}
|
|
4284
4322
|
const {
|
|
4285
4323
|
requestEvent
|
|
4286
4324
|
} = event;
|
|
@@ -4288,6 +4326,9 @@ const getPayloadEvent = event => {
|
|
|
4288
4326
|
if (mergedRequestPayloadEvent.found) {
|
|
4289
4327
|
return mergedRequestPayloadEvent.value;
|
|
4290
4328
|
}
|
|
4329
|
+
if (event && event.type === 'ai-request') {
|
|
4330
|
+
return event.body;
|
|
4331
|
+
}
|
|
4291
4332
|
const name = getPreviewName(event);
|
|
4292
4333
|
if (name === 'list_files' && hasOwn(event, 'arguments')) {
|
|
4293
4334
|
return event.arguments;
|
|
@@ -4307,57 +4348,75 @@ const isChatMessageUpdatedEvent = event => {
|
|
|
4307
4348
|
return event.type === 'chat-message-updated';
|
|
4308
4349
|
};
|
|
4309
4350
|
|
|
4351
|
+
const getObjectValue = value => {
|
|
4352
|
+
if (!value || typeof value !== 'object') {
|
|
4353
|
+
return undefined;
|
|
4354
|
+
}
|
|
4355
|
+
return value;
|
|
4356
|
+
};
|
|
4310
4357
|
const getResponseContentText = content => {
|
|
4311
|
-
|
|
4358
|
+
const contentObject = getObjectValue(content);
|
|
4359
|
+
if (!contentObject) {
|
|
4312
4360
|
return undefined;
|
|
4313
4361
|
}
|
|
4314
4362
|
if (Array.isArray(content)) {
|
|
4315
4363
|
const [firstContentItem] = content;
|
|
4316
|
-
|
|
4364
|
+
const firstContentItemObject = getObjectValue(firstContentItem);
|
|
4365
|
+
if (!firstContentItemObject) {
|
|
4317
4366
|
return undefined;
|
|
4318
4367
|
}
|
|
4319
4368
|
const {
|
|
4320
4369
|
text
|
|
4321
|
-
} =
|
|
4370
|
+
} = firstContentItemObject;
|
|
4322
4371
|
return typeof text === 'string' ? text : undefined;
|
|
4323
4372
|
}
|
|
4324
4373
|
const {
|
|
4325
4374
|
text
|
|
4326
|
-
} =
|
|
4375
|
+
} = contentObject;
|
|
4327
4376
|
return typeof text === 'string' ? text : undefined;
|
|
4328
4377
|
};
|
|
4329
|
-
const
|
|
4330
|
-
|
|
4331
|
-
|
|
4332
|
-
|
|
4333
|
-
} = event;
|
|
4334
|
-
if (!value || typeof value !== 'object') {
|
|
4335
|
-
return undefined;
|
|
4336
|
-
}
|
|
4337
|
-
const {
|
|
4338
|
-
response
|
|
4339
|
-
} = value;
|
|
4340
|
-
if (!response || typeof response !== 'object') {
|
|
4341
|
-
return undefined;
|
|
4342
|
-
}
|
|
4343
|
-
const {
|
|
4344
|
-
output
|
|
4345
|
-
} = response;
|
|
4346
|
-
return Array.isArray(output) ? output : undefined;
|
|
4378
|
+
const getOutput = value => {
|
|
4379
|
+
const valueObject = getObjectValue(value);
|
|
4380
|
+
if (!valueObject) {
|
|
4381
|
+
return undefined;
|
|
4347
4382
|
}
|
|
4348
|
-
|
|
4349
|
-
|
|
4350
|
-
|
|
4351
|
-
|
|
4352
|
-
|
|
4383
|
+
const {
|
|
4384
|
+
output
|
|
4385
|
+
} = valueObject;
|
|
4386
|
+
return Array.isArray(output) ? output : undefined;
|
|
4387
|
+
};
|
|
4388
|
+
const getAiRequestResponseOutput = event => {
|
|
4389
|
+
const {
|
|
4390
|
+
endValue
|
|
4391
|
+
} = event;
|
|
4392
|
+
const endValueObject = getObjectValue(endValue);
|
|
4393
|
+
if (!endValueObject) {
|
|
4394
|
+
return undefined;
|
|
4395
|
+
}
|
|
4396
|
+
return getOutput(endValueObject.value);
|
|
4397
|
+
};
|
|
4398
|
+
const getCompletedResponseOutput = event => {
|
|
4399
|
+
const valueObject = getObjectValue(event.value);
|
|
4400
|
+
if (!valueObject) {
|
|
4401
|
+
return undefined;
|
|
4402
|
+
}
|
|
4403
|
+
const responseObject = getObjectValue(valueObject.response);
|
|
4404
|
+
if (!responseObject) {
|
|
4405
|
+
return undefined;
|
|
4406
|
+
}
|
|
4407
|
+
return getOutput(responseObject);
|
|
4408
|
+
};
|
|
4409
|
+
const getResponseOutput = event => {
|
|
4410
|
+
switch (event.type) {
|
|
4411
|
+
case 'ai-request':
|
|
4412
|
+
return getAiRequestResponseOutput(event);
|
|
4413
|
+
case 'ai-response':
|
|
4414
|
+
return getOutput(event.value);
|
|
4415
|
+
case 'sse-response-completed':
|
|
4416
|
+
return getCompletedResponseOutput(event);
|
|
4417
|
+
default:
|
|
4353
4418
|
return undefined;
|
|
4354
|
-
}
|
|
4355
|
-
const {
|
|
4356
|
-
output
|
|
4357
|
-
} = value;
|
|
4358
|
-
return Array.isArray(output) ? output : undefined;
|
|
4359
4419
|
}
|
|
4360
|
-
return undefined;
|
|
4361
4420
|
};
|
|
4362
4421
|
const getResponsePreviewText = event => {
|
|
4363
4422
|
const output = getResponseOutput(event);
|
|
@@ -4365,12 +4424,13 @@ const getResponsePreviewText = event => {
|
|
|
4365
4424
|
return undefined;
|
|
4366
4425
|
}
|
|
4367
4426
|
const [firstOutput] = output;
|
|
4368
|
-
|
|
4427
|
+
const firstOutputObject = getObjectValue(firstOutput);
|
|
4428
|
+
if (!firstOutputObject) {
|
|
4369
4429
|
return undefined;
|
|
4370
4430
|
}
|
|
4371
4431
|
const {
|
|
4372
4432
|
content
|
|
4373
|
-
} =
|
|
4433
|
+
} = firstOutputObject;
|
|
4374
4434
|
return getResponseContentText(content);
|
|
4375
4435
|
};
|
|
4376
4436
|
const getPreviewMessageText = event => {
|
|
@@ -5460,14 +5520,26 @@ const getCss = state => {
|
|
|
5460
5520
|
}
|
|
5461
5521
|
|
|
5462
5522
|
.ChatDebugViewHeadersSectionHeading {
|
|
5523
|
+
align-items: center;
|
|
5524
|
+
background: transparent;
|
|
5525
|
+
border: 0;
|
|
5463
5526
|
color: var(--vscode-descriptionForeground, rgba(255, 255, 255, 0.7));
|
|
5527
|
+
cursor: pointer;
|
|
5528
|
+
display: flex;
|
|
5464
5529
|
font-size: 11px;
|
|
5465
5530
|
font-weight: 600;
|
|
5531
|
+
justify-content: flex-start;
|
|
5466
5532
|
letter-spacing: 0.08em;
|
|
5467
5533
|
margin-bottom: 6px;
|
|
5534
|
+
padding: 0;
|
|
5535
|
+
text-align: left;
|
|
5468
5536
|
text-transform: uppercase;
|
|
5469
5537
|
}
|
|
5470
5538
|
|
|
5539
|
+
.ChatDebugViewHeadersSectionHeading:hover {
|
|
5540
|
+
color: var(--vscode-editor-foreground);
|
|
5541
|
+
}
|
|
5542
|
+
|
|
5471
5543
|
.ChatDebugViewHeadersRow {
|
|
5472
5544
|
display: grid;
|
|
5473
5545
|
grid-template-columns: minmax(0, 38%) minmax(0, 1fr);
|
|
@@ -6437,18 +6509,23 @@ const getHeadersTableNodes = headers => {
|
|
|
6437
6509
|
type: Ul
|
|
6438
6510
|
}, ...headerRows];
|
|
6439
6511
|
};
|
|
6440
|
-
const getHeaderSectionNodes = (label, headers) => {
|
|
6512
|
+
const getHeaderSectionNodes = (section, label, headers, collapsedHeaderSections) => {
|
|
6513
|
+
const isCollapsed = collapsedHeaderSections.includes(section);
|
|
6441
6514
|
return [{
|
|
6442
|
-
childCount: 2,
|
|
6515
|
+
childCount: isCollapsed ? 1 : 2,
|
|
6443
6516
|
className: ChatDebugViewHeadersSection,
|
|
6444
6517
|
type: Div
|
|
6445
6518
|
}, {
|
|
6446
6519
|
childCount: 1,
|
|
6447
6520
|
className: ChatDebugViewHeadersSectionHeading,
|
|
6448
|
-
|
|
6449
|
-
|
|
6521
|
+
name: ToggleHeadersSection,
|
|
6522
|
+
onChange: HandleFilterInput,
|
|
6523
|
+
onClick: HandleFilterInput,
|
|
6524
|
+
type: Button$1,
|
|
6525
|
+
value: section
|
|
6526
|
+
}, text(label), ...(isCollapsed ? [] : getHeadersTableNodes(headers))];
|
|
6450
6527
|
};
|
|
6451
|
-
const getHeadersContentNodes = (responseEventNodes, selectedEvent) => {
|
|
6528
|
+
const getHeadersContentNodes = (responseEventNodes, selectedEvent, collapsedHeaderSections = []) => {
|
|
6452
6529
|
const generalEntries = getGeneralEntries(selectedEvent);
|
|
6453
6530
|
const requestHeaders$1 = getHeaders(selectedEvent?.headers);
|
|
6454
6531
|
const responseHeaders$1 = getHeaders(isHeadersRecord(selectedEvent?.endValue) ? selectedEvent.endValue.headers : undefined);
|
|
@@ -6457,13 +6534,13 @@ const getHeadersContentNodes = (responseEventNodes, selectedEvent) => {
|
|
|
6457
6534
|
}
|
|
6458
6535
|
const nodes = [];
|
|
6459
6536
|
if (generalEntries.length > 0) {
|
|
6460
|
-
nodes.push(...getHeaderSectionNodes(general(), generalEntries));
|
|
6537
|
+
nodes.push(...getHeaderSectionNodes(General, general(), generalEntries, collapsedHeaderSections));
|
|
6461
6538
|
}
|
|
6462
6539
|
if (requestHeaders$1.length > 0) {
|
|
6463
|
-
nodes.push(...getHeaderSectionNodes(requestHeaders(), requestHeaders$1));
|
|
6540
|
+
nodes.push(...getHeaderSectionNodes(RequestHeaders, requestHeaders(), requestHeaders$1, collapsedHeaderSections));
|
|
6464
6541
|
}
|
|
6465
6542
|
if (responseHeaders$1.length > 0) {
|
|
6466
|
-
nodes.push(...getHeaderSectionNodes(responseHeaders(), responseHeaders$1));
|
|
6543
|
+
nodes.push(...getHeaderSectionNodes(ResponseHeaders, responseHeaders(), responseHeaders$1, collapsedHeaderSections));
|
|
6467
6544
|
}
|
|
6468
6545
|
return nodes;
|
|
6469
6546
|
};
|
|
@@ -7557,7 +7634,7 @@ const getTokenUsageContentNodes = (responseEventNodes, selectedEvent) => {
|
|
|
7557
7634
|
return getTokenUsageDetailsDom(selectedEvent);
|
|
7558
7635
|
};
|
|
7559
7636
|
|
|
7560
|
-
const getSelectedContentNodes = (safeSelectedDetailTab, previewEventNodes, payloadEventNodes, responseEventNodes, selectedEvent, previewTextCursorRowIndex, previewTextCursorColumnIndex, previewVirtualization) => {
|
|
7637
|
+
const getSelectedContentNodes = (safeSelectedDetailTab, previewEventNodes, payloadEventNodes, responseEventNodes, selectedEvent, previewTextCursorRowIndex, previewTextCursorColumnIndex, previewVirtualization, collapsedHeaderSections = []) => {
|
|
7561
7638
|
if (safeSelectedDetailTab === Tokens$1) {
|
|
7562
7639
|
return getTokenUsageContentNodes(responseEventNodes, selectedEvent);
|
|
7563
7640
|
}
|
|
@@ -7571,19 +7648,19 @@ const getSelectedContentNodes = (safeSelectedDetailTab, previewEventNodes, paylo
|
|
|
7571
7648
|
return getPayloadContentNodes(payloadEventNodes, selectedEvent);
|
|
7572
7649
|
}
|
|
7573
7650
|
if (safeSelectedDetailTab === Headers$1) {
|
|
7574
|
-
return getHeadersContentNodes(responseEventNodes, selectedEvent);
|
|
7651
|
+
return getHeadersContentNodes(responseEventNodes, selectedEvent, collapsedHeaderSections);
|
|
7575
7652
|
}
|
|
7576
7653
|
return getResponseContentNodes(responseEventNodes, selectedEvent);
|
|
7577
7654
|
};
|
|
7578
7655
|
|
|
7579
|
-
const getDetailsDom = (previewEventNodes, payloadEventNodes = previewEventNodes, responseEventNodes = payloadEventNodes, selectedEvent = null, detailTabs = createDetailTabs(), previewTextCursorRowIndex = null, previewTextCursorColumnIndex = null, previewVirtualization) => {
|
|
7656
|
+
const getDetailsDom = (previewEventNodes, payloadEventNodes = previewEventNodes, responseEventNodes = payloadEventNodes, selectedEvent = null, detailTabs = createDetailTabs(), previewTextCursorRowIndex = null, previewTextCursorColumnIndex = null, previewVirtualization, collapsedHeaderSections = []) => {
|
|
7580
7657
|
if (previewEventNodes.length === 0 && payloadEventNodes.length === 0 && responseEventNodes.length === 0) {
|
|
7581
7658
|
return [];
|
|
7582
7659
|
}
|
|
7583
7660
|
const normalizedDetailTabs = getNormalizedDetailTabs(selectedEvent, detailTabs);
|
|
7584
7661
|
const safeSelectedDetailTab = getSelectedDetailTab(normalizedDetailTabs);
|
|
7585
7662
|
const selectedDetailTab = normalizedDetailTabs.find(detailTab => detailTab.name === safeSelectedDetailTab) ?? normalizedDetailTabs[0];
|
|
7586
|
-
const contentNodes = getSelectedContentNodes(safeSelectedDetailTab, previewEventNodes, payloadEventNodes, responseEventNodes, selectedEvent, previewTextCursorRowIndex, previewTextCursorColumnIndex, previewVirtualization);
|
|
7663
|
+
const contentNodes = getSelectedContentNodes(safeSelectedDetailTab, previewEventNodes, payloadEventNodes, responseEventNodes, selectedEvent, previewTextCursorRowIndex, previewTextCursorColumnIndex, previewVirtualization, collapsedHeaderSections);
|
|
7587
7664
|
return [{
|
|
7588
7665
|
childCount: 2,
|
|
7589
7666
|
className: ChatDebugViewDetails,
|
|
@@ -8125,7 +8202,7 @@ const getTimelineDom = (timelineInfo, hoverPercent = null) => {
|
|
|
8125
8202
|
}, ...selectionNodes];
|
|
8126
8203
|
};
|
|
8127
8204
|
|
|
8128
|
-
const getDevtoolsDom = (events, selectedEvent, selectedEventIndex, timelineEvents, timelineStartSeconds, timelineEndSeconds, emptyMessage = noEventsFound(), timelineSelectionActive = false, timelineSelectionAnchorSeconds = '', timelineSelectionFocusSeconds = '', detailTabs = createDetailTabs(), visibleTableColumns = defaultVisibleTableColumns, tableColumns = createTableColumns(), timelineInfo, timelineHoverPercent = null, focus = 0, previewTextCursorRowIndex = null, previewTextCursorColumnIndex = null, previewTextDeltaY = 0, previewTextViewportHeight = 0, minLineY = 0, maxLineY = events.length) => {
|
|
8205
|
+
const getDevtoolsDom = (events, selectedEvent, selectedEventIndex, timelineEvents, timelineStartSeconds, timelineEndSeconds, emptyMessage = noEventsFound(), timelineSelectionActive = false, timelineSelectionAnchorSeconds = '', timelineSelectionFocusSeconds = '', detailTabs = createDetailTabs(), visibleTableColumns = defaultVisibleTableColumns, tableColumns = createTableColumns(), timelineInfo, timelineHoverPercent = null, focus = 0, previewTextCursorRowIndex = null, previewTextCursorColumnIndex = null, previewTextDeltaY = 0, previewTextViewportHeight = 0, minLineY = 0, maxLineY = events.length, collapsedHeaderSections = []) => {
|
|
8129
8206
|
const visibleEvents = events.slice(minLineY, maxLineY);
|
|
8130
8207
|
const rows = createDevtoolsRows(visibleEvents, selectedEventIndex, minLineY);
|
|
8131
8208
|
const rowNodes = getDevtoolsRows(rows, visibleTableColumns);
|
|
@@ -8150,7 +8227,7 @@ const getDevtoolsDom = (events, selectedEvent, selectedEventIndex, timelineEvent
|
|
|
8150
8227
|
const summary = getTableSummary(events);
|
|
8151
8228
|
const showScrollBar = visibleEvents.length < events.length;
|
|
8152
8229
|
const tableNodes = events.length === 0 ? getEmptyStateDom(emptyMessage) : getTableWrapperWrapperDom(rowNodes, visibleEvents.length, visibleTableColumns, tableColumns, summary, focus, '', '', showScrollBar);
|
|
8153
|
-
const detailsNodes = getDetailsDom(previewEventNodes, payloadEventNodes, responseEventNodes, selectedEvent, detailTabs, previewTextCursorRowIndex, previewTextCursorColumnIndex, previewVirtualizationOptions);
|
|
8230
|
+
const detailsNodes = getDetailsDom(previewEventNodes, payloadEventNodes, responseEventNodes, selectedEvent, detailTabs, previewTextCursorRowIndex, previewTextCursorColumnIndex, previewVirtualizationOptions, collapsedHeaderSections);
|
|
8154
8231
|
const sashNodes = getSashNodesDom(hasSelectedEvent);
|
|
8155
8232
|
const splitChildCount = hasSelectedEvent ? 3 : 1;
|
|
8156
8233
|
const rootChildCount = 3;
|
|
@@ -8204,7 +8281,7 @@ const getEventCategoryFilterDescription = eventCategoryFilters => {
|
|
|
8204
8281
|
}
|
|
8205
8282
|
return eventCategoryFilters.map(eventCategoryFilter => getEventCategoryFilterLabel(eventCategoryFilter).toLowerCase()).join(', ');
|
|
8206
8283
|
};
|
|
8207
|
-
const getChatDebugViewDom = (errorMessage, filterValue, eventCategoryFilters, categoryFilters, _showEventStreamFinishedEvents, _showInputEvents, _showResponsePartEvents, useDevtoolsLayout, selectedEvent, selectedEventIndex, timelineStartSeconds, timelineEndSeconds, timelineFilterDescription, timelineEvents, events, timelineSelectionActive = false, timelineSelectionAnchorSeconds = '', timelineSelectionFocusSeconds = '', visibleTableColumns = defaultVisibleTableColumns, detailTabs = createDetailTabs(), tableColumns = createTableColumns(), timelineInfo, timelineHoverPercent = null, focus = 0, previewTextCursorRowIndex = null, previewTextCursorColumnIndex = null, minLineY = 0, maxLineY = events.length, previewTextDeltaY = 0, previewTextViewportHeight = 0) => {
|
|
8284
|
+
const getChatDebugViewDom = (errorMessage, filterValue, eventCategoryFilters, categoryFilters, _showEventStreamFinishedEvents, _showInputEvents, _showResponsePartEvents, useDevtoolsLayout, selectedEvent, selectedEventIndex, timelineStartSeconds, timelineEndSeconds, timelineFilterDescription, timelineEvents, events, timelineSelectionActive = false, timelineSelectionAnchorSeconds = '', timelineSelectionFocusSeconds = '', visibleTableColumns = defaultVisibleTableColumns, detailTabs = createDetailTabs(), tableColumns = createTableColumns(), timelineInfo, timelineHoverPercent = null, focus = 0, previewTextCursorRowIndex = null, previewTextCursorColumnIndex = null, minLineY = 0, maxLineY = events.length, previewTextDeltaY = 0, previewTextViewportHeight = 0, collapsedHeaderSections = []) => {
|
|
8208
8285
|
if (errorMessage) {
|
|
8209
8286
|
return getDebugErrorDom(errorMessage);
|
|
8210
8287
|
}
|
|
@@ -8228,7 +8305,7 @@ const getChatDebugViewDom = (errorMessage, filterValue, eventCategoryFilters, ca
|
|
|
8228
8305
|
const emptyMessage = getEmptyMessage(events.length, hasFilterValue, useNoToolCallEventsMessage, noFilteredEventsMessage);
|
|
8229
8306
|
const safeSelectedEventIndex = selectedEventIndex === null || selectedEventIndex < 0 || selectedEventIndex >= events.length ? null : selectedEventIndex;
|
|
8230
8307
|
if (useDevtoolsLayout) {
|
|
8231
|
-
const devtoolsDom = getDevtoolsDom(events, selectedEvent, safeSelectedEventIndex, timelineEvents, timelineStartSeconds, timelineEndSeconds, emptyMessage, timelineSelectionActive, timelineSelectionAnchorSeconds, timelineSelectionFocusSeconds, detailTabs, visibleTableColumns, tableColumns, timelineInfo, timelineHoverPercent, focus, previewTextCursorRowIndex, previewTextCursorColumnIndex, previewTextDeltaY, previewTextViewportHeight, minLineY, maxLineY);
|
|
8308
|
+
const devtoolsDom = getDevtoolsDom(events, selectedEvent, safeSelectedEventIndex, timelineEvents, timelineStartSeconds, timelineEndSeconds, emptyMessage, timelineSelectionActive, timelineSelectionAnchorSeconds, timelineSelectionFocusSeconds, detailTabs, visibleTableColumns, tableColumns, timelineInfo, timelineHoverPercent, focus, previewTextCursorRowIndex, previewTextCursorColumnIndex, previewTextDeltaY, previewTextViewportHeight, minLineY, maxLineY, collapsedHeaderSections);
|
|
8232
8309
|
const devtoolsContentNodes = devtoolsDom.slice(1);
|
|
8233
8310
|
const topLevelNodes = [...getDebugViewTopDom(filterValue, useDevtoolsLayout, categoryFilters), ...devtoolsContentNodes];
|
|
8234
8311
|
const rootChildCount = getTopLevelChildCount(topLevelNodes);
|
|
@@ -8264,7 +8341,7 @@ const renderItems = (oldState, newState) => {
|
|
|
8264
8341
|
}
|
|
8265
8342
|
const filteredEvents = getCurrentEvents$1(newState);
|
|
8266
8343
|
const previewTextViewportHeight = getPreviewTextViewportHeight(newState);
|
|
8267
|
-
const dom = getChatDebugViewDom(newState.errorMessage, newState.filterValue, getSelectedEventCategoryFilters(newState.categoryFilters), newState.categoryFilters, newState.showEventStreamFinishedEvents, newState.showInputEvents, newState.showResponsePartEvents, newState.useDevtoolsLayout, newState.selectedEvent, newState.selectedEventIndex, newState.timelineStartSeconds, newState.timelineEndSeconds, newState.timelineFilterDescription, withSessionEventIds(newState.timelineEvents), withSessionEventIds(filteredEvents), newState.timelineSelectionActive, newState.timelineSelectionAnchorSeconds, newState.timelineSelectionFocusSeconds, getVisibleTableColumns(newState.tableColumns), newState.detailTabs, newState.tableColumns, newState.timelineInfo, newState.timelineHoverPercent, newState.focus, newState.previewTextCursorRowIndex, newState.previewTextCursorColumnIndex, newState.tableMinLineY, newState.tableMaxLineY, newState.previewTextDeltaY, previewTextViewportHeight);
|
|
8344
|
+
const dom = getChatDebugViewDom(newState.errorMessage, newState.filterValue, getSelectedEventCategoryFilters(newState.categoryFilters), newState.categoryFilters, newState.showEventStreamFinishedEvents, newState.showInputEvents, newState.showResponsePartEvents, newState.useDevtoolsLayout, newState.selectedEvent, newState.selectedEventIndex, newState.timelineStartSeconds, newState.timelineEndSeconds, newState.timelineFilterDescription, withSessionEventIds(newState.timelineEvents), withSessionEventIds(filteredEvents), newState.timelineSelectionActive, newState.timelineSelectionAnchorSeconds, newState.timelineSelectionFocusSeconds, getVisibleTableColumns(newState.tableColumns), newState.detailTabs, newState.tableColumns, newState.timelineInfo, newState.timelineHoverPercent, newState.focus, newState.previewTextCursorRowIndex, newState.previewTextCursorColumnIndex, newState.tableMinLineY, newState.tableMaxLineY, newState.previewTextDeltaY, previewTextViewportHeight, newState.collapsedHeaderSections);
|
|
8268
8345
|
return [SetDom2, newState.uid, dom];
|
|
8269
8346
|
};
|
|
8270
8347
|
|