@deepseek-ai/dsh-client-ui-trajectory 0.1.5-rc.2 → 0.1.6-alpha.2
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/README.i18n.yaml +2 -2
- package/README.md +12 -2
- package/README.zh.md +17 -7
- package/lib/client.js +700 -228
- package/lib/types/client/TrajectoryCell.d.ts +1 -1
- package/lib/types/client/TrajectoryTable.d.ts +4 -1
- package/lib/types/client/TrajectoryView.d.ts +4 -1
- package/lib/types/client/code-program.d.ts +19 -0
- package/lib/types/client/locales.d.ts +11 -2
- package/lib/types/client/string-wrapping-store.d.ts +7 -0
- package/lib/types/client/trajectory-event-projection.d.ts +2 -2
- package/lib/types/client/trajectory-record.d.ts +5 -1
- package/lib/types/client/trajectory-tool-definition.d.ts +1 -1
- package/package.json +17 -17
package/lib/client.js
CHANGED
|
@@ -41,6 +41,15 @@ window.__ModuleLoader__.load({
|
|
|
41
41
|
return (0, _deepseek_ai_dsh_client_store.createSnapshotStore)(false, { persist: { name: "dsh.trajectory.duration" } });
|
|
42
42
|
}
|
|
43
43
|
//#endregion
|
|
44
|
+
//#region lib/types/client/string-wrapping-store.js
|
|
45
|
+
/**
|
|
46
|
+
* Create the browser-wide default for expanded JSON strings.
|
|
47
|
+
* @returns A persisted preference sampled only when a string is expanded.
|
|
48
|
+
*/
|
|
49
|
+
function createTrajectoryStringWrappingStore() {
|
|
50
|
+
return (0, _deepseek_ai_dsh_client_store.createSnapshotStore)(false, { persist: { name: "dsh.trajectory.jsonStringWrapping" } });
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
44
53
|
//#region lib/types/client/locales.js
|
|
45
54
|
/** `trajectory` namespace dictionaries for the complete trajectory surface. */
|
|
46
55
|
/** Dictionary namespace owned by this plugin. */
|
|
@@ -79,7 +88,7 @@ window.__ModuleLoader__.load({
|
|
|
79
88
|
"turn.label": "第 {turn} 轮",
|
|
80
89
|
"section.betweenTurns": "轮次之间",
|
|
81
90
|
"group.message": "消息",
|
|
82
|
-
"group.step": "
|
|
91
|
+
"group.step": "第 {step} 步",
|
|
83
92
|
"group.compaction": "压缩 {seq}",
|
|
84
93
|
"status.failed": "失败",
|
|
85
94
|
"status.pending": "等待中",
|
|
@@ -156,6 +165,13 @@ window.__ModuleLoader__.load({
|
|
|
156
165
|
"record.payloadJson": "参数 JSON",
|
|
157
166
|
"record.outputJson": "结果 JSON",
|
|
158
167
|
"record.thinking": "思考",
|
|
168
|
+
"record.wrapLines": "自动换行",
|
|
169
|
+
"code.source": "代码",
|
|
170
|
+
"code.output": "输出",
|
|
171
|
+
"code.copySource": "复制代码",
|
|
172
|
+
"code.copyOutput": "复制输出",
|
|
173
|
+
"code.originalJson": "原始 JSON",
|
|
174
|
+
"code.running": "执行中…",
|
|
159
175
|
"record.systemPromptMissing": "本次请求没有系统提示词",
|
|
160
176
|
"record.toolsMissing": "本次请求没有工具",
|
|
161
177
|
"record.systemPrompt": "系统提示词",
|
|
@@ -215,7 +231,9 @@ window.__ModuleLoader__.load({
|
|
|
215
231
|
"layout.compactionFailed": "上下文压缩失败",
|
|
216
232
|
"layout.compacted": "上下文已压缩",
|
|
217
233
|
"layout.toolCallOnly": "仅工具调用",
|
|
218
|
-
"
|
|
234
|
+
"attachment.list": "附件",
|
|
235
|
+
"attachment.imageName": "图片 {index}",
|
|
236
|
+
"layout.imageCount": "图片 ×{count}",
|
|
219
237
|
"layout.fileAttachments": "文件 ×{count}",
|
|
220
238
|
"layout.initialSystemPrompt": "初始系统提示词",
|
|
221
239
|
"layout.systemPromptUpdated": "系统提示词已更新",
|
|
@@ -334,6 +352,13 @@ window.__ModuleLoader__.load({
|
|
|
334
352
|
"record.payloadJson": "Payload JSON",
|
|
335
353
|
"record.outputJson": "Result JSON",
|
|
336
354
|
"record.thinking": "Thinking",
|
|
355
|
+
"record.wrapLines": "Wrap lines",
|
|
356
|
+
"code.source": "Code",
|
|
357
|
+
"code.output": "Output",
|
|
358
|
+
"code.copySource": "Copy code",
|
|
359
|
+
"code.copyOutput": "Copy output",
|
|
360
|
+
"code.originalJson": "Original JSON",
|
|
361
|
+
"code.running": "Running…",
|
|
337
362
|
"record.systemPromptMissing": "No system prompt in this request",
|
|
338
363
|
"record.toolsMissing": "No tools in this request",
|
|
339
364
|
"record.systemPrompt": "System Prompt",
|
|
@@ -393,7 +418,9 @@ window.__ModuleLoader__.load({
|
|
|
393
418
|
"layout.compactionFailed": "Compaction failed",
|
|
394
419
|
"layout.compacted": "Context compacted",
|
|
395
420
|
"layout.toolCallOnly": "Tool call only",
|
|
396
|
-
"
|
|
421
|
+
"attachment.list": "Attachments",
|
|
422
|
+
"attachment.imageName": "Image {index}",
|
|
423
|
+
"layout.imageCount": "Images ×{count}",
|
|
397
424
|
"layout.fileAttachments": "Files ×{count}",
|
|
398
425
|
"layout.initialSystemPrompt": "Initial System Prompt",
|
|
399
426
|
"layout.systemPromptUpdated": "System Prompt Updated",
|
|
@@ -402,6 +429,53 @@ window.__ModuleLoader__.load({
|
|
|
402
429
|
"layout.compactionInterrupted": "Compaction was interrupted before completion."
|
|
403
430
|
};
|
|
404
431
|
//#endregion
|
|
432
|
+
//#region ../../llm/llm/src/assistant-stream.ts
|
|
433
|
+
/**
|
|
434
|
+
* Whether one chunk carries the model's first output token for latency measurement.
|
|
435
|
+
* @param chunk - any stream chunk.
|
|
436
|
+
* @returns true for a non-empty text, reasoning, or Tool-call arguments fragment and for
|
|
437
|
+
* every name-bearing Tool-call delta; false for block, usage, and finish chunks.
|
|
438
|
+
*/
|
|
439
|
+
function isTokenDelta$1(chunk) {
|
|
440
|
+
switch (chunk.type) {
|
|
441
|
+
case "text-delta":
|
|
442
|
+
case "reasoning-delta": return chunk.text !== "";
|
|
443
|
+
case "tool-call-delta": return chunk.argumentsDelta !== "" || chunk.name !== void 0;
|
|
444
|
+
default: return false;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
function firstRunMemberTime(run, predicate) {
|
|
448
|
+
const fragments = run.type === "tool-call-chunks" ? run.args : run.texts;
|
|
449
|
+
let time = run.time0;
|
|
450
|
+
for (let index = 0; index < fragments.length; index += 1) {
|
|
451
|
+
if (index > 0) time += run.dt[index - 1];
|
|
452
|
+
if (predicate(fragments[index])) return time;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Time of the first member of one packed run that {@link isTokenDelta} accepts: a
|
|
457
|
+
* name-bearing Tool-call run starts at its first member, otherwise the first non-empty fragment.
|
|
458
|
+
* Stops scanning at that member.
|
|
459
|
+
* @param run - one packed delta run.
|
|
460
|
+
* @returns the member's reconstructed time, or undefined when no member qualifies.
|
|
461
|
+
*/
|
|
462
|
+
function runFirstTokenTime(run) {
|
|
463
|
+
if (run.type === "tool-call-chunks" && run.name !== void 0) return run.time0;
|
|
464
|
+
return firstRunMemberTime(run, (fragment) => fragment !== "");
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Time of the first token in one compact stream per {@link isTokenDelta}, read from the
|
|
468
|
+
* records themselves and stopping at the first qualifying member.
|
|
469
|
+
* @param stream - compact records from one durable Assistant settlement.
|
|
470
|
+
* @returns the first token's time, or undefined when the stream carries no token.
|
|
471
|
+
*/
|
|
472
|
+
function assistantStreamFirstTokenTime(stream) {
|
|
473
|
+
for (const record of stream) {
|
|
474
|
+
const time = record.type === "chunk" ? isTokenDelta$1(record.chunk) ? record.time : void 0 : runFirstTokenTime(record);
|
|
475
|
+
if (time !== void 0) return time;
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
//#endregion
|
|
405
479
|
//#region lib/types/client/trajectory-definition-common.js
|
|
406
480
|
/**
|
|
407
481
|
* Wrap one contribution in the Engine-owned target envelope.
|
|
@@ -470,7 +544,7 @@ window.__ModuleLoader__.load({
|
|
|
470
544
|
* @param source - Logged `user/message` source.
|
|
471
545
|
* @returns Role and label rendered by Trajectory.
|
|
472
546
|
*/
|
|
473
|
-
function
|
|
547
|
+
function contextProducer(source) {
|
|
474
548
|
const record = asRecord(source);
|
|
475
549
|
const kind = record === null ? null : readString(record, "kind");
|
|
476
550
|
if (record === null || kind === null) return {
|
|
@@ -722,10 +796,17 @@ window.__ModuleLoader__.load({
|
|
|
722
796
|
...isTokenDelta(chunk) && state.firstTokenTime === void 0 ? { firstTokenTime: time } : {}
|
|
723
797
|
};
|
|
724
798
|
}
|
|
799
|
+
/** The Step retains its first token across live chunks and settled retry attempts. */
|
|
800
|
+
function settleTiming(state, event) {
|
|
801
|
+
return {
|
|
802
|
+
...state,
|
|
803
|
+
firstTokenTime: state.firstTokenTime ?? assistantStreamFirstTokenTime(event.data.stream)
|
|
804
|
+
};
|
|
805
|
+
}
|
|
725
806
|
function settleMessage(state, match, event) {
|
|
726
807
|
const blocks = toAssistantBlocks(event.data.message.content);
|
|
727
808
|
return {
|
|
728
|
-
...state,
|
|
809
|
+
...settleTiming(state, event),
|
|
729
810
|
sawChunk: false,
|
|
730
811
|
blocks,
|
|
731
812
|
visibleBlocks: countVisibleBlocks(blocks),
|
|
@@ -746,6 +827,9 @@ window.__ModuleLoader__.load({
|
|
|
746
827
|
if (event.type === "assistant/live-chunk") {
|
|
747
828
|
state ??= initialState(event.data.turn, event.data.step, event.seq, event.time, false);
|
|
748
829
|
state = updateChunk(state, event.data.chunk, event.seq, event.time);
|
|
830
|
+
} else if (event.type === "assistant/attempt") {
|
|
831
|
+
state ??= initialState(event.data.turn, event.data.step, event.seq, event.time, false);
|
|
832
|
+
state = settleTiming(state, event);
|
|
749
833
|
} else if (event.type === "assistant/message") {
|
|
750
834
|
state ??= initialState(event.data.turn, event.data.step, event.seq, event.time, false);
|
|
751
835
|
state = settleMessage(state, match, event);
|
|
@@ -769,7 +853,7 @@ window.__ModuleLoader__.load({
|
|
|
769
853
|
step: state.step,
|
|
770
854
|
blocks: toAssistantBlocks(event.data.message.content),
|
|
771
855
|
usage: event.data.usage,
|
|
772
|
-
|
|
856
|
+
providerMetadata: {
|
|
773
857
|
provider: event.data.message.source.provider,
|
|
774
858
|
model: event.data.message.source.model
|
|
775
859
|
},
|
|
@@ -815,7 +899,7 @@ window.__ModuleLoader__.load({
|
|
|
815
899
|
},
|
|
816
900
|
...node?.messageId === void 0 ? {} : {
|
|
817
901
|
resultSeq: node.seq,
|
|
818
|
-
...node.
|
|
902
|
+
...node.providerMetadata === void 0 ? {} : { providerMetadata: node.providerMetadata }
|
|
819
903
|
},
|
|
820
904
|
...state.usage === void 0 ? {} : { usage: state.usage }
|
|
821
905
|
};
|
|
@@ -829,7 +913,7 @@ window.__ModuleLoader__.load({
|
|
|
829
913
|
id: `${event.data.turn}:${event.data.step}`,
|
|
830
914
|
role: "start"
|
|
831
915
|
};
|
|
832
|
-
if (event.type === "assistant/live-chunk" || event.type === "assistant/message" || event.type === "llm/retry" || event.type === "step/end") return {
|
|
916
|
+
if (event.type === "assistant/live-chunk" || event.type === "assistant/message" || event.type === "assistant/attempt" || event.type === "llm/retry" || event.type === "step/end") return {
|
|
833
917
|
id: `${event.data.turn}:${event.data.step}`,
|
|
834
918
|
role: "update"
|
|
835
919
|
};
|
|
@@ -842,6 +926,7 @@ window.__ModuleLoader__.load({
|
|
|
842
926
|
update: (context, match) => {
|
|
843
927
|
if (match.event.type === "assistant/live-chunk") return updateChunk(context.state, match.event.data.chunk, match.event.seq, match.event.time);
|
|
844
928
|
if (match.event.type === "assistant/message") return settleMessage(context.state, match, match.event);
|
|
929
|
+
if (match.event.type === "assistant/attempt") return settleTiming(context.state, match.event);
|
|
845
930
|
if (match.event.type === "step/end") return {
|
|
846
931
|
...context.state,
|
|
847
932
|
stepEnd: match
|
|
@@ -863,7 +948,7 @@ window.__ModuleLoader__.load({
|
|
|
863
948
|
};
|
|
864
949
|
},
|
|
865
950
|
publication: (match) => {
|
|
866
|
-
if (match.event.type === "step/start") return "none";
|
|
951
|
+
if (match.event.type === "step/start" || match.event.type === "assistant/attempt") return "none";
|
|
867
952
|
if (match.event.type !== "assistant/live-chunk") return "immediate";
|
|
868
953
|
const type = match.event.data.chunk.type;
|
|
869
954
|
return type === "usage" || type === "finish" ? "none" : "animation-frame";
|
|
@@ -958,7 +1043,7 @@ window.__ModuleLoader__.load({
|
|
|
958
1043
|
resultSeq: summary.seq,
|
|
959
1044
|
summary: summary.data.summary,
|
|
960
1045
|
...summary.data.rawOutput === void 0 ? {} : { rawOutput: summary.data.rawOutput },
|
|
961
|
-
|
|
1046
|
+
providerMetadata: {
|
|
962
1047
|
provider: summary.data.provider,
|
|
963
1048
|
model: summary.data.model
|
|
964
1049
|
},
|
|
@@ -1134,7 +1219,7 @@ window.__ModuleLoader__.load({
|
|
|
1134
1219
|
time: event.time,
|
|
1135
1220
|
content: event.data.content,
|
|
1136
1221
|
source: event.data.source,
|
|
1137
|
-
|
|
1222
|
+
producer: contextProducer(event.data.source),
|
|
1138
1223
|
form: contextForm(event.data.source)
|
|
1139
1224
|
};
|
|
1140
1225
|
return reader.previous("trajectory-inbox-next-step")?.state.currentClaimed.has(String(event.data.id)) === true ? {
|
|
@@ -1598,6 +1683,7 @@ window.__ModuleLoader__.load({
|
|
|
1598
1683
|
callTime: previous === void 0 || "kind" in previous ? null : previous.time,
|
|
1599
1684
|
content: data.content ?? [],
|
|
1600
1685
|
isError: data.isError === true,
|
|
1686
|
+
...data.error === void 0 ? {} : { error: data.error },
|
|
1601
1687
|
subCalls: []
|
|
1602
1688
|
};
|
|
1603
1689
|
}
|
|
@@ -1766,7 +1852,7 @@ window.__ModuleLoader__.load({
|
|
|
1766
1852
|
}
|
|
1767
1853
|
};
|
|
1768
1854
|
/**
|
|
1769
|
-
* Register the Trajectory Tool lifecycle.
|
|
1855
|
+
* Register the Trajectory Tool lifecycle with raw native and PTC error details.
|
|
1770
1856
|
*
|
|
1771
1857
|
* @param ctx - Plugin context receiving the Definition.
|
|
1772
1858
|
*/
|
|
@@ -3657,8 +3743,49 @@ window.__ModuleLoader__.load({
|
|
|
3657
3743
|
return source.length < text.length || preview.length < compact.length ? `${preview}…` : preview;
|
|
3658
3744
|
}
|
|
3659
3745
|
//#endregion
|
|
3746
|
+
//#region lib/types/client/code-program.js
|
|
3747
|
+
/** Recorded name of the programmatic tool-calling entry point. */
|
|
3748
|
+
const PTC_TOOL_NAME = "run_code";
|
|
3749
|
+
function record(value) {
|
|
3750
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
3751
|
+
}
|
|
3752
|
+
function parseRecord(value) {
|
|
3753
|
+
if (value === void 0) return void 0;
|
|
3754
|
+
try {
|
|
3755
|
+
return record(JSON.parse(value));
|
|
3756
|
+
} catch {
|
|
3757
|
+
return;
|
|
3758
|
+
}
|
|
3759
|
+
}
|
|
3760
|
+
function recordedLanguage(schemaRaw) {
|
|
3761
|
+
const description = record(record(record(parseRecord(schemaRaw)?.parameters)?.properties)?.code)?.description;
|
|
3762
|
+
if (typeof description !== "string") return void 0;
|
|
3763
|
+
const typescript = /\bTypeScript\b/i.test(description);
|
|
3764
|
+
if (typescript === /\bPython\b/i.test(description)) return void 0;
|
|
3765
|
+
return typescript ? "typescript" : "python";
|
|
3766
|
+
}
|
|
3767
|
+
/**
|
|
3768
|
+
* Resolve a PTC program without guessing its language from source or current runtime settings.
|
|
3769
|
+
* @param cell - Recorded tool arguments and the schema visible at call time.
|
|
3770
|
+
* @returns The program, or undefined for another tool or unsupported arguments.
|
|
3771
|
+
*/
|
|
3772
|
+
function codeProgram(cell) {
|
|
3773
|
+
if (cell.kind !== "tool" && cell.kind !== "subtool") return void 0;
|
|
3774
|
+
if (cell.toolName !== "run_code" || cell.inputDetail === void 0) return void 0;
|
|
3775
|
+
const args = parseRecord(cell.inputDetail);
|
|
3776
|
+
if (typeof args?.code !== "string") return void 0;
|
|
3777
|
+
if (args.description !== void 0 && typeof args.description !== "string") return void 0;
|
|
3778
|
+
return {
|
|
3779
|
+
rawInput: cell.inputDetail,
|
|
3780
|
+
source: args.code,
|
|
3781
|
+
description: typeof args.description === "string" && args.description.trim() !== "" ? args.description : args.code.split(/\r?\n/).find((line) => line.trim() !== "")?.trim() ?? "",
|
|
3782
|
+
arguments: args,
|
|
3783
|
+
language: recordedLanguage(cell.schemaDetail)
|
|
3784
|
+
};
|
|
3785
|
+
}
|
|
3786
|
+
//#endregion
|
|
3660
3787
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-trajectory/src/client/TrajectoryTable.module.css.mjs
|
|
3661
|
-
const css$3 = ".Y0dWHa_split{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);background:var(--dsw-alias-bg-layer-1);flex:1;width:100%;min-height:0;display:flex;position:relative;overflow:hidden;container-type:inline-size}.Y0dWHa_tablePane{min-width:0;padding-bottom:var(--dsh-trajectory-bottom-clearance,0px);flex:1;position:relative;overflow:hidden auto;container:Y0dWHa_trajectory-table/inline-size}.Y0dWHa_historyLoading{z-index:5;pointer-events:none;height:0;position:sticky;top:0;overflow:visible}.Y0dWHa_historyLoadingBar{box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;height:30px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);justify-content:center;align-items:center;gap:6px;display:flex}.Y0dWHa_historyLoadingSpinner{box-sizing:border-box;border:1.5px solid var(--dsw-alias-border-l2);border-top-color:var(--dsw-alias-state-business-primary);corner-shape:round;border-radius:50%;width:10px;height:10px;animation:.7s linear infinite Y0dWHa_history-loading-spin}.Y0dWHa_table tbody .Y0dWHa_historyLoadRow td{height:30px;padding:0}.Y0dWHa_table tbody .Y0dWHa_historyLoadRow+tr[data-turn-start=true] td:before{content:none}.Y0dWHa_historyLoadButton{background:var(--dsw-alias-bg-layer-1);width:100%;height:29px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:var(--dsw-font-xxs-12);border:0;justify-content:center;align-items:center;gap:6px;display:flex}.Y0dWHa_historyLoadButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.Y0dWHa_historyLoadButton:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-2px}.Y0dWHa_historyLoadButton:disabled{cursor:default}.Y0dWHa_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.Y0dWHa_table:not([data-scroll-ready=true]){visibility:hidden}@keyframes Y0dWHa_history-loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.Y0dWHa_historyLoadingSpinner{animation:none}}.Y0dWHa_table{--trajectory-turn-accent:color-mix(in srgb, var(--dsw-static-blue-500) 22%, var(--dsw-alias-bg-layer-1));border-spacing:0;table-layout:fixed;width:100%;min-width:0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);font:var(--dsw-font-xxs-12)}.Y0dWHa_eventColumn{width:122px}.Y0dWHa_contentColumn{width:auto}.Y0dWHa_table th{z-index:3;box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l2);height:30px;color:var(--dsw-alias-label-tertiary);background:var(--dsw-specific-sidebar-fill);font:var(--dsw-font-xxs-12);text-align:left;text-overflow:ellipsis;user-select:none;white-space:nowrap;padding:0 8px;font-weight:500;position:sticky;top:0;overflow:hidden}.Y0dWHa_eventHeader{text-align:right!important;padding-right:4px!important}.Y0dWHa_table td{box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l1);text-overflow:ellipsis;white-space:nowrap;height:30px;padding:0 8px;overflow:hidden}.Y0dWHa_table tbody .Y0dWHa_virtualSpacer{pointer-events:none}.Y0dWHa_table tbody .Y0dWHa_virtualSpacer td{height:var(--trajectory-virtual-spacer-height);border:0;padding:0}.Y0dWHa_table tbody tr:not([data-collapsed-summary]):not([data-virtual-spacer]):not([data-history-load]){cursor:default;transition:background-color .12s var(--ds-ease-in-out), opacity .12s var(--ds-ease-in-out);outline:none}.Y0dWHa_table tbody tr[data-timeline-focus=outside]{opacity:.24}.Y0dWHa_table tbody tr:not([data-collapsed-summary]):not([data-virtual-spacer]):not([data-history-load]):not([data-selected=true]):hover{background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_table tbody tr[data-request-only=true]:hover{background:0 0}.Y0dWHa_table tbody tr[data-request-only=true] td{border-bottom:0;height:0;padding-top:0;padding-bottom:0}.Y0dWHa_table tbody tr[data-terminal-request-boundary=true] td{height:9px}.Y0dWHa_table tbody tr[data-request-only=true] .Y0dWHa_turnRail{top:-15px;bottom:0}.Y0dWHa_table tbody tr:not([data-collapsed-summary]):focus-visible{box-shadow:inset 0 0 0 1px var(--dsw-alias-state-business-primary)}.Y0dWHa_table tbody tr[data-selected=true]{background:var(--dsw-alias-interactive-bg-active)}.Y0dWHa_requestBoundaryControl{--request-boundary-base-left:12px;z-index:6;top:-8px;left:calc(var(--request-boundary-base-left) + var(--request-boundary-offset,0px));cursor:pointer;background:0 0;border:0;width:16px;height:16px;padding:0;position:absolute}.Y0dWHa_requestBoundaryControl:before{corner-shape:round;background:var(--dsw-alias-label-caption);width:5px;height:5px;box-shadow:0 0 0 2px var(--dsw-alias-bg-layer-1), 0 0 0 3px transparent;content:\"\";transition:background .12s var(--ds-ease-in-out), box-shadow .12s var(--ds-ease-in-out);border-radius:50%;position:absolute;top:5.5px;left:5.5px}.Y0dWHa_requestBoundaryControl:after{border:.5px solid var(--dsw-alias-border-l1);width:max-content;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);content:attr(data-label);font:9px/12px var(--ds-font-family-code);opacity:0;pointer-events:none;transition:opacity .12s var(--ds-ease-in-out), transform .12s var(--ds-ease-in-out);user-select:none;white-space:nowrap;border-radius:2px;padding:0 4px;position:absolute;top:2px;left:17px;transform:translate(-2px);box-shadow:0 2px 6px #0000001f}.Y0dWHa_requestBoundaryControl:hover:before,.Y0dWHa_requestBoundaryControl:focus-visible:before{background:var(--dsw-alias-brand-primary-new-colorprimary-new-color)}.Y0dWHa_requestBoundaryControlActive:before,.Y0dWHa_requestBoundaryControlActive:hover:before,.Y0dWHa_requestBoundaryControlActive:focus-visible:before{background:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 18%, var(--dsw-alias-bg-layer-1));box-shadow:0 0 0 1.5px var(--dsw-alias-brand-primary-new-colorprimary-new-color)}.Y0dWHa_requestBoundaryControl[data-request-status=error]:before,.Y0dWHa_requestBoundaryControl[data-request-status=error]:hover:before,.Y0dWHa_requestBoundaryControl[data-request-status=error]:focus-visible:before{background:var(--dsw-alias-state-error-primary)}.Y0dWHa_requestBoundaryControl:hover:after,.Y0dWHa_requestBoundaryControl:focus-visible:after{opacity:1;transform:translate(0)}.Y0dWHa_requestBoundaryControl:focus-visible{outline:none}.Y0dWHa_table tbody tr:has(.Y0dWHa_requestBoundaryControl:hover):not([data-selected=true]){background:0 0}.Y0dWHa_event{position:relative}.Y0dWHa_turnRail,.Y0dWHa_selectionRail{background:var(--dsw-alias-brand-primary-new-colorprimary-new-color);pointer-events:none;position:absolute;left:0}.Y0dWHa_turnRail{z-index:4;background:var(--trajectory-turn-accent);width:2px;top:-1px;bottom:-1px}.Y0dWHa_table tbody tr[data-turn-end=true] .Y0dWHa_turnRail{bottom:0}.Y0dWHa_selectionRail{z-index:5;width:3px;top:0;bottom:0}.Y0dWHa_table tbody tr[data-error=true] .Y0dWHa_turnRail{background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 22%, var(--dsw-alias-bg-layer-1))}.Y0dWHa_table tbody tr[data-error=true] .Y0dWHa_selectionRail{background:var(--dsw-alias-state-error-primary)}.Y0dWHa_table tbody tr[data-turn-start=true] td{position:relative;overflow:visible}.Y0dWHa_table tbody tr[data-turn-start=true]:not(:first-child) td:before{z-index:1;background:var(--dsw-alias-border-l1);content:\"\";pointer-events:none;height:2px;position:absolute;top:0;left:0;right:0;transform:translateY(-50%)}.Y0dWHa_event{padding-left:36px!important;padding-right:4px!important;overflow:visible!important}.Y0dWHa_turnLabel{z-index:3;box-sizing:border-box;width:max-content;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-module-platform);font:8px/10px var(--ds-font-family-code);font-variant-numeric:tabular-nums;user-select:none;white-space:nowrap;border-radius:0 0 2px;flex:none;align-items:center;padding:1px 5px;display:inline-grid;position:absolute;top:0;left:0}.Y0dWHa_turnLabelFull,.Y0dWHa_turnLabelCompact{opacity:1;white-space:nowrap;grid-area:1/1;max-width:64px;overflow:hidden}.Y0dWHa_turnLabelCompact{opacity:0;max-width:0}.Y0dWHa_turnLabelActive{color:color-mix(in srgb, var(--dsw-static-blue-500) 55%, var(--dsw-alias-label-tertiary));background:var(--trajectory-turn-accent)}.Y0dWHa_eventInner{justify-content:flex-start;align-items:center;min-width:0;height:100%;display:flex}.Y0dWHa_kindSlot{flex:none;justify-content:flex-end;align-items:flex-end;width:76px;display:flex}.Y0dWHa_kindSlot [role=tooltip]{background:var(--dsw-alias-bg-layer-2);box-shadow:var(--dsw-elevation-panel);color:var(--dsw-alias-label-primary);border:0}.Y0dWHa_content{color:var(--dsw-alias-label-primary);padding-left:4px!important}.Y0dWHa_kindTag{box-sizing:border-box;letter-spacing:.035em;user-select:none;border:1px solid #0000;border-radius:4px;flex:none;align-items:center;height:19px;padding:0 5px;font-size:10px;font-weight:650;line-height:16px;display:inline-flex}.Y0dWHa_kindTagIcon{opacity:0;flex:none;justify-content:center;align-items:center;width:0;height:13px;display:inline-flex;overflow:hidden;transform:scale(.8)}.Y0dWHa_kindTagLabel{opacity:1;white-space:nowrap;max-width:72px;display:inline-block;overflow:hidden}.Y0dWHa_table .Y0dWHa_kindSlot .Y0dWHa_message{justify-content:center;width:100%}@container Y0dWHa_trajectory-table (width<=620px){.Y0dWHa_eventColumn{width:50px}.Y0dWHa_event{padding-left:28px!important;padding-right:3px!important}.Y0dWHa_requestBoundaryControl{--request-boundary-base-left:6px}.Y0dWHa_kindSlot{width:19px}.Y0dWHa_kindTag,.Y0dWHa_table .Y0dWHa_kindSlot .Y0dWHa_message{justify-content:center;width:19px;padding-left:0;padding-right:0}.Y0dWHa_kindTagIcon{opacity:1;width:13px;transform:scale(1)}.Y0dWHa_kindTagLabel,.Y0dWHa_turnLabelFull{opacity:0;max-width:0}.Y0dWHa_turnLabelCompact{opacity:1;max-width:64px}}@media (prefers-reduced-motion:no-preference){.Y0dWHa_eventColumn,.Y0dWHa_event,.Y0dWHa_requestBoundaryControl,.Y0dWHa_kindSlot,.Y0dWHa_kindTag,.Y0dWHa_kindTagIcon,.Y0dWHa_kindTagLabel,.Y0dWHa_turnLabelFull,.Y0dWHa_turnLabelCompact{transition-duration:.18s;transition-timing-function:var(--ds-ease-in-out)}.Y0dWHa_eventColumn,.Y0dWHa_kindSlot{transition-property:width}.Y0dWHa_event{transition-property:padding-right,padding-left}.Y0dWHa_requestBoundaryControl{transition-property:left}.Y0dWHa_kindTag{transition-property:padding-right,padding-left}.Y0dWHa_kindTagIcon{transition-property:width,opacity,transform}.Y0dWHa_kindTagLabel,.Y0dWHa_turnLabelFull,.Y0dWHa_turnLabelCompact{transition-property:max-width,opacity}}.Y0dWHa_user{color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-state-business-tertiary)}.Y0dWHa_systemNeutral{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-module-platform)}.Y0dWHa_contextGreen{color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 68%, var(--dsw-alias-label-secondary));background:var(--dsw-alias-state-success-tertiary)}.Y0dWHa_compacted{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-module-platform)}.Y0dWHa_compactedSummary{font:var(--dsw-font-xs-13);margin-top:12px;padding:0 0 14px}.Y0dWHa_promptDiffSections{flex-direction:column;gap:14px;max-height:100%;padding:10px 14px 14px;display:flex;overflow:auto}.Y0dWHa_promptDiffSection{min-width:0}.Y0dWHa_promptDiffTitle{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-strong-13);user-select:none;margin:0 0 6px}.Y0dWHa_promptDiff{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);font:11px/17px var(--ds-font-family-code);white-space:pre;margin:0;overflow:auto}.Y0dWHa_promptDiff span{min-width:max-content;padding:0 6px;display:block}.Y0dWHa_promptDiffLinemeta{color:var(--dsw-alias-label-caption);background:var(--dsw-alias-bg-module-platform);user-select:none}.Y0dWHa_promptDiffLinecontext{color:var(--dsw-alias-label-secondary)}.Y0dWHa_promptDiffLineadded{color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 72%, var(--dsw-alias-label-primary));background:var(--dsw-alias-state-success-tertiary)}.Y0dWHa_promptDiffLineremoved{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, var(--dsw-alias-bg-layer-1))}.Y0dWHa_assistantVioletBright{color:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 60%, var(--dsw-alias-state-error-secondary));background:color-mix(in srgb, color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 55%, var(--dsw-alias-state-error-secondary)) 15%, var(--dsw-alias-bg-layer-1))}.Y0dWHa_toolAmber{color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary)}.Y0dWHa_subtoolAmber{color:color-mix(in srgb, var(--dsw-alias-state-warn-label) 62%, var(--dsw-alias-label-tertiary));background:color-mix(in srgb, var(--dsw-alias-state-warn-tertiary) 58%, var(--dsw-alias-bg-layer-1))}.Y0dWHa_contentText{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.Y0dWHa_toolCallOnly{color:var(--dsw-alias-label-tertiary)}.Y0dWHa_table tbody tr[data-collapsed-summary=turn] td,.Y0dWHa_table tbody tr[data-collapsed-summary=assistant] td{height:20px}.Y0dWHa_table tbody tr[data-collapsed-summary]{cursor:pointer;transition:background-color .12s var(--ds-ease-in-out);outline:none}.Y0dWHa_table tbody tr[data-collapsed-summary]:hover{background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_table tbody tr[data-collapsed-summary]:focus-visible{box-shadow:inset 0 0 0 1px var(--dsw-alias-state-business-primary)}.Y0dWHa_collapsedTurnContent{min-width:0;color:var(--dsw-alias-label-secondary);align-items:center;font-size:12px;line-height:16px;display:flex}.Y0dWHa_collapsedTurnEllipsis{color:var(--dsw-alias-label-tertiary);user-select:none;flex:none;margin-right:6px;font-weight:600}.Y0dWHa_collapsedTurnText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.Y0dWHa_resultPreview{grid-template-columns:clamp(180px, var(--trajectory-tool-request-width,calc(36cqw - 56px)), 480px) minmax(0, 1fr);align-items:center;gap:8px;min-width:0;display:grid}.Y0dWHa_resultRequest,.Y0dWHa_inlineResultText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.Y0dWHa_toolCallNameTypeface{color:var(--dsw-alias-label-primary);font:400 12px/18px Menlo,Consolas,Liberation Mono,PingFang SC,Microsoft YaHei}.Y0dWHa_toolCallPayload{color:var(--dsw-alias-label-secondary);font:400 12px/18px var(--ds-font-family-code);margin-left:7px}.Y0dWHa_table tbody tr[data-kind=tool] .Y0dWHa_contentText,.Y0dWHa_table tbody tr[data-kind=subtool] .Y0dWHa_contentText,.Y0dWHa_table tbody tr[data-kind=tool] .Y0dWHa_resultPreview,.Y0dWHa_table tbody tr[data-kind=subtool] .Y0dWHa_resultPreview{font-family:var(--ds-font-family-code);font-size:12px}.Y0dWHa_table tbody tr[data-kind=subtool] .Y0dWHa_content{padding-left:26px}.Y0dWHa_inlineResult{min-width:0;color:var(--dsw-alias-label-secondary);align-items:center;display:flex}.Y0dWHa_noOutputText{color:var(--dsw-alias-label-caption)}.Y0dWHa_arrow{color:var(--dsw-alias-label-caption);flex:none;margin-right:8px}.Y0dWHa_error,.Y0dWHa_overview dd.Y0dWHa_error,.Y0dWHa_details .Y0dWHa_errorPayload{color:var(--dsw-alias-state-error-primary)}.Y0dWHa_details .Y0dWHa_errorPayload .Y0dWHa_resultBlockText{color:inherit}.Y0dWHa_details .Y0dWHa_jsonPayload.Y0dWHa_errorPayload,.Y0dWHa_details .Y0dWHa_jsonPreview.Y0dWHa_errorPayload{--json-tree-property:var(--dsw-alias-state-error-primary);--json-tree-string:var(--dsw-alias-state-error-primary);--json-tree-number:var(--dsw-alias-state-error-primary);--json-tree-keyword:var(--dsw-alias-state-error-primary);--json-tree-punctuation:var(--dsw-alias-state-error-primary);--json-tree-icon:var(--dsw-alias-state-error-primary)}.Y0dWHa_details{border-left:.5px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);flex-direction:column;flex:none;width:clamp(320px,38%,440px);min-width:0;max-width:calc(100% - 280px);min-height:0;display:flex;position:relative}.Y0dWHa_detailsResizeHandle{z-index:6;cursor:col-resize;touch-action:none;user-select:none;background:0 0;border:0;width:8px;padding:0;position:absolute;top:0;bottom:0;left:-4px}.Y0dWHa_detailsResizeHandle:focus-visible{outline:none}.Y0dWHa_detailsHeader{box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l2);flex:none;justify-content:space-between;align-items:center;height:42px;padding:0 8px 0 12px;display:flex}.Y0dWHa_detailsTitle{min-width:0;color:var(--dsw-alias-label-primary);align-items:center;gap:8px;display:flex}.Y0dWHa_requestDetailsDot{corner-shape:round;background:var(--dsw-alias-label-secondary);border-radius:50%;flex:none;width:5px;height:5px}.Y0dWHa_requestDetailsName{font:500 12px/16px var(--ds-font-family-code);flex:none}.Y0dWHa_detailsLocation{min-width:0;color:var(--dsw-alias-label-tertiary);font:11px/16px var(--ds-font-family-code);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Y0dWHa_close{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:18px;display:inline-flex}.Y0dWHa_close:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_detailTabs{box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l2);overscroll-behavior-x:contain;scrollbar-width:none;white-space:nowrap;flex:none;gap:1px;width:100%;min-width:0;max-width:100%;height:34px;padding:0 8px;display:flex;overflow:auto hidden}.Y0dWHa_detailTabs::-webkit-scrollbar{display:none}.Y0dWHa_detailTab{color:var(--dsw-alias-label-tertiary);cursor:pointer;font:var(--dsw-font-xs-13);background:0 0;border:0;flex:none;padding:0 9px;position:relative}.Y0dWHa_detailTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_detailTabActive{color:var(--dsw-alias-state-business-primary)}.Y0dWHa_detailTabActive:after{background:var(--dsw-alias-state-business-primary);content:\"\";border-radius:1px 1px 0 0;height:2px;position:absolute;bottom:0;left:9px;right:9px}.Y0dWHa_close:focus-visible,.Y0dWHa_detailTab:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.Y0dWHa_detailBody{min-height:0;padding-bottom:var(--dsh-trajectory-bottom-clearance,0px);scrollbar-gutter:stable;flex:1;overflow:hidden auto}.Y0dWHa_detailBodySummary{box-sizing:border-box;padding-bottom:calc(12px + var(--dsh-trajectory-bottom-clearance,0px));flex-direction:column;display:flex;overflow:hidden}.Y0dWHa_detailBodySummary>.Y0dWHa_overview{overscroll-behavior:contain;flex:0 auto;min-height:0;overflow:auto}.Y0dWHa_detailBodySummary>.Y0dWHa_compactedSummary{flex:1;min-height:0;overflow:auto}.Y0dWHa_summaryScrollRegion{--dsh-scrollbar-thumb:transparent;--dsh-scrollbar-thumb-hover:transparent}.Y0dWHa_summaryScrollRegion:hover,.Y0dWHa_summaryScrollRegion:focus-within{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2)}.Y0dWHa_compactedSummary .Y0dWHa_markdownPayload{padding-right:18px}.Y0dWHa_overview{font:var(--dsw-font-xs-13);margin:0;padding:8px 0}.Y0dWHa_overviewParentLinks{gap:14px;display:flex}.Y0dWHa_overviewHierarchyNavLink{all:unset;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;opacity:1;align-items:center;gap:1px;display:inline-flex}.Y0dWHa_overviewHierarchyNavLink:hover{color:var(--dsw-alias-label-primary)}.Y0dWHa_overviewHierarchyJumpIconTight{color:var(--dsw-alias-label-caption);flex:none}.Y0dWHa_overviewHierarchyNavLink:hover .Y0dWHa_overviewHierarchyJumpIconTight,.Y0dWHa_overviewHierarchyNavLink:focus-visible .Y0dWHa_overviewHierarchyJumpIconTight{color:var(--dsw-alias-label-primary)}.Y0dWHa_overviewHierarchyNavLink:focus-visible{color:var(--dsw-alias-label-primary);outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_overview>div{grid-template-columns:94px minmax(0,1fr);align-items:center;min-height:22px;padding:0 14px;display:grid}.Y0dWHa_overview>.Y0dWHa_requestTokenDetail dt{padding-left:12px}.Y0dWHa_usagePanel{padding:4px 0 10px}.Y0dWHa_usageGroup+.Y0dWHa_usageGroup{margin-top:8px}.Y0dWHa_usageHeading{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-strong-13);user-select:none;margin:0;padding:4px 14px 1px}.Y0dWHa_usageGroup .Y0dWHa_overview{padding:0}.Y0dWHa_overview dt{color:var(--dsw-alias-label-tertiary)}.Y0dWHa_overview dd{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.Y0dWHa_timestampToggle{all:unset;color:inherit;cursor:pointer;font:inherit;user-select:text}.Y0dWHa_timestampToggle:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_overviewSections{border-top:0;flex-direction:column;flex:1;min-height:min-content;display:flex;overflow:hidden}.Y0dWHa_overviewSection{flex-direction:column;flex:1 1 0;min-height:28px;max-height:max-content;display:flex;overflow:hidden}.Y0dWHa_overviewSection+.Y0dWHa_overviewSection{padding-top:8px}.Y0dWHa_overviewHeading{box-sizing:border-box;width:100%;height:28px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);font:var(--dsw-font-xs-strong-13);user-select:none;flex:none;align-items:flex-end;margin:0;padding:0 0 3px 14px;display:flex}.Y0dWHa_overviewTitle{width:max-content;height:auto;color:inherit;cursor:pointer;font:inherit;user-select:none;background:0 0;border:0;flex:none;align-items:center;gap:3px;padding:0;line-height:1;display:inline-flex}.Y0dWHa_overviewTitleIcon{color:var(--dsw-alias-label-caption);flex:none}.Y0dWHa_overviewTitle:hover .Y0dWHa_overviewTitleIcon{color:var(--dsw-alias-label-primary)}.Y0dWHa_overviewTitle:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_overviewTitle:focus-visible .Y0dWHa_overviewTitleIcon{color:var(--dsw-alias-state-business-primary)}.Y0dWHa_overviewPreview{overscroll-behavior:contain;background:var(--dsw-alias-bg-layer-1);flex:1;min-height:0;overflow:auto}.Y0dWHa_overviewPreview>:last-child{margin-bottom:0;padding-bottom:0}.Y0dWHa_overviewPreview .Y0dWHa_jsonPreview>:first-child,.Y0dWHa_overviewPreview .Y0dWHa_schemaTree>:first-child{padding-bottom:0}.Y0dWHa_overviewPreview .Y0dWHa_schemaTree{margin-bottom:0}.Y0dWHa_overviewPreview .Y0dWHa_overview{padding:2px 0 0}.Y0dWHa_overviewPreview .Y0dWHa_overview>div{min-height:22px}.Y0dWHa_markdownPreview,.Y0dWHa_markdownPayload{color:var(--dsw-alias-label-primary)}.Y0dWHa_markdownPreview>div,.Y0dWHa_markdownPayload>div{font:var(--dsw-font-xs-13);gap:8px}.Y0dWHa_markdownPreview>div h1,.Y0dWHa_markdownPayload>div h1{font:600 16px/22px var(--dsw-font-family)}.Y0dWHa_markdownPreview>div h2,.Y0dWHa_markdownPayload>div h2{font:600 15px/22px var(--dsw-font-family)}.Y0dWHa_markdownPreview>div :where(h3,h4,h5,h6),.Y0dWHa_markdownPayload>div :where(h3,h4,h5,h6){font:600 14px/20px var(--dsw-font-family)}.Y0dWHa_markdownPreview>div :not(pre)>code,.Y0dWHa_markdownPayload>div :not(pre)>code{font:12px/18px var(--ds-font-family-code)}.Y0dWHa_markdownPreview>div table,.Y0dWHa_markdownPayload>div table{font:var(--dsw-font-xs-13)}.Y0dWHa_markdownPreview>div>:first-child{margin-top:0}.Y0dWHa_markdownPreview>div>:last-child{margin-bottom:0}.Y0dWHa_markdownPreview>div :where(h1,h2,h3){margin:12px 0 6px}.Y0dWHa_markdownPreview>div :where(h4,h5,h6){margin:10px 0 5px}.Y0dWHa_markdownPreview>div :where(p,ul,ol){margin:8px 0}.Y0dWHa_markdownPreview>div li:not(:first-child){margin-top:3px}.Y0dWHa_markdownPreview>div blockquote{margin-top:8px}.Y0dWHa_markdownPreview>div hr{margin:14px 0}.Y0dWHa_markdownPreview>div>.md-code-block{margin:10px 0}.Y0dWHa_assistantContent .Y0dWHa_markdownPayload,.Y0dWHa_assistantContent .Y0dWHa_payload{min-height:0}.Y0dWHa_thinkingQuote{border-left:2px solid var(--dsw-alias-markdown-citation);color:var(--dsw-alias-label-secondary);background:0 0;margin:6px 14px 0 12px;padding-left:6px}.Y0dWHa_thinkingQuoteOnlyPreview{margin-bottom:8px}.Y0dWHa_detailBody>.Y0dWHa_assistantContentRendered .Y0dWHa_thinkingQuote{margin-top:14px}.Y0dWHa_thinkingToggle{width:max-content;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:600 12px/18px var(--dsw-font-family);user-select:none;background:0 0;border:0;align-items:center;gap:2px;padding:0;display:flex}.Y0dWHa_thinkingChevron{transition:transform .12s var(--ds-ease-in-out);flex:none}.Y0dWHa_thinkingToggle[aria-expanded=true] .Y0dWHa_thinkingChevron{transform:rotate(90deg)}.Y0dWHa_thinkingToggle:hover{color:var(--dsw-alias-label-secondary)}.Y0dWHa_thinkingToggle:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_thinkingQuote .Y0dWHa_markdownPreview,.Y0dWHa_thinkingQuote .Y0dWHa_markdownPayload,.Y0dWHa_thinkingQuote .Y0dWHa_payload{min-height:0;color:var(--dsw-alias-label-secondary);background:0 0;padding:2px 0}.Y0dWHa_assistantOutput{background:var(--dsw-alias-bg-layer-1)}.Y0dWHa_markdownPreview{padding:6px 14px 8px}.Y0dWHa_markdownPayload{min-height:100%;padding:14px}.Y0dWHa_jsonPayload{min-height:100%}.Y0dWHa_jsonPreview{min-height:0}.Y0dWHa_schema{background:var(--dsw-alias-bg-layer-1);min-height:100%}.Y0dWHa_schemaPreview{min-height:0}.Y0dWHa_schemaIntro{padding:12px 14px 6px}.Y0dWHa_schemaPreview .Y0dWHa_schemaIntro{padding-top:6px}.Y0dWHa_schemaName{color:var(--dsw-alias-label-primary);font:600 12px/18px var(--ds-font-family-code);margin:0}.Y0dWHa_schemaDescription{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13);white-space:pre-wrap;margin:2px 0 0}.Y0dWHa_schemaParameters{min-width:0}.Y0dWHa_schemaParametersTitle{color:var(--dsw-alias-label-tertiary);font:600 11px/16px var(--dsw-font-family);user-select:none;margin:0;padding:4px 14px 2px}.Y0dWHa_schemaTree{margin:0 6px 8px 0}.Y0dWHa_payload{box-sizing:border-box;overflow-wrap:anywhere;min-height:100%;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-markdown-code-block);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;margin:0;padding:14px}.Y0dWHa_payloadPreview{min-height:0;padding:6px 14px 8px}.Y0dWHa_sourceBlocks{box-sizing:border-box;min-height:100%;padding:12px 14px}.Y0dWHa_sourceBlock+.Y0dWHa_sourceBlock{margin-top:14px}.Y0dWHa_sourceBlockHeader,.Y0dWHa_sourceBlockJumpTarget{user-select:none;align-items:center;gap:3px;width:max-content;margin-bottom:3px;display:flex}.Y0dWHa_sourceBlockJumpTarget{all:unset;cursor:pointer;user-select:none;align-items:center;gap:3px;width:max-content;margin-bottom:3px;display:flex}.Y0dWHa_sourceBlockLabel{color:var(--dsw-alias-label-tertiary);font:11px/16px var(--ds-font-family-code)}.Y0dWHa_sourceBlockJumpIcon{color:var(--dsw-alias-label-caption);flex:none}.Y0dWHa_sourceBlockJumpTarget:hover .Y0dWHa_sourceBlockJumpIcon{color:var(--dsw-alias-label-primary)}.Y0dWHa_sourceBlockJumpTarget:focus-visible{outline:none}.Y0dWHa_sourceBlockJumpTarget:focus-visible .Y0dWHa_sourceBlockJumpIcon{color:var(--dsw-alias-state-business-primary)}.Y0dWHa_sourceBlockContent{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;background:0 0;margin:0}.Y0dWHa_messageImages{flex-direction:column;gap:8px;margin:8px 14px 14px;display:flex}.Y0dWHa_messageImagesPreview{gap:6px;margin:6px 14px 8px}.Y0dWHa_assistantToolCalls{box-sizing:border-box;max-width:100%;color:var(--dsw-alias-label-secondary);font:11px/17px var(--ds-font-family-code);margin:2px 14px 12px;padding:0;list-style:none}.Y0dWHa_assistantToolCallsPreview{margin-top:2px;margin-bottom:8px}.Y0dWHa_assistantToolCalls li{min-width:0}.Y0dWHa_assistantToolCallButton{all:unset;box-sizing:border-box;cursor:pointer;border-radius:3px;align-items:center;width:calc(100% + 4px);min-width:0;height:19px;margin-left:-4px;padding:0 4px;display:flex}.Y0dWHa_assistantToolCallButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_assistantToolCallButton:focus-visible{background:var(--dsw-alias-interactive-bg-hover);outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.Y0dWHa_assistantToolCallIcon{color:var(--dsw-alias-label-caption);flex:none;margin-right:5px}.Y0dWHa_assistantToolCallButton:hover .Y0dWHa_assistantToolCallIcon,.Y0dWHa_assistantToolCallButton:focus-visible .Y0dWHa_assistantToolCallIcon{color:var(--dsw-alias-label-secondary)}.Y0dWHa_assistantToolCallText{white-space:nowrap;flex:1;min-width:0;display:flex;overflow:hidden}.Y0dWHa_assistantToolCallName{color:var(--dsw-alias-label-secondary);flex:none;margin-right:5px;font-weight:500}.Y0dWHa_assistantToolCallArgs{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Y0dWHa_systemPrompt{box-sizing:border-box}.Y0dWHa_toolCatalog{min-height:100%;padding:8px 0 16px}.Y0dWHa_toolCatalogItem{border-bottom:.5px solid var(--dsw-alias-border-l1)}.Y0dWHa_toolCatalogSummary{box-sizing:border-box;cursor:pointer;user-select:none;grid-template-columns:12px 12px max-content minmax(0,1fr);align-items:center;gap:5px;min-height:30px;padding:4px 12px;list-style:none;display:grid}.Y0dWHa_toolCatalogSummary::-webkit-details-marker{display:none}.Y0dWHa_toolCatalogSummary:hover{background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_toolCatalogSummary:focus-visible{background:var(--dsw-alias-interactive-bg-hover);outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.Y0dWHa_toolCatalogChevron,.Y0dWHa_toolCatalogIcon{color:var(--dsw-alias-label-caption)}.Y0dWHa_toolCatalogChevron{transition:transform .1s var(--ds-ease-in-out)}.Y0dWHa_toolCatalogItem[open] .Y0dWHa_toolCatalogChevron{transform:rotate(90deg)}.Y0dWHa_toolCatalogName{color:var(--dsw-alias-label-primary);font:500 12px/18px var(--ds-font-family-code)}.Y0dWHa_toolCatalogDescription{min-width:0;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Y0dWHa_toolCatalogDefinition{background:var(--dsw-alias-bg-base);padding:0 0 8px 29px}.Y0dWHa_toolCatalogFullDescription{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13);white-space:pre-wrap;margin:0;padding:7px 14px 4px 0}.Y0dWHa_toolCatalogTree{margin-left:-14px;margin-right:6px}.Y0dWHa_resultBlocks{box-sizing:border-box;flex-direction:column;gap:10px;min-height:100%;padding:14px;display:flex}.Y0dWHa_resultBlocksPreview{gap:6px;min-height:0;padding:6px 14px 8px}.Y0dWHa_resultBlockText{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;background:0 0;margin:0}.Y0dWHa_overviewPreview .Y0dWHa_noPayload{padding:6px 14px 8px}.Y0dWHa_noPayload{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);margin:0;padding:18px 14px}@media (width<=760px){.Y0dWHa_details{z-index:5;border-left-color:var(--dsw-alias-border-l3);width:min(92%,420px);max-width:92%;position:absolute;top:0;bottom:0;right:0;box-shadow:-12px 0 32px #00000024}}";
|
|
3788
|
+
const css$3 = ".Y0dWHa_split{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);background:var(--dsw-alias-bg-layer-1);flex:1;width:100%;min-height:0;display:flex;position:relative;overflow:hidden;container-type:inline-size}.Y0dWHa_tablePane{min-width:0;padding-bottom:var(--dsh-trajectory-bottom-clearance,0px);flex:1;position:relative;overflow:hidden auto;container:Y0dWHa_trajectory-table/inline-size}.Y0dWHa_historyLoading{z-index:5;pointer-events:none;height:0;position:sticky;top:0;overflow:visible}.Y0dWHa_historyLoadingBar{box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;height:30px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);justify-content:center;align-items:center;gap:6px;display:flex}.Y0dWHa_historyLoadingSpinner{box-sizing:border-box;border:1.5px solid var(--dsw-alias-border-l2);border-top-color:var(--dsw-alias-state-business-primary);corner-shape:round;border-radius:50%;width:10px;height:10px;animation:.7s linear infinite Y0dWHa_history-loading-spin}.Y0dWHa_table tbody .Y0dWHa_historyLoadRow td{height:30px;padding:0}.Y0dWHa_table tbody .Y0dWHa_historyLoadRow+tr[data-turn-start=true] td:before{content:none}.Y0dWHa_historyLoadButton{background:var(--dsw-alias-bg-layer-1);width:100%;height:29px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:var(--dsw-font-xxs-12);border:0;justify-content:center;align-items:center;gap:6px;display:flex}.Y0dWHa_historyLoadButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.Y0dWHa_historyLoadButton:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-2px}.Y0dWHa_historyLoadButton:disabled{cursor:default}.Y0dWHa_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.Y0dWHa_table:not([data-scroll-ready=true]){visibility:hidden}@keyframes Y0dWHa_history-loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.Y0dWHa_historyLoadingSpinner{animation:none}}.Y0dWHa_table{--trajectory-turn-accent:color-mix(in srgb, var(--dsw-static-blue-500) 22%, var(--dsw-alias-bg-layer-1));border-spacing:0;table-layout:fixed;width:100%;min-width:0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);font:var(--dsw-font-xxs-12)}.Y0dWHa_eventColumn{width:122px}.Y0dWHa_eventColumn:where(:lang(zh)){width:84px}.Y0dWHa_contentColumn{width:auto}.Y0dWHa_table th{z-index:3;box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l2);height:30px;color:var(--dsw-alias-label-tertiary);background:var(--dsw-specific-sidebar-fill);font:var(--dsw-font-xxs-12);text-align:left;text-overflow:ellipsis;user-select:none;white-space:nowrap;padding:0 8px;font-weight:500;position:sticky;top:0;overflow:hidden}.Y0dWHa_eventHeader{text-align:right!important;padding-right:4px!important}.Y0dWHa_table td{box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l1);text-overflow:ellipsis;white-space:nowrap;height:30px;padding:0 8px;overflow:hidden}.Y0dWHa_table tbody .Y0dWHa_virtualSpacer{pointer-events:none}.Y0dWHa_table tbody .Y0dWHa_virtualSpacer td{height:var(--trajectory-virtual-spacer-height);border:0;padding:0}.Y0dWHa_table tbody tr:not([data-collapsed-summary]):not([data-virtual-spacer]):not([data-history-load]){cursor:default;transition:background-color .12s var(--ds-ease-in-out), opacity .12s var(--ds-ease-in-out);outline:none}.Y0dWHa_table tbody tr[data-timeline-focus=outside]{opacity:.24}.Y0dWHa_table tbody tr:not([data-collapsed-summary]):not([data-virtual-spacer]):not([data-history-load]):not([data-selected=true]):hover{background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_table tbody tr[data-request-only=true]:hover{background:0 0}.Y0dWHa_table tbody tr[data-request-only=true] td{border-bottom:0;height:0;padding-top:0;padding-bottom:0}.Y0dWHa_table tbody tr[data-terminal-request-boundary=true] td{height:9px}.Y0dWHa_table tbody tr[data-request-only=true] .Y0dWHa_turnRail{top:-15px;bottom:0}.Y0dWHa_table tbody tr:not([data-collapsed-summary]):focus-visible{box-shadow:inset 0 0 0 1px var(--dsw-alias-state-business-primary)}.Y0dWHa_table tbody tr[data-selected=true]{background:var(--dsw-alias-interactive-bg-active)}.Y0dWHa_requestBoundaryControl{--request-boundary-base-left:12px;z-index:6;top:-8px;left:calc(var(--request-boundary-base-left) + var(--request-boundary-offset,0px));cursor:pointer;background:0 0;border:0;width:16px;height:16px;padding:0;position:absolute}.Y0dWHa_requestBoundaryControl:before{corner-shape:round;background:var(--dsw-alias-label-caption);width:5px;height:5px;box-shadow:0 0 0 2px var(--dsw-alias-bg-layer-1), 0 0 0 3px transparent;content:\"\";transition:background .12s var(--ds-ease-in-out), box-shadow .12s var(--ds-ease-in-out);border-radius:50%;position:absolute;top:5.5px;left:5.5px}.Y0dWHa_requestBoundaryControl:after{border:.5px solid var(--dsw-alias-border-l1);width:max-content;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);content:attr(data-label);font:9px/12px var(--ds-font-family-code);opacity:0;pointer-events:none;transition:opacity .12s var(--ds-ease-in-out), transform .12s var(--ds-ease-in-out);user-select:none;white-space:nowrap;border-radius:2px;padding:0 4px;position:absolute;top:2px;left:17px;transform:translate(-2px);box-shadow:0 2px 6px #0000001f}.Y0dWHa_requestBoundaryControl:hover:before,.Y0dWHa_requestBoundaryControl:focus-visible:before{background:var(--dsw-alias-brand-primary-new-colorprimary-new-color)}.Y0dWHa_requestBoundaryControlActive:before,.Y0dWHa_requestBoundaryControlActive:hover:before,.Y0dWHa_requestBoundaryControlActive:focus-visible:before{background:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 18%, var(--dsw-alias-bg-layer-1));box-shadow:0 0 0 1.5px var(--dsw-alias-brand-primary-new-colorprimary-new-color)}.Y0dWHa_requestBoundaryControl[data-request-status=error]:before,.Y0dWHa_requestBoundaryControl[data-request-status=error]:hover:before,.Y0dWHa_requestBoundaryControl[data-request-status=error]:focus-visible:before{background:var(--dsw-alias-state-error-primary)}.Y0dWHa_requestBoundaryControl:hover:after,.Y0dWHa_requestBoundaryControl:focus-visible:after{opacity:1;transform:translate(0)}.Y0dWHa_requestBoundaryControl:focus-visible{outline:none}.Y0dWHa_table tbody tr:has(.Y0dWHa_requestBoundaryControl:hover):not([data-selected=true]){background:0 0}.Y0dWHa_event{position:relative}.Y0dWHa_turnRail,.Y0dWHa_selectionRail{background:var(--dsw-alias-brand-primary-new-colorprimary-new-color);pointer-events:none;position:absolute;left:0}.Y0dWHa_turnRail{z-index:4;background:var(--trajectory-turn-accent);width:2px;top:-1px;bottom:-1px}.Y0dWHa_table tbody tr[data-turn-end=true] .Y0dWHa_turnRail{bottom:0}.Y0dWHa_selectionRail{z-index:5;width:3px;top:0;bottom:0}.Y0dWHa_table tbody tr[data-error=true] .Y0dWHa_turnRail{background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 22%, var(--dsw-alias-bg-layer-1))}.Y0dWHa_table tbody tr[data-error=true] .Y0dWHa_selectionRail{background:var(--dsw-alias-state-error-primary)}.Y0dWHa_table tbody tr[data-turn-start=true] td{position:relative;overflow:visible}.Y0dWHa_table tbody tr[data-turn-start=true]:not(:first-child) td:before{z-index:1;background:var(--dsw-alias-border-l1);content:\"\";pointer-events:none;height:2px;position:absolute;top:0;left:0;right:0;transform:translateY(-50%)}.Y0dWHa_event{padding-left:36px!important;padding-right:4px!important;overflow:visible!important}.Y0dWHa_turnLabel{z-index:3;box-sizing:border-box;width:max-content;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-module-platform);font:8px/10px var(--ds-font-family-code);font-variant-numeric:tabular-nums;user-select:none;white-space:nowrap;border-radius:0 0 2px;flex:none;align-items:center;padding:1px 5px;display:inline-grid;position:absolute;top:0;left:0}.Y0dWHa_turnLabelFull,.Y0dWHa_turnLabelCompact{opacity:1;white-space:nowrap;grid-area:1/1;max-width:64px;overflow:hidden}.Y0dWHa_turnLabelCompact{opacity:0;max-width:0}.Y0dWHa_turnLabelActive{color:color-mix(in srgb, var(--dsw-static-blue-500) 55%, var(--dsw-alias-label-tertiary));background:var(--trajectory-turn-accent)}.Y0dWHa_eventInner{justify-content:flex-start;align-items:center;min-width:0;height:100%;display:flex}.Y0dWHa_kindSlot{flex:none;justify-content:flex-end;align-items:flex-end;width:76px;display:flex}.Y0dWHa_kindSlot:where(:lang(zh)){width:44px}.Y0dWHa_kindSlot [role=tooltip]{background:var(--dsw-alias-bg-layer-2);box-shadow:var(--dsw-elevation-panel);color:var(--dsw-alias-label-primary);border:0}.Y0dWHa_content{color:var(--dsw-alias-label-primary);padding-left:4px!important}.Y0dWHa_kindTag{box-sizing:border-box;letter-spacing:.035em;user-select:none;border:1px solid #0000;border-radius:4px;flex:none;align-items:center;height:19px;padding:0 5px;font-size:10px;font-weight:650;line-height:16px;display:inline-flex}.Y0dWHa_kindTagIcon{opacity:0;flex:none;justify-content:center;align-items:center;width:0;height:13px;display:inline-flex;overflow:hidden;transform:scale(.8)}.Y0dWHa_kindTagLabel{opacity:1;white-space:nowrap;max-width:72px;display:inline-block;overflow:hidden}.Y0dWHa_table .Y0dWHa_kindSlot .Y0dWHa_message{justify-content:center;width:100%}@container Y0dWHa_trajectory-table (width<=620px){.Y0dWHa_eventColumn{width:50px}.Y0dWHa_event{padding-left:28px!important;padding-right:3px!important}.Y0dWHa_requestBoundaryControl{--request-boundary-base-left:6px}.Y0dWHa_kindSlot{width:19px}.Y0dWHa_kindTag,.Y0dWHa_table .Y0dWHa_kindSlot .Y0dWHa_message{justify-content:center;width:19px;padding-left:0;padding-right:0}.Y0dWHa_kindTagIcon{opacity:1;width:13px;transform:scale(1)}.Y0dWHa_kindTagLabel,.Y0dWHa_turnLabelFull{opacity:0;max-width:0}.Y0dWHa_turnLabelCompact{opacity:1;max-width:64px}}@media (prefers-reduced-motion:no-preference){.Y0dWHa_eventColumn,.Y0dWHa_event,.Y0dWHa_requestBoundaryControl,.Y0dWHa_kindSlot,.Y0dWHa_kindTag,.Y0dWHa_kindTagIcon,.Y0dWHa_kindTagLabel,.Y0dWHa_turnLabelFull,.Y0dWHa_turnLabelCompact{transition-duration:.18s;transition-timing-function:var(--ds-ease-in-out)}.Y0dWHa_eventColumn,.Y0dWHa_kindSlot{transition-property:width}.Y0dWHa_event{transition-property:padding-right,padding-left}.Y0dWHa_requestBoundaryControl{transition-property:left}.Y0dWHa_kindTag{transition-property:padding-right,padding-left}.Y0dWHa_kindTagIcon{transition-property:width,opacity,transform}.Y0dWHa_kindTagLabel,.Y0dWHa_turnLabelFull,.Y0dWHa_turnLabelCompact{transition-property:max-width,opacity}}.Y0dWHa_user{color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-state-business-tertiary)}.Y0dWHa_systemNeutral{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-module-platform)}.Y0dWHa_contextGreen{color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 68%, var(--dsw-alias-label-secondary));background:var(--dsw-alias-state-success-tertiary)}.Y0dWHa_compacted{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-module-platform)}.Y0dWHa_compactedSummary{font:var(--dsw-font-xs-13);margin-top:12px;padding:0 0 14px}.Y0dWHa_promptDiffSections{flex-direction:column;gap:14px;max-height:100%;padding:10px 14px 14px;display:flex;overflow:auto}.Y0dWHa_promptDiffSection{min-width:0}.Y0dWHa_promptDiffTitle{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-strong-13);user-select:none;margin:0 0 6px}.Y0dWHa_promptDiff{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);font:11px/17px var(--ds-font-family-code);white-space:pre;margin:0;overflow:auto}.Y0dWHa_promptDiff span{min-width:max-content;padding:0 6px;display:block}.Y0dWHa_promptDiffLinemeta{color:var(--dsw-alias-label-caption);background:var(--dsw-alias-bg-module-platform);user-select:none}.Y0dWHa_promptDiffLinecontext{color:var(--dsw-alias-label-secondary)}.Y0dWHa_promptDiffLineadded{color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 72%, var(--dsw-alias-label-primary));background:var(--dsw-alias-state-success-tertiary)}.Y0dWHa_promptDiffLineremoved{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, var(--dsw-alias-bg-layer-1))}.Y0dWHa_assistantVioletBright{color:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 60%, var(--dsw-alias-state-error-secondary));background:color-mix(in srgb, color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 55%, var(--dsw-alias-state-error-secondary)) 15%, var(--dsw-alias-bg-layer-1))}.Y0dWHa_toolAmber{color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary)}.Y0dWHa_subtoolAmber{color:color-mix(in srgb, var(--dsw-alias-state-warn-label) 62%, var(--dsw-alias-label-tertiary));background:color-mix(in srgb, var(--dsw-alias-state-warn-tertiary) 58%, var(--dsw-alias-bg-layer-1))}.Y0dWHa_contentText{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.Y0dWHa_toolCallOnly{color:var(--dsw-alias-label-tertiary)}.Y0dWHa_table tbody tr[data-collapsed-summary=turn] td,.Y0dWHa_table tbody tr[data-collapsed-summary=assistant] td{height:20px}.Y0dWHa_table tbody tr[data-collapsed-summary]{cursor:pointer;transition:background-color .12s var(--ds-ease-in-out);outline:none}.Y0dWHa_table tbody tr[data-collapsed-summary]:hover{background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_table tbody tr[data-collapsed-summary]:focus-visible{box-shadow:inset 0 0 0 1px var(--dsw-alias-state-business-primary)}.Y0dWHa_collapsedTurnContent{min-width:0;color:var(--dsw-alias-label-secondary);align-items:center;font-size:12px;line-height:16px;display:flex}.Y0dWHa_collapsedTurnEllipsis{color:var(--dsw-alias-label-tertiary);user-select:none;flex:none;margin-right:6px;font-weight:600}.Y0dWHa_collapsedTurnText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.Y0dWHa_resultPreview{grid-template-columns:clamp(180px, var(--trajectory-tool-request-width,calc(36cqw - 56px)), 480px) minmax(0, 1fr);align-items:center;gap:8px;min-width:0;display:grid}.Y0dWHa_resultRequest,.Y0dWHa_inlineResultText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.Y0dWHa_toolCallNameTypeface{color:var(--dsw-alias-label-primary);font:400 12px/18px Menlo,Consolas,Liberation Mono,PingFang SC,Microsoft YaHei}.Y0dWHa_toolCallPayload{color:var(--dsw-alias-label-secondary);font:400 12px/18px var(--ds-font-family-code);margin-left:7px}.Y0dWHa_table tbody tr[data-kind=tool] .Y0dWHa_contentText,.Y0dWHa_table tbody tr[data-kind=subtool] .Y0dWHa_contentText,.Y0dWHa_table tbody tr[data-kind=tool] .Y0dWHa_resultPreview,.Y0dWHa_table tbody tr[data-kind=subtool] .Y0dWHa_resultPreview{font-family:var(--ds-font-family-code);font-size:12px}.Y0dWHa_table tbody tr[data-kind=subtool] .Y0dWHa_content{padding-left:26px}.Y0dWHa_inlineResult{min-width:0;color:var(--dsw-alias-label-secondary);align-items:center;display:flex}.Y0dWHa_noOutputText{color:var(--dsw-alias-label-caption)}.Y0dWHa_arrow{color:var(--dsw-alias-label-caption);flex:none;margin-right:8px}.Y0dWHa_error,.Y0dWHa_overview dd.Y0dWHa_error,.Y0dWHa_details .Y0dWHa_errorPayload{color:var(--dsw-alias-state-error-primary)}.Y0dWHa_details .Y0dWHa_errorPayload .Y0dWHa_resultBlockText{color:inherit}.Y0dWHa_details .Y0dWHa_jsonPayload.Y0dWHa_errorPayload,.Y0dWHa_details .Y0dWHa_jsonPreview.Y0dWHa_errorPayload{--json-tree-property:var(--dsw-alias-state-error-primary);--json-tree-string:var(--dsw-alias-state-error-primary);--json-tree-number:var(--dsw-alias-state-error-primary);--json-tree-keyword:var(--dsw-alias-state-error-primary);--json-tree-punctuation:var(--dsw-alias-state-error-primary);--json-tree-icon:var(--dsw-alias-state-error-primary)}.Y0dWHa_details{border-left:.5px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);flex-direction:column;flex:none;width:clamp(320px,38%,440px);min-width:0;max-width:calc(100% - 280px);min-height:0;display:flex;position:relative}.Y0dWHa_detailsResizeHandle{z-index:6;cursor:col-resize;touch-action:none;user-select:none;background:0 0;border:0;width:8px;padding:0;position:absolute;top:0;bottom:0;left:-4px}.Y0dWHa_detailsResizeHandle:focus-visible{outline:none}.Y0dWHa_detailsHeader{box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l2);flex:none;justify-content:space-between;align-items:center;height:42px;padding:0 8px 0 12px;display:flex}.Y0dWHa_detailsTitle{min-width:0;color:var(--dsw-alias-label-primary);align-items:center;gap:8px;display:flex}.Y0dWHa_requestDetailsDot{corner-shape:round;background:var(--dsw-alias-label-secondary);border-radius:50%;flex:none;width:5px;height:5px}.Y0dWHa_requestDetailsName{font:500 12px/16px var(--ds-font-family-code);flex:none}.Y0dWHa_detailsLocation{min-width:0;color:var(--dsw-alias-label-tertiary);font:11px/16px var(--ds-font-family-code);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Y0dWHa_close{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:18px;display:inline-flex}.Y0dWHa_close:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_detailTabs{box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l2);overscroll-behavior-x:contain;scrollbar-width:none;white-space:nowrap;flex:none;gap:1px;width:100%;min-width:0;max-width:100%;height:34px;padding:0 8px;display:flex;overflow:auto hidden}.Y0dWHa_detailTabs::-webkit-scrollbar{display:none}.Y0dWHa_detailTab{color:var(--dsw-alias-label-tertiary);cursor:pointer;font:var(--dsw-font-xs-13);background:0 0;border:0;flex:none;padding:0 9px;position:relative}.Y0dWHa_detailTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_detailTabActive{color:var(--dsw-alias-state-business-primary)}.Y0dWHa_detailTabActive:after{background:var(--dsw-alias-state-business-primary);content:\"\";border-radius:1px 1px 0 0;height:2px;position:absolute;bottom:0;left:9px;right:9px}.Y0dWHa_close:focus-visible,.Y0dWHa_detailTab:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.Y0dWHa_detailBody{min-height:0;padding-bottom:var(--dsh-trajectory-bottom-clearance,0px);scrollbar-gutter:stable;flex:1;overflow:hidden auto}.Y0dWHa_detailBodySummary{box-sizing:border-box;padding-bottom:calc(12px + var(--dsh-trajectory-bottom-clearance,0px));flex-direction:column;display:flex;overflow:hidden}.Y0dWHa_detailBodySummary>.Y0dWHa_overview{overscroll-behavior:contain;flex:0 auto;min-height:0;padding-bottom:0;overflow:auto}.Y0dWHa_detailBodySummary>.Y0dWHa_compactedSummary{flex:1;min-height:0;overflow:auto}.Y0dWHa_summaryScrollRegion{--dsh-scrollbar-thumb:transparent;--dsh-scrollbar-thumb-hover:transparent}.Y0dWHa_summaryScrollRegion:hover,.Y0dWHa_summaryScrollRegion:focus-within{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2)}.Y0dWHa_compactedSummary .Y0dWHa_markdownPayload{padding-right:18px}.Y0dWHa_overview{font:var(--dsw-font-xs-13);margin:0;padding:8px 0}.Y0dWHa_overviewParentLinks{gap:14px;display:flex}.Y0dWHa_overviewHierarchyNavLink{all:unset;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;opacity:1;align-items:center;gap:1px;display:inline-flex}.Y0dWHa_overviewHierarchyNavLink:hover{color:var(--dsw-alias-label-primary)}.Y0dWHa_overviewHierarchyJumpIconTight{color:var(--dsw-alias-label-caption);flex:none}.Y0dWHa_overviewHierarchyNavLink:hover .Y0dWHa_overviewHierarchyJumpIconTight,.Y0dWHa_overviewHierarchyNavLink:focus-visible .Y0dWHa_overviewHierarchyJumpIconTight{color:var(--dsw-alias-label-primary)}.Y0dWHa_overviewHierarchyNavLink:focus-visible{color:var(--dsw-alias-label-primary);outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_overview>div{grid-template-columns:94px minmax(0,1fr);align-items:center;min-height:22px;padding:0 14px;display:grid}.Y0dWHa_overview>.Y0dWHa_requestTokenDetail dt{padding-left:12px}.Y0dWHa_usagePanel{padding:4px 0 10px}.Y0dWHa_usageGroup+.Y0dWHa_usageGroup{margin-top:8px}.Y0dWHa_usageHeading{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-strong-13);user-select:none;margin:0;padding:4px 14px 1px}.Y0dWHa_usageGroup .Y0dWHa_overview{padding:0}.Y0dWHa_overview dt{color:var(--dsw-alias-label-tertiary)}.Y0dWHa_overview dd{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.Y0dWHa_timestampToggle{all:unset;color:inherit;cursor:pointer;font:inherit;user-select:text}.Y0dWHa_timestampToggle:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_overviewSections{border-top:0;flex-direction:column;flex:1;min-height:min-content;display:flex;overflow:hidden}.Y0dWHa_overviewSection{flex-direction:column;flex:1 1 0;min-height:24px;max-height:max-content;display:flex;overflow:hidden}.Y0dWHa_overviewSection+.Y0dWHa_overviewSection{padding-top:2px}.Y0dWHa_overviewHeading{box-sizing:border-box;width:100%;height:24px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);font:var(--dsw-font-xs-strong-13);user-select:none;flex:none;align-items:flex-end;margin:0;padding:0 0 3px 14px;display:flex}.Y0dWHa_overviewTitle{width:max-content;height:auto;color:inherit;cursor:pointer;font:inherit;user-select:none;background:0 0;border:0;flex:none;align-items:center;gap:3px;padding:0;line-height:1;display:inline-flex}.Y0dWHa_overviewTitleIcon{color:var(--dsw-alias-label-caption);flex:none}.Y0dWHa_overviewTitle:hover .Y0dWHa_overviewTitleIcon{color:var(--dsw-alias-label-primary)}.Y0dWHa_overviewTitle:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_overviewTitle:focus-visible .Y0dWHa_overviewTitleIcon{color:var(--dsw-alias-state-business-primary)}.Y0dWHa_overviewPreview{overscroll-behavior:contain;background:var(--dsw-alias-bg-layer-1);flex:1;min-height:0;overflow:auto}.Y0dWHa_overviewPreview[data-scroll-more]{mask-image:linear-gradient(#000 calc(100% - 12px),#0000)}.Y0dWHa_overviewPreview>:last-child{margin-bottom:0;padding-bottom:0}.Y0dWHa_programDescription{color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-13);white-space:pre-wrap;overflow-wrap:anywhere;flex:none;margin:0;padding:8px 14px 2px}.Y0dWHa_programIcon{vertical-align:-2px;margin-right:4px}.Y0dWHa_programSummary{font-family:var(--dsw-font-family);margin-left:5px}.Y0dWHa_detailBodyProgram,.Y0dWHa_programPanel{flex-direction:column;min-height:0;display:flex;overflow:hidden}.Y0dWHa_programPanel{background:var(--dsw-alias-bg-layer-1);flex:1}.Y0dWHa_programActions{flex:none;align-items:center;gap:4px;height:16px;margin-left:auto;padding-right:14px;display:inline-flex}.Y0dWHa_programLanguage{color:var(--dsw-alias-label-tertiary);font:11px/16px var(--ds-font-family-code);padding-right:4px}.Y0dWHa_programAction{box-sizing:border-box;width:20px;height:16px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.Y0dWHa_programAction:hover{color:var(--dsw-alias-label-primary)}.Y0dWHa_programAction[aria-pressed=true]{color:var(--dsw-alias-state-business-primary)}.Y0dWHa_programAction[data-state=failed]{color:var(--dsw-alias-state-error-primary)}.Y0dWHa_programAction:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.Y0dWHa_programContent{min-width:0;min-height:0}.Y0dWHa_programPanel>.Y0dWHa_programContent{overscroll-behavior:contain;flex:1;overflow:auto}.Y0dWHa_programSource{background:var(--dsw-alias-bg-layer-1);--dsl-code-block-line-white-space:pre;border-radius:0;margin:0!important}.Y0dWHa_programSource :where(pre){font:12px/16px var(--ds-font-family-code);overflow-wrap:normal;word-break:normal;tab-size:2;border-radius:0;padding:2px 14px 8px;overflow:visible;background:var(--dsw-alias-bg-layer-1)!important}.Y0dWHa_programSource pre code>.line{box-sizing:border-box;width:max-content;min-width:100%}.Y0dWHa_programContent[data-wrap=true] .Y0dWHa_programSource{--dsl-code-block-line-white-space:pre-wrap}.Y0dWHa_programContent[data-wrap=true] .Y0dWHa_programSource pre code>.line{overflow-wrap:anywhere;word-break:break-all;width:auto}.Y0dWHa_programOutput{color:var(--dsw-alias-label-primary);font:12px/16px var(--ds-font-family-code);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:2px 14px 8px}.Y0dWHa_programError:first-line{color:var(--dsw-alias-state-error-primary);font-weight:600}.Y0dWHa_overviewPreview .Y0dWHa_jsonPreview>:first-child,.Y0dWHa_overviewPreview .Y0dWHa_schemaTree>:first-child{padding-top:2px;padding-bottom:0}.Y0dWHa_overviewPreview .Y0dWHa_schemaTree{margin-bottom:0}.Y0dWHa_overviewPreview .Y0dWHa_overview{padding:2px 0 0}.Y0dWHa_overviewPreview .Y0dWHa_overview>div{min-height:22px}.Y0dWHa_markdownPreview,.Y0dWHa_markdownPayload{color:var(--dsw-alias-label-primary)}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact]),.Y0dWHa_markdownPayload>div:not([data-markdown-variant=compact]){font:var(--dsw-font-xs-13);gap:8px}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact]) h1,.Y0dWHa_markdownPayload>div:not([data-markdown-variant=compact]) h1{font:600 16px/22px var(--dsw-font-family)}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact]) h2,.Y0dWHa_markdownPayload>div:not([data-markdown-variant=compact]) h2{font:600 15px/22px var(--dsw-font-family)}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact]) :where(h3,h4,h5,h6),.Y0dWHa_markdownPayload>div:not([data-markdown-variant=compact]) :where(h3,h4,h5,h6){font:600 14px/20px var(--dsw-font-family)}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact]) :not(pre)>code,.Y0dWHa_markdownPayload>div:not([data-markdown-variant=compact]) :not(pre)>code{font:12px/18px var(--ds-font-family-code)}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact]) table,.Y0dWHa_markdownPayload>div:not([data-markdown-variant=compact]) table{font:var(--dsw-font-xs-13)}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact])>:first-child{margin-top:0}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact])>:last-child{margin-bottom:0}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact]) :where(h1,h2,h3){margin:12px 0 6px}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact]) :where(h4,h5,h6){margin:10px 0 5px}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact]) :where(p,ul,ol){margin:8px 0}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact]) li:not(:first-child){margin-top:3px}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact]) blockquote{margin-top:8px}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact]) hr{margin:14px 0}.Y0dWHa_markdownPreview>div:not([data-markdown-variant=compact])>.md-code-block{margin:10px 0}.Y0dWHa_assistantContent .Y0dWHa_markdownPayload,.Y0dWHa_assistantContent .Y0dWHa_payload{min-height:0}.Y0dWHa_thinkingQuote{--dsh-content-font-size-secondary:13px;--dsh-content-font-delta-secondary:0px;border-left:2px solid var(--dsw-alias-markdown-citation);color:var(--dsw-alias-label-secondary);background:0 0;margin:6px 14px 0 12px;padding-left:6px}.Y0dWHa_thinkingQuoteOnlyPreview{margin-bottom:8px}.Y0dWHa_detailBody>.Y0dWHa_assistantContentRendered .Y0dWHa_thinkingQuote{margin-top:14px}.Y0dWHa_thinkingToggle{width:max-content;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:600 12px/18px var(--dsw-font-family);user-select:none;background:0 0;border:0;align-items:center;gap:2px;padding:0;display:flex}.Y0dWHa_thinkingChevron{transition:transform .12s var(--ds-ease-in-out);flex:none}.Y0dWHa_thinkingToggle[aria-expanded=true] .Y0dWHa_thinkingChevron{transform:rotate(90deg)}.Y0dWHa_thinkingToggle:hover{color:var(--dsw-alias-label-secondary)}.Y0dWHa_thinkingToggle:focus-visible{outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_thinkingQuote .Y0dWHa_markdownPreview,.Y0dWHa_thinkingQuote .Y0dWHa_markdownPayload,.Y0dWHa_thinkingQuote .Y0dWHa_payload{min-height:0;color:var(--dsw-alias-label-secondary);background:0 0;padding:2px 0}.Y0dWHa_assistantOutput{background:var(--dsw-alias-bg-layer-1)}.Y0dWHa_markdownPreview{padding:2px 14px 8px}.Y0dWHa_markdownPayload{min-height:100%;padding:14px}.Y0dWHa_jsonPayload{min-height:100%}.Y0dWHa_jsonPreview{min-height:0}.Y0dWHa_schema{background:var(--dsw-alias-bg-layer-1);min-height:100%}.Y0dWHa_schemaPreview{min-height:0}.Y0dWHa_schemaIntro{padding:12px 14px 6px}.Y0dWHa_schemaPreview .Y0dWHa_schemaIntro{padding-top:2px}.Y0dWHa_schemaName{color:var(--dsw-alias-label-primary);font:600 12px/18px var(--ds-font-family-code);margin:0}.Y0dWHa_schemaDescription{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13);white-space:pre-wrap;margin:2px 0 0}.Y0dWHa_schemaParameters{min-width:0}.Y0dWHa_schemaParametersTitle{color:var(--dsw-alias-label-tertiary);font:600 11px/16px var(--dsw-font-family);user-select:none;margin:0;padding:4px 14px 2px}.Y0dWHa_schemaTree{margin:0 6px 8px 0}.Y0dWHa_payload{box-sizing:border-box;overflow-wrap:anywhere;min-height:100%;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-markdown-code-block);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;margin:0;padding:14px}.Y0dWHa_payloadPreview{min-height:0;padding:2px 14px 8px}.Y0dWHa_sourceBlocks{box-sizing:border-box;min-height:100%;padding:12px 14px}.Y0dWHa_sourceBlock+.Y0dWHa_sourceBlock{margin-top:14px}.Y0dWHa_sourceBlockHeader,.Y0dWHa_sourceBlockJumpTarget{user-select:none;align-items:center;gap:3px;width:max-content;margin-bottom:3px;display:flex}.Y0dWHa_sourceBlockJumpTarget{all:unset;cursor:pointer;user-select:none;align-items:center;gap:3px;width:max-content;margin-bottom:3px;display:flex}.Y0dWHa_sourceBlockLabel{color:var(--dsw-alias-label-tertiary);font:11px/16px var(--ds-font-family-code)}.Y0dWHa_sourceBlockJumpIcon{color:var(--dsw-alias-label-caption);flex:none}.Y0dWHa_sourceBlockJumpTarget:hover .Y0dWHa_sourceBlockJumpIcon{color:var(--dsw-alias-label-primary)}.Y0dWHa_sourceBlockJumpTarget:focus-visible{outline:none}.Y0dWHa_sourceBlockJumpTarget:focus-visible .Y0dWHa_sourceBlockJumpIcon{color:var(--dsw-alias-state-business-primary)}.Y0dWHa_sourceBlockContent{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;background:0 0;margin:0}.Y0dWHa_messageImages{flex-direction:column;gap:8px;margin:8px 14px 14px;display:flex}.Y0dWHa_attachments{flex-direction:column;gap:8px;margin:8px 14px 14px;padding:0;list-style:none;display:flex}.Y0dWHa_attachmentsPreview{gap:6px;margin-block:6px 8px}.Y0dWHa_attachmentRow{border:.5px solid var(--dsw-alias-border-l2-darkmode-thin);border-radius:12px;align-items:center;gap:10px;min-width:0;padding:8px;display:flex}.Y0dWHa_attachmentIcon{flex:0 0 48px;place-items:center;width:48px;height:48px;display:grid}.Y0dWHa_attachmentInfo{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.Y0dWHa_attachmentName{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.Y0dWHa_attachmentMetadata{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.Y0dWHa_attachmentDisclosure{border:.5px solid var(--dsw-alias-border-l2-darkmode-thin);border-radius:8px;margin-block:8px}.Y0dWHa_attachmentDisclosure>summary{cursor:pointer;padding:8px}.Y0dWHa_attachmentDisclosure>summary .Y0dWHa_attachmentName{display:block}.Y0dWHa_attachmentDisclosure>summary:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.Y0dWHa_attachmentDisclosure>pre{padding:0 8px 8px}.Y0dWHa_assistantToolCalls{box-sizing:border-box;max-width:100%;color:var(--dsw-alias-label-secondary);font:11px/17px var(--ds-font-family-code);margin:2px 14px 12px;padding:0;list-style:none}.Y0dWHa_assistantToolCallsPreview{margin-top:2px;margin-bottom:8px}.Y0dWHa_assistantToolCalls li{min-width:0}.Y0dWHa_assistantToolCallButton{all:unset;box-sizing:border-box;cursor:pointer;border-radius:3px;align-items:center;width:calc(100% + 4px);min-width:0;height:19px;margin-left:-4px;padding:0 4px;display:flex}.Y0dWHa_assistantToolCallButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_assistantToolCallButton:focus-visible{background:var(--dsw-alias-interactive-bg-hover);outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.Y0dWHa_assistantToolCallIcon{color:var(--dsw-alias-label-caption);flex:none;margin-right:5px}.Y0dWHa_assistantToolCallButton:hover .Y0dWHa_assistantToolCallIcon,.Y0dWHa_assistantToolCallButton:focus-visible .Y0dWHa_assistantToolCallIcon{color:var(--dsw-alias-label-secondary)}.Y0dWHa_assistantToolCallText{white-space:nowrap;flex:1;min-width:0;display:flex;overflow:hidden}.Y0dWHa_assistantToolCallName{color:var(--dsw-alias-label-secondary);flex:none;margin-right:5px;font-weight:500}.Y0dWHa_assistantToolCallArgs{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Y0dWHa_systemPrompt{box-sizing:border-box}.Y0dWHa_toolCatalog{min-height:100%;padding:8px 0 16px}.Y0dWHa_toolCatalogItem{border-bottom:.5px solid var(--dsw-alias-border-l1)}.Y0dWHa_toolCatalogSummary{box-sizing:border-box;cursor:pointer;user-select:none;grid-template-columns:12px 12px max-content minmax(0,1fr);align-items:center;gap:5px;min-height:30px;padding:4px 12px;list-style:none;display:grid}.Y0dWHa_toolCatalogSummary::-webkit-details-marker{display:none}.Y0dWHa_toolCatalogSummary:hover{background:var(--dsw-alias-interactive-bg-hover)}.Y0dWHa_toolCatalogSummary:focus-visible{background:var(--dsw-alias-interactive-bg-hover);outline:1px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.Y0dWHa_toolCatalogChevron,.Y0dWHa_toolCatalogIcon{color:var(--dsw-alias-label-caption)}.Y0dWHa_toolCatalogChevron{transition:transform .1s var(--ds-ease-in-out)}.Y0dWHa_toolCatalogItem[open] .Y0dWHa_toolCatalogChevron{transform:rotate(90deg)}.Y0dWHa_toolCatalogName{color:var(--dsw-alias-label-primary);font:500 12px/18px var(--ds-font-family-code)}.Y0dWHa_toolCatalogDescription{min-width:0;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Y0dWHa_toolCatalogDefinition{background:var(--dsw-alias-bg-base);padding:0 0 8px 29px}.Y0dWHa_toolCatalogFullDescription{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13);white-space:pre-wrap;margin:0;padding:7px 14px 4px 0}.Y0dWHa_toolCatalogTree{margin-left:-14px;margin-right:6px}.Y0dWHa_resultBlocks{box-sizing:border-box;flex-direction:column;gap:10px;min-height:100%;padding:14px;display:flex}.Y0dWHa_resultBlocksPreview{gap:6px;min-height:0;padding:2px 14px 8px}.Y0dWHa_resultBlockText{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;background:0 0;margin:0}.Y0dWHa_overviewPreview .Y0dWHa_noPayload{padding:2px 14px 0}.Y0dWHa_noPayload{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);margin:0;padding:18px 14px}@media (width<=760px){.Y0dWHa_details{z-index:5;border-left-color:var(--dsw-alias-border-l3);width:min(92%,420px);max-width:92%;position:absolute;top:0;bottom:0;right:0;box-shadow:-12px 0 32px #00000024}}";
|
|
3662
3789
|
const tagId$3 = "@deepseek-ai/dsh-client-ui-trajectory/TrajectoryTable.module.css";
|
|
3663
3790
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
|
|
3664
3791
|
const tag = document.createElement("style");
|
|
@@ -3680,6 +3807,14 @@ window.__ModuleLoader__.load({
|
|
|
3680
3807
|
"assistantToolCalls": "Y0dWHa_assistantToolCalls",
|
|
3681
3808
|
"assistantToolCallsPreview": "Y0dWHa_assistantToolCallsPreview",
|
|
3682
3809
|
"assistantVioletBright": "Y0dWHa_assistantVioletBright",
|
|
3810
|
+
"attachmentDisclosure": "Y0dWHa_attachmentDisclosure",
|
|
3811
|
+
"attachmentIcon": "Y0dWHa_attachmentIcon",
|
|
3812
|
+
"attachmentInfo": "Y0dWHa_attachmentInfo",
|
|
3813
|
+
"attachmentMetadata": "Y0dWHa_attachmentMetadata",
|
|
3814
|
+
"attachmentName": "Y0dWHa_attachmentName",
|
|
3815
|
+
"attachmentRow": "Y0dWHa_attachmentRow",
|
|
3816
|
+
"attachments": "Y0dWHa_attachments",
|
|
3817
|
+
"attachmentsPreview": "Y0dWHa_attachmentsPreview",
|
|
3683
3818
|
"close": "Y0dWHa_close",
|
|
3684
3819
|
"collapsedTurnContent": "Y0dWHa_collapsedTurnContent",
|
|
3685
3820
|
"collapsedTurnEllipsis": "Y0dWHa_collapsedTurnEllipsis",
|
|
@@ -3691,6 +3826,7 @@ window.__ModuleLoader__.load({
|
|
|
3691
3826
|
"contentText": "Y0dWHa_contentText",
|
|
3692
3827
|
"contextGreen": "Y0dWHa_contextGreen",
|
|
3693
3828
|
"detailBody": "Y0dWHa_detailBody",
|
|
3829
|
+
"detailBodyProgram": "Y0dWHa_detailBodyProgram",
|
|
3694
3830
|
"detailBodySummary": "Y0dWHa_detailBodySummary",
|
|
3695
3831
|
"detailTab": "Y0dWHa_detailTab",
|
|
3696
3832
|
"detailTabActive": "Y0dWHa_detailTabActive",
|
|
@@ -3724,7 +3860,6 @@ window.__ModuleLoader__.load({
|
|
|
3724
3860
|
"markdownPreview": "Y0dWHa_markdownPreview",
|
|
3725
3861
|
"message": "Y0dWHa_message",
|
|
3726
3862
|
"messageImages": "Y0dWHa_messageImages",
|
|
3727
|
-
"messageImagesPreview": "Y0dWHa_messageImagesPreview",
|
|
3728
3863
|
"noOutputText": "Y0dWHa_noOutputText",
|
|
3729
3864
|
"noPayload": "Y0dWHa_noPayload",
|
|
3730
3865
|
"overview": "Y0dWHa_overview",
|
|
@@ -3739,6 +3874,17 @@ window.__ModuleLoader__.load({
|
|
|
3739
3874
|
"overviewTitleIcon": "Y0dWHa_overviewTitleIcon",
|
|
3740
3875
|
"payload": "Y0dWHa_payload",
|
|
3741
3876
|
"payloadPreview": "Y0dWHa_payloadPreview",
|
|
3877
|
+
"programAction": "Y0dWHa_programAction",
|
|
3878
|
+
"programActions": "Y0dWHa_programActions",
|
|
3879
|
+
"programContent": "Y0dWHa_programContent",
|
|
3880
|
+
"programDescription": "Y0dWHa_programDescription",
|
|
3881
|
+
"programError": "Y0dWHa_programError",
|
|
3882
|
+
"programIcon": "Y0dWHa_programIcon",
|
|
3883
|
+
"programLanguage": "Y0dWHa_programLanguage",
|
|
3884
|
+
"programOutput": "Y0dWHa_programOutput",
|
|
3885
|
+
"programPanel": "Y0dWHa_programPanel",
|
|
3886
|
+
"programSource": "Y0dWHa_programSource",
|
|
3887
|
+
"programSummary": "Y0dWHa_programSummary",
|
|
3742
3888
|
"promptDiff": "Y0dWHa_promptDiff",
|
|
3743
3889
|
"promptDiffLineadded": "Y0dWHa_promptDiffLineadded",
|
|
3744
3890
|
"promptDiffLinecontext": "Y0dWHa_promptDiffLinecontext",
|
|
@@ -3971,8 +4117,8 @@ window.__ModuleLoader__.load({
|
|
|
3971
4117
|
copyCompactJson: t("copy.compactJson"),
|
|
3972
4118
|
copied: t("copied"),
|
|
3973
4119
|
copyFailed: t("copy.failed"),
|
|
3974
|
-
collapseNode: t("
|
|
3975
|
-
expandNode: t("
|
|
4120
|
+
collapseNode: t("collapse"),
|
|
4121
|
+
expandNode: t("expand"),
|
|
3976
4122
|
copyButtonTitle: (action) => t("copy.optionsHint", { action })
|
|
3977
4123
|
};
|
|
3978
4124
|
}
|
|
@@ -4321,13 +4467,15 @@ window.__ModuleLoader__.load({
|
|
|
4321
4467
|
})]
|
|
4322
4468
|
});
|
|
4323
4469
|
}
|
|
4324
|
-
function RequestOptions({ options, preview = false, t }) {
|
|
4470
|
+
function RequestOptions({ options, preview = false, stringWrapping, t }) {
|
|
4325
4471
|
if (options === void 0) return (0, react_jsx_runtime.jsx)("p", {
|
|
4326
4472
|
className: TrajectoryTable_module_css_default.noPayload,
|
|
4327
4473
|
children: t("options.notRecorded")
|
|
4328
4474
|
});
|
|
4329
4475
|
return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, {
|
|
4330
4476
|
data: options,
|
|
4477
|
+
stringWrapping,
|
|
4478
|
+
collapsedStringLines: preview ? 3 : 12,
|
|
4331
4479
|
label: t("options.json"),
|
|
4332
4480
|
labels: jsonTreeLabels(t),
|
|
4333
4481
|
className: preview ? TrajectoryTable_module_css_default.jsonPreview : TrajectoryTable_module_css_default.jsonPayload
|
|
@@ -4349,7 +4497,7 @@ window.__ModuleLoader__.load({
|
|
|
4349
4497
|
if (typeof kind !== "string" || kind === "") return t("source.unknown");
|
|
4350
4498
|
return `${kind[0]?.toUpperCase() ?? ""}${kind.slice(1)}`;
|
|
4351
4499
|
}
|
|
4352
|
-
function MessageSource({ record, t }) {
|
|
4500
|
+
function MessageSource({ record, stringWrapping, t }) {
|
|
4353
4501
|
const source = record.cell.messageSource;
|
|
4354
4502
|
if (source === void 0) return (0, react_jsx_runtime.jsx)("p", {
|
|
4355
4503
|
className: TrajectoryTable_module_css_default.noPayload,
|
|
@@ -4357,6 +4505,8 @@ window.__ModuleLoader__.load({
|
|
|
4357
4505
|
});
|
|
4358
4506
|
return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, {
|
|
4359
4507
|
data: typeof source === "object" && source !== null ? source : { value: source },
|
|
4508
|
+
stringWrapping,
|
|
4509
|
+
collapsedStringLines: 12,
|
|
4360
4510
|
label: t("source.messageJson"),
|
|
4361
4511
|
labels: jsonTreeLabels(t),
|
|
4362
4512
|
className: TrajectoryTable_module_css_default.jsonPayload
|
|
@@ -4427,9 +4577,9 @@ window.__ModuleLoader__.load({
|
|
|
4427
4577
|
},
|
|
4428
4578
|
...record.cell.inputDetail ? [{
|
|
4429
4579
|
id: "input",
|
|
4430
|
-
labelKey: "tab.payload"
|
|
4580
|
+
labelKey: codeProgram(record.cell) === void 0 ? "tab.payload" : "code.source"
|
|
4431
4581
|
}] : [],
|
|
4432
|
-
...record.cell.outputDetail ? [{
|
|
4582
|
+
...record.cell.outputDetail || codeProgram(record.cell) !== void 0 ? [{
|
|
4433
4583
|
id: "output",
|
|
4434
4584
|
labelKey: "tab.result"
|
|
4435
4585
|
}] : [],
|
|
@@ -4445,6 +4595,8 @@ window.__ModuleLoader__.load({
|
|
|
4445
4595
|
}
|
|
4446
4596
|
function recordDisplayText(cell, t) {
|
|
4447
4597
|
if (isToolCallOnly(cell, t)) return "";
|
|
4598
|
+
const program = codeProgram(cell);
|
|
4599
|
+
if (program !== void 0) return `${PTC_TOOL_NAME} · ${program.description.replace(/\s+/g, " ")}`;
|
|
4448
4600
|
if (cell.previewMarkdown !== void 0) {
|
|
4449
4601
|
const preview = trajectoryPreviewText(cell.previewMarkdown);
|
|
4450
4602
|
if (cell.text === "") return preview;
|
|
@@ -4457,11 +4609,16 @@ window.__ModuleLoader__.load({
|
|
|
4457
4609
|
function recordResultText(cell) {
|
|
4458
4610
|
return cell.resultPreviewMarkdown === void 0 ? cell.result : trajectoryPreviewText(cell.resultPreviewMarkdown);
|
|
4459
4611
|
}
|
|
4460
|
-
function toolCallTextParts(
|
|
4461
|
-
if (kind !== "tool" && kind !== "subtool") return void 0;
|
|
4612
|
+
function toolCallTextParts(cell, text) {
|
|
4613
|
+
if (cell.kind !== "tool" && cell.kind !== "subtool") return void 0;
|
|
4614
|
+
const program = cell.toolName === PTC_TOOL_NAME;
|
|
4462
4615
|
const separator = text.indexOf(" · ");
|
|
4463
|
-
if (separator === -1) return {
|
|
4616
|
+
if (separator === -1) return {
|
|
4617
|
+
name: text,
|
|
4618
|
+
program
|
|
4619
|
+
};
|
|
4464
4620
|
return {
|
|
4621
|
+
program,
|
|
4465
4622
|
name: text.slice(0, separator),
|
|
4466
4623
|
args: text.slice(separator + 3)
|
|
4467
4624
|
};
|
|
@@ -4473,6 +4630,7 @@ window.__ModuleLoader__.load({
|
|
|
4473
4630
|
const displayText = (0, react.useMemo)(() => recordDisplayText(cell, t), [
|
|
4474
4631
|
cell.kind,
|
|
4475
4632
|
cell.text,
|
|
4633
|
+
cell.toolName,
|
|
4476
4634
|
cell.previewMarkdown,
|
|
4477
4635
|
cell.inputDetail,
|
|
4478
4636
|
cell.outputDetail,
|
|
@@ -4481,7 +4639,7 @@ window.__ModuleLoader__.load({
|
|
|
4481
4639
|
]);
|
|
4482
4640
|
const resultText = (0, react.useMemo)(() => recordResultText(cell), [cell.result, cell.resultPreviewMarkdown]);
|
|
4483
4641
|
const toolCallOnly = isToolCallOnly(cell, t);
|
|
4484
|
-
const toolCallText = toolCallTextParts(cell
|
|
4642
|
+
const toolCallText = toolCallTextParts(cell, displayText);
|
|
4485
4643
|
return children({
|
|
4486
4644
|
displayText,
|
|
4487
4645
|
listDisplayText: toolCallOnly ? t("record.toolCallOnly") : toolCallText === void 0 ? displayText : [toolCallText.name, toolCallText.args].filter(Boolean).join(" "),
|
|
@@ -4496,21 +4654,25 @@ window.__ModuleLoader__.load({
|
|
|
4496
4654
|
children: t("record.toolCallOnly")
|
|
4497
4655
|
});
|
|
4498
4656
|
if (toolCallText === void 0) return displayText || "—";
|
|
4499
|
-
return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.
|
|
4657
|
+
return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsxs)("span", {
|
|
4500
4658
|
className: TrajectoryTable_module_css_default.toolCallNameTypeface,
|
|
4501
|
-
children: toolCallText.
|
|
4659
|
+
children: [toolCallText.program && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutline16, {
|
|
4660
|
+
className: TrajectoryTable_module_css_default.programIcon,
|
|
4661
|
+
size: 12
|
|
4662
|
+
}), toolCallText.name || "—"]
|
|
4502
4663
|
}), toolCallText.args !== void 0 && (0, react_jsx_runtime.jsx)("span", {
|
|
4503
|
-
className: TrajectoryTable_module_css_default.toolCallPayload,
|
|
4664
|
+
className: toolCallText.program ? TrajectoryTable_module_css_default.programSummary : TrajectoryTable_module_css_default.toolCallPayload,
|
|
4504
4665
|
children: toolCallText.args
|
|
4505
4666
|
})] });
|
|
4506
4667
|
}
|
|
4507
|
-
function MarkdownFragment({ text, rendered, preview, t }) {
|
|
4668
|
+
function MarkdownFragment({ text, rendered, preview, variant = "body", t }) {
|
|
4508
4669
|
const labels = (0, react.useMemo)(() => markdownLabels(t), [t]);
|
|
4509
4670
|
if (rendered) return (0, react_jsx_runtime.jsx)("div", {
|
|
4510
4671
|
className: preview ? TrajectoryTable_module_css_default.markdownPreview : TrajectoryTable_module_css_default.markdownPayload,
|
|
4511
4672
|
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, {
|
|
4512
4673
|
text,
|
|
4513
|
-
labels
|
|
4674
|
+
labels,
|
|
4675
|
+
variant
|
|
4514
4676
|
})
|
|
4515
4677
|
});
|
|
4516
4678
|
return (0, react_jsx_runtime.jsx)("pre", {
|
|
@@ -4518,60 +4680,113 @@ window.__ModuleLoader__.load({
|
|
|
4518
4680
|
children: text
|
|
4519
4681
|
});
|
|
4520
4682
|
}
|
|
4521
|
-
function SourceBlocks({ blocks, onOpenCall,
|
|
4683
|
+
function SourceBlocks({ blocks, onOpenCall, t }) {
|
|
4684
|
+
const attachments = new Map(recordAttachments(blocks, t).map((entry) => [entry.index, entry]));
|
|
4522
4685
|
return (0, react_jsx_runtime.jsx)("div", {
|
|
4523
4686
|
className: TrajectoryTable_module_css_default.sourceBlocks,
|
|
4524
|
-
children: blocks.map((block, index) =>
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
"aria-label": t("block.openSummary", { index: index + 1 }),
|
|
4530
|
-
title: t("block.openSummaryTitle"),
|
|
4531
|
-
onClick: () => {
|
|
4532
|
-
if (block.callId !== void 0) onOpenCall(block.callId);
|
|
4533
|
-
},
|
|
4534
|
-
children: [(0, react_jsx_runtime.jsx)("span", {
|
|
4687
|
+
children: blocks.map((block, index) => {
|
|
4688
|
+
const attachment = attachments.get(index);
|
|
4689
|
+
return attachment !== void 0 ? (0, react_jsx_runtime.jsxs)("details", {
|
|
4690
|
+
className: TrajectoryTable_module_css_default.attachmentDisclosure,
|
|
4691
|
+
children: [(0, react_jsx_runtime.jsxs)("summary", { children: [(0, react_jsx_runtime.jsx)("span", {
|
|
4535
4692
|
className: TrajectoryTable_module_css_default.sourceBlockLabel,
|
|
4536
4693
|
children: t("block.label", {
|
|
4537
4694
|
index: index + 1,
|
|
4538
4695
|
type: block.type
|
|
4539
4696
|
})
|
|
4540
|
-
}), (0, react_jsx_runtime.jsx)(
|
|
4541
|
-
className: TrajectoryTable_module_css_default.
|
|
4542
|
-
|
|
4697
|
+
}), (0, react_jsx_runtime.jsx)("span", {
|
|
4698
|
+
className: TrajectoryTable_module_css_default.attachmentName,
|
|
4699
|
+
title: attachment.name,
|
|
4700
|
+
children: attachment.name
|
|
4701
|
+
})] }), (0, react_jsx_runtime.jsx)("pre", {
|
|
4702
|
+
className: TrajectoryTable_module_css_default.sourceBlockContent,
|
|
4703
|
+
children: block.content
|
|
4543
4704
|
})]
|
|
4544
|
-
}) : (0, react_jsx_runtime.
|
|
4545
|
-
className: TrajectoryTable_module_css_default.
|
|
4546
|
-
children: (0, react_jsx_runtime.
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4705
|
+
}, index) : (0, react_jsx_runtime.jsxs)("section", {
|
|
4706
|
+
className: TrajectoryTable_module_css_default.sourceBlock,
|
|
4707
|
+
children: [block.callId !== void 0 ? (0, react_jsx_runtime.jsxs)("button", {
|
|
4708
|
+
type: "button",
|
|
4709
|
+
className: TrajectoryTable_module_css_default.sourceBlockJumpTarget,
|
|
4710
|
+
"aria-label": t("block.openSummary", { index: index + 1 }),
|
|
4711
|
+
title: t("block.openSummaryTitle"),
|
|
4712
|
+
onClick: () => {
|
|
4713
|
+
if (block.callId !== void 0) onOpenCall(block.callId);
|
|
4714
|
+
},
|
|
4715
|
+
children: [(0, react_jsx_runtime.jsx)("span", {
|
|
4716
|
+
className: TrajectoryTable_module_css_default.sourceBlockLabel,
|
|
4717
|
+
children: t("block.label", {
|
|
4718
|
+
index: index + 1,
|
|
4719
|
+
type: block.type
|
|
4720
|
+
})
|
|
4721
|
+
}), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {
|
|
4722
|
+
className: TrajectoryTable_module_css_default.sourceBlockJumpIcon,
|
|
4723
|
+
size: 12
|
|
4724
|
+
})]
|
|
4725
|
+
}) : (0, react_jsx_runtime.jsx)("div", {
|
|
4726
|
+
className: TrajectoryTable_module_css_default.sourceBlockHeader,
|
|
4727
|
+
children: (0, react_jsx_runtime.jsx)("span", {
|
|
4728
|
+
className: TrajectoryTable_module_css_default.sourceBlockLabel,
|
|
4729
|
+
children: t("block.label", {
|
|
4730
|
+
index: index + 1,
|
|
4731
|
+
type: block.type
|
|
4732
|
+
})
|
|
4551
4733
|
})
|
|
4552
|
-
})
|
|
4553
|
-
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
}
|
|
4557
|
-
|
|
4558
|
-
children: block.content
|
|
4559
|
-
})]
|
|
4560
|
-
}, index))
|
|
4734
|
+
}), (0, react_jsx_runtime.jsx)("pre", {
|
|
4735
|
+
className: TrajectoryTable_module_css_default.sourceBlockContent,
|
|
4736
|
+
children: block.content
|
|
4737
|
+
})]
|
|
4738
|
+
}, index);
|
|
4739
|
+
})
|
|
4561
4740
|
});
|
|
4562
4741
|
}
|
|
4563
|
-
function
|
|
4564
|
-
|
|
4742
|
+
function recordAttachments(blocks, t) {
|
|
4743
|
+
let imageIndex = 0;
|
|
4744
|
+
return (blocks ?? []).flatMap((block, index) => {
|
|
4745
|
+
const ref = block.attachment ?? block.file;
|
|
4746
|
+
if (ref === void 0) return [];
|
|
4747
|
+
if (block.attachment !== void 0) imageIndex += 1;
|
|
4748
|
+
return [{
|
|
4749
|
+
block,
|
|
4750
|
+
index,
|
|
4751
|
+
name: ref.name ?? t("attachment.imageName", { index: imageIndex }),
|
|
4752
|
+
metadata: [
|
|
4753
|
+
block.attachment?.mediaType ?? (0, _deepseek_ai_dsh_client_ui_primitives.fileExtension)(ref.name ?? "").toUpperCase(),
|
|
4754
|
+
(0, _deepseek_ai_dsh_client_ui_primitives.fileSizeText)(ref.bytes),
|
|
4755
|
+
...block.attachment === void 0 ? [] : [`${block.attachment.width} × ${block.attachment.height}`]
|
|
4756
|
+
].filter(Boolean).join(" · ")
|
|
4757
|
+
}];
|
|
4758
|
+
});
|
|
4565
4759
|
}
|
|
4566
|
-
function
|
|
4567
|
-
const
|
|
4568
|
-
if (
|
|
4569
|
-
return (0, react_jsx_runtime.jsx)("
|
|
4570
|
-
className: preview ? `${TrajectoryTable_module_css_default.
|
|
4571
|
-
|
|
4572
|
-
|
|
4573
|
-
|
|
4574
|
-
|
|
4760
|
+
function RecordAttachments({ blocks, preview, renderImages, t }) {
|
|
4761
|
+
const attachments = recordAttachments(blocks, t);
|
|
4762
|
+
if (attachments.length === 0) return null;
|
|
4763
|
+
return (0, react_jsx_runtime.jsx)("ul", {
|
|
4764
|
+
className: preview ? `${TrajectoryTable_module_css_default.attachments} ${TrajectoryTable_module_css_default.attachmentsPreview}` : TrajectoryTable_module_css_default.attachments,
|
|
4765
|
+
"aria-label": t("attachment.list"),
|
|
4766
|
+
children: attachments.map(({ block, index, name, metadata }) => (0, react_jsx_runtime.jsxs)("li", {
|
|
4767
|
+
className: TrajectoryTable_module_css_default.attachmentRow,
|
|
4768
|
+
children: [block.attachment !== void 0 ? renderImages({
|
|
4769
|
+
images: [{
|
|
4770
|
+
attachment: block.attachment,
|
|
4771
|
+
label: name
|
|
4772
|
+
}],
|
|
4773
|
+
align: "start",
|
|
4774
|
+
thumbnail: true
|
|
4775
|
+
}) : (0, react_jsx_runtime.jsx)("span", {
|
|
4776
|
+
className: TrajectoryTable_module_css_default.attachmentIcon,
|
|
4777
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.FileTypeIcon, { path: name })
|
|
4778
|
+
}), (0, react_jsx_runtime.jsxs)("div", {
|
|
4779
|
+
className: TrajectoryTable_module_css_default.attachmentInfo,
|
|
4780
|
+
children: [(0, react_jsx_runtime.jsx)("span", {
|
|
4781
|
+
className: TrajectoryTable_module_css_default.attachmentName,
|
|
4782
|
+
title: name,
|
|
4783
|
+
children: name
|
|
4784
|
+
}), (0, react_jsx_runtime.jsx)("span", {
|
|
4785
|
+
className: TrajectoryTable_module_css_default.attachmentMetadata,
|
|
4786
|
+
children: metadata
|
|
4787
|
+
})]
|
|
4788
|
+
})]
|
|
4789
|
+
}, index))
|
|
4575
4790
|
});
|
|
4576
4791
|
}
|
|
4577
4792
|
function AssistantToolCalls({ blocks, preview, onOpenCall, t }) {
|
|
@@ -4630,7 +4845,7 @@ window.__ModuleLoader__.load({
|
|
|
4630
4845
|
})
|
|
4631
4846
|
});
|
|
4632
4847
|
}
|
|
4633
|
-
function ToolCatalog({ tools, t }) {
|
|
4848
|
+
function ToolCatalog({ tools, stringWrapping, t }) {
|
|
4634
4849
|
if (tools.length === 0) return (0, react_jsx_runtime.jsx)("p", {
|
|
4635
4850
|
className: TrajectoryTable_module_css_default.noPayload,
|
|
4636
4851
|
children: t("record.toolsMissing")
|
|
@@ -4663,6 +4878,7 @@ window.__ModuleLoader__.load({
|
|
|
4663
4878
|
children: tool.description
|
|
4664
4879
|
}), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, {
|
|
4665
4880
|
data: tool.parameters,
|
|
4881
|
+
stringWrapping,
|
|
4666
4882
|
label: t("record.namedParametersJson", { name: tool.name }),
|
|
4667
4883
|
labels: jsonTreeLabels(t),
|
|
4668
4884
|
className: TrajectoryTable_module_css_default.toolCatalogTree
|
|
@@ -4757,7 +4973,6 @@ window.__ModuleLoader__.load({
|
|
|
4757
4973
|
if (!rendered && record.cell.sourceBlocks && record.cell.sourceBlocks.length > 0) return (0, react_jsx_runtime.jsx)(SourceBlocks, {
|
|
4758
4974
|
blocks: record.cell.sourceBlocks,
|
|
4759
4975
|
onOpenCall,
|
|
4760
|
-
renderImages,
|
|
4761
4976
|
t
|
|
4762
4977
|
});
|
|
4763
4978
|
if (record.cell.thinkingDetail) {
|
|
@@ -4787,6 +5002,7 @@ window.__ModuleLoader__.load({
|
|
|
4787
5002
|
text: record.cell.thinkingDetail,
|
|
4788
5003
|
rendered,
|
|
4789
5004
|
preview,
|
|
5005
|
+
variant: "compact",
|
|
4790
5006
|
t
|
|
4791
5007
|
})]
|
|
4792
5008
|
}),
|
|
@@ -4805,25 +5021,26 @@ window.__ModuleLoader__.load({
|
|
|
4805
5021
|
onOpenCall,
|
|
4806
5022
|
t
|
|
4807
5023
|
}),
|
|
4808
|
-
(0, react_jsx_runtime.jsx)(
|
|
5024
|
+
(0, react_jsx_runtime.jsx)(RecordAttachments, {
|
|
4809
5025
|
blocks: record.cell.sourceBlocks,
|
|
4810
5026
|
preview,
|
|
4811
|
-
renderImages
|
|
5027
|
+
renderImages,
|
|
5028
|
+
t
|
|
4812
5029
|
})
|
|
4813
5030
|
]
|
|
4814
5031
|
});
|
|
4815
5032
|
}
|
|
4816
5033
|
const source = markdownSource(record);
|
|
4817
|
-
const
|
|
5034
|
+
const hasAttachments = record.cell.sourceBlocks?.some((block) => block.attachment !== void 0 || block.file !== void 0) === true;
|
|
4818
5035
|
const hasToolCalls = record.cell.kind === "message" && record.cell.sourceBlocks?.some((block) => block.type === "tool-call") === true;
|
|
4819
|
-
if (!source && !
|
|
5036
|
+
if (!source && !hasAttachments && !hasToolCalls) {
|
|
4820
5037
|
const emptyLabel = isToolCallOnly(record.cell, t) ? t("record.toolCallOnly") : record.cell.text || t("record.noContent");
|
|
4821
5038
|
return (0, react_jsx_runtime.jsx)("p", {
|
|
4822
5039
|
className: TrajectoryTable_module_css_default.noPayload,
|
|
4823
5040
|
children: emptyLabel
|
|
4824
5041
|
});
|
|
4825
5042
|
}
|
|
4826
|
-
if (!rendered || !
|
|
5043
|
+
if (!rendered || !hasAttachments && !hasToolCalls) return (0, react_jsx_runtime.jsx)(MarkdownFragment, {
|
|
4827
5044
|
text: source ?? "",
|
|
4828
5045
|
rendered,
|
|
4829
5046
|
preview,
|
|
@@ -4842,14 +5059,15 @@ window.__ModuleLoader__.load({
|
|
|
4842
5059
|
onOpenCall,
|
|
4843
5060
|
t
|
|
4844
5061
|
}),
|
|
4845
|
-
(0, react_jsx_runtime.jsx)(
|
|
5062
|
+
(0, react_jsx_runtime.jsx)(RecordAttachments, {
|
|
4846
5063
|
blocks: record.cell.sourceBlocks,
|
|
4847
5064
|
preview,
|
|
4848
|
-
renderImages
|
|
5065
|
+
renderImages,
|
|
5066
|
+
t
|
|
4849
5067
|
})
|
|
4850
5068
|
] });
|
|
4851
5069
|
}
|
|
4852
|
-
function RecordTiming({ record, t }) {
|
|
5070
|
+
function RecordTiming({ record, preview = false, t }) {
|
|
4853
5071
|
return record.cell.kind === "message" && record.cell.assistantMetrics !== void 0 ? (0, react_jsx_runtime.jsx)(AssistantTimingPanel, {
|
|
4854
5072
|
metrics: record.cell.assistantMetrics,
|
|
4855
5073
|
t
|
|
@@ -4861,13 +5079,14 @@ window.__ModuleLoader__.load({
|
|
|
4861
5079
|
t
|
|
4862
5080
|
})] }),
|
|
4863
5081
|
(0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: t("timing.duration") }), (0, react_jsx_runtime.jsx)("dd", { children: formatElapsedSeconds(record.cell.timeSeconds, t) })] }),
|
|
4864
|
-
(0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: t("timing.source") }), (0, react_jsx_runtime.jsx)("dd", { children: record.cell.timeSeconds === null ? t("timing.notAvailable") : t("timing.sessionTimestamps") })] })
|
|
5082
|
+
!preview && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: t("timing.source") }), (0, react_jsx_runtime.jsx)("dd", { children: record.cell.timeSeconds === null ? t("timing.notAvailable") : t("timing.sessionTimestamps") })] })
|
|
4865
5083
|
]
|
|
4866
5084
|
});
|
|
4867
5085
|
}
|
|
4868
|
-
function RequestTiming({ assistant, anchor, request, t }) {
|
|
5086
|
+
function RequestTiming({ assistant, anchor, request, preview = false, t }) {
|
|
4869
5087
|
if (assistant !== void 0) return (0, react_jsx_runtime.jsx)(RecordTiming, {
|
|
4870
5088
|
record: assistant,
|
|
5089
|
+
preview,
|
|
4871
5090
|
t
|
|
4872
5091
|
});
|
|
4873
5092
|
if (request?.startedAt !== void 0) {
|
|
@@ -4880,7 +5099,7 @@ window.__ModuleLoader__.load({
|
|
|
4880
5099
|
t
|
|
4881
5100
|
})] }),
|
|
4882
5101
|
(0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: t("timing.duration") }), (0, react_jsx_runtime.jsx)("dd", { children: formatElapsedSeconds(duration, t) })] }),
|
|
4883
|
-
(0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: t("timing.source") }), (0, react_jsx_runtime.jsx)("dd", { children: duration === null ? t("timing.sessionTimestampsRunning") : t("timing.sessionTimestamps") })] })
|
|
5102
|
+
!preview && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: t("timing.source") }), (0, react_jsx_runtime.jsx)("dd", { children: duration === null ? t("timing.sessionTimestampsRunning") : t("timing.sessionTimestamps") })] })
|
|
4884
5103
|
]
|
|
4885
5104
|
});
|
|
4886
5105
|
}
|
|
@@ -4892,7 +5111,7 @@ window.__ModuleLoader__.load({
|
|
|
4892
5111
|
})] }), (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: t("timing.duration") }), (0, react_jsx_runtime.jsx)("dd", { children: formatElapsedSeconds(null, t) })] })]
|
|
4893
5112
|
});
|
|
4894
5113
|
}
|
|
4895
|
-
function RecordPayload({ record, direction, preview = false, renderImages, t }) {
|
|
5114
|
+
function RecordPayload({ record, direction, preview = false, renderImages, stringWrapping, t }) {
|
|
4896
5115
|
const value = direction === "input" ? record.cell.inputDetail : record.cell.outputDetail;
|
|
4897
5116
|
const missing = direction === "input" ? t("record.noPayload") : t("record.noResult");
|
|
4898
5117
|
if (!value) return (0, react_jsx_runtime.jsx)("p", {
|
|
@@ -4905,6 +5124,8 @@ window.__ModuleLoader__.load({
|
|
|
4905
5124
|
const json = parseJsonContainer(value);
|
|
4906
5125
|
if (direction === "output" && record.cell.outputBlocks?.length === 1 && record.cell.outputBlocks[0]?.type === "text" && json !== void 0) return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, {
|
|
4907
5126
|
data: json,
|
|
5127
|
+
stringWrapping,
|
|
5128
|
+
collapsedStringLines: preview ? 3 : 12,
|
|
4908
5129
|
label: t("record.resultJson"),
|
|
4909
5130
|
labels: jsonTreeLabels(t),
|
|
4910
5131
|
className: payloadClassName
|
|
@@ -4925,6 +5146,8 @@ window.__ModuleLoader__.load({
|
|
|
4925
5146
|
});
|
|
4926
5147
|
if (json !== void 0) return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, {
|
|
4927
5148
|
data: json,
|
|
5149
|
+
stringWrapping,
|
|
5150
|
+
collapsedStringLines: preview ? 3 : 12,
|
|
4928
5151
|
label: t(direction === "input" ? "record.payloadJson" : "record.outputJson"),
|
|
4929
5152
|
labels: jsonTreeLabels(t),
|
|
4930
5153
|
className: payloadClassName
|
|
@@ -4939,7 +5162,7 @@ window.__ModuleLoader__.load({
|
|
|
4939
5162
|
children: value
|
|
4940
5163
|
});
|
|
4941
5164
|
}
|
|
4942
|
-
function RecordSchema({ record, preview = false, t }) {
|
|
5165
|
+
function RecordSchema({ record, preview = false, stringWrapping, t }) {
|
|
4943
5166
|
if (!record.cell.schemaDetail) return (0, react_jsx_runtime.jsx)("p", {
|
|
4944
5167
|
className: TrajectoryTable_module_css_default.noPayload,
|
|
4945
5168
|
children: t("record.schemaUnavailable")
|
|
@@ -4963,6 +5186,8 @@ window.__ModuleLoader__.load({
|
|
|
4963
5186
|
children: t("record.parameters")
|
|
4964
5187
|
}), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, {
|
|
4965
5188
|
data: schema.parameters,
|
|
5189
|
+
stringWrapping,
|
|
5190
|
+
collapsedStringLines: preview ? 3 : 12,
|
|
4966
5191
|
label: t("record.namedParametersJson", { name: schema.name }),
|
|
4967
5192
|
labels: jsonTreeLabels(t),
|
|
4968
5193
|
className: TrajectoryTable_module_css_default.schemaTree
|
|
@@ -4997,12 +5222,184 @@ window.__ModuleLoader__.load({
|
|
|
4997
5222
|
return;
|
|
4998
5223
|
}
|
|
4999
5224
|
}
|
|
5000
|
-
function
|
|
5225
|
+
function InspectorCopyButton({ text, label, t }) {
|
|
5226
|
+
const [state, setState] = (0, react.useState)("idle");
|
|
5227
|
+
(0, react.useEffect)(() => {
|
|
5228
|
+
if (state === "idle") return;
|
|
5229
|
+
const timer = setTimeout(() => {
|
|
5230
|
+
setState("idle");
|
|
5231
|
+
}, 1500);
|
|
5232
|
+
return () => {
|
|
5233
|
+
clearTimeout(timer);
|
|
5234
|
+
};
|
|
5235
|
+
}, [state]);
|
|
5236
|
+
const title = state === "idle" ? label : t(state === "copied" ? "copied" : "copy.failed");
|
|
5237
|
+
return (0, react_jsx_runtime.jsx)("button", {
|
|
5238
|
+
type: "button",
|
|
5239
|
+
className: TrajectoryTable_module_css_default.programAction,
|
|
5240
|
+
"data-state": state,
|
|
5241
|
+
"aria-label": title,
|
|
5242
|
+
title,
|
|
5243
|
+
onClick: () => {
|
|
5244
|
+
(0, _deepseek_ai_dsh_client_ui_primitives.writeClipboard)(text).then((ok) => {
|
|
5245
|
+
setState(ok ? "copied" : "failed");
|
|
5246
|
+
});
|
|
5247
|
+
},
|
|
5248
|
+
children: state === "copied" ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, { size: 12 }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCopyOutline16, { size: 12 })
|
|
5249
|
+
});
|
|
5250
|
+
}
|
|
5251
|
+
function ProgramInput({ program, initialWrapped, stringWrapping, onOpen, t }) {
|
|
5252
|
+
const contentsId = (0, react.useId)();
|
|
5253
|
+
const [wrapped, setWrapped] = (0, react.useState)(initialWrapped);
|
|
5254
|
+
const [showJson, setShowJson] = (0, react.useState)(false);
|
|
5255
|
+
const actions = (0, react_jsx_runtime.jsxs)("span", {
|
|
5256
|
+
className: TrajectoryTable_module_css_default.programActions,
|
|
5257
|
+
children: [
|
|
5258
|
+
!showJson && program.language !== void 0 && (0, react_jsx_runtime.jsx)("span", {
|
|
5259
|
+
className: TrajectoryTable_module_css_default.programLanguage,
|
|
5260
|
+
children: program.language
|
|
5261
|
+
}),
|
|
5262
|
+
!showJson && (0, react_jsx_runtime.jsx)("button", {
|
|
5263
|
+
type: "button",
|
|
5264
|
+
className: TrajectoryTable_module_css_default.programAction,
|
|
5265
|
+
"aria-label": t("record.wrapLines"),
|
|
5266
|
+
title: t("record.wrapLines"),
|
|
5267
|
+
"aria-pressed": wrapped,
|
|
5268
|
+
"aria-controls": contentsId,
|
|
5269
|
+
onClick: () => {
|
|
5270
|
+
const next = !wrapped;
|
|
5271
|
+
setWrapped(next);
|
|
5272
|
+
stringWrapping?.setDefault(next);
|
|
5273
|
+
},
|
|
5274
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconWrapLinesOutline16, { size: 12 })
|
|
5275
|
+
}),
|
|
5276
|
+
onOpen === void 0 && (0, react_jsx_runtime.jsx)("button", {
|
|
5277
|
+
type: "button",
|
|
5278
|
+
className: TrajectoryTable_module_css_default.programAction,
|
|
5279
|
+
"aria-label": t("code.originalJson"),
|
|
5280
|
+
title: t("code.originalJson"),
|
|
5281
|
+
"aria-pressed": showJson,
|
|
5282
|
+
"aria-controls": contentsId,
|
|
5283
|
+
onClick: () => {
|
|
5284
|
+
setShowJson((value) => !value);
|
|
5285
|
+
},
|
|
5286
|
+
children: (0, react_jsx_runtime.jsxs)("svg", {
|
|
5287
|
+
width: "12",
|
|
5288
|
+
height: "12",
|
|
5289
|
+
viewBox: "0 0 16 16",
|
|
5290
|
+
fill: "none",
|
|
5291
|
+
stroke: "currentColor",
|
|
5292
|
+
strokeWidth: "1.5",
|
|
5293
|
+
strokeLinecap: "round",
|
|
5294
|
+
strokeLinejoin: "round",
|
|
5295
|
+
"aria-hidden": "true",
|
|
5296
|
+
children: [(0, react_jsx_runtime.jsx)("path", { d: "M6 2H5a2 2 0 0 0-2 2v2a2 2 0 0 1-2 2 2 2 0 0 1 2 2v2a2 2 0 0 0 2 2h1" }), (0, react_jsx_runtime.jsx)("path", { d: "M10 2h1a2 2 0 0 1 2 2v2a2 2 0 0 0 2 2 2 2 0 0 0-2 2v2a2 2 0 0 1-2 2h-1" })]
|
|
5297
|
+
})
|
|
5298
|
+
}),
|
|
5299
|
+
(0, react_jsx_runtime.jsx)(InspectorCopyButton, {
|
|
5300
|
+
text: showJson ? program.rawInput : program.source,
|
|
5301
|
+
label: t(showJson ? "copy.json" : "code.copySource"),
|
|
5302
|
+
t
|
|
5303
|
+
})
|
|
5304
|
+
]
|
|
5305
|
+
});
|
|
5306
|
+
const body = (0, react_jsx_runtime.jsx)("div", {
|
|
5307
|
+
id: contentsId,
|
|
5308
|
+
className: TrajectoryTable_module_css_default.programContent,
|
|
5309
|
+
"data-wrap": wrapped,
|
|
5310
|
+
children: showJson ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, {
|
|
5311
|
+
data: program.arguments,
|
|
5312
|
+
label: t("record.parametersJson"),
|
|
5313
|
+
labels: jsonTreeLabels(t),
|
|
5314
|
+
stringWrapping
|
|
5315
|
+
}) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
|
|
5316
|
+
code: program.source,
|
|
5317
|
+
lang: program.language,
|
|
5318
|
+
lineNumbers: true,
|
|
5319
|
+
showHeader: false,
|
|
5320
|
+
className: TrajectoryTable_module_css_default.programSource,
|
|
5321
|
+
copyLabel: t("code.copySource"),
|
|
5322
|
+
copiedLabel: t("copied")
|
|
5323
|
+
})
|
|
5324
|
+
});
|
|
5325
|
+
return onOpen === void 0 ? (0, react_jsx_runtime.jsxs)("section", {
|
|
5326
|
+
className: TrajectoryTable_module_css_default.programPanel,
|
|
5327
|
+
children: [(0, react_jsx_runtime.jsxs)("header", {
|
|
5328
|
+
className: TrajectoryTable_module_css_default.overviewHeading,
|
|
5329
|
+
children: [(0, react_jsx_runtime.jsx)("span", { children: t("code.source") }), actions]
|
|
5330
|
+
}), body]
|
|
5331
|
+
}) : (0, react_jsx_runtime.jsx)(OverviewSection, {
|
|
5332
|
+
label: t("code.source"),
|
|
5333
|
+
onOpen,
|
|
5334
|
+
actions,
|
|
5335
|
+
children: body
|
|
5336
|
+
});
|
|
5337
|
+
}
|
|
5338
|
+
function ProgramOutput({ record, stringWrapping, onOpen, t }) {
|
|
5339
|
+
const output = record.cell.outputDetail;
|
|
5340
|
+
const json = output === void 0 || record.cell.isError === true ? void 0 : parseJsonContainer(output);
|
|
5341
|
+
const actions = output === void 0 ? void 0 : (0, react_jsx_runtime.jsx)("span", {
|
|
5342
|
+
className: TrajectoryTable_module_css_default.programActions,
|
|
5343
|
+
children: (0, react_jsx_runtime.jsx)(InspectorCopyButton, {
|
|
5344
|
+
text: output,
|
|
5345
|
+
label: t("code.copyOutput"),
|
|
5346
|
+
t
|
|
5347
|
+
})
|
|
5348
|
+
});
|
|
5349
|
+
const body = (0, react_jsx_runtime.jsx)("div", {
|
|
5350
|
+
className: TrajectoryTable_module_css_default.programContent,
|
|
5351
|
+
children: output === void 0 || output === "" ? (0, react_jsx_runtime.jsx)("p", {
|
|
5352
|
+
className: TrajectoryTable_module_css_default.noPayload,
|
|
5353
|
+
children: t(stateOf(record) === "running" ? "code.running" : "record.noOutput")
|
|
5354
|
+
}) : json !== void 0 ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonTree, {
|
|
5355
|
+
data: json,
|
|
5356
|
+
label: t("record.outputJson"),
|
|
5357
|
+
labels: jsonTreeLabels(t),
|
|
5358
|
+
stringWrapping,
|
|
5359
|
+
collapsedStringLines: onOpen === void 0 ? 12 : 3
|
|
5360
|
+
}) : (0, react_jsx_runtime.jsx)("pre", {
|
|
5361
|
+
className: `${TrajectoryTable_module_css_default.programOutput} ${record.cell.isError === true ? TrajectoryTable_module_css_default.programError : ""}`,
|
|
5362
|
+
children: output
|
|
5363
|
+
})
|
|
5364
|
+
});
|
|
5365
|
+
return onOpen === void 0 ? (0, react_jsx_runtime.jsxs)("section", {
|
|
5366
|
+
className: TrajectoryTable_module_css_default.programPanel,
|
|
5367
|
+
children: [(0, react_jsx_runtime.jsxs)("header", {
|
|
5368
|
+
className: TrajectoryTable_module_css_default.overviewHeading,
|
|
5369
|
+
children: [(0, react_jsx_runtime.jsx)("span", { children: t("code.output") }), actions]
|
|
5370
|
+
}), body]
|
|
5371
|
+
}) : (0, react_jsx_runtime.jsx)(OverviewSection, {
|
|
5372
|
+
label: t("code.output"),
|
|
5373
|
+
onOpen,
|
|
5374
|
+
actions,
|
|
5375
|
+
children: body
|
|
5376
|
+
});
|
|
5377
|
+
}
|
|
5378
|
+
function OverviewSection({ label, onOpen, actions, children }) {
|
|
5379
|
+
const previewRef = (0, react.useRef)(null);
|
|
5380
|
+
const [hasMore, setHasMore] = (0, react.useState)(false);
|
|
5381
|
+
const measureOverflow = (0, react.useCallback)((preview) => {
|
|
5382
|
+
setHasMore(preview.scrollHeight - preview.clientHeight - preview.scrollTop > 1);
|
|
5383
|
+
}, []);
|
|
5384
|
+
(0, react.useLayoutEffect)(() => {
|
|
5385
|
+
const preview = previewRef.current;
|
|
5386
|
+
const measure = () => {
|
|
5387
|
+
measureOverflow(preview);
|
|
5388
|
+
};
|
|
5389
|
+
measure();
|
|
5390
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
5391
|
+
const observer = new ResizeObserver(measure);
|
|
5392
|
+
observer.observe(preview);
|
|
5393
|
+
for (const child of preview.children) observer.observe(child);
|
|
5394
|
+
return () => {
|
|
5395
|
+
observer.disconnect();
|
|
5396
|
+
};
|
|
5397
|
+
}, [children, measureOverflow]);
|
|
5001
5398
|
return (0, react_jsx_runtime.jsxs)("section", {
|
|
5002
5399
|
className: TrajectoryTable_module_css_default.overviewSection,
|
|
5003
|
-
children: [(0, react_jsx_runtime.
|
|
5400
|
+
children: [(0, react_jsx_runtime.jsxs)("h3", {
|
|
5004
5401
|
className: TrajectoryTable_module_css_default.overviewHeading,
|
|
5005
|
-
children: (0, react_jsx_runtime.jsxs)("button", {
|
|
5402
|
+
children: [(0, react_jsx_runtime.jsxs)("button", {
|
|
5006
5403
|
type: "button",
|
|
5007
5404
|
className: TrajectoryTable_module_css_default.overviewTitle,
|
|
5008
5405
|
onClick: onOpen,
|
|
@@ -5010,10 +5407,15 @@ window.__ModuleLoader__.load({
|
|
|
5010
5407
|
className: TrajectoryTable_module_css_default.overviewTitleIcon,
|
|
5011
5408
|
size: 12
|
|
5012
5409
|
})]
|
|
5013
|
-
})
|
|
5410
|
+
}), actions]
|
|
5014
5411
|
}), (0, react_jsx_runtime.jsx)("div", {
|
|
5412
|
+
ref: previewRef,
|
|
5015
5413
|
className: `${TrajectoryTable_module_css_default.overviewPreview} ${TrajectoryTable_module_css_default.summaryScrollRegion}`,
|
|
5016
5414
|
"data-summary-scroll-region": "",
|
|
5415
|
+
"data-scroll-more": hasMore || void 0,
|
|
5416
|
+
onScroll: (event) => {
|
|
5417
|
+
measureOverflow(event.currentTarget);
|
|
5418
|
+
},
|
|
5017
5419
|
children
|
|
5018
5420
|
})]
|
|
5019
5421
|
});
|
|
@@ -5024,11 +5426,12 @@ window.__ModuleLoader__.load({
|
|
|
5024
5426
|
* @param props - Grouped trajectory data and whole-ledger fold state.
|
|
5025
5427
|
* @returns The ledger and an optional local record inspector.
|
|
5026
5428
|
*/
|
|
5027
|
-
function TrajectoryTable({ t, renderImages, requestNumbers: sessionRequestNumbers, turns, streamingCells = [], timelineFocusIndexes = null, searchMatchIndexes = null, onSelectedIndexChange, onRecordSelect, recordSelection = null, recordFocus = null, historyLoading = false, olderHistoryLoading = false, historyStartSeq, hasOlderRecords = false, onLoadOlder, onClearSelection, collapsedTurns, onToggleTurn, collapsedAssistants, onToggleAssistant, inspectCallId = null, onInspectApplied }) {
|
|
5429
|
+
function TrajectoryTable({ t, stringWrapping, renderImages, requestNumbers: sessionRequestNumbers, turns, streamingCells = [], timelineFocusIndexes = null, searchMatchIndexes = null, onSelectedIndexChange, onRecordSelect, recordSelection = null, recordFocus = null, historyLoading = false, olderHistoryLoading = false, historyStartSeq, hasOlderRecords = false, onLoadOlder, onClearSelection, collapsedTurns, onToggleTurn, collapsedAssistants, onToggleAssistant, inspectCallId = null, onInspectApplied }) {
|
|
5028
5430
|
const [selectedRecordId, setSelectedRecordId] = (0, react.useState)(null);
|
|
5029
5431
|
const [selectedRequest, setSelectedRequest] = (0, react.useState)(null);
|
|
5030
5432
|
const [activeTab, setActiveTab] = (0, react.useState)("overview");
|
|
5031
|
-
const [
|
|
5433
|
+
const [codeWrappingOnOpen, setCodeWrappingOnOpen] = (0, react.useState)(false);
|
|
5434
|
+
const [thinkingDisclosure, setThinkingDisclosure] = (0, react.useState)();
|
|
5032
5435
|
const [detailsWidth, setDetailsWidth] = (0, react.useState)(null);
|
|
5033
5436
|
const [toolRequestOffset, setToolRequestOffset] = (0, react.useState)(null);
|
|
5034
5437
|
const detailsResizeDrag = (0, react.useRef)(null);
|
|
@@ -5055,6 +5458,14 @@ window.__ModuleLoader__.load({
|
|
|
5055
5458
|
}, [streamingCellsByIndex]);
|
|
5056
5459
|
const selectedTemplate = (0, react.useMemo)(() => selectedRecordId === null ? void 0 : allRecords.find((record) => trajectoryRecordId(record.cell) === selectedRecordId), [allRecords, selectedRecordId]);
|
|
5057
5460
|
const selected = selectedTemplate === void 0 ? void 0 : currentRecord(selectedTemplate);
|
|
5461
|
+
const selectedProgram = selected === void 0 ? void 0 : codeProgram(selected.cell);
|
|
5462
|
+
const thinkingExpanded = thinkingDisclosure?.recordId === selectedRecordId ? thinkingDisclosure.expanded : selected?.cell.kind === "message" && Boolean(selected.cell.thinkingDetail?.trim());
|
|
5463
|
+
const setThinkingExpanded = (expanded) => {
|
|
5464
|
+
if (selectedRecordId !== null) setThinkingDisclosure({
|
|
5465
|
+
recordId: selectedRecordId,
|
|
5466
|
+
expanded
|
|
5467
|
+
});
|
|
5468
|
+
};
|
|
5058
5469
|
const selectedIndex = selected?.cell.index ?? null;
|
|
5059
5470
|
(0, react.useEffect)(() => {
|
|
5060
5471
|
onSelectedIndexChange?.(selectedIndex);
|
|
@@ -5155,6 +5566,7 @@ window.__ModuleLoader__.load({
|
|
|
5155
5566
|
const hasSelectedHierarchy = selectedAssistantRequestTarget !== void 0 || selectedParents.message !== void 0 || selectedParents.tool !== void 0;
|
|
5156
5567
|
const splitStyle = toolRequestOffset === null ? void 0 : { "--trajectory-tool-request-width": `calc(58cqw - ${toolRequestOffset}px)` };
|
|
5157
5568
|
const activateTab = (tab) => {
|
|
5569
|
+
setCodeWrappingOnOpen(stringWrapping?.getDefault() ?? false);
|
|
5158
5570
|
tabHistory.current.delete(tab);
|
|
5159
5571
|
tabHistory.current.add(tab);
|
|
5160
5572
|
setActiveTab(tab);
|
|
@@ -5168,6 +5580,7 @@ window.__ModuleLoader__.load({
|
|
|
5168
5580
|
onClearSelection?.();
|
|
5169
5581
|
};
|
|
5170
5582
|
const selectRecord = (0, react.useCallback)((index) => {
|
|
5583
|
+
setCodeWrappingOnOpen(stringWrapping?.getDefault() ?? false);
|
|
5171
5584
|
const record = allRecords.find((candidate) => candidate.cell.index === index);
|
|
5172
5585
|
onRecordSelect?.(index);
|
|
5173
5586
|
setSelectedRequest(null);
|
|
@@ -5176,7 +5589,11 @@ window.__ModuleLoader__.load({
|
|
|
5176
5589
|
const tabs = detailTabs(record);
|
|
5177
5590
|
const available = new Set(tabs.map((tab) => tab.id));
|
|
5178
5591
|
setActiveTab([...tabHistory.current].reverse().find((tab) => available.has(tab)) ?? tabs[0]?.id ?? "overview");
|
|
5179
|
-
}, [
|
|
5592
|
+
}, [
|
|
5593
|
+
allRecords,
|
|
5594
|
+
onRecordSelect,
|
|
5595
|
+
stringWrapping
|
|
5596
|
+
]);
|
|
5180
5597
|
(0, react.useEffect)(() => {
|
|
5181
5598
|
if (recordSelection === null || appliedRecordSelection.current === recordSelection) return;
|
|
5182
5599
|
appliedRecordSelection.current = recordSelection;
|
|
@@ -5754,7 +6171,7 @@ window.__ModuleLoader__.load({
|
|
|
5754
6171
|
}),
|
|
5755
6172
|
(0, react_jsx_runtime.jsxs)("div", {
|
|
5756
6173
|
id: "trajectory-detail-panel",
|
|
5757
|
-
className: activeTab === "overview" ? `${TrajectoryTable_module_css_default.detailBody} ${TrajectoryTable_module_css_default.detailBodySummary}` : TrajectoryTable_module_css_default.detailBody,
|
|
6174
|
+
className: activeTab === "overview" ? `${TrajectoryTable_module_css_default.detailBody} ${TrajectoryTable_module_css_default.detailBodySummary}` : selectedProgram !== void 0 && (activeTab === "input" || activeTab === "output") ? `${TrajectoryTable_module_css_default.detailBody} ${TrajectoryTable_module_css_default.detailBodyProgram}` : TrajectoryTable_module_css_default.detailBody,
|
|
5758
6175
|
role: "tabpanel",
|
|
5759
6176
|
"aria-labelledby": `trajectory-detail-${activeTab}`,
|
|
5760
6177
|
children: [
|
|
@@ -5810,6 +6227,7 @@ window.__ModuleLoader__.load({
|
|
|
5810
6227
|
children: (0, react_jsx_runtime.jsx)(RequestOptions, {
|
|
5811
6228
|
options: selectedRequestOptions,
|
|
5812
6229
|
preview: true,
|
|
6230
|
+
stringWrapping,
|
|
5813
6231
|
t
|
|
5814
6232
|
})
|
|
5815
6233
|
}),
|
|
@@ -5832,6 +6250,7 @@ window.__ModuleLoader__.load({
|
|
|
5832
6250
|
assistant: selectedRequestAssistant,
|
|
5833
6251
|
anchor: selectedRequestAnchor,
|
|
5834
6252
|
request: selectedRequestInfo,
|
|
6253
|
+
preview: true,
|
|
5835
6254
|
t
|
|
5836
6255
|
})
|
|
5837
6256
|
})
|
|
@@ -5839,6 +6258,7 @@ window.__ModuleLoader__.load({
|
|
|
5839
6258
|
})] }),
|
|
5840
6259
|
selectedRequestInfo !== void 0 && activeTab === "options" && (0, react_jsx_runtime.jsx)(RequestOptions, {
|
|
5841
6260
|
options: selectedRequestOptions,
|
|
6261
|
+
stringWrapping,
|
|
5842
6262
|
t
|
|
5843
6263
|
}),
|
|
5844
6264
|
selectedRequestInfo !== void 0 && activeTab === "usage" && (0, react_jsx_runtime.jsx)(RequestUsagePanel, {
|
|
@@ -5869,6 +6289,7 @@ window.__ModuleLoader__.load({
|
|
|
5869
6289
|
})),
|
|
5870
6290
|
selectedPrompt !== void 0 && activeTab === "tools" && (0, react_jsx_runtime.jsx)(ToolCatalog, {
|
|
5871
6291
|
tools: selectedPrompt.tools,
|
|
6292
|
+
stringWrapping,
|
|
5872
6293
|
t
|
|
5873
6294
|
}),
|
|
5874
6295
|
!promptSelected && selected?.cell.kind === "compacted" && selectedState !== void 0 && activeTab === "overview" && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsxs)("dl", {
|
|
@@ -5895,151 +6316,178 @@ window.__ModuleLoader__.load({
|
|
|
5895
6316
|
t
|
|
5896
6317
|
})
|
|
5897
6318
|
})] }),
|
|
5898
|
-
!promptSelected && selected !== void 0 && selected.cell.kind !== "compacted" && selectedState !== void 0 && activeTab === "overview" && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
5899
|
-
|
|
5900
|
-
|
|
5901
|
-
|
|
5902
|
-
|
|
5903
|
-
|
|
5904
|
-
|
|
5905
|
-
|
|
5906
|
-
|
|
5907
|
-
|
|
5908
|
-
|
|
5909
|
-
|
|
5910
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: messageSourceLabel(selected.cell.messageSource, t) }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {
|
|
5911
|
-
className: TrajectoryTable_module_css_default.overviewHierarchyJumpIconTight,
|
|
5912
|
-
size: 11
|
|
5913
|
-
})]
|
|
5914
|
-
})
|
|
5915
|
-
})] }),
|
|
5916
|
-
hasSelectedHierarchy && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: selectedAssistantRequestTarget !== void 0 ? t("details.source") : t("details.hierarchy") }), (0, react_jsx_runtime.jsxs)("dd", {
|
|
5917
|
-
className: TrajectoryTable_module_css_default.overviewParentLinks,
|
|
5918
|
-
children: [
|
|
5919
|
-
selectedAssistantRequestTarget !== void 0 && (0, react_jsx_runtime.jsxs)("button", {
|
|
5920
|
-
type: "button",
|
|
5921
|
-
className: TrajectoryTable_module_css_default.overviewHierarchyNavLink,
|
|
5922
|
-
onClick: () => {
|
|
5923
|
-
selectRequest(selectedAssistantRequestTarget);
|
|
5924
|
-
},
|
|
5925
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: t("request.label", { request: selectedAssistantRequest ?? "—" }) }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {
|
|
5926
|
-
className: TrajectoryTable_module_css_default.overviewHierarchyJumpIconTight,
|
|
5927
|
-
size: 11
|
|
5928
|
-
})]
|
|
5929
|
-
}),
|
|
5930
|
-
selectedParentMessage !== void 0 && (0, react_jsx_runtime.jsxs)("button", {
|
|
5931
|
-
type: "button",
|
|
5932
|
-
className: TrajectoryTable_module_css_default.overviewHierarchyNavLink,
|
|
5933
|
-
onClick: () => {
|
|
5934
|
-
openRecordSummary(selectedParentMessage);
|
|
5935
|
-
},
|
|
5936
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: t("details.assistantMessage") }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {
|
|
5937
|
-
className: TrajectoryTable_module_css_default.overviewHierarchyJumpIconTight,
|
|
5938
|
-
size: 11
|
|
5939
|
-
})]
|
|
5940
|
-
}),
|
|
5941
|
-
selectedParentTool !== void 0 && (0, react_jsx_runtime.jsxs)("button", {
|
|
6319
|
+
!promptSelected && selected !== void 0 && selected.cell.kind !== "compacted" && selectedState !== void 0 && activeTab === "overview" && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
6320
|
+
selectedProgram !== void 0 && selectedProgram.description !== "" && (0, react_jsx_runtime.jsx)("p", {
|
|
6321
|
+
className: TrajectoryTable_module_css_default.programDescription,
|
|
6322
|
+
children: selectedProgram.description
|
|
6323
|
+
}),
|
|
6324
|
+
(0, react_jsx_runtime.jsxs)("dl", {
|
|
6325
|
+
className: `${TrajectoryTable_module_css_default.overview} ${TrajectoryTable_module_css_default.summaryScrollRegion}`,
|
|
6326
|
+
"data-summary-scroll-region": "",
|
|
6327
|
+
children: [
|
|
6328
|
+
selected.cell.messageSource !== void 0 && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: t("details.source") }), (0, react_jsx_runtime.jsx)("dd", {
|
|
6329
|
+
className: TrajectoryTable_module_css_default.overviewParentLinks,
|
|
6330
|
+
children: (0, react_jsx_runtime.jsxs)("button", {
|
|
5942
6331
|
type: "button",
|
|
5943
6332
|
className: TrajectoryTable_module_css_default.overviewHierarchyNavLink,
|
|
5944
6333
|
onClick: () => {
|
|
5945
|
-
|
|
6334
|
+
activateTab("source");
|
|
5946
6335
|
},
|
|
5947
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children:
|
|
6336
|
+
children: [(0, react_jsx_runtime.jsx)("span", { children: messageSourceLabel(selected.cell.messageSource, t) }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {
|
|
5948
6337
|
className: TrajectoryTable_module_css_default.overviewHierarchyJumpIconTight,
|
|
5949
6338
|
size: 11
|
|
5950
6339
|
})]
|
|
5951
6340
|
})
|
|
5952
|
-
]
|
|
5953
|
-
|
|
5954
|
-
|
|
5955
|
-
|
|
5956
|
-
|
|
5957
|
-
|
|
5958
|
-
|
|
5959
|
-
|
|
5960
|
-
|
|
5961
|
-
|
|
5962
|
-
|
|
5963
|
-
|
|
5964
|
-
|
|
5965
|
-
|
|
5966
|
-
|
|
5967
|
-
|
|
5968
|
-
|
|
5969
|
-
|
|
5970
|
-
|
|
5971
|
-
|
|
5972
|
-
|
|
5973
|
-
|
|
5974
|
-
|
|
5975
|
-
|
|
5976
|
-
|
|
5977
|
-
|
|
5978
|
-
|
|
5979
|
-
|
|
6341
|
+
})] }),
|
|
6342
|
+
hasSelectedHierarchy && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: selectedAssistantRequestTarget !== void 0 ? t("details.source") : t("details.hierarchy") }), (0, react_jsx_runtime.jsxs)("dd", {
|
|
6343
|
+
className: TrajectoryTable_module_css_default.overviewParentLinks,
|
|
6344
|
+
children: [
|
|
6345
|
+
selectedAssistantRequestTarget !== void 0 && (0, react_jsx_runtime.jsxs)("button", {
|
|
6346
|
+
type: "button",
|
|
6347
|
+
className: TrajectoryTable_module_css_default.overviewHierarchyNavLink,
|
|
6348
|
+
onClick: () => {
|
|
6349
|
+
selectRequest(selectedAssistantRequestTarget);
|
|
6350
|
+
},
|
|
6351
|
+
children: [(0, react_jsx_runtime.jsx)("span", { children: t("request.label", { request: selectedAssistantRequest ?? "—" }) }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {
|
|
6352
|
+
className: TrajectoryTable_module_css_default.overviewHierarchyJumpIconTight,
|
|
6353
|
+
size: 11
|
|
6354
|
+
})]
|
|
6355
|
+
}),
|
|
6356
|
+
selectedParentMessage !== void 0 && (0, react_jsx_runtime.jsxs)("button", {
|
|
6357
|
+
type: "button",
|
|
6358
|
+
className: TrajectoryTable_module_css_default.overviewHierarchyNavLink,
|
|
6359
|
+
onClick: () => {
|
|
6360
|
+
openRecordSummary(selectedParentMessage);
|
|
6361
|
+
},
|
|
6362
|
+
children: [(0, react_jsx_runtime.jsx)("span", { children: t("details.assistantMessage") }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {
|
|
6363
|
+
className: TrajectoryTable_module_css_default.overviewHierarchyJumpIconTight,
|
|
6364
|
+
size: 11
|
|
6365
|
+
})]
|
|
6366
|
+
}),
|
|
6367
|
+
selectedParentTool !== void 0 && (0, react_jsx_runtime.jsxs)("button", {
|
|
6368
|
+
type: "button",
|
|
6369
|
+
className: TrajectoryTable_module_css_default.overviewHierarchyNavLink,
|
|
6370
|
+
onClick: () => {
|
|
6371
|
+
openRecordSummary(selectedParentTool);
|
|
6372
|
+
},
|
|
6373
|
+
children: [(0, react_jsx_runtime.jsx)("span", { children: t("details.toolCall") }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutline14, {
|
|
6374
|
+
className: TrajectoryTable_module_css_default.overviewHierarchyJumpIconTight,
|
|
6375
|
+
size: 11
|
|
6376
|
+
})]
|
|
6377
|
+
})
|
|
6378
|
+
]
|
|
6379
|
+
})] }),
|
|
6380
|
+
(0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: t("details.status") }), (0, react_jsx_runtime.jsx)("dd", {
|
|
6381
|
+
className: selectedState === "error" ? TrajectoryTable_module_css_default.error : void 0,
|
|
6382
|
+
children: statusLabel(selectedState, t)
|
|
6383
|
+
})] }),
|
|
6384
|
+
selected.cell.kind === "message" && (0, react_jsx_runtime.jsx)(TokenRows, {
|
|
6385
|
+
cell: selected.cell,
|
|
5980
6386
|
t
|
|
5981
|
-
})
|
|
5982
|
-
|
|
5983
|
-
|
|
5984
|
-
|
|
6387
|
+
}),
|
|
6388
|
+
(selected.cell.kind === "user" || selected.cell.kind === "context") && (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("dt", { children: t("timing.duration") }), (0, react_jsx_runtime.jsx)("dd", { children: formatElapsedSeconds(selected.cell.timeSeconds, t) })] })
|
|
6389
|
+
]
|
|
6390
|
+
}),
|
|
6391
|
+
(0, react_jsx_runtime.jsxs)("div", {
|
|
6392
|
+
className: TrajectoryTable_module_css_default.overviewSections,
|
|
6393
|
+
children: [
|
|
6394
|
+
selectedProgram !== void 0 ? (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(ProgramInput, {
|
|
6395
|
+
program: selectedProgram,
|
|
6396
|
+
initialWrapped: codeWrappingOnOpen,
|
|
6397
|
+
stringWrapping,
|
|
5985
6398
|
onOpen: () => {
|
|
5986
6399
|
activateTab("input");
|
|
5987
6400
|
},
|
|
5988
|
-
|
|
6401
|
+
t
|
|
6402
|
+
}, `preview:${selectedRecordId}`), (0, react_jsx_runtime.jsx)(ProgramOutput, {
|
|
6403
|
+
record: selected,
|
|
6404
|
+
stringWrapping,
|
|
6405
|
+
onOpen: () => {
|
|
6406
|
+
activateTab("output");
|
|
6407
|
+
},
|
|
6408
|
+
t
|
|
6409
|
+
})] }) : isMarkdownRecord(selected) ? (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: (0, react_jsx_runtime.jsx)(OverviewSection, {
|
|
6410
|
+
label: t("tab.preview"),
|
|
6411
|
+
onOpen: () => {
|
|
6412
|
+
activateTab("rendered");
|
|
6413
|
+
},
|
|
6414
|
+
children: (0, react_jsx_runtime.jsx)(MarkdownRecordContent, {
|
|
5989
6415
|
record: selected,
|
|
5990
|
-
direction: "input",
|
|
5991
|
-
preview: true,
|
|
5992
6416
|
renderImages,
|
|
6417
|
+
rendered: true,
|
|
6418
|
+
preview: true,
|
|
6419
|
+
thinkingExpanded,
|
|
6420
|
+
onThinkingExpandedChange: setThinkingExpanded,
|
|
6421
|
+
onOpenCall: openCallSummary,
|
|
5993
6422
|
t
|
|
5994
6423
|
})
|
|
5995
|
-
}),
|
|
5996
|
-
|
|
5997
|
-
|
|
6424
|
+
}) }) : (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
6425
|
+
selected.cell.inputDetail && (0, react_jsx_runtime.jsx)(OverviewSection, {
|
|
6426
|
+
label: t("tab.payload"),
|
|
6427
|
+
onOpen: () => {
|
|
6428
|
+
activateTab("input");
|
|
6429
|
+
},
|
|
6430
|
+
children: (0, react_jsx_runtime.jsx)(RecordPayload, {
|
|
6431
|
+
record: selected,
|
|
6432
|
+
direction: "input",
|
|
6433
|
+
preview: true,
|
|
6434
|
+
renderImages,
|
|
6435
|
+
stringWrapping,
|
|
6436
|
+
t
|
|
6437
|
+
})
|
|
6438
|
+
}),
|
|
6439
|
+
selected.cell.outputDetail && (0, react_jsx_runtime.jsx)(OverviewSection, {
|
|
6440
|
+
label: t("tab.result"),
|
|
6441
|
+
onOpen: () => {
|
|
6442
|
+
activateTab("output");
|
|
6443
|
+
},
|
|
6444
|
+
children: (0, react_jsx_runtime.jsx)(RecordPayload, {
|
|
6445
|
+
record: selected,
|
|
6446
|
+
direction: "output",
|
|
6447
|
+
preview: true,
|
|
6448
|
+
renderImages,
|
|
6449
|
+
stringWrapping,
|
|
6450
|
+
t
|
|
6451
|
+
})
|
|
6452
|
+
}),
|
|
6453
|
+
(0, react_jsx_runtime.jsx)(OverviewSection, {
|
|
6454
|
+
label: t("tab.schema"),
|
|
6455
|
+
onOpen: () => {
|
|
6456
|
+
activateTab("schema");
|
|
6457
|
+
},
|
|
6458
|
+
children: (0, react_jsx_runtime.jsx)(RecordSchema, {
|
|
6459
|
+
record: selected,
|
|
6460
|
+
preview: true,
|
|
6461
|
+
stringWrapping,
|
|
6462
|
+
t
|
|
6463
|
+
})
|
|
6464
|
+
})
|
|
6465
|
+
] }),
|
|
6466
|
+
selectedAssistantRequestTarget !== void 0 && (0, react_jsx_runtime.jsx)(OverviewSection, {
|
|
6467
|
+
label: t("timing.request"),
|
|
5998
6468
|
onOpen: () => {
|
|
5999
|
-
|
|
6469
|
+
selectRequest(selectedAssistantRequestTarget, "timing");
|
|
6000
6470
|
},
|
|
6001
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
6471
|
+
children: (0, react_jsx_runtime.jsx)(RecordTiming, {
|
|
6002
6472
|
record: selected,
|
|
6003
|
-
direction: "output",
|
|
6004
6473
|
preview: true,
|
|
6005
|
-
renderImages,
|
|
6006
6474
|
t
|
|
6007
6475
|
})
|
|
6008
6476
|
}),
|
|
6009
|
-
(0, react_jsx_runtime.jsx)(OverviewSection, {
|
|
6010
|
-
label: t("tab.
|
|
6477
|
+
(selected.cell.kind === "tool" || selected.cell.kind === "subtool") && (0, react_jsx_runtime.jsx)(OverviewSection, {
|
|
6478
|
+
label: t("tab.timing"),
|
|
6011
6479
|
onOpen: () => {
|
|
6012
|
-
activateTab("
|
|
6480
|
+
activateTab("timing");
|
|
6013
6481
|
},
|
|
6014
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
6482
|
+
children: (0, react_jsx_runtime.jsx)(RecordTiming, {
|
|
6015
6483
|
record: selected,
|
|
6016
6484
|
preview: true,
|
|
6017
6485
|
t
|
|
6018
6486
|
})
|
|
6019
6487
|
})
|
|
6020
|
-
]
|
|
6021
|
-
|
|
6022
|
-
|
|
6023
|
-
onOpen: () => {
|
|
6024
|
-
selectRequest(selectedAssistantRequestTarget, "timing");
|
|
6025
|
-
},
|
|
6026
|
-
children: (0, react_jsx_runtime.jsx)(RecordTiming, {
|
|
6027
|
-
record: selected,
|
|
6028
|
-
t
|
|
6029
|
-
})
|
|
6030
|
-
}),
|
|
6031
|
-
(selected.cell.kind === "tool" || selected.cell.kind === "subtool") && (0, react_jsx_runtime.jsx)(OverviewSection, {
|
|
6032
|
-
label: t("tab.timing"),
|
|
6033
|
-
onOpen: () => {
|
|
6034
|
-
activateTab("timing");
|
|
6035
|
-
},
|
|
6036
|
-
children: (0, react_jsx_runtime.jsx)(RecordTiming, {
|
|
6037
|
-
record: selected,
|
|
6038
|
-
t
|
|
6039
|
-
})
|
|
6040
|
-
})
|
|
6041
|
-
]
|
|
6042
|
-
})] }),
|
|
6488
|
+
]
|
|
6489
|
+
})
|
|
6490
|
+
] }),
|
|
6043
6491
|
!promptSelected && selected !== void 0 && activeTab === "rendered" && (0, react_jsx_runtime.jsx)(MarkdownRecordContent, {
|
|
6044
6492
|
record: selected,
|
|
6045
6493
|
renderImages,
|
|
@@ -6060,22 +6508,35 @@ window.__ModuleLoader__.load({
|
|
|
6060
6508
|
}),
|
|
6061
6509
|
!promptSelected && selected !== void 0 && activeTab === "source" && (0, react_jsx_runtime.jsx)(MessageSource, {
|
|
6062
6510
|
record: selected,
|
|
6511
|
+
stringWrapping,
|
|
6063
6512
|
t
|
|
6064
6513
|
}),
|
|
6065
|
-
!promptSelected && selected !== void 0 && activeTab === "input" && (0, react_jsx_runtime.jsx)(RecordPayload, {
|
|
6514
|
+
!promptSelected && selected !== void 0 && activeTab === "input" && (selectedProgram === void 0 ? (0, react_jsx_runtime.jsx)(RecordPayload, {
|
|
6066
6515
|
record: selected,
|
|
6067
6516
|
direction: "input",
|
|
6068
6517
|
renderImages,
|
|
6518
|
+
stringWrapping,
|
|
6069
6519
|
t
|
|
6070
|
-
}),
|
|
6071
|
-
|
|
6520
|
+
}) : (0, react_jsx_runtime.jsx)(ProgramInput, {
|
|
6521
|
+
program: selectedProgram,
|
|
6522
|
+
initialWrapped: codeWrappingOnOpen,
|
|
6523
|
+
stringWrapping,
|
|
6524
|
+
t
|
|
6525
|
+
}, `input:${selectedRecordId}`)),
|
|
6526
|
+
!promptSelected && selected !== void 0 && activeTab === "output" && (selectedProgram === void 0 ? (0, react_jsx_runtime.jsx)(RecordPayload, {
|
|
6072
6527
|
record: selected,
|
|
6073
6528
|
direction: "output",
|
|
6074
6529
|
renderImages,
|
|
6530
|
+
stringWrapping,
|
|
6075
6531
|
t
|
|
6076
|
-
}),
|
|
6532
|
+
}) : (0, react_jsx_runtime.jsx)(ProgramOutput, {
|
|
6533
|
+
record: selected,
|
|
6534
|
+
stringWrapping,
|
|
6535
|
+
t
|
|
6536
|
+
})),
|
|
6077
6537
|
!promptSelected && selected !== void 0 && activeTab === "schema" && (0, react_jsx_runtime.jsx)(RecordSchema, {
|
|
6078
6538
|
record: selected,
|
|
6539
|
+
stringWrapping,
|
|
6079
6540
|
t
|
|
6080
6541
|
}),
|
|
6081
6542
|
!promptSelected && selected !== void 0 && activeTab === "timing" && (0, react_jsx_runtime.jsx)(RecordTiming, {
|
|
@@ -6874,7 +7335,7 @@ window.__ModuleLoader__.load({
|
|
|
6874
7335
|
const images = imageBlockCount(node.content);
|
|
6875
7336
|
const files = fileBlockCount(node.content);
|
|
6876
7337
|
return {
|
|
6877
|
-
text: [
|
|
7338
|
+
text: [images > 0 ? t("layout.imageCount", { count: images }) : void 0, files > 0 ? t("layout.fileAttachments", { count: files }) : void 0].filter((value) => value !== void 0).join(" · "),
|
|
6878
7339
|
...previewMarkdown === void 0 ? {} : { previewMarkdown },
|
|
6879
7340
|
sourceSeq: node.seq,
|
|
6880
7341
|
messageSource: node.source,
|
|
@@ -7399,7 +7860,7 @@ window.__ModuleLoader__.load({
|
|
|
7399
7860
|
}
|
|
7400
7861
|
if (tools.size > 0) return t("layout.toolCallOnly");
|
|
7401
7862
|
const images = blocks.filter((block) => block.kind === "image").length;
|
|
7402
|
-
if (images > 0) return t("layout.
|
|
7863
|
+
if (images > 0) return t("layout.imageCount", { count: images });
|
|
7403
7864
|
return "";
|
|
7404
7865
|
}
|
|
7405
7866
|
function promptChangeLabel(change, t) {
|
|
@@ -7424,11 +7885,10 @@ window.__ModuleLoader__.load({
|
|
|
7424
7885
|
callId: block.callId,
|
|
7425
7886
|
toolName: block.name
|
|
7426
7887
|
};
|
|
7427
|
-
case "image": return {
|
|
7888
|
+
case "image": return sourceBlock({
|
|
7428
7889
|
type: "image",
|
|
7429
|
-
content: "",
|
|
7430
7890
|
attachment: block.attachment
|
|
7431
|
-
};
|
|
7891
|
+
});
|
|
7432
7892
|
case "other": return sourceBlock(block.block);
|
|
7433
7893
|
}
|
|
7434
7894
|
}
|
|
@@ -7443,10 +7903,10 @@ window.__ModuleLoader__.load({
|
|
|
7443
7903
|
type: type === "reasoning" ? "thinking" : type,
|
|
7444
7904
|
content: block.text
|
|
7445
7905
|
};
|
|
7446
|
-
if (type === "image" && typeof block.attachment === "object" && block.attachment !== null && typeof block.attachment.attachmentId === "string") return {
|
|
7906
|
+
if ((type === "image" || type === "file") && typeof block.attachment === "object" && block.attachment !== null && typeof block.attachment.attachmentId === "string") return {
|
|
7447
7907
|
type,
|
|
7448
|
-
content:
|
|
7449
|
-
attachment: block.attachment
|
|
7908
|
+
content: stringifySourceValue(value),
|
|
7909
|
+
...type === "image" ? { attachment: block.attachment } : { file: block.attachment }
|
|
7450
7910
|
};
|
|
7451
7911
|
return {
|
|
7452
7912
|
type,
|
|
@@ -7595,6 +8055,7 @@ window.__ModuleLoader__.load({
|
|
|
7595
8055
|
}
|
|
7596
8056
|
function summarizeCall(name, argsRaw) {
|
|
7597
8057
|
return {
|
|
8058
|
+
toolName: name,
|
|
7598
8059
|
text: name,
|
|
7599
8060
|
...argsRaw === "" ? {} : { previewMarkdown: argsRaw }
|
|
7600
8061
|
};
|
|
@@ -7606,7 +8067,7 @@ window.__ModuleLoader__.load({
|
|
|
7606
8067
|
resultPreviewMarkdown: block.text
|
|
7607
8068
|
};
|
|
7608
8069
|
const images = imageBlockCount(node.content);
|
|
7609
|
-
if (images > 0) return { result: t("layout.
|
|
8070
|
+
if (images > 0) return { result: t("layout.imageCount", { count: images }) };
|
|
7610
8071
|
return { result: t("record.noOutput") };
|
|
7611
8072
|
}
|
|
7612
8073
|
function resultAsText(result) {
|
|
@@ -7620,7 +8081,7 @@ window.__ModuleLoader__.load({
|
|
|
7620
8081
|
const text = node.content.filter((block) => block.type === "text" && typeof block.text === "string").map((block) => block.type === "text" ? block.text : "").join("\n");
|
|
7621
8082
|
if (text !== "") return text;
|
|
7622
8083
|
const images = imageBlockCount(node.content);
|
|
7623
|
-
if (images > 0) return t("layout.
|
|
8084
|
+
if (images > 0) return t("layout.imageCount", { count: images });
|
|
7624
8085
|
if (node.content.length === 0 || node.content.every((block) => block.type === "text" && (typeof block.text !== "string" || block.text === ""))) return t("record.noOutput");
|
|
7625
8086
|
return JSON.stringify(node.content, null, 2);
|
|
7626
8087
|
}
|
|
@@ -7812,7 +8273,7 @@ window.__ModuleLoader__.load({
|
|
|
7812
8273
|
...total?.reasoning === void 0 && usage.reasoning === void 0 ? {} : { reasoning: (total?.reasoning ?? 0) + (usage.reasoning ?? 0) }
|
|
7813
8274
|
};
|
|
7814
8275
|
}
|
|
7815
|
-
function TrajectoryView({ useSession, useTrajectory, useDuration, loadOlder, loadImage, setActualDuration, viewRequest, completeViewRequest, renderSlot, t }) {
|
|
8276
|
+
function TrajectoryView({ useSession, useTrajectory, useDuration, loadOlder, loadImage, setActualDuration, viewRequest, completeViewRequest, renderSlot, t, jsonStringWrapping }) {
|
|
7816
8277
|
const [collapsedTurns, setCollapsedTurns] = (0, react.useState)(EMPTY_TURN_IDS);
|
|
7817
8278
|
const renderImages = (0, react.useCallback)((owner) => renderSlot("conversation.trajectory.images", {
|
|
7818
8279
|
...owner,
|
|
@@ -7900,8 +8361,8 @@ window.__ModuleLoader__.load({
|
|
|
7900
8361
|
const turn = request?.turn ?? node?.turn;
|
|
7901
8362
|
const step = request?.step ?? node?.step;
|
|
7902
8363
|
if (turn === void 0 || step === void 0) continue;
|
|
7903
|
-
const provider = request?.
|
|
7904
|
-
const model = request?.
|
|
8364
|
+
const provider = request?.providerMetadata?.provider ?? node?.providerMetadata?.provider;
|
|
8365
|
+
const model = request?.providerMetadata?.model ?? node?.providerMetadata?.model;
|
|
7905
8366
|
const requestConfig = request?.requestConfig ?? node?.requestConfig;
|
|
7906
8367
|
numbered.push({
|
|
7907
8368
|
seq: entry.seq,
|
|
@@ -7940,8 +8401,8 @@ window.__ModuleLoader__.load({
|
|
|
7940
8401
|
...request.error === void 0 ? {} : { error: request.error },
|
|
7941
8402
|
...request.errorCode === void 0 ? {} : { errorCode: request.errorCode },
|
|
7942
8403
|
resultSeq: request.startSeq,
|
|
7943
|
-
...request.
|
|
7944
|
-
...request.
|
|
8404
|
+
...request.providerMetadata?.provider === void 0 ? {} : { provider: request.providerMetadata.provider },
|
|
8405
|
+
...request.providerMetadata?.model === void 0 ? {} : { model: request.providerMetadata.model },
|
|
7945
8406
|
...request.requestConfig === void 0 ? {} : { requestConfig: request.requestConfig },
|
|
7946
8407
|
...usage === void 0 ? {} : { usage },
|
|
7947
8408
|
...cumulativeUsage === void 0 ? {} : { cumulativeUsage }
|
|
@@ -8147,6 +8608,10 @@ window.__ModuleLoader__.load({
|
|
|
8147
8608
|
className: views_module_css_default.ledger,
|
|
8148
8609
|
children: (0, react_jsx_runtime.jsx)(TrajectoryTable, {
|
|
8149
8610
|
t,
|
|
8611
|
+
stringWrapping: jsonStringWrapping === void 0 ? void 0 : {
|
|
8612
|
+
...jsonStringWrapping,
|
|
8613
|
+
label: t("record.wrapLines")
|
|
8614
|
+
},
|
|
8150
8615
|
renderImages,
|
|
8151
8616
|
requestNumbers,
|
|
8152
8617
|
turns: timelineTurns,
|
|
@@ -8211,6 +8676,7 @@ window.__ModuleLoader__.load({
|
|
|
8211
8676
|
}), "ui-trajectory: dictionaries");
|
|
8212
8677
|
const t = ctx.locale.bind(NS);
|
|
8213
8678
|
const duration = createTrajectoryDurationStore();
|
|
8679
|
+
const stringWrapping = createTrajectoryStringWrappingStore();
|
|
8214
8680
|
registerTrajectoryMessageDefinitions(ctx);
|
|
8215
8681
|
registerTrajectoryRequestHeaderDefinition(ctx);
|
|
8216
8682
|
registerTrajectoryAssistantDefinition(ctx);
|
|
@@ -8237,6 +8703,12 @@ window.__ModuleLoader__.load({
|
|
|
8237
8703
|
const trajectory = ctx.uiConversation.binding(sessionId).target("trajectory");
|
|
8238
8704
|
return {
|
|
8239
8705
|
hooks: { duration },
|
|
8706
|
+
jsonStringWrapping: {
|
|
8707
|
+
getDefault: () => stringWrapping.getSnapshot(),
|
|
8708
|
+
setDefault: (value) => {
|
|
8709
|
+
stringWrapping.set(value);
|
|
8710
|
+
}
|
|
8711
|
+
},
|
|
8240
8712
|
loadOlder: async () => {
|
|
8241
8713
|
const before = trajectory.getSnapshot();
|
|
8242
8714
|
await session.loadOlder();
|