@qilin-agent/client-ui-trajectory 3.1.7 → 3.1.8

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 CHANGED
@@ -18,8 +18,8 @@
18
18
  en: d8bfe28896432de7
19
19
  zh: 27c883954a31f68f
20
20
  /qilin-agent-client-ui-trajectory/use-this-package/inspecting-records:
21
- en: b62f418514e57a53
22
- zh: 94b532cfb9e6e1d4
21
+ en: a3e971b25924e828
22
+ zh: 23a1c5f491c25ba9
23
23
  /qilin-agent-client-ui-trajectory/use-this-package/the-timing-overview:
24
24
  en: ed6608646aa6f081
25
25
  zh: 00755f8b4da6018e
package/README.md CHANGED
@@ -29,9 +29,11 @@ Open the Trajectory ledger from the graph page's Ledger control, or from a Chat
29
29
 
30
30
  ### Inspecting records
31
31
 
32
- Calls are identified by their recorded tool name. For `run_code`, the row shows the program description and the inspector opens numbered, highlighted source. The Code tab provides wrapping, a `{}` toggle for the original JSON arguments, and exact source copying, including trailing newlines. Copying the original arguments retains their recorded JSON whitespace. Each newly opened code view takes the last wrapping choice; changing it leaves other open views as they are. Output preserves the recorded text, using a tree for complete JSON objects or arrays. Highlighting uses only an unambiguous TypeScript or Python hint in the recorded tool schema; missing or conflicting hints leave plain source. See the [PTC inspection decision](../../../.agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.md) for replay constraints.
32
+ The toolbar folds turns, calls, and subcalls independently. Subcalls fold into a summary beneath their parent tool; click the summary or press Enter or Space to expand it. Search includes folded subcalls, and cross-view inspection expands the requested call. Toolbar controls and search wrap onto additional lines when the pane is narrow.
33
33
 
34
- Selection, timeline navigation, folding, and search cover the React-visible window. Request numbers and cumulative usage cover the complete resident snapshot. Selecting a record opens a local inspector for token usage, duration, Input, Output, Timing, and durable images. Image URLs use the Conversation-owned per-session cache, so Chat and Trajectory share one authorized read per attachment. A user record shows both nonzero image and ordinary-file counts beside its text, including attachment-only records. A standalone compaction request appears chronologically in its own `Between turns` section, while a numbered compaction remains inside its owning turn.
34
+ Calls are identified by their recorded tool name. For `run_code`, the row shows the program description and the inspector opens numbered, highlighted source. The Code tab provides wrapping, a `{}` toggle for the original JSON arguments, and exact source copying, including trailing newlines. Copying the original arguments retains their recorded JSON whitespace. Each newly opened code view takes the last wrapping choice; changing it leaves other open views as they are. Output preserves the recorded text, using a tree for complete JSON objects or arrays. Highlighting reads the leading `Execute a program in` language declaration and the legacy `code` parameter description from the recorded tool schema. Only TypeScript and Python are supported; missing or conflicting hints, or an explicit declaration of another language, leave plain source, and later examples in the tool description do not affect language selection. See the [PTC inspection decision](../../../.agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.md) for replay constraints.
35
+
36
+ Selection, timeline navigation, folding, and search cover the React-visible window. Request numbers and cumulative usage cover the complete resident snapshot. Selecting a record opens a local inspector for token usage, duration, Input, Output, Timing, and durable images. Image URLs use the Conversation-owned per-session cache, so Chat and Trajectory share one authorized read per attachment. A user record shows both nonzero image and ordinary-file counts beside its text, including attachment-only records. Failed records use non-empty recorded result text for ledger previews, inspector output, and output copying, preserving whitespace-only text; JSON failure output stays as recorded text in Summary and in the rendered section of Result. With that text present, structured error names and codes are neither displayed nor separately indexed for search. Only failures without any non-empty text block fall back to the error code in the ledger and the error name and code in the inspector, with image content still visible beside that fallback. A standalone compaction request appears chronologically in its own `Between turns` section, while a numbered compaction remains inside its owning turn.
35
37
 
36
38
  Summary and Preview share one ordered attachment list after the message text, preserving repeated references. Each row shows a contained image thumbnail or file-type icon, the recorded filename (a localized numbered label for unnamed images), and recorded size, type, and image dimensions where available. Zero-byte files retain their size, and truncated filenames expose the full name in a tooltip. Images open the existing lightbox. Raw keeps content-block order and unrendered text, with images and files in initially collapsed disclosures containing their complete recorded fields.
37
39
 
package/README.zh.md CHANGED
@@ -29,9 +29,11 @@ kind: "package-reference"
29
29
 
30
30
  ### 检查记录
31
31
 
32
- 调用按已记录的工具名识别。对于 `run_code`,记录行展示程序说明,检查器显示带行号和语法高亮的源码。“代码”页提供换行、查看原始 JSON 参数的 `{}` 切换按钮,以及保留末尾换行的源码原样复制。复制原始参数时保留记录中 JSON 的空白。每个新打开的代码视图采用上次选择的换行状态;切换时,其他已打开视图保持原状。输出保留记录中的文本,完整 JSON 对象或数组使用树形展示。高亮只采用已记录工具 Schema 中明确且无冲突的 TypeScript 或 Python 提示;提示缺失或冲突时显示纯文本源码。回放约束见 [PTC 检查决策](../../../.agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.zh.md)。
32
+ 工具栏可以分别折叠轮次、调用和子调用。子调用收起后,在父工具下保留一条摘要;点击摘要或按 Enter、空格键即可展开。搜索包含已折叠的子调用,从其他视图检查调用时会自动展开目标调用。面板较窄时,工具栏按钮与搜索框会自动换行。
33
33
 
34
- 选择、时间线导航、折叠与搜索只覆盖 React 可见窗口。请求编号与累计用量覆盖完整的驻留快照。选择记录会打开局部检查器,查看 token 用量、耗时、输入、输出、计时与持久保留的图片。图片 URL 使用 Conversation 拥有的逐会话缓存,因此 Chat 与 Trajectory 对每个附件共享一次已授权读取。用户记录会在文本旁同时显示非零的图片与普通文件数量,仅含附件的记录也显示这些数量。独立运行的压缩请求会按时间顺序显示在自己的 `Between turns` 区段中,而带编号的压缩仍位于其所属轮次内。
34
+ 调用按已记录的工具名识别。对于 `run_code`,记录行展示程序说明,检查器显示带行号和语法高亮的源码。“代码”页提供换行、查看原始 JSON 参数的 `{}` 切换按钮,以及保留末尾换行的源码原样复制。复制原始参数时保留记录中 JSON 的空白。每个新打开的代码视图采用上次选择的换行状态;切换时,其他已打开视图保持原状。输出保留记录中的文本,完整 JSON 对象或数组使用树形展示。高亮从已记录的工具 Schema 中读取开头的 `Execute a program in` 语言声明及旧式 `code` 参数说明,仅支持 TypeScript 和 Python;提示缺失或冲突,或明确声明了其他语言时,显示纯文本源码,工具说明后文的示例不影响语言选择。回放约束见 [PTC 检查决策](../../../.agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.zh.md)。
35
+
36
+ 选择、时间线导航、折叠与搜索只覆盖 React 可见窗口。请求编号与累计用量覆盖完整的驻留快照。选择记录会打开局部检查器,查看 token 用量、耗时、输入、输出、计时与持久保留的图片。图片 URL 使用 Conversation 拥有的逐会话缓存,因此 Chat 与 Trajectory 对每个附件共享一次已授权读取。用户记录会在文本旁同时显示非零的图片与普通文件数量,仅含附件的记录也显示这些数量。失败记录在记录表预览、检查器输出和输出复制中使用已记录的非空结果文本,并保留仅含空白字符的文本;JSON 失败输出在“概述”和“结果”的渲染区域保持原文。存在这类文本时,结构化错误名称和代码既不显示,也不单独纳入搜索索引。仅在失败结果没有任何非空文本块时,记录表才回退到错误代码,检查器才回退到错误名称和代码,图片内容仍显示在回退信息旁边。独立运行的压缩请求会按时间顺序显示在自己的 `Between turns` 区段中,而带编号的压缩仍位于其所属轮次内。
35
37
 
36
38
  概述与预览共用正文之后的有序附件列表,保留重复引用。每行展示完整缩放的图片缩略图或文件类型图标、已记录的文件名(未命名图片使用本地化的编号名称),以及可用的已记录大小、类型和图片尺寸。零字节文件保留大小显示,截断的文件名通过提示显示完整名称。图片打开现有灯箱。原始内容保留内容块顺序和未渲染文本,图片与文件使用默认折叠的展开项,包含完整的已记录字段。
37
39
 
package/lib/client.js CHANGED
@@ -68,6 +68,9 @@ window.__ModuleLoader__.load({
68
68
  "toolbar.calls": "调用",
69
69
  "toolbar.expandCalls": "展开所有调用",
70
70
  "toolbar.collapseCalls": "收起所有调用",
71
+ "toolbar.subCalls": "子调用",
72
+ "toolbar.expandSubCalls": "展开所有子调用",
73
+ "toolbar.collapseSubCalls": "收起所有子调用",
71
74
  "toolbar.search": "搜索轨迹",
72
75
  "toolbar.searchPlaceholder": "搜索",
73
76
  "kind.system": "系统",
@@ -192,6 +195,7 @@ window.__ModuleLoader__.load({
192
195
  "request.collapsedSummary": "已收起的{kind}概述,{summary}",
193
196
  "request.collapsedTurn": "轮次",
194
197
  "request.collapsedAssistant": "助手",
198
+ "request.collapsedTool": "子调用",
195
199
  "request.rowAria": "{request}{kind},{content}",
196
200
  "request.rowPrefix": "请求 {request},",
197
201
  "request.rowAriaCompaction": "请求 {request},压缩",
@@ -345,6 +349,9 @@ window.__ModuleLoader__.load({
345
349
  "toolbar.calls": "Calls",
346
350
  "toolbar.expandCalls": "Expand calls",
347
351
  "toolbar.collapseCalls": "Collapse calls",
352
+ "toolbar.subCalls": "Subcalls",
353
+ "toolbar.expandSubCalls": "Expand subcalls",
354
+ "toolbar.collapseSubCalls": "Collapse subcalls",
348
355
  "toolbar.search": "Search trajectory",
349
356
  "toolbar.searchPlaceholder": "Search",
350
357
  "kind.system": "SYSTEM",
@@ -469,6 +476,7 @@ window.__ModuleLoader__.load({
469
476
  "request.collapsedSummary": "Collapsed {kind} summary, {summary}",
470
477
  "request.collapsedTurn": "turn",
471
478
  "request.collapsedAssistant": "assistant",
479
+ "request.collapsedTool": "subcalls",
472
480
  "request.rowAria": "{request}{kind}, {content}",
473
481
  "request.rowPrefix": "Request {request}, ",
474
482
  "request.rowAriaCompaction": "Request {request}, compaction",
@@ -4625,14 +4633,17 @@ window.__ModuleLoader__.load({
4625
4633
  }
4626
4634
  }
4627
4635
  function recordedLanguage(schemaRaw) {
4628
- const description = record(record(record(parseRecord(schemaRaw)?.parameters)?.properties)?.code)?.description;
4629
- if (typeof description !== "string") return void 0;
4630
- const typescript = /\bTypeScript\b/i.test(description);
4631
- if (typescript === /\bPython\b/i.test(description)) return void 0;
4636
+ const schema = parseRecord(schemaRaw);
4637
+ const declaredLanguage = typeof schema?.description === "string" ? /^Execute a program in `([^`]+)`/.exec(schema.description)?.[1]?.toLowerCase() : void 0;
4638
+ if (declaredLanguage !== void 0 && declaredLanguage !== "typescript" && declaredLanguage !== "python") return void 0;
4639
+ const description = record(record(record(schema?.parameters)?.properties)?.code)?.description;
4640
+ const typescript = declaredLanguage === "typescript" || typeof description === "string" && /\bTypeScript\b/i.test(description);
4641
+ if (typescript === (declaredLanguage === "python" || typeof description === "string" && /\bPython\b/i.test(description))) return void 0;
4632
4642
  return typescript ? "typescript" : "python";
4633
4643
  }
4634
4644
  /**
4635
4645
  * Resolve a PTC program without guessing its language from source or current runtime settings.
4646
+ * Unknown explicit languages or conflicting recorded hints leave the source unhighlighted.
4636
4647
  * @param cell - Recorded tool arguments and the schema visible at call time.
4637
4648
  * @returns The program, or undefined for another tool or unsupported arguments.
4638
4649
  */
@@ -4652,7 +4663,7 @@ window.__ModuleLoader__.load({
4652
4663
  }
4653
4664
  //#endregion
4654
4665
  //#region \0qilin-css:/home/runner/work/QiLin/QiLin/packages/client/ui-trajectory/src/client/TrajectoryTable.module.css.mjs
4655
- const css$4 = ".Pg1Ftq_split{--qilin-scrollbar-thumb:var(--qilin-alias-scrollbar-bg-l2);--qilin-scrollbar-thumb-hover:var(--qilin-alias-scrollbar-hover-l2);background:var(--qilin-alias-bg-layer-1);flex:1;width:100%;min-height:0;display:flex;position:relative;overflow:hidden;container-type:inline-size}.Pg1Ftq_tablePane{min-width:0;padding-bottom:var(--qilin-trajectory-bottom-clearance,0px);flex:1;position:relative;overflow:hidden auto;container:Pg1Ftq_trajectory-table/inline-size}.Pg1Ftq_historyLoading{z-index:5;pointer-events:none;height:0;position:sticky;top:0;overflow:visible}.Pg1Ftq_historyLoadingBar{box-sizing:border-box;border-bottom:.5px solid var(--qilin-alias-border-l2);background:var(--qilin-alias-bg-layer-1);width:100%;height:30px;color:var(--qilin-alias-label-secondary);font:var(--qilin-font-xxs-12);justify-content:center;align-items:center;gap:6px;display:flex}.Pg1Ftq_historyLoadingSpinner{box-sizing:border-box;border:1.5px solid var(--qilin-alias-border-l2);border-top-color:var(--qilin-alias-state-business-primary);corner-shape:round;border-radius:50%;width:10px;height:10px;animation:.7s linear infinite Pg1Ftq_history-loading-spin}.Pg1Ftq_table tbody .Pg1Ftq_historyLoadRow td{height:30px;padding:0}.Pg1Ftq_table tbody .Pg1Ftq_historyLoadRow+tr[data-turn-start=true] td:before{content:none}.Pg1Ftq_historyLoadButton{background:var(--qilin-alias-bg-layer-1);width:100%;height:29px;color:var(--qilin-alias-label-secondary);cursor:pointer;font:var(--qilin-font-xxs-12);border:0;justify-content:center;align-items:center;gap:6px;display:flex}.Pg1Ftq_historyLoadButton:hover:not(:disabled){background:var(--qilin-alias-interactive-bg-hover);color:var(--qilin-alias-label-primary)}.Pg1Ftq_historyLoadButton:focus-visible{outline:var(--qilin-focus-ring-width) solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:-2px}.Pg1Ftq_historyLoadButton:disabled{cursor:default}.Pg1Ftq_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.Pg1Ftq_table:not([data-scroll-ready=true]){visibility:hidden}@keyframes Pg1Ftq_history-loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.Pg1Ftq_historyLoadingSpinner{animation:none}}.Pg1Ftq_table{--trajectory-turn-accent:color-mix(in srgb, var(--qilin-static-blue-500) 22%, var(--qilin-alias-bg-layer-1));border-spacing:0;table-layout:fixed;width:100%;min-width:0;color:var(--qilin-alias-label-primary);background:var(--qilin-alias-bg-layer-1);font:var(--qilin-font-xxs-12)}.Pg1Ftq_eventColumn{width:122px}.Pg1Ftq_eventColumn:where(:lang(zh)){width:84px}.Pg1Ftq_contentColumn{width:auto}.Pg1Ftq_table th{z-index:3;box-sizing:border-box;border-bottom:.5px solid var(--qilin-alias-border-l2);height:30px;color:var(--qilin-alias-label-tertiary);background:var(--qilin-specific-sidebar-fill);font:var(--qilin-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}.Pg1Ftq_eventHeader{text-align:right!important;padding-right:4px!important}.Pg1Ftq_table td{box-sizing:border-box;border-bottom:.5px solid var(--qilin-alias-border-l1);text-overflow:ellipsis;white-space:nowrap;height:30px;padding:0 8px;overflow:hidden}.Pg1Ftq_table tbody .Pg1Ftq_virtualSpacer{pointer-events:none}.Pg1Ftq_table tbody .Pg1Ftq_virtualSpacer td{height:var(--trajectory-virtual-spacer-height);border:0;padding:0}.Pg1Ftq_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}.Pg1Ftq_table tbody tr[data-timeline-focus=outside]{opacity:.24}.Pg1Ftq_table tbody tr:not([data-collapsed-summary]):not([data-virtual-spacer]):not([data-history-load]):not([data-selected=true]):hover{background:var(--qilin-alias-interactive-bg-hover)}.Pg1Ftq_table tbody tr[data-request-only=true]:hover{background:0 0}.Pg1Ftq_table tbody tr[data-request-only=true] td{border-bottom:0;height:0;padding-top:0;padding-bottom:0}.Pg1Ftq_table tbody tr[data-terminal-request-boundary=true] td{height:9px}.Pg1Ftq_table tbody tr[data-request-only=true] .Pg1Ftq_turnRail{top:-15px;bottom:0}.Pg1Ftq_table tbody tr:not([data-collapsed-summary]):focus-visible{box-shadow:inset 0 0 0 1px var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary))}.Pg1Ftq_table tbody tr[data-selected=true]{background:var(--qilin-alias-interactive-bg-active)}.Pg1Ftq_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}.Pg1Ftq_requestBoundaryControl:before{corner-shape:round;background:var(--qilin-alias-label-caption);width:5px;height:5px;box-shadow:0 0 0 2px var(--qilin-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}.Pg1Ftq_requestBoundaryControl:after{border:.5px solid var(--qilin-alias-border-l1);width:max-content;color:var(--qilin-alias-label-secondary);background:var(--qilin-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}.Pg1Ftq_requestBoundaryControl:hover:before,.Pg1Ftq_requestBoundaryControl:focus-visible:before{background:var(--qilin-alias-brand-primary-new-colorprimary-new-color)}.Pg1Ftq_requestBoundaryControlActive:before,.Pg1Ftq_requestBoundaryControlActive:hover:before,.Pg1Ftq_requestBoundaryControlActive:focus-visible:before{background:color-mix(in srgb, var(--qilin-alias-brand-primary-new-colorprimary-new-color) 18%, var(--qilin-alias-bg-layer-1));box-shadow:0 0 0 1.5px var(--qilin-alias-state-business-primary)}.Pg1Ftq_requestBoundaryControl[data-request-status=error]:before,.Pg1Ftq_requestBoundaryControl[data-request-status=error]:hover:before,.Pg1Ftq_requestBoundaryControl[data-request-status=error]:focus-visible:before{background:var(--qilin-alias-state-error-primary)}.Pg1Ftq_requestBoundaryControl:hover:after,.Pg1Ftq_requestBoundaryControl:focus-visible:after{opacity:1;transform:translate(0)}.Pg1Ftq_requestBoundaryControl:focus-visible{outline:none}.Pg1Ftq_table tbody tr:has(.Pg1Ftq_requestBoundaryControl:hover):not([data-selected=true]){background:0 0}.Pg1Ftq_event{position:relative}.Pg1Ftq_turnRail,.Pg1Ftq_selectionRail{background:var(--qilin-alias-brand-primary-new-colorprimary-new-color);pointer-events:none;position:absolute;left:0}.Pg1Ftq_turnRail{z-index:4;background:var(--trajectory-turn-accent);width:2px;top:-1px;bottom:-1px}.Pg1Ftq_table tbody tr[data-turn-end=true] .Pg1Ftq_turnRail{bottom:0}.Pg1Ftq_selectionRail{z-index:5;width:3px;top:0;bottom:0}.Pg1Ftq_table tbody tr[data-error=true] .Pg1Ftq_turnRail{background:color-mix(in srgb, var(--qilin-alias-state-error-primary) 22%, var(--qilin-alias-bg-layer-1))}.Pg1Ftq_table tbody tr[data-error=true] .Pg1Ftq_selectionRail{background:var(--qilin-alias-state-error-primary)}.Pg1Ftq_table tbody tr[data-turn-start=true] td{position:relative;overflow:visible}.Pg1Ftq_table tbody tr[data-turn-start=true]:not(:first-child) td:before{z-index:1;background:var(--qilin-alias-border-l1);content:\"\";pointer-events:none;height:2px;position:absolute;top:0;left:0;right:0;transform:translateY(-50%)}.Pg1Ftq_event{padding-left:36px!important;padding-right:4px!important;overflow:visible!important}.Pg1Ftq_turnLabel{z-index:3;box-sizing:border-box;width:max-content;color:var(--qilin-alias-label-tertiary);background:var(--qilin-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}.Pg1Ftq_turnLabelFull,.Pg1Ftq_turnLabelCompact{opacity:1;white-space:nowrap;grid-area:1/1;max-width:64px;overflow:hidden}.Pg1Ftq_turnLabelCompact{opacity:0;max-width:0}.Pg1Ftq_turnLabelActive{color:color-mix(in srgb, var(--qilin-static-blue-500) 55%, var(--qilin-alias-label-tertiary));background:var(--trajectory-turn-accent)}.Pg1Ftq_eventInner{justify-content:flex-start;align-items:center;min-width:0;height:100%;display:flex}.Pg1Ftq_kindSlot{flex:none;justify-content:flex-end;align-items:flex-end;width:76px;display:flex}.Pg1Ftq_kindSlot:where(:lang(zh)){width:44px}.Pg1Ftq_kindSlot [role=tooltip]{background:var(--qilin-alias-bg-layer-2);box-shadow:var(--qilin-elevation-panel);color:var(--qilin-alias-label-primary);border:0}.Pg1Ftq_content{color:var(--qilin-alias-label-primary);padding-left:4px!important}.Pg1Ftq_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}.Pg1Ftq_kindTagIcon{opacity:0;flex:none;justify-content:center;align-items:center;width:0;height:13px;display:inline-flex;overflow:hidden;transform:scale(.8)}.Pg1Ftq_kindTagLabel{opacity:1;white-space:nowrap;max-width:72px;display:inline-block;overflow:hidden}.Pg1Ftq_table .Pg1Ftq_kindSlot .Pg1Ftq_message{justify-content:center;width:100%}@container Pg1Ftq_trajectory-table (width<=620px){.Pg1Ftq_eventColumn{width:50px}.Pg1Ftq_event{padding-left:28px!important;padding-right:3px!important}.Pg1Ftq_requestBoundaryControl{--request-boundary-base-left:6px}.Pg1Ftq_kindSlot{width:19px}.Pg1Ftq_kindTag,.Pg1Ftq_table .Pg1Ftq_kindSlot .Pg1Ftq_message{justify-content:center;width:19px;padding-left:0;padding-right:0}.Pg1Ftq_kindTagIcon{opacity:1;width:13px;transform:scale(1)}.Pg1Ftq_kindTagLabel,.Pg1Ftq_turnLabelFull{opacity:0;max-width:0}.Pg1Ftq_turnLabelCompact{opacity:1;max-width:64px}}@media (prefers-reduced-motion:no-preference){.Pg1Ftq_eventColumn,.Pg1Ftq_event,.Pg1Ftq_requestBoundaryControl,.Pg1Ftq_kindSlot,.Pg1Ftq_kindTag,.Pg1Ftq_kindTagIcon,.Pg1Ftq_kindTagLabel,.Pg1Ftq_turnLabelFull,.Pg1Ftq_turnLabelCompact{transition-duration:.18s;transition-timing-function:var(--ds-ease-in-out)}.Pg1Ftq_eventColumn,.Pg1Ftq_kindSlot{transition-property:width}.Pg1Ftq_event{transition-property:padding-right,padding-left}.Pg1Ftq_requestBoundaryControl{transition-property:left}.Pg1Ftq_kindTag{transition-property:padding-right,padding-left}.Pg1Ftq_kindTagIcon{transition-property:width,opacity,transform}.Pg1Ftq_kindTagLabel,.Pg1Ftq_turnLabelFull,.Pg1Ftq_turnLabelCompact{transition-property:max-width,opacity}}.Pg1Ftq_user{color:var(--qilin-alias-state-business-primary);background:var(--qilin-alias-state-business-tertiary)}.Pg1Ftq_systemNeutral{color:var(--qilin-alias-label-secondary);background:var(--qilin-alias-bg-module-platform)}.Pg1Ftq_contextGreen{color:color-mix(in srgb, var(--qilin-alias-state-success-primary) 68%, var(--qilin-alias-label-secondary));background:var(--qilin-alias-state-success-tertiary)}.Pg1Ftq_compacted{color:var(--qilin-alias-label-secondary);background:var(--qilin-alias-bg-module-platform)}.Pg1Ftq_compactedSummary{font:var(--qilin-font-xs-13);margin-top:12px;padding:0 0 14px}.Pg1Ftq_promptDiffSections{flex-direction:column;gap:14px;max-height:100%;padding:10px 14px 14px;display:flex;overflow:auto}.Pg1Ftq_promptDiffSection{min-width:0}.Pg1Ftq_promptDiffTitle{color:var(--qilin-alias-label-secondary);font:var(--qilin-font-xs-strong-13);user-select:none;margin:0 0 6px}.Pg1Ftq_promptDiff{color:var(--qilin-alias-label-primary);background:var(--qilin-alias-bg-layer-1);font:11px/17px var(--ds-font-family-code);white-space:pre;margin:0;overflow:auto}.Pg1Ftq_promptDiff span{min-width:max-content;padding:0 6px;display:block}.Pg1Ftq_promptDiffLinemeta{color:var(--qilin-alias-label-caption);background:var(--qilin-alias-bg-module-platform);user-select:none}.Pg1Ftq_promptDiffLinecontext{color:var(--qilin-alias-label-secondary)}.Pg1Ftq_promptDiffLineadded{color:color-mix(in srgb, var(--qilin-alias-state-success-primary) 72%, var(--qilin-alias-label-primary));background:var(--qilin-alias-state-success-tertiary)}.Pg1Ftq_promptDiffLineremoved{color:var(--qilin-alias-state-error-primary);background:color-mix(in srgb, var(--qilin-alias-state-error-primary) 12%, var(--qilin-alias-bg-layer-1))}.Pg1Ftq_assistantVioletBright{color:color-mix(in srgb, var(--qilin-alias-brand-primary-new-colorprimary-new-color) 60%, var(--qilin-alias-state-error-secondary));background:color-mix(in srgb, color-mix(in srgb, var(--qilin-alias-brand-primary-new-colorprimary-new-color) 55%, var(--qilin-alias-state-error-secondary)) 15%, var(--qilin-alias-bg-layer-1))}.Pg1Ftq_toolAmber{color:var(--qilin-alias-state-warn-label);background:var(--qilin-alias-state-warn-tertiary)}.Pg1Ftq_subtoolAmber{color:color-mix(in srgb, var(--qilin-alias-state-warn-label) 62%, var(--qilin-alias-label-tertiary));background:color-mix(in srgb, var(--qilin-alias-state-warn-tertiary) 58%, var(--qilin-alias-bg-layer-1))}.Pg1Ftq_contentText{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.Pg1Ftq_toolCallOnly{color:var(--qilin-alias-label-tertiary)}.Pg1Ftq_table tbody tr[data-collapsed-summary=turn] td,.Pg1Ftq_table tbody tr[data-collapsed-summary=assistant] td{height:20px}.Pg1Ftq_table tbody tr[data-collapsed-summary]{cursor:pointer;transition:background-color .12s var(--ds-ease-in-out);outline:none}.Pg1Ftq_table tbody tr[data-collapsed-summary]:hover{background:var(--qilin-alias-interactive-bg-hover)}.Pg1Ftq_table tbody tr[data-collapsed-summary]:focus-visible{box-shadow:inset 0 0 0 1px var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary))}.Pg1Ftq_collapsedTurnContent{min-width:0;color:var(--qilin-alias-label-secondary);align-items:center;font-size:12px;line-height:16px;display:flex}.Pg1Ftq_collapsedTurnEllipsis{color:var(--qilin-alias-label-tertiary);user-select:none;flex:none;margin-right:6px;font-weight:600}.Pg1Ftq_collapsedTurnText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.Pg1Ftq_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}.Pg1Ftq_resultRequest,.Pg1Ftq_inlineResultText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.Pg1Ftq_toolCallNameTypeface{color:var(--qilin-alias-label-primary);font:400 12px/18px Menlo,Consolas,Liberation Mono,PingFang SC,Microsoft YaHei}.Pg1Ftq_toolCallPayload{color:var(--qilin-alias-label-secondary);font:400 12px/18px var(--ds-font-family-code);margin-left:7px}.Pg1Ftq_table tbody tr[data-kind=tool] .Pg1Ftq_contentText,.Pg1Ftq_table tbody tr[data-kind=subtool] .Pg1Ftq_contentText,.Pg1Ftq_table tbody tr[data-kind=tool] .Pg1Ftq_resultPreview,.Pg1Ftq_table tbody tr[data-kind=subtool] .Pg1Ftq_resultPreview{font-family:var(--ds-font-family-code);font-size:12px}.Pg1Ftq_table tbody tr[data-kind=subtool] .Pg1Ftq_content{padding-left:26px}.Pg1Ftq_inlineResult{min-width:0;color:var(--qilin-alias-label-secondary);align-items:center;display:flex}.Pg1Ftq_noOutputText{color:var(--qilin-alias-label-caption)}.Pg1Ftq_arrow{color:var(--qilin-alias-label-caption);flex:none;margin-right:8px}.Pg1Ftq_error,.Pg1Ftq_overview dd.Pg1Ftq_error,.Pg1Ftq_details .Pg1Ftq_errorPayload{color:var(--qilin-alias-state-error-primary)}.Pg1Ftq_details .Pg1Ftq_errorPayload .Pg1Ftq_resultBlockText{color:inherit}.Pg1Ftq_details .Pg1Ftq_jsonPayload.Pg1Ftq_errorPayload,.Pg1Ftq_details .Pg1Ftq_jsonPreview.Pg1Ftq_errorPayload{--json-tree-property:var(--qilin-alias-state-error-primary);--json-tree-string:var(--qilin-alias-state-error-primary);--json-tree-number:var(--qilin-alias-state-error-primary);--json-tree-keyword:var(--qilin-alias-state-error-primary);--json-tree-punctuation:var(--qilin-alias-state-error-primary);--json-tree-icon:var(--qilin-alias-state-error-primary)}.Pg1Ftq_details{border-left:.5px solid var(--qilin-alias-border-l2);background:var(--qilin-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}.Pg1Ftq_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}.Pg1Ftq_detailsResizeHandle:focus-visible{outline:none}.Pg1Ftq_detailsHeader{box-sizing:border-box;border-bottom:.5px solid var(--qilin-alias-border-l2);flex:none;justify-content:space-between;align-items:center;height:42px;padding:0 8px 0 12px;display:flex}.Pg1Ftq_detailsTitle{min-width:0;color:var(--qilin-alias-label-primary);align-items:center;gap:8px;display:flex}.Pg1Ftq_requestDetailsDot{corner-shape:round;background:var(--qilin-alias-label-secondary);border-radius:50%;flex:none;width:5px;height:5px}.Pg1Ftq_requestDetailsName{font:500 12px/16px var(--ds-font-family-code);flex:none}.Pg1Ftq_detailsLocation{min-width:0;color:var(--qilin-alias-label-tertiary);font:11px/16px var(--ds-font-family-code);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Pg1Ftq_close{width:28px;height:28px;color:var(--qilin-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}.Pg1Ftq_close:hover{color:var(--qilin-alias-label-primary);background:var(--qilin-alias-interactive-bg-hover)}.Pg1Ftq_detailTabs{box-sizing:border-box;border-bottom:.5px solid var(--qilin-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}.Pg1Ftq_detailTabs::-webkit-scrollbar{display:none}.Pg1Ftq_detailTab{color:var(--qilin-alias-label-tertiary);cursor:pointer;font:var(--qilin-font-xs-13);background:0 0;border:0;flex:none;padding:0 9px;position:relative}.Pg1Ftq_detailTab:hover{color:var(--qilin-alias-label-primary);background:var(--qilin-alias-interactive-bg-hover)}.Pg1Ftq_detailTabActive{color:var(--qilin-alias-state-business-primary)}.Pg1Ftq_detailTabActive:after{background:var(--qilin-alias-state-business-primary);content:\"\";border-radius:1px 1px 0 0;height:2px;position:absolute;bottom:0;left:9px;right:9px}.Pg1Ftq_close:focus-visible,.Pg1Ftq_detailTab:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:-1px}.Pg1Ftq_detailBody{min-height:0;padding-bottom:var(--qilin-trajectory-bottom-clearance,0px);scrollbar-gutter:stable;flex:1;overflow:hidden auto}.Pg1Ftq_detailBodySummary{box-sizing:border-box;padding-bottom:calc(12px + var(--qilin-trajectory-bottom-clearance,0px));flex-direction:column;display:flex;overflow:hidden}.Pg1Ftq_detailBodySummary>.Pg1Ftq_overview{overscroll-behavior:contain;flex:0 auto;min-height:0;padding-bottom:0;overflow:auto}.Pg1Ftq_detailBodySummary>.Pg1Ftq_compactedSummary{flex:1;min-height:0;overflow:auto}.Pg1Ftq_summaryScrollRegion{--qilin-scrollbar-thumb:transparent;--qilin-scrollbar-thumb-hover:transparent}.Pg1Ftq_summaryScrollRegion:hover,.Pg1Ftq_summaryScrollRegion:focus-within{--qilin-scrollbar-thumb:var(--qilin-alias-scrollbar-bg-l2);--qilin-scrollbar-thumb-hover:var(--qilin-alias-scrollbar-hover-l2)}.Pg1Ftq_compactedSummary .Pg1Ftq_markdownPayload{padding-right:18px}.Pg1Ftq_overview{font:var(--qilin-font-xs-13);margin:0;padding:8px 0}.Pg1Ftq_overviewParentLinks{gap:14px;display:flex}.Pg1Ftq_overviewHierarchyNavLink{all:unset;color:var(--qilin-alias-label-secondary);cursor:pointer;font:inherit;opacity:1;align-items:center;gap:1px;display:inline-flex}.Pg1Ftq_overviewHierarchyNavLink:hover{color:var(--qilin-alias-label-primary)}.Pg1Ftq_overviewHierarchyJumpIconTight{color:var(--qilin-alias-label-caption);flex:none}.Pg1Ftq_overviewHierarchyNavLink:hover .Pg1Ftq_overviewHierarchyJumpIconTight,.Pg1Ftq_overviewHierarchyNavLink:focus-visible .Pg1Ftq_overviewHierarchyJumpIconTight{color:var(--qilin-alias-label-primary)}.Pg1Ftq_overviewHierarchyNavLink:focus-visible{color:var(--qilin-alias-label-primary);outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:2px}.Pg1Ftq_overview>div{grid-template-columns:94px minmax(0,1fr);align-items:center;min-height:22px;padding:0 14px;display:grid}.Pg1Ftq_overview>.Pg1Ftq_requestTokenDetail dt{padding-left:12px}.Pg1Ftq_usagePanel{padding:4px 0 10px}.Pg1Ftq_usageGroup+.Pg1Ftq_usageGroup{margin-top:8px}.Pg1Ftq_usageHeading{color:var(--qilin-alias-label-secondary);font:var(--qilin-font-xs-strong-13);user-select:none;margin:0;padding:4px 14px 1px}.Pg1Ftq_usageGroup .Pg1Ftq_overview{padding:0}.Pg1Ftq_overview dt{color:var(--qilin-alias-label-tertiary)}.Pg1Ftq_overview dd{min-width:0;color:var(--qilin-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.Pg1Ftq_timestampToggle{all:unset;color:inherit;cursor:pointer;font:inherit;user-select:text}.Pg1Ftq_timestampToggle:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:2px}.Pg1Ftq_overviewSections{border-top:0;flex-direction:column;flex:1;min-height:min-content;display:flex;overflow:hidden}.Pg1Ftq_overviewSection{flex-direction:column;flex:1 1 0;min-height:24px;max-height:max-content;display:flex;overflow:hidden}.Pg1Ftq_overviewSection+.Pg1Ftq_overviewSection{padding-top:2px}.Pg1Ftq_overviewHeading{box-sizing:border-box;width:100%;height:24px;color:var(--qilin-alias-label-secondary);background:var(--qilin-alias-bg-layer-1);font:var(--qilin-font-xs-strong-13);user-select:none;flex:none;align-items:flex-end;margin:0;padding:0 0 3px 14px;display:flex}.Pg1Ftq_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}.Pg1Ftq_overviewTitleIcon{color:var(--qilin-alias-label-caption);flex:none}.Pg1Ftq_overviewTitle:hover .Pg1Ftq_overviewTitleIcon{color:var(--qilin-alias-label-primary)}.Pg1Ftq_overviewTitle:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:2px}.Pg1Ftq_overviewTitle:focus-visible .Pg1Ftq_overviewTitleIcon{color:var(--qilin-alias-state-business-primary)}.Pg1Ftq_overviewPreview{overscroll-behavior:contain;background:var(--qilin-alias-bg-layer-1);flex:1;min-height:0;overflow:auto}.Pg1Ftq_overviewPreview[data-scroll-more]{mask-image:linear-gradient(#000 calc(100% - 12px),#0000)}.Pg1Ftq_overviewPreview>:last-child{margin-bottom:0;padding-bottom:0}.Pg1Ftq_programDescription{color:var(--qilin-alias-label-primary);font:var(--qilin-font-xs-13);white-space:pre-wrap;overflow-wrap:anywhere;flex:none;margin:0;padding:8px 14px 2px}.Pg1Ftq_programIcon{vertical-align:-2px;margin-right:4px}.Pg1Ftq_programSummary{font-family:var(--qilin-font-family);margin-left:5px}.Pg1Ftq_detailBodyProgram,.Pg1Ftq_programPanel{flex-direction:column;min-height:0;display:flex;overflow:hidden}.Pg1Ftq_programPanel{background:var(--qilin-alias-bg-layer-1);flex:1}.Pg1Ftq_programActions{flex:none;align-items:center;gap:4px;height:16px;margin-left:auto;padding-right:14px;display:inline-flex}.Pg1Ftq_programLanguage{color:var(--qilin-alias-label-tertiary);font:11px/16px var(--ds-font-family-code);padding-right:4px}.Pg1Ftq_programAction{box-sizing:border-box;width:20px;height:16px;color:var(--qilin-alias-label-secondary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.Pg1Ftq_programAction:hover{color:var(--qilin-alias-label-primary)}.Pg1Ftq_programAction[aria-pressed=true]{color:var(--qilin-alias-state-business-primary)}.Pg1Ftq_programAction[data-state=failed]{color:var(--qilin-alias-state-error-primary)}.Pg1Ftq_programAction:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:-1px}.Pg1Ftq_programContent{min-width:0;min-height:0}.Pg1Ftq_programPanel>.Pg1Ftq_programContent{overscroll-behavior:contain;flex:1;overflow:auto}.Pg1Ftq_programSource{background:var(--qilin-alias-bg-layer-1);--dsl-code-block-line-white-space:pre;border-radius:0;margin:0!important}.Pg1Ftq_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(--qilin-alias-bg-layer-1)!important}.Pg1Ftq_programSource pre code>.line{box-sizing:border-box;width:max-content;min-width:100%}.Pg1Ftq_programContent[data-wrap=true] .Pg1Ftq_programSource{--dsl-code-block-line-white-space:pre-wrap}.Pg1Ftq_programContent[data-wrap=true] .Pg1Ftq_programSource pre code>.line{overflow-wrap:anywhere;word-break:break-all;width:auto}.Pg1Ftq_programOutput{color:var(--qilin-alias-label-primary);font:12px/16px var(--ds-font-family-code);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:2px 14px 8px}.Pg1Ftq_programError:first-line{color:var(--qilin-alias-state-error-primary);font-weight:600}.Pg1Ftq_overviewPreview .Pg1Ftq_jsonPreview>:first-child,.Pg1Ftq_overviewPreview .Pg1Ftq_schemaTree>:first-child{padding-top:2px;padding-bottom:0}.Pg1Ftq_overviewPreview .Pg1Ftq_schemaTree{margin-bottom:0}.Pg1Ftq_overviewPreview .Pg1Ftq_overview{padding:2px 0 0}.Pg1Ftq_overviewPreview .Pg1Ftq_overview>div{min-height:22px}.Pg1Ftq_markdownPreview,.Pg1Ftq_markdownPayload{color:var(--qilin-alias-label-primary)}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]),.Pg1Ftq_markdownPayload>div:not([data-markdown-variant=compact]){font:var(--qilin-font-xs-13);gap:8px}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) h1,.Pg1Ftq_markdownPayload>div:not([data-markdown-variant=compact]) h1{font:600 16px/22px var(--qilin-font-family)}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) h2,.Pg1Ftq_markdownPayload>div:not([data-markdown-variant=compact]) h2{font:600 15px/22px var(--qilin-font-family)}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) :where(h3,h4,h5,h6),.Pg1Ftq_markdownPayload>div:not([data-markdown-variant=compact]) :where(h3,h4,h5,h6){font:600 14px/20px var(--qilin-font-family)}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) :not(pre)>code,.Pg1Ftq_markdownPayload>div:not([data-markdown-variant=compact]) :not(pre)>code{font:12px/18px var(--ds-font-family-code)}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) table,.Pg1Ftq_markdownPayload>div:not([data-markdown-variant=compact]) table{font:var(--qilin-font-xs-13)}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact])>:first-child{margin-top:0}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact])>:last-child{margin-bottom:0}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) :where(h1,h2,h3){margin:12px 0 6px}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) :where(h4,h5,h6){margin:10px 0 5px}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) :where(p,ul,ol){margin:8px 0}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) li:not(:first-child){margin-top:3px}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) blockquote{margin-top:8px}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) hr{margin:14px 0}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact])>.md-code-block{margin:10px 0}.Pg1Ftq_assistantContent .Pg1Ftq_markdownPayload,.Pg1Ftq_assistantContent .Pg1Ftq_payload{min-height:0}.Pg1Ftq_thinkingQuote{--qilin-content-font-size-secondary:13px;--qilin-content-font-delta-secondary:0px;border-left:2px solid var(--qilin-alias-markdown-citation);color:var(--qilin-alias-label-secondary);background:0 0;margin:6px 14px 0 12px;padding-left:6px}.Pg1Ftq_thinkingQuoteOnlyPreview{margin-bottom:8px}.Pg1Ftq_detailBody>.Pg1Ftq_assistantContentRendered .Pg1Ftq_thinkingQuote{margin-top:14px}.Pg1Ftq_thinkingToggle{width:max-content;height:18px;color:var(--qilin-alias-label-tertiary);cursor:pointer;font:600 12px/18px var(--qilin-font-family);user-select:none;background:0 0;border:0;align-items:center;gap:2px;padding:0;display:flex}.Pg1Ftq_thinkingChevron{transition:transform .12s var(--ds-ease-in-out);flex:none}.Pg1Ftq_thinkingToggle[aria-expanded=true] .Pg1Ftq_thinkingChevron{transform:rotate(90deg)}.Pg1Ftq_thinkingToggle:hover{color:var(--qilin-alias-label-secondary)}.Pg1Ftq_thinkingToggle:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:2px}.Pg1Ftq_thinkingQuote .Pg1Ftq_markdownPreview,.Pg1Ftq_thinkingQuote .Pg1Ftq_markdownPayload,.Pg1Ftq_thinkingQuote .Pg1Ftq_payload{min-height:0;color:var(--qilin-alias-label-secondary);background:0 0;padding:2px 0}.Pg1Ftq_assistantOutput{background:var(--qilin-alias-bg-layer-1)}.Pg1Ftq_markdownPreview{padding:2px 14px 8px}.Pg1Ftq_markdownPayload{min-height:100%;padding:14px}.Pg1Ftq_jsonPayload{min-height:100%}.Pg1Ftq_jsonPreview{min-height:0}.Pg1Ftq_schema{background:var(--qilin-alias-bg-layer-1);min-height:100%}.Pg1Ftq_schemaPreview{min-height:0}.Pg1Ftq_schemaIntro{padding:12px 14px 6px}.Pg1Ftq_schemaPreview .Pg1Ftq_schemaIntro{padding-top:2px}.Pg1Ftq_schemaName{color:var(--qilin-alias-label-primary);font:600 12px/18px var(--ds-font-family-code);margin:0}.Pg1Ftq_schemaDescription{color:var(--qilin-alias-label-secondary);font:var(--qilin-font-xs-13);white-space:pre-wrap;margin:2px 0 0}.Pg1Ftq_schemaParameters{min-width:0}.Pg1Ftq_schemaParametersTitle{color:var(--qilin-alias-label-tertiary);font:600 11px/16px var(--qilin-font-family);user-select:none;margin:0;padding:4px 14px 2px}.Pg1Ftq_schemaTree{margin:0 6px 8px 0}.Pg1Ftq_payload{box-sizing:border-box;overflow-wrap:anywhere;min-height:100%;color:var(--qilin-alias-label-primary);background:var(--qilin-alias-markdown-code-block);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;margin:0;padding:14px}.Pg1Ftq_payloadPreview{min-height:0;padding:2px 14px 8px}.Pg1Ftq_sourceBlocks{box-sizing:border-box;min-height:100%;padding:12px 14px}.Pg1Ftq_sourceBlock+.Pg1Ftq_sourceBlock{margin-top:14px}.Pg1Ftq_sourceBlockHeader,.Pg1Ftq_sourceBlockJumpTarget{user-select:none;align-items:center;gap:3px;width:max-content;margin-bottom:3px;display:flex}.Pg1Ftq_sourceBlockJumpTarget{all:unset;cursor:pointer;user-select:none;align-items:center;gap:3px;width:max-content;margin-bottom:3px;display:flex}.Pg1Ftq_sourceBlockLabel{color:var(--qilin-alias-label-tertiary);font:11px/16px var(--ds-font-family-code)}.Pg1Ftq_sourceBlockJumpIcon{color:var(--qilin-alias-label-caption);flex:none}.Pg1Ftq_sourceBlockJumpTarget:hover .Pg1Ftq_sourceBlockJumpIcon{color:var(--qilin-alias-label-primary)}.Pg1Ftq_sourceBlockJumpTarget:focus-visible{outline:none}.Pg1Ftq_sourceBlockJumpTarget:focus-visible .Pg1Ftq_sourceBlockJumpIcon{color:var(--qilin-alias-state-business-primary)}.Pg1Ftq_sourceBlockContent{overflow-wrap:anywhere;color:var(--qilin-alias-label-primary);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;background:0 0;margin:0}.Pg1Ftq_messageImages{flex-direction:column;gap:8px;margin:8px 14px 14px;display:flex}.Pg1Ftq_attachments{flex-direction:column;gap:8px;margin:8px 14px 14px;padding:0;list-style:none;display:flex}.Pg1Ftq_attachmentsPreview{gap:6px;margin-block:6px 8px}.Pg1Ftq_attachmentRow{border:.5px solid var(--qilin-alias-border-l2-darkmode-thin);border-radius:12px;align-items:center;gap:10px;min-width:0;padding:8px;display:flex}.Pg1Ftq_attachmentIcon{flex:0 0 48px;place-items:center;width:48px;height:48px;display:grid}.Pg1Ftq_attachmentInfo{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.Pg1Ftq_attachmentName{color:var(--qilin-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.Pg1Ftq_attachmentMetadata{color:var(--qilin-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.Pg1Ftq_attachmentDisclosure{border:.5px solid var(--qilin-alias-border-l2-darkmode-thin);border-radius:8px;margin-block:8px}.Pg1Ftq_attachmentDisclosure>summary{cursor:pointer;padding:8px}.Pg1Ftq_attachmentDisclosure>summary .Pg1Ftq_attachmentName{display:block}.Pg1Ftq_attachmentDisclosure>summary:focus-visible{outline:var(--qilin-focus-ring-width) solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:2px}.Pg1Ftq_attachmentDisclosure>pre{padding:0 8px 8px}.Pg1Ftq_assistantToolCalls{box-sizing:border-box;max-width:100%;color:var(--qilin-alias-label-secondary);font:11px/17px var(--ds-font-family-code);margin:2px 14px 12px;padding:0;list-style:none}.Pg1Ftq_assistantToolCallsPreview{margin-top:2px;margin-bottom:8px}.Pg1Ftq_assistantToolCalls li{min-width:0}.Pg1Ftq_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}.Pg1Ftq_assistantToolCallButton:hover{background:var(--qilin-alias-interactive-bg-hover)}.Pg1Ftq_assistantToolCallButton:focus-visible{background:var(--qilin-alias-interactive-bg-hover);outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:-1px}.Pg1Ftq_assistantToolCallIcon{color:var(--qilin-alias-label-caption);flex:none;margin-right:5px}.Pg1Ftq_assistantToolCallButton:hover .Pg1Ftq_assistantToolCallIcon,.Pg1Ftq_assistantToolCallButton:focus-visible .Pg1Ftq_assistantToolCallIcon{color:var(--qilin-alias-label-secondary)}.Pg1Ftq_assistantToolCallText{white-space:nowrap;flex:1;min-width:0;display:flex;overflow:hidden}.Pg1Ftq_assistantToolCallName{color:var(--qilin-alias-label-secondary);flex:none;margin-right:5px;font-weight:500}.Pg1Ftq_assistantToolCallArgs{min-width:0;color:var(--qilin-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Pg1Ftq_systemPrompt{box-sizing:border-box}.Pg1Ftq_toolCatalog{min-height:100%;padding:8px 0 16px}.Pg1Ftq_toolCatalogItem{border-bottom:.5px solid var(--qilin-alias-border-l1)}.Pg1Ftq_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}.Pg1Ftq_toolCatalogSummary::-webkit-details-marker{display:none}.Pg1Ftq_toolCatalogSummary:hover{background:var(--qilin-alias-interactive-bg-hover)}.Pg1Ftq_toolCatalogSummary:focus-visible{background:var(--qilin-alias-interactive-bg-hover);outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:-1px}.Pg1Ftq_toolCatalogChevron,.Pg1Ftq_toolCatalogIcon{color:var(--qilin-alias-label-caption)}.Pg1Ftq_toolCatalogChevron{transition:transform .1s var(--ds-ease-in-out)}.Pg1Ftq_toolCatalogItem[open] .Pg1Ftq_toolCatalogChevron{transform:rotate(90deg)}.Pg1Ftq_toolCatalogName{color:var(--qilin-alias-label-primary);font:500 12px/18px var(--ds-font-family-code)}.Pg1Ftq_toolCatalogDescription{min-width:0;color:var(--qilin-alias-label-tertiary);font:var(--qilin-font-xs-13);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Pg1Ftq_toolCatalogDefinition{background:var(--qilin-alias-bg-base);padding:0 0 8px 29px}.Pg1Ftq_toolCatalogFullDescription{color:var(--qilin-alias-label-secondary);font:var(--qilin-font-xs-13);white-space:pre-wrap;margin:0;padding:7px 14px 4px 0}.Pg1Ftq_toolCatalogTree{margin-left:-14px;margin-right:6px}.Pg1Ftq_resultBlocks{box-sizing:border-box;flex-direction:column;gap:10px;min-height:100%;padding:14px;display:flex}.Pg1Ftq_resultBlocksPreview{gap:6px;min-height:0;padding:2px 14px 8px}.Pg1Ftq_resultBlockText{overflow-wrap:anywhere;color:var(--qilin-alias-label-primary);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;background:0 0;margin:0}.Pg1Ftq_overviewPreview .Pg1Ftq_noPayload{padding:2px 14px 0}.Pg1Ftq_noPayload{color:var(--qilin-alias-label-tertiary);font:var(--qilin-font-xs-13);margin:0;padding:18px 14px}@media (width<=760px){.Pg1Ftq_details{z-index:5;border-left-color:var(--qilin-alias-border-l3);width:min(92%,420px);max-width:92%;position:absolute;top:0;bottom:0;right:0;box-shadow:-12px 0 32px #00000024}}.Pg1Ftq_toolUpdatePayload{white-space:pre;overflow-x:auto}";
4666
+ const css$4 = ".Pg1Ftq_split{--qilin-scrollbar-thumb:var(--qilin-alias-scrollbar-bg-l2);--qilin-scrollbar-thumb-hover:var(--qilin-alias-scrollbar-hover-l2);background:var(--qilin-alias-bg-layer-1);flex:1;width:100%;min-height:0;display:flex;position:relative;overflow:hidden;container-type:inline-size}.Pg1Ftq_tablePane{min-width:0;padding-bottom:var(--qilin-trajectory-bottom-clearance,0px);flex:1;position:relative;overflow:hidden auto;container:Pg1Ftq_trajectory-table/inline-size}.Pg1Ftq_historyLoading{z-index:5;pointer-events:none;height:0;position:sticky;top:0;overflow:visible}.Pg1Ftq_historyLoadingBar{box-sizing:border-box;border-bottom:1px solid var(--qilin-alias-border-l2);background:var(--qilin-alias-bg-layer-1);width:100%;height:30px;color:var(--qilin-alias-label-secondary);font:var(--qilin-font-xxs-12);justify-content:center;align-items:center;gap:6px;display:flex}.Pg1Ftq_historyLoadingSpinner{box-sizing:border-box;border:1.5px solid var(--qilin-alias-border-l2);border-top-color:var(--qilin-alias-state-business-primary);corner-shape:round;border-radius:50%;width:10px;height:10px;animation:.7s linear infinite Pg1Ftq_history-loading-spin}.Pg1Ftq_table tbody .Pg1Ftq_historyLoadRow td{height:30px;padding:0}.Pg1Ftq_table tbody .Pg1Ftq_historyLoadRow+tr[data-turn-start=true] td:before{content:none}.Pg1Ftq_historyLoadButton{background:var(--qilin-alias-bg-layer-1);width:100%;height:29px;color:var(--qilin-alias-label-secondary);cursor:pointer;font:var(--qilin-font-xxs-12);border:0;justify-content:center;align-items:center;gap:6px;display:flex}.Pg1Ftq_historyLoadButton:hover:not(:disabled){background:var(--qilin-alias-interactive-bg-hover);color:var(--qilin-alias-label-primary)}.Pg1Ftq_historyLoadButton:focus-visible{outline:var(--qilin-focus-ring-width) solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:-2px}.Pg1Ftq_historyLoadButton:disabled{cursor:default}.Pg1Ftq_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.Pg1Ftq_table:not([data-scroll-ready=true]){visibility:hidden}@keyframes Pg1Ftq_history-loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.Pg1Ftq_historyLoadingSpinner{animation:none}}.Pg1Ftq_table{--trajectory-turn-accent:color-mix(in srgb, var(--qilin-static-blue-500) 22%, var(--qilin-alias-bg-layer-1));border-spacing:0;table-layout:fixed;width:100%;min-width:0;color:var(--qilin-alias-label-primary);background:var(--qilin-alias-bg-layer-1);font:var(--qilin-font-xxs-12)}.Pg1Ftq_eventColumn{width:122px}.Pg1Ftq_eventColumn:where(:lang(zh)){width:84px}.Pg1Ftq_contentColumn{width:auto}.Pg1Ftq_table th{z-index:3;box-sizing:border-box;border-bottom:1px solid var(--qilin-alias-border-l2);height:30px;color:var(--qilin-alias-label-tertiary);background:var(--qilin-specific-sidebar-fill);font:var(--qilin-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}.Pg1Ftq_eventHeader{text-align:right!important;padding-right:4px!important}.Pg1Ftq_table td{box-sizing:border-box;border-bottom:1px solid var(--qilin-alias-border-l1);text-overflow:ellipsis;white-space:nowrap;height:30px;padding:0 8px;overflow:hidden}.Pg1Ftq_table tbody .Pg1Ftq_virtualSpacer{pointer-events:none}.Pg1Ftq_table tbody .Pg1Ftq_virtualSpacer td{height:var(--trajectory-virtual-spacer-height);border:0;padding:0}.Pg1Ftq_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}.Pg1Ftq_table tbody tr[data-timeline-focus=outside]{opacity:.24}.Pg1Ftq_table tbody tr:not([data-collapsed-summary]):not([data-virtual-spacer]):not([data-history-load]):not([data-selected=true]):hover{background:var(--qilin-alias-interactive-bg-hover)}.Pg1Ftq_table tbody tr[data-request-only=true]:hover{background:0 0}.Pg1Ftq_table tbody tr[data-request-only=true] td{border-bottom:0;height:0;padding-top:0;padding-bottom:0}.Pg1Ftq_table tbody tr[data-terminal-request-boundary=true] td{height:9px}.Pg1Ftq_table tbody tr[data-request-only=true] .Pg1Ftq_turnRail{top:-15px;bottom:0}.Pg1Ftq_table tbody tr:not([data-collapsed-summary]):focus-visible{box-shadow:inset 0 0 0 1px var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary))}.Pg1Ftq_table tbody tr[data-selected=true]{background:var(--qilin-alias-interactive-bg-active)}.Pg1Ftq_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}.Pg1Ftq_requestBoundaryControl:before{corner-shape:round;background:var(--qilin-alias-label-caption);width:5px;height:5px;box-shadow:0 0 0 2px var(--qilin-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}.Pg1Ftq_requestBoundaryControl:after{border:1px solid var(--qilin-alias-border-l1);width:max-content;color:var(--qilin-alias-label-secondary);background:var(--qilin-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}.Pg1Ftq_requestBoundaryControl:hover:before,.Pg1Ftq_requestBoundaryControl:focus-visible:before{background:var(--qilin-alias-brand-primary-new-colorprimary-new-color)}.Pg1Ftq_requestBoundaryControlActive:before,.Pg1Ftq_requestBoundaryControlActive:hover:before,.Pg1Ftq_requestBoundaryControlActive:focus-visible:before{background:color-mix(in srgb, var(--qilin-alias-brand-primary-new-colorprimary-new-color) 18%, var(--qilin-alias-bg-layer-1));box-shadow:0 0 0 1.5px var(--qilin-alias-state-business-primary)}.Pg1Ftq_requestBoundaryControl[data-request-status=error]:before,.Pg1Ftq_requestBoundaryControl[data-request-status=error]:hover:before,.Pg1Ftq_requestBoundaryControl[data-request-status=error]:focus-visible:before{background:var(--qilin-alias-state-error-primary)}.Pg1Ftq_requestBoundaryControl:hover:after,.Pg1Ftq_requestBoundaryControl:focus-visible:after{opacity:1;transform:translate(0)}.Pg1Ftq_requestBoundaryControl:focus-visible{outline:none}.Pg1Ftq_table tbody tr:has(.Pg1Ftq_requestBoundaryControl:hover):not([data-selected=true]){background:0 0}.Pg1Ftq_event{position:relative}.Pg1Ftq_turnRail,.Pg1Ftq_selectionRail{background:var(--qilin-alias-brand-primary-new-colorprimary-new-color);pointer-events:none;position:absolute;left:0}.Pg1Ftq_turnRail{z-index:4;background:var(--trajectory-turn-accent);width:2px;top:-1px;bottom:-1px}.Pg1Ftq_table tbody tr[data-turn-end=true] .Pg1Ftq_turnRail{bottom:0}.Pg1Ftq_selectionRail{z-index:5;width:3px;top:0;bottom:0}.Pg1Ftq_table tbody tr[data-error=true] .Pg1Ftq_turnRail{background:color-mix(in srgb, var(--qilin-alias-state-error-primary) 22%, var(--qilin-alias-bg-layer-1))}.Pg1Ftq_table tbody tr[data-error=true] .Pg1Ftq_selectionRail{background:var(--qilin-alias-state-error-primary)}.Pg1Ftq_table tbody tr[data-turn-start=true] td{position:relative;overflow:visible}.Pg1Ftq_table tbody tr[data-turn-start=true]:not(:first-child) td:before{z-index:1;background:var(--qilin-alias-border-l1);content:\"\";pointer-events:none;height:2px;position:absolute;top:0;left:0;right:0;transform:translateY(-50%)}.Pg1Ftq_event{padding-left:36px!important;padding-right:4px!important;overflow:visible!important}.Pg1Ftq_turnLabel{z-index:3;box-sizing:border-box;width:max-content;color:var(--qilin-alias-label-tertiary);background:var(--qilin-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}.Pg1Ftq_turnLabelFull,.Pg1Ftq_turnLabelCompact{opacity:1;white-space:nowrap;grid-area:1/1;max-width:64px;overflow:hidden}.Pg1Ftq_turnLabelCompact{opacity:0;max-width:0}.Pg1Ftq_turnLabelActive{color:color-mix(in srgb, var(--qilin-static-blue-500) 55%, var(--qilin-alias-label-tertiary));background:var(--trajectory-turn-accent)}.Pg1Ftq_eventInner{justify-content:flex-start;align-items:center;min-width:0;height:100%;display:flex}.Pg1Ftq_kindSlot{flex:none;justify-content:flex-end;align-items:flex-end;width:76px;display:flex}.Pg1Ftq_kindSlot:where(:lang(zh)){width:44px}.Pg1Ftq_kindSlot [role=tooltip]{background:var(--qilin-alias-bg-layer-2);box-shadow:var(--qilin-elevation-panel);color:var(--qilin-alias-label-primary);border:0}.Pg1Ftq_content{color:var(--qilin-alias-label-primary);padding-left:4px!important}.Pg1Ftq_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}.Pg1Ftq_kindTagIcon{opacity:0;flex:none;justify-content:center;align-items:center;width:0;height:13px;display:inline-flex;overflow:hidden;transform:scale(.8)}.Pg1Ftq_kindTagLabel{opacity:1;white-space:nowrap;max-width:72px;display:inline-block;overflow:hidden}.Pg1Ftq_table .Pg1Ftq_kindSlot .Pg1Ftq_message{justify-content:center;width:100%}@container Pg1Ftq_trajectory-table (width<=620px){.Pg1Ftq_eventColumn{width:50px}.Pg1Ftq_event{padding-left:28px!important;padding-right:3px!important}.Pg1Ftq_requestBoundaryControl{--request-boundary-base-left:6px}.Pg1Ftq_kindSlot{width:19px}.Pg1Ftq_kindTag,.Pg1Ftq_table .Pg1Ftq_kindSlot .Pg1Ftq_message{justify-content:center;width:19px;padding-left:0;padding-right:0}.Pg1Ftq_kindTagIcon{opacity:1;width:13px;transform:scale(1)}.Pg1Ftq_kindTagLabel,.Pg1Ftq_turnLabelFull{opacity:0;max-width:0}.Pg1Ftq_turnLabelCompact{opacity:1;max-width:64px}}@media (prefers-reduced-motion:no-preference){.Pg1Ftq_eventColumn,.Pg1Ftq_event,.Pg1Ftq_requestBoundaryControl,.Pg1Ftq_kindSlot,.Pg1Ftq_kindTag,.Pg1Ftq_kindTagIcon,.Pg1Ftq_kindTagLabel,.Pg1Ftq_turnLabelFull,.Pg1Ftq_turnLabelCompact{transition-duration:.18s;transition-timing-function:var(--ds-ease-in-out)}.Pg1Ftq_eventColumn,.Pg1Ftq_kindSlot{transition-property:width}.Pg1Ftq_event{transition-property:padding-right,padding-left}.Pg1Ftq_requestBoundaryControl{transition-property:left}.Pg1Ftq_kindTag{transition-property:padding-right,padding-left}.Pg1Ftq_kindTagIcon{transition-property:width,opacity,transform}.Pg1Ftq_kindTagLabel,.Pg1Ftq_turnLabelFull,.Pg1Ftq_turnLabelCompact{transition-property:max-width,opacity}}.Pg1Ftq_user{color:var(--qilin-alias-state-business-primary);background:var(--qilin-alias-state-business-tertiary)}.Pg1Ftq_systemNeutral{color:var(--qilin-alias-label-secondary);background:var(--qilin-alias-bg-module-platform)}.Pg1Ftq_contextGreen{color:color-mix(in srgb, var(--qilin-alias-state-success-primary) 68%, var(--qilin-alias-label-secondary));background:var(--qilin-alias-state-success-tertiary)}.Pg1Ftq_compacted{color:var(--qilin-alias-label-secondary);background:var(--qilin-alias-bg-module-platform)}.Pg1Ftq_compactedSummary{font:var(--qilin-font-xs-13);margin-top:12px;padding:0 0 14px}.Pg1Ftq_promptDiffSections{flex-direction:column;gap:14px;max-height:100%;padding:10px 14px 14px;display:flex;overflow:auto}.Pg1Ftq_promptDiffSection{min-width:0}.Pg1Ftq_promptDiffTitle{color:var(--qilin-alias-label-secondary);font:var(--qilin-font-xs-strong-13);user-select:none;margin:0 0 6px}.Pg1Ftq_promptDiff{color:var(--qilin-alias-label-primary);background:var(--qilin-alias-bg-layer-1);font:11px/17px var(--ds-font-family-code);white-space:pre;margin:0;overflow:auto}.Pg1Ftq_promptDiff span{min-width:max-content;padding:0 6px;display:block}.Pg1Ftq_promptDiffLinemeta{color:var(--qilin-alias-label-caption);background:var(--qilin-alias-bg-module-platform);user-select:none}.Pg1Ftq_promptDiffLinecontext{color:var(--qilin-alias-label-secondary)}.Pg1Ftq_promptDiffLineadded{color:color-mix(in srgb, var(--qilin-alias-state-success-primary) 72%, var(--qilin-alias-label-primary));background:var(--qilin-alias-state-success-tertiary)}.Pg1Ftq_promptDiffLineremoved{color:var(--qilin-alias-state-error-primary);background:color-mix(in srgb, var(--qilin-alias-state-error-primary) 12%, var(--qilin-alias-bg-layer-1))}.Pg1Ftq_assistantVioletBright{color:color-mix(in srgb, var(--qilin-alias-brand-primary-new-colorprimary-new-color) 60%, var(--qilin-alias-state-error-secondary));background:color-mix(in srgb, color-mix(in srgb, var(--qilin-alias-brand-primary-new-colorprimary-new-color) 55%, var(--qilin-alias-state-error-secondary)) 15%, var(--qilin-alias-bg-layer-1))}.Pg1Ftq_toolAmber{color:var(--qilin-alias-state-warn-label);background:var(--qilin-alias-state-warn-tertiary)}.Pg1Ftq_subtoolAmber{color:color-mix(in srgb, var(--qilin-alias-state-warn-label) 62%, var(--qilin-alias-label-tertiary));background:color-mix(in srgb, var(--qilin-alias-state-warn-tertiary) 58%, var(--qilin-alias-bg-layer-1))}.Pg1Ftq_contentText{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.Pg1Ftq_toolCallOnly{color:var(--qilin-alias-label-tertiary)}.Pg1Ftq_table tbody tr[data-collapsed-summary=turn] td,.Pg1Ftq_table tbody tr[data-collapsed-summary=assistant] td,.Pg1Ftq_table tbody tr[data-collapsed-summary=tool] td{height:20px}.Pg1Ftq_table tbody tr[data-collapsed-summary]{cursor:pointer;transition:background-color .12s var(--ds-ease-in-out);outline:none}.Pg1Ftq_table tbody tr[data-collapsed-summary]:hover{background:var(--qilin-alias-interactive-bg-hover)}.Pg1Ftq_table tbody tr[data-collapsed-summary]:focus-visible{box-shadow:inset 0 0 0 1px var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary))}.Pg1Ftq_collapsedTurnContent{min-width:0;color:var(--qilin-alias-label-secondary);align-items:center;font-size:12px;line-height:16px;display:flex}.Pg1Ftq_collapsedTurnEllipsis{color:var(--qilin-alias-label-tertiary);user-select:none;flex:none;margin-right:6px;font-weight:600}.Pg1Ftq_collapsedTurnText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.Pg1Ftq_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}.Pg1Ftq_resultRequest,.Pg1Ftq_inlineResultText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.Pg1Ftq_toolCallNameTypeface{color:var(--qilin-alias-label-primary);font:400 12px/18px Menlo,Consolas,Liberation Mono,PingFang SC,Microsoft YaHei}.Pg1Ftq_toolCallPayload{color:var(--qilin-alias-label-secondary);font:400 12px/18px var(--ds-font-family-code);margin-left:7px}.Pg1Ftq_table tbody tr[data-kind=tool] .Pg1Ftq_contentText,.Pg1Ftq_table tbody tr[data-kind=subtool] .Pg1Ftq_contentText,.Pg1Ftq_table tbody tr[data-kind=tool] .Pg1Ftq_resultPreview,.Pg1Ftq_table tbody tr[data-kind=subtool] .Pg1Ftq_resultPreview{font-family:var(--ds-font-family-code);font-size:12px}.Pg1Ftq_table tbody tr[data-kind=subtool] .Pg1Ftq_content{padding-left:26px}.Pg1Ftq_inlineResult{min-width:0;color:var(--qilin-alias-label-secondary);align-items:center;display:flex}.Pg1Ftq_noOutputText{color:var(--qilin-alias-label-caption)}.Pg1Ftq_arrow{color:var(--qilin-alias-label-caption);flex:none;margin-right:8px}.Pg1Ftq_error,.Pg1Ftq_overview dd.Pg1Ftq_error,.Pg1Ftq_details .Pg1Ftq_errorPayload{color:var(--qilin-alias-state-error-primary)}.Pg1Ftq_details .Pg1Ftq_errorPayload .Pg1Ftq_resultBlockText{color:inherit}.Pg1Ftq_details .Pg1Ftq_jsonPayload.Pg1Ftq_errorPayload,.Pg1Ftq_details .Pg1Ftq_jsonPreview.Pg1Ftq_errorPayload{--json-tree-property:var(--qilin-alias-state-error-primary);--json-tree-string:var(--qilin-alias-state-error-primary);--json-tree-number:var(--qilin-alias-state-error-primary);--json-tree-keyword:var(--qilin-alias-state-error-primary);--json-tree-punctuation:var(--qilin-alias-state-error-primary);--json-tree-icon:var(--qilin-alias-state-error-primary)}.Pg1Ftq_details{width:var(--trajectory-details-width,clamp(320px, 38%, 440px));border-left:1px solid var(--qilin-alias-border-l2);background:var(--qilin-alias-bg-layer-1);flex-direction:column;flex:none;min-width:0;max-width:calc(100% - 280px);min-height:0;display:flex;position:relative}@container (width<=600px){.Pg1Ftq_split{flex-direction:column}.Pg1Ftq_details{border-left:0;border-top:1px solid var(--qilin-alias-border-l2);flex:none;width:100%;max-width:none;max-height:60%}.Pg1Ftq_detailsResizeHandle{display:none}}.Pg1Ftq_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}.Pg1Ftq_detailsResizeHandle:focus-visible{outline:none}.Pg1Ftq_detailsHeader{box-sizing:border-box;border-bottom:1px solid var(--qilin-alias-border-l2);flex:none;justify-content:space-between;align-items:center;height:42px;padding:0 8px 0 12px;display:flex}.Pg1Ftq_detailsTitle{min-width:0;color:var(--qilin-alias-label-primary);align-items:center;gap:8px;display:flex}.Pg1Ftq_requestDetailsDot{corner-shape:round;background:var(--qilin-alias-label-secondary);border-radius:50%;flex:none;width:5px;height:5px}.Pg1Ftq_requestDetailsName{font:500 12px/16px var(--ds-font-family-code);flex:none}.Pg1Ftq_detailsLocation{min-width:0;color:var(--qilin-alias-label-tertiary);font:11px/16px var(--ds-font-family-code);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Pg1Ftq_close{width:28px;height:28px;color:var(--qilin-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}.Pg1Ftq_close:hover{color:var(--qilin-alias-label-primary);background:var(--qilin-alias-interactive-bg-hover)}.Pg1Ftq_detailTabs{box-sizing:border-box;border-bottom:1px solid var(--qilin-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}.Pg1Ftq_detailTabs::-webkit-scrollbar{display:none}.Pg1Ftq_detailTab{color:var(--qilin-alias-label-tertiary);cursor:pointer;font:var(--qilin-font-xs-13);background:0 0;border:0;flex:none;padding:0 9px;position:relative}.Pg1Ftq_detailTab:hover{color:var(--qilin-alias-label-primary);background:var(--qilin-alias-interactive-bg-hover)}.Pg1Ftq_detailTabActive{color:var(--qilin-alias-state-business-primary)}.Pg1Ftq_detailTabActive:after{background:var(--qilin-alias-state-business-primary);content:\"\";border-radius:1px 1px 0 0;height:2px;position:absolute;bottom:0;left:9px;right:9px}.Pg1Ftq_close:focus-visible,.Pg1Ftq_detailTab:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:-1px}.Pg1Ftq_detailBody{min-height:0;padding-bottom:var(--qilin-trajectory-bottom-clearance,0px);scrollbar-gutter:stable;flex:1;overflow:hidden auto}.Pg1Ftq_detailBodySummary{box-sizing:border-box;padding-bottom:calc(12px + var(--qilin-trajectory-bottom-clearance,0px));flex-direction:column;display:flex;overflow:hidden}.Pg1Ftq_detailBodySummary>.Pg1Ftq_overview{overscroll-behavior:contain;flex:0 auto;min-height:0;padding-bottom:0;overflow:auto}.Pg1Ftq_detailBodySummary>.Pg1Ftq_compactedSummary{flex:1;min-height:0;overflow:auto}.Pg1Ftq_summaryScrollRegion{--qilin-scrollbar-thumb:transparent;--qilin-scrollbar-thumb-hover:transparent}.Pg1Ftq_summaryScrollRegion:hover,.Pg1Ftq_summaryScrollRegion:focus-within{--qilin-scrollbar-thumb:var(--qilin-alias-scrollbar-bg-l2);--qilin-scrollbar-thumb-hover:var(--qilin-alias-scrollbar-hover-l2)}.Pg1Ftq_compactedSummary .Pg1Ftq_markdownPayload{padding-right:18px}.Pg1Ftq_overview{font:var(--qilin-font-xs-13);margin:0;padding:8px 0}.Pg1Ftq_overviewParentLinks{gap:14px;display:flex}.Pg1Ftq_overviewHierarchyNavLink{all:unset;color:var(--qilin-alias-label-secondary);cursor:pointer;font:inherit;opacity:1;align-items:center;gap:1px;display:inline-flex}.Pg1Ftq_overviewHierarchyNavLink:hover{color:var(--qilin-alias-label-primary)}.Pg1Ftq_overviewHierarchyJumpIconTight{color:var(--qilin-alias-label-caption);flex:none}.Pg1Ftq_overviewHierarchyNavLink:hover .Pg1Ftq_overviewHierarchyJumpIconTight,.Pg1Ftq_overviewHierarchyNavLink:focus-visible .Pg1Ftq_overviewHierarchyJumpIconTight{color:var(--qilin-alias-label-primary)}.Pg1Ftq_overviewHierarchyNavLink:focus-visible{color:var(--qilin-alias-label-primary);outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:2px}.Pg1Ftq_overview>div{grid-template-columns:94px minmax(0,1fr);align-items:center;min-height:22px;padding:0 14px;display:grid}.Pg1Ftq_overview>.Pg1Ftq_requestTokenDetail dt{padding-left:12px}.Pg1Ftq_usagePanel{padding:4px 0 10px}.Pg1Ftq_usageGroup+.Pg1Ftq_usageGroup{margin-top:8px}.Pg1Ftq_usageHeading{color:var(--qilin-alias-label-secondary);font:var(--qilin-font-xs-strong-13);user-select:none;margin:0;padding:4px 14px 1px}.Pg1Ftq_usageGroup .Pg1Ftq_overview{padding:0}.Pg1Ftq_overview dt{color:var(--qilin-alias-label-tertiary)}.Pg1Ftq_overview dd{min-width:0;color:var(--qilin-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.Pg1Ftq_timestampToggle{all:unset;color:inherit;cursor:pointer;font:inherit;user-select:text}.Pg1Ftq_timestampToggle:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:2px}.Pg1Ftq_overviewSections{border-top:0;flex-direction:column;flex:1;min-height:min-content;display:flex;overflow:hidden}.Pg1Ftq_overviewSection{flex-direction:column;flex:1 1 0;min-height:24px;max-height:max-content;display:flex;overflow:hidden}.Pg1Ftq_overviewSection+.Pg1Ftq_overviewSection{padding-top:2px}.Pg1Ftq_overviewHeading{box-sizing:border-box;width:100%;height:24px;color:var(--qilin-alias-label-secondary);background:var(--qilin-alias-bg-layer-1);font:var(--qilin-font-xs-strong-13);user-select:none;flex:none;align-items:flex-end;margin:0;padding:0 0 3px 14px;display:flex}.Pg1Ftq_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}.Pg1Ftq_overviewTitleIcon{color:var(--qilin-alias-label-caption);flex:none}.Pg1Ftq_overviewTitle:hover .Pg1Ftq_overviewTitleIcon{color:var(--qilin-alias-label-primary)}.Pg1Ftq_overviewTitle:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:2px}.Pg1Ftq_overviewTitle:focus-visible .Pg1Ftq_overviewTitleIcon{color:var(--qilin-alias-state-business-primary)}.Pg1Ftq_overviewPreview{overscroll-behavior:contain;background:var(--qilin-alias-bg-layer-1);flex:1;min-height:0;overflow:auto}.Pg1Ftq_overviewPreview[data-scroll-more]{mask-image:linear-gradient(#000 calc(100% - 12px),#0000)}.Pg1Ftq_overviewPreview>:last-child{margin-bottom:0;padding-bottom:0}.Pg1Ftq_programDescription{color:var(--qilin-alias-label-primary);font:var(--qilin-font-xs-13);white-space:pre-wrap;overflow-wrap:anywhere;flex:none;margin:0;padding:8px 14px 2px}.Pg1Ftq_programIcon{vertical-align:-2px;margin-right:4px}.Pg1Ftq_programSummary{font-family:var(--qilin-font-family);margin-left:5px}.Pg1Ftq_detailBodyProgram,.Pg1Ftq_programPanel{flex-direction:column;min-height:0;display:flex;overflow:hidden}.Pg1Ftq_programPanel{background:var(--qilin-alias-bg-layer-1);flex:1}.Pg1Ftq_programActions{flex:none;align-items:center;gap:4px;height:16px;margin-left:auto;padding-right:14px;display:inline-flex}.Pg1Ftq_programLanguage{color:var(--qilin-alias-label-tertiary);font:11px/16px var(--ds-font-family-code);padding-right:4px}.Pg1Ftq_programAction{box-sizing:border-box;width:20px;height:16px;color:var(--qilin-alias-label-secondary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.Pg1Ftq_programAction:hover{color:var(--qilin-alias-label-primary)}.Pg1Ftq_programAction[aria-pressed=true]{color:var(--qilin-alias-state-business-primary)}.Pg1Ftq_programAction[data-state=failed]{color:var(--qilin-alias-state-error-primary)}.Pg1Ftq_programAction:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:-1px}.Pg1Ftq_programContent{min-width:0;min-height:0}.Pg1Ftq_programPanel>.Pg1Ftq_programContent{overscroll-behavior:contain;flex:1;overflow:auto}.Pg1Ftq_programSource{background:var(--qilin-alias-bg-layer-1);--dsl-code-block-line-white-space:pre;border-radius:0;margin:0!important}.Pg1Ftq_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(--qilin-alias-bg-layer-1)!important}.Pg1Ftq_programSource pre code>.line{box-sizing:border-box;width:max-content;min-width:100%}.Pg1Ftq_programContent[data-wrap=true] .Pg1Ftq_programSource{--dsl-code-block-line-white-space:pre-wrap}.Pg1Ftq_programContent[data-wrap=true] .Pg1Ftq_programSource pre code>.line{overflow-wrap:anywhere;word-break:break-all;width:auto}.Pg1Ftq_programOutput{color:var(--qilin-alias-label-primary);font:12px/16px var(--ds-font-family-code);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:2px 14px 8px}.Pg1Ftq_programError:first-line{color:var(--qilin-alias-state-error-primary);font-weight:600}.Pg1Ftq_overviewPreview .Pg1Ftq_jsonPreview>:first-child,.Pg1Ftq_overviewPreview .Pg1Ftq_schemaTree>:first-child{padding-top:2px;padding-bottom:0}.Pg1Ftq_overviewPreview .Pg1Ftq_schemaTree{margin-bottom:0}.Pg1Ftq_overviewPreview .Pg1Ftq_overview{padding:2px 0 0}.Pg1Ftq_overviewPreview .Pg1Ftq_overview>div{min-height:22px}.Pg1Ftq_markdownPreview,.Pg1Ftq_markdownPayload{color:var(--qilin-alias-label-primary)}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]),.Pg1Ftq_markdownPayload>div:not([data-markdown-variant=compact]){font:var(--qilin-font-xs-13);gap:8px}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) h1,.Pg1Ftq_markdownPayload>div:not([data-markdown-variant=compact]) h1{font:600 16px/22px var(--qilin-font-family)}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) h2,.Pg1Ftq_markdownPayload>div:not([data-markdown-variant=compact]) h2{font:600 15px/22px var(--qilin-font-family)}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) :where(h3,h4,h5,h6),.Pg1Ftq_markdownPayload>div:not([data-markdown-variant=compact]) :where(h3,h4,h5,h6){font:600 14px/20px var(--qilin-font-family)}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) :not(pre)>code,.Pg1Ftq_markdownPayload>div:not([data-markdown-variant=compact]) :not(pre)>code{font:12px/18px var(--ds-font-family-code)}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) table,.Pg1Ftq_markdownPayload>div:not([data-markdown-variant=compact]) table{font:var(--qilin-font-xs-13)}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact])>:first-child{margin-top:0}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact])>:last-child{margin-bottom:0}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) :where(h1,h2,h3){margin:12px 0 6px}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) :where(h4,h5,h6){margin:10px 0 5px}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) :where(p,ul,ol){margin:8px 0}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) li:not(:first-child){margin-top:3px}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) blockquote{margin-top:8px}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact]) hr{margin:14px 0}.Pg1Ftq_markdownPreview>div:not([data-markdown-variant=compact])>.md-code-block{margin:10px 0}.Pg1Ftq_assistantContent .Pg1Ftq_markdownPayload,.Pg1Ftq_assistantContent .Pg1Ftq_payload{min-height:0}.Pg1Ftq_thinkingQuote{--qilin-content-font-size-secondary:13px;--qilin-content-font-delta-secondary:0px;border-left:2px solid var(--qilin-alias-markdown-citation);color:var(--qilin-alias-label-secondary);background:0 0;margin:6px 14px 0 12px;padding-left:6px}.Pg1Ftq_thinkingQuoteOnlyPreview{margin-bottom:8px}.Pg1Ftq_detailBody>.Pg1Ftq_assistantContentRendered .Pg1Ftq_thinkingQuote{margin-top:14px}.Pg1Ftq_thinkingToggle{width:max-content;height:18px;color:var(--qilin-alias-label-tertiary);cursor:pointer;font:600 12px/18px var(--qilin-font-family);user-select:none;background:0 0;border:0;align-items:center;gap:2px;padding:0;display:flex}.Pg1Ftq_thinkingChevron{transition:transform .12s var(--ds-ease-in-out);flex:none}.Pg1Ftq_thinkingToggle[aria-expanded=true] .Pg1Ftq_thinkingChevron{transform:rotate(90deg)}.Pg1Ftq_thinkingToggle:hover{color:var(--qilin-alias-label-secondary)}.Pg1Ftq_thinkingToggle:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:2px}.Pg1Ftq_thinkingQuote .Pg1Ftq_markdownPreview,.Pg1Ftq_thinkingQuote .Pg1Ftq_markdownPayload,.Pg1Ftq_thinkingQuote .Pg1Ftq_payload{min-height:0;color:var(--qilin-alias-label-secondary);background:0 0;padding:2px 0}.Pg1Ftq_assistantOutput{background:var(--qilin-alias-bg-layer-1)}.Pg1Ftq_markdownPreview{padding:2px 14px 8px}.Pg1Ftq_markdownPayload{min-height:100%;padding:14px}.Pg1Ftq_jsonPayload{min-height:100%}.Pg1Ftq_jsonPreview{min-height:0}.Pg1Ftq_schema{background:var(--qilin-alias-bg-layer-1);min-height:100%}.Pg1Ftq_schemaPreview{min-height:0}.Pg1Ftq_schemaIntro{padding:12px 14px 6px}.Pg1Ftq_schemaPreview .Pg1Ftq_schemaIntro{padding-top:2px}.Pg1Ftq_schemaName{color:var(--qilin-alias-label-primary);font:600 12px/18px var(--ds-font-family-code);margin:0}.Pg1Ftq_schemaDescription{color:var(--qilin-alias-label-secondary);font:var(--qilin-font-xs-13);white-space:pre-wrap;margin:2px 0 0}.Pg1Ftq_schemaParameters{min-width:0}.Pg1Ftq_schemaParametersTitle{color:var(--qilin-alias-label-tertiary);font:600 11px/16px var(--qilin-font-family);user-select:none;margin:0;padding:4px 14px 2px}.Pg1Ftq_schemaTree{margin:0 6px 8px 0}.Pg1Ftq_payload{box-sizing:border-box;overflow-wrap:anywhere;min-height:100%;color:var(--qilin-alias-label-primary);background:var(--qilin-alias-markdown-code-block);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;margin:0;padding:14px}.Pg1Ftq_payloadPreview{min-height:0;padding:2px 14px 8px}.Pg1Ftq_sourceBlocks{box-sizing:border-box;min-height:100%;padding:12px 14px}.Pg1Ftq_sourceBlock+.Pg1Ftq_sourceBlock{margin-top:14px}.Pg1Ftq_sourceBlockHeader,.Pg1Ftq_sourceBlockJumpTarget{user-select:none;align-items:center;gap:3px;width:max-content;margin-bottom:3px;display:flex}.Pg1Ftq_sourceBlockJumpTarget{all:unset;cursor:pointer;user-select:none;align-items:center;gap:3px;width:max-content;margin-bottom:3px;display:flex}.Pg1Ftq_sourceBlockLabel{color:var(--qilin-alias-label-tertiary);font:11px/16px var(--ds-font-family-code)}.Pg1Ftq_sourceBlockJumpIcon{color:var(--qilin-alias-label-caption);flex:none}.Pg1Ftq_sourceBlockJumpTarget:hover .Pg1Ftq_sourceBlockJumpIcon{color:var(--qilin-alias-label-primary)}.Pg1Ftq_sourceBlockJumpTarget:focus-visible{outline:none}.Pg1Ftq_sourceBlockJumpTarget:focus-visible .Pg1Ftq_sourceBlockJumpIcon{color:var(--qilin-alias-state-business-primary)}.Pg1Ftq_sourceBlockContent{overflow-wrap:anywhere;color:var(--qilin-alias-label-primary);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;background:0 0;margin:0}.Pg1Ftq_messageImages{flex-direction:column;gap:8px;margin:8px 14px 14px;display:flex}.Pg1Ftq_attachments{flex-direction:column;gap:8px;margin:8px 14px 14px;padding:0;list-style:none;display:flex}.Pg1Ftq_attachmentsPreview{gap:6px;margin-block:6px 8px}.Pg1Ftq_attachmentRow{border:1px solid var(--qilin-alias-border-l2-darkmode-thin);border-radius:12px;align-items:center;gap:10px;min-width:0;padding:8px;display:flex}.Pg1Ftq_attachmentIcon{flex:0 0 48px;place-items:center;width:48px;height:48px;display:grid}.Pg1Ftq_attachmentInfo{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.Pg1Ftq_attachmentName{color:var(--qilin-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.Pg1Ftq_attachmentMetadata{color:var(--qilin-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.Pg1Ftq_attachmentDisclosure{border:1px solid var(--qilin-alias-border-l2-darkmode-thin);border-radius:8px;margin-block:8px}.Pg1Ftq_attachmentDisclosure>summary{cursor:pointer;padding:8px}.Pg1Ftq_attachmentDisclosure>summary .Pg1Ftq_attachmentName{display:block}.Pg1Ftq_attachmentDisclosure>summary:focus-visible{outline:var(--qilin-focus-ring-width) solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:2px}.Pg1Ftq_attachmentDisclosure>pre{padding:0 8px 8px}.Pg1Ftq_assistantToolCalls{box-sizing:border-box;max-width:100%;color:var(--qilin-alias-label-secondary);font:11px/17px var(--ds-font-family-code);margin:2px 14px 12px;padding:0;list-style:none}.Pg1Ftq_assistantToolCallsPreview{margin-top:2px;margin-bottom:8px}.Pg1Ftq_assistantToolCalls li{min-width:0}.Pg1Ftq_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}.Pg1Ftq_assistantToolCallButton:hover{background:var(--qilin-alias-interactive-bg-hover)}.Pg1Ftq_assistantToolCallButton:focus-visible{background:var(--qilin-alias-interactive-bg-hover);outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:-1px}.Pg1Ftq_assistantToolCallIcon{color:var(--qilin-alias-label-caption);flex:none;margin-right:5px}.Pg1Ftq_assistantToolCallButton:hover .Pg1Ftq_assistantToolCallIcon,.Pg1Ftq_assistantToolCallButton:focus-visible .Pg1Ftq_assistantToolCallIcon{color:var(--qilin-alias-label-secondary)}.Pg1Ftq_assistantToolCallText{white-space:nowrap;flex:1;min-width:0;display:flex;overflow:hidden}.Pg1Ftq_assistantToolCallName{color:var(--qilin-alias-label-secondary);flex:none;margin-right:5px;font-weight:500}.Pg1Ftq_assistantToolCallArgs{min-width:0;color:var(--qilin-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Pg1Ftq_systemPrompt{box-sizing:border-box}.Pg1Ftq_toolCatalog{min-height:100%;padding:8px 0 16px}.Pg1Ftq_toolCatalogItem{border-bottom:1px solid var(--qilin-alias-border-l1)}.Pg1Ftq_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}.Pg1Ftq_toolCatalogSummary::-webkit-details-marker{display:none}.Pg1Ftq_toolCatalogSummary:hover{background:var(--qilin-alias-interactive-bg-hover)}.Pg1Ftq_toolCatalogSummary:focus-visible{background:var(--qilin-alias-interactive-bg-hover);outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:-1px}.Pg1Ftq_toolCatalogChevron,.Pg1Ftq_toolCatalogIcon{color:var(--qilin-alias-label-caption)}.Pg1Ftq_toolCatalogChevron{transition:transform .1s var(--ds-ease-in-out)}.Pg1Ftq_toolCatalogItem[open] .Pg1Ftq_toolCatalogChevron{transform:rotate(90deg)}.Pg1Ftq_toolCatalogName{color:var(--qilin-alias-label-primary);font:500 12px/18px var(--ds-font-family-code)}.Pg1Ftq_toolCatalogDescription{min-width:0;color:var(--qilin-alias-label-tertiary);font:var(--qilin-font-xs-13);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Pg1Ftq_toolCatalogDefinition{background:var(--qilin-alias-bg-base);padding:0 0 8px 29px}.Pg1Ftq_toolCatalogFullDescription{color:var(--qilin-alias-label-secondary);font:var(--qilin-font-xs-13);white-space:pre-wrap;margin:0;padding:7px 14px 4px 0}.Pg1Ftq_toolCatalogTree{margin-left:-14px;margin-right:6px}.Pg1Ftq_resultBlocks{box-sizing:border-box;flex-direction:column;gap:10px;min-height:100%;padding:14px;display:flex}.Pg1Ftq_resultBlocksPreview{gap:6px;min-height:0;padding:2px 14px 8px}.Pg1Ftq_resultBlockText{overflow-wrap:anywhere;color:var(--qilin-alias-label-primary);font:12px/19px var(--ds-font-family-code);tab-size:2;white-space:pre-wrap;background:0 0;margin:0}.Pg1Ftq_overviewPreview .Pg1Ftq_noPayload{padding:2px 14px 0}.Pg1Ftq_noPayload{color:var(--qilin-alias-label-tertiary);font:var(--qilin-font-xs-13);margin:0;padding:18px 14px}@media (width<=760px){.Pg1Ftq_details{z-index:5;border-left-color:var(--qilin-alias-border-l3);width:min(92%,420px);max-width:92%;position:absolute;top:0;bottom:0;right:0;box-shadow:-12px 0 32px #00000024}}.Pg1Ftq_toolUpdatePayload{white-space:pre;overflow-x:auto}";
4656
4667
  const tagId$4 = "@qilin-agent/client-ui-trajectory/TrajectoryTable.module.css";
4657
4668
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
4658
4669
  const tag = document.createElement("style");
@@ -4919,6 +4930,11 @@ window.__ModuleLoader__.load({
4919
4930
  tool: (0, react_jsx_runtime.jsx)(ToolWrenchIcon, {}),
4920
4931
  subtool: (0, react_jsx_runtime.jsx)(ToolWrenchIcon, {})
4921
4932
  };
4933
+ const COLLAPSED_SUMMARY_LABEL_KEY = {
4934
+ turn: "request.collapsedTurn",
4935
+ assistant: "request.collapsedAssistant",
4936
+ tool: "request.collapsedTool"
4937
+ };
4922
4938
  function useStableVirtualRowStructure(rows) {
4923
4939
  const cache = (0, react.useRef)({
4924
4940
  rows: [],
@@ -5206,7 +5222,7 @@ window.__ModuleLoader__.load({
5206
5222
  }
5207
5223
  return calls;
5208
5224
  }
5209
- function summarizeAssistantTools(records, t) {
5225
+ function summarizeCalls(records, t) {
5210
5226
  const names = [...new Set(records.map((record) => {
5211
5227
  const separator = record.cell.text.indexOf(" · ");
5212
5228
  return separator === -1 ? record.cell.text : record.cell.text.slice(0, separator);
@@ -5215,17 +5231,17 @@ window.__ModuleLoader__.load({
5215
5231
  const summary = t(count === 1 ? "summary.toolCalls.one" : "summary.toolCalls.other", { count });
5216
5232
  return names.length > 0 ? `${summary} · ${names.join(", ")}` : summary;
5217
5233
  }
5218
- function collapseAssistantRecords(records, collapsedAssistants, t) {
5234
+ function collapseCallRecords(records, collapsedIds, kind, t) {
5219
5235
  const out = [];
5220
5236
  for (let i = 0; i < records.length; i++) {
5221
5237
  const record = records[i];
5222
5238
  if (record === void 0) continue;
5223
5239
  out.push(record);
5224
- if (record.cell.kind !== "message" || !collapsedAssistants.has(trajectoryRecordId(record.cell))) continue;
5240
+ if (record.collapsedSummary !== void 0 || record.cell.kind !== (kind === "assistant" ? "message" : "tool") || !collapsedIds.has(trajectoryRecordId(record.cell))) continue;
5225
5241
  const calls = [];
5226
5242
  for (let j = i + 1; j < records.length; j++) {
5227
5243
  const candidate = records[j];
5228
- if (candidate === void 0 || candidate.collapsedSummary !== void 0 || candidate.cell.kind !== "tool" && candidate.cell.kind !== "subtool") break;
5244
+ if (candidate === void 0 || candidate.collapsedSummary !== void 0 || candidate.cell.kind !== "tool" && candidate.cell.kind !== "subtool" || kind === "tool" && candidate.cell.kind !== "subtool") break;
5229
5245
  calls.push(candidate);
5230
5246
  }
5231
5247
  if (calls.length === 0) continue;
@@ -5239,8 +5255,8 @@ window.__ModuleLoader__.load({
5239
5255
  groupStart: false,
5240
5256
  turnStart: false,
5241
5257
  turnEnd: last?.turnEnd ?? false,
5242
- collapsedSummary: summarizeAssistantTools(calls, t),
5243
- collapsedSummaryKind: "assistant"
5258
+ collapsedSummary: summarizeCalls(calls, t),
5259
+ collapsedSummaryKind: kind
5244
5260
  });
5245
5261
  i += calls.length;
5246
5262
  }
@@ -5826,7 +5842,7 @@ window.__ModuleLoader__.load({
5826
5842
  preview ? TrajectoryTable_module_css_default.resultBlocksPreview : void 0,
5827
5843
  error ? TrajectoryTable_module_css_default.errorPayload : void 0
5828
5844
  ].filter((value) => value !== void 0).join(" "),
5829
- children: [error && errorDetail !== void 0 && errorDetail !== "" && (0, react_jsx_runtime.jsx)("pre", {
5845
+ children: [error && errorDetail !== void 0 && errorDetail !== "" && !blocks.some((block) => block.type === "text" && block.content !== "") && (0, react_jsx_runtime.jsx)("pre", {
5830
5846
  className: TrajectoryTable_module_css_default.resultBlockText,
5831
5847
  children: errorDetail
5832
5848
  }), blocks.map((block, index) => block.attachment !== void 0 ? (0, react_jsx_runtime.jsx)("div", {
@@ -5997,7 +6013,7 @@ window.__ModuleLoader__.load({
5997
6013
  const error = direction === "output" && record.cell.isError === true;
5998
6014
  const payloadClass = preview ? TrajectoryTable_module_css_default.jsonPreview : TrajectoryTable_module_css_default.jsonPayload;
5999
6015
  const payloadClassName = error ? `${payloadClass} ${TrajectoryTable_module_css_default.errorPayload}` : payloadClass;
6000
- const json = parseJsonContainer(value);
6016
+ const json = error ? void 0 : parseJsonContainer(value);
6001
6017
  if (direction === "output" && record.cell.outputBlocks?.length === 1 && record.cell.outputBlocks[0]?.type === "text" && json !== void 0) return (0, react_jsx_runtime.jsx)(_qilin_agent_client_ui_primitives.JsonTree, {
6002
6018
  data: json,
6003
6019
  stringWrapping,
@@ -6302,7 +6318,7 @@ window.__ModuleLoader__.load({
6302
6318
  * @param props - Grouped trajectory data and whole-ledger fold state.
6303
6319
  * @returns The ledger and an optional local record inspector.
6304
6320
  */
6305
- 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 }) {
6321
+ 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, collapsedTools, onToggleTool, inspectCallId = null, onInspectApplied }) {
6306
6322
  const [selectedRecordId, setSelectedRecordId] = (0, react.useState)(null);
6307
6323
  const [selectedRequest, setSelectedRequest] = (0, react.useState)(null);
6308
6324
  const [activeTab, setActiveTab] = (0, react.useState)("overview");
@@ -6352,10 +6368,12 @@ window.__ModuleLoader__.load({
6352
6368
  const records = (0, react.useMemo)(() => {
6353
6369
  if (searchMatchIndexes !== null) return filterRecords(allRecords, searchMatchIndexes);
6354
6370
  const turnRecords = collapsedTurns.size === 0 ? allRecords : collapseTurnRecords(allRecords, collapsedTurns, requestGroups, t);
6355
- return collapsedAssistants.size === 0 ? turnRecords : collapseAssistantRecords(turnRecords, collapsedAssistants, t);
6371
+ const assistantRecords = collapsedAssistants.size === 0 ? turnRecords : collapseCallRecords(turnRecords, collapsedAssistants, "assistant", t);
6372
+ return collapsedTools.size === 0 ? assistantRecords : collapseCallRecords(assistantRecords, collapsedTools, "tool", t);
6356
6373
  }, [
6357
6374
  allRecords,
6358
6375
  collapsedAssistants,
6376
+ collapsedTools,
6359
6377
  collapsedTurns,
6360
6378
  requestGroups,
6361
6379
  searchMatchIndexes,
@@ -6495,6 +6513,15 @@ window.__ModuleLoader__.load({
6495
6513
  const openRecordSummary = (target) => {
6496
6514
  const targetAt = allRecords.findIndex((record) => record.cell.index === target.cell.index);
6497
6515
  if (target.turn !== null && collapsedTurns.has(target.turn)) onToggleTurn(target.turn);
6516
+ if (target.cell.kind === "subtool") for (let i = targetAt - 1; i >= 0; i--) {
6517
+ const candidate = allRecords[i];
6518
+ if (candidate === void 0 || candidate.cell.kind === "subtool") continue;
6519
+ if (candidate.cell.kind === "tool") {
6520
+ const toolId = trajectoryRecordId(candidate.cell);
6521
+ if (collapsedTools.has(toolId)) onToggleTool(toolId);
6522
+ }
6523
+ break;
6524
+ }
6498
6525
  if (target.cell.kind === "tool" || target.cell.kind === "subtool") for (let i = targetAt - 1; i >= 0; i--) {
6499
6526
  const candidate = allRecords[i];
6500
6527
  if (candidate === void 0 || candidate.turn !== target.turn) break;
@@ -6511,6 +6538,20 @@ window.__ModuleLoader__.load({
6511
6538
  const target = allRecords.find((record) => record.cell.callId === callId);
6512
6539
  if (target !== void 0) openRecordSummary(target);
6513
6540
  };
6541
+ const expandSummary = (record, kind) => {
6542
+ switch (kind) {
6543
+ case "turn":
6544
+ if (record.turn !== null) onToggleTurn(record.turn);
6545
+ return;
6546
+ case "tool":
6547
+ onToggleTool(trajectoryRecordId(record.cell));
6548
+ return;
6549
+ case "assistant":
6550
+ onToggleAssistant(trajectoryRecordId(record.cell));
6551
+ return;
6552
+ default: assertNever(kind);
6553
+ }
6554
+ };
6514
6555
  const openRecordSummaryRef = (0, react.useRef)(openRecordSummary);
6515
6556
  openRecordSummaryRef.current = openRecordSummary;
6516
6557
  (0, react.useEffect)(() => {
@@ -6736,7 +6777,8 @@ window.__ModuleLoader__.load({
6736
6777
  cell: record.cell,
6737
6778
  t,
6738
6779
  children: ({ displayText, listDisplayText, resultText, toolCallOnly, toolCallText }) => {
6739
- const isCollapsedSummary = record.collapsedSummary !== void 0;
6780
+ const summaryKind = record.collapsedSummaryKind;
6781
+ const isCollapsedSummary = summaryKind !== void 0;
6740
6782
  const isRequestOnly = record.cell.requestOnly === true;
6741
6783
  const singleToolNotice = record.cell.kind === "context" && record.cell.sourceBlocks?.length === 1 && record.cell.sourceBlocks.every((block) => block.type === "tool-addition" || block.type === "tool-removal");
6742
6784
  const isInitialSystem = record.cell.kind === "system" && record.cell.index === allRecords[0]?.cell.index;
@@ -6753,7 +6795,7 @@ window.__ModuleLoader__.load({
6753
6795
  tabIndex: isRequestOnly || singleToolNotice ? -1 : 0,
6754
6796
  "aria-rowindex": position + 1 + historyRowOffset,
6755
6797
  "aria-label": isCollapsedSummary ? t("request.collapsedSummary", {
6756
- kind: t(record.collapsedSummaryKind === "turn" ? "request.collapsedTurn" : "request.collapsedAssistant"),
6798
+ kind: t(COLLAPSED_SUMMARY_LABEL_KEY[summaryKind]),
6757
6799
  summary: record.collapsedSummary
6758
6800
  }) : isRequestOnly ? t("request.rowAriaCompaction", { request: request ?? "" }) : t("request.rowAria", {
6759
6801
  request: request === void 0 ? "" : t("request.rowPrefix", { request }),
@@ -6776,8 +6818,7 @@ window.__ModuleLoader__.load({
6776
6818
  "data-selected": !isCollapsedSummary && selectedIndex === record.cell.index || void 0,
6777
6819
  "data-timeline-focus": isCollapsedSummary || timelineFocusIndexes === null ? void 0 : timelineFocusIndexes.has(record.cell.index) ? "inside" : "outside",
6778
6820
  onClick: isRequestOnly || singleToolNotice ? void 0 : isCollapsedSummary ? () => {
6779
- if (record.collapsedSummaryKind === "turn" && record.turn !== null) onToggleTurn(record.turn);
6780
- else onToggleAssistant(trajectoryRecordId(record.cell));
6821
+ expandSummary(record, summaryKind);
6781
6822
  } : () => {
6782
6823
  selectRecord(record.cell.index);
6783
6824
  },
@@ -6804,8 +6845,7 @@ window.__ModuleLoader__.load({
6804
6845
  if (event.key !== "Enter" && event.key !== " ") return;
6805
6846
  event.preventDefault();
6806
6847
  if (isCollapsedSummary) {
6807
- if (record.collapsedSummaryKind === "turn" && record.turn !== null) onToggleTurn(record.turn);
6808
- else onToggleAssistant(trajectoryRecordId(record.cell));
6848
+ expandSummary(record, summaryKind);
6809
6849
  return;
6810
6850
  }
6811
6851
  selectRecord(record.cell.index);
@@ -6926,7 +6966,7 @@ window.__ModuleLoader__.load({
6926
6966
  }), (selectedRequestInfo !== void 0 || promptSelected || selected !== void 0 && selectedState !== void 0) && (0, react_jsx_runtime.jsxs)("aside", {
6927
6967
  className: TrajectoryTable_module_css_default.details,
6928
6968
  "aria-label": t("details.event"),
6929
- style: detailsWidth === null ? void 0 : { width: detailsWidth },
6969
+ style: detailsWidth === null ? void 0 : { "--trajectory-details-width": `${detailsWidth}px` },
6930
6970
  children: [
6931
6971
  (0, react_jsx_runtime.jsx)("div", {
6932
6972
  className: TrajectoryTable_module_css_default.detailsResizeHandle,
@@ -7424,7 +7464,7 @@ window.__ModuleLoader__.load({
7424
7464
  }
7425
7465
  //#endregion
7426
7466
  //#region \0qilin-css:/home/runner/work/QiLin/QiLin/packages/client/ui-trajectory/src/client/TrajectoryToolbar.module.css.mjs
7427
- const css$3 = "._6IPnna_root{z-index:4;box-sizing:border-box;width:100%;height:var(--qilin-trajectory-toolbar-height);border-bottom:.5px solid var(--qilin-alias-border-l2);background:var(--qilin-alias-bg-layer-1);position:sticky;top:0}._6IPnna_inner{box-sizing:border-box;align-items:center;gap:8px;width:100%;height:100%;padding:0 6px;display:flex}._6IPnna_actions{flex:none;align-items:center;gap:2px;display:flex}._6IPnna_toggle{height:20px;color:var(--qilin-alias-label-tertiary);cursor:pointer;font:var(--qilin-font-xxs-12);background:0 0;border:0;border-radius:3px;flex:none;align-items:center;gap:4px;padding:0 7px;display:inline-flex}._6IPnna_toggle:hover,._6IPnna_toggle[aria-pressed=true]{color:var(--qilin-alias-label-primary);background:var(--qilin-alias-interactive-bg-hover)}._6IPnna_toggle:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:1px}._6IPnna_toggleIcon{stroke:currentColor;stroke-width:1.25px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:12px;height:12px}._6IPnna_control{box-sizing:border-box;width:88px;height:20px;color:var(--qilin-alias-label-tertiary);cursor:pointer;font:var(--qilin-font-xxs-12);background:0 0;border:0;border-radius:0;flex:none;justify-content:center;align-items:center;gap:4px;padding:0 5px;display:inline-flex}._6IPnna_control[hidden]{display:none}._6IPnna_control:hover:not(:disabled),._6IPnna_control[aria-checked=true],._6IPnna_control[aria-pressed=true]{color:var(--qilin-alias-label-primary)}._6IPnna_control:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:1px}._6IPnna_control:disabled{color:var(--qilin-alias-label-dimmed);cursor:not-allowed}._6IPnna_controlTrack{background:var(--qilin-alias-border-l2);width:20px;height:10px;transition:background-color .12s var(--ds-ease-in-out);border-radius:5px;flex:none;display:inline-block;position:relative}._6IPnna_controlThumb{corner-shape:round;background:var(--qilin-alias-bg-layer-1);width:6px;height:6px;transition:transform .12s var(--ds-ease-in-out);border-radius:50%;position:absolute;top:2px;left:2px}._6IPnna_controlTrack[data-on=true]{background:var(--qilin-alias-state-business-primary)}._6IPnna_controlTrack[data-on=true] ._6IPnna_controlThumb{transform:translate(10px)}._6IPnna_action{height:20px;color:var(--qilin-alias-label-tertiary);cursor:pointer;font:var(--qilin-font-xxs-12);background:0 0;border:0;border-radius:3px;flex:none;align-items:center;gap:4px;padding:0 5px;display:inline-flex}._6IPnna_action:hover{color:var(--qilin-alias-label-primary);background:var(--qilin-alias-interactive-bg-hover)}._6IPnna_action:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:1px}._6IPnna_actionIcon{color:var(--qilin-alias-label-tertiary);font:14px/14px var(--ds-font-family-code)}._6IPnna_search{border:.5px solid var(--qilin-alias-border-l4);min-width:84px;height:22px;color:var(--qilin-alias-label-caption);background:var(--qilin-alias-bg-layer-2);border-radius:4px;flex:0 164px;align-items:center;gap:4px;margin-left:auto;padding:0 6px;display:flex}._6IPnna_search:hover{border-color:var(--qilin-alias-label-caption)}._6IPnna_search:focus-within{border-color:var(--qilin-alias-state-business-primary);background:var(--qilin-alias-bg-layer-1)}._6IPnna_searchIcon{flex:none}._6IPnna_searchInput{width:100%;min-width:0;color:var(--qilin-alias-label-primary);font:var(--qilin-font-xxs-12);background:0 0;border:0;outline:0;padding:0}._6IPnna_searchInput::placeholder{color:var(--qilin-alias-label-caption)}._6IPnna_searchInput::-webkit-search-cancel-button{cursor:pointer;width:12px;height:12px}";
7467
+ const css$3 = "._6IPnna_root{z-index:4;box-sizing:border-box;width:100%;min-height:var(--qilin-trajectory-toolbar-height);border-bottom:1px solid var(--qilin-alias-border-l2);background:var(--qilin-alias-bg-layer-1);flex:none;position:sticky;top:0}._6IPnna_inner{box-sizing:border-box;width:100%;min-height:var(--qilin-trajectory-toolbar-height);flex-wrap:wrap;align-items:center;gap:4px 8px;padding:4px 6px;display:flex}._6IPnna_actions{flex-wrap:wrap;flex:0 auto;align-items:center;gap:2px;min-width:0;display:flex}._6IPnna_toggle{height:20px;color:var(--qilin-alias-label-tertiary);cursor:pointer;font:var(--qilin-font-xxs-12);background:0 0;border:0;border-radius:3px;flex:none;align-items:center;gap:4px;padding:0 7px;display:inline-flex}._6IPnna_toggle:hover,._6IPnna_toggle[aria-pressed=true]{color:var(--qilin-alias-label-primary);background:var(--qilin-alias-interactive-bg-hover)}._6IPnna_toggle:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:1px}._6IPnna_toggleIcon{stroke:currentColor;stroke-width:1.25px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:12px;height:12px}._6IPnna_control{box-sizing:border-box;width:88px;height:20px;color:var(--qilin-alias-label-tertiary);cursor:pointer;font:var(--qilin-font-xxs-12);background:0 0;border:0;border-radius:0;flex:none;justify-content:center;align-items:center;gap:4px;padding:0 5px;display:inline-flex}._6IPnna_control[hidden]{display:none}._6IPnna_control:hover:not(:disabled),._6IPnna_control[aria-checked=true],._6IPnna_control[aria-pressed=true]{color:var(--qilin-alias-label-primary)}._6IPnna_control:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:1px}._6IPnna_control:disabled{color:var(--qilin-alias-label-dimmed);cursor:not-allowed}._6IPnna_controlTrack{background:var(--qilin-alias-border-l2);width:20px;height:10px;transition:background-color .12s var(--ds-ease-in-out);border-radius:5px;flex:none;display:inline-block;position:relative}._6IPnna_controlThumb{corner-shape:round;background:var(--qilin-alias-bg-layer-1);width:6px;height:6px;transition:transform .12s var(--ds-ease-in-out);border-radius:50%;position:absolute;top:2px;left:2px}._6IPnna_controlTrack[data-on=true]{background:var(--qilin-alias-state-business-primary)}._6IPnna_controlTrack[data-on=true] ._6IPnna_controlThumb{transform:translate(10px)}._6IPnna_action{height:20px;color:var(--qilin-alias-label-tertiary);cursor:pointer;font:var(--qilin-font-xxs-12);background:0 0;border:0;border-radius:3px;flex:none;align-items:center;gap:4px;padding:0 5px;display:inline-flex}._6IPnna_action:hover{color:var(--qilin-alias-label-primary);background:var(--qilin-alias-interactive-bg-hover)}._6IPnna_action:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:1px}._6IPnna_actionIcon{color:var(--qilin-alias-label-tertiary);font:14px/14px var(--ds-font-family-code)}._6IPnna_search{border:1px solid var(--qilin-alias-border-l4);min-width:84px;height:22px;color:var(--qilin-alias-label-caption);background:var(--qilin-alias-bg-layer-2);border-radius:4px;flex:0 164px;align-items:center;gap:4px;margin-left:auto;padding:0 6px;display:flex}._6IPnna_search:hover{border-color:var(--qilin-alias-label-caption)}._6IPnna_search:focus-within{border-color:var(--qilin-alias-state-business-primary);background:var(--qilin-alias-bg-layer-1)}._6IPnna_searchIcon{flex:none}._6IPnna_searchInput{width:100%;min-width:0;color:var(--qilin-alias-label-primary);font:var(--qilin-font-xxs-12);background:0 0;border:0;outline:0;padding:0}._6IPnna_searchInput::placeholder{color:var(--qilin-alias-label-caption)}._6IPnna_searchInput::-webkit-search-cancel-button{cursor:pointer;width:12px;height:12px}";
7428
7468
  const tagId$3 = "@qilin-agent/client-ui-trajectory/TrajectoryToolbar.module.css";
7429
7469
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
7430
7470
  const tag = document.createElement("style");
@@ -7455,7 +7495,7 @@ window.__ModuleLoader__.load({
7455
7495
  * @param props - rendered counts and whole-list fold state.
7456
7496
  * @returns the toolbar element.
7457
7497
  */
7458
- function TrajectoryToolbar({ actualDuration, onActualDurationChange, actualTime, onActualTimeChange, allTurnsCollapsed, onToggleAllTurns, allAssistantsCollapsed, onToggleAllAssistants, searchQuery, onSearchQueryChange, t }) {
7498
+ function TrajectoryToolbar({ actualDuration, onActualDurationChange, actualTime, onActualTimeChange, allTurnsCollapsed, onToggleAllTurns, allAssistantsCollapsed, onToggleAllAssistants, allSubCallsCollapsed, onToggleAllSubCalls, searchQuery, onSearchQueryChange, t }) {
7459
7499
  return (0, react_jsx_runtime.jsx)("div", {
7460
7500
  className: TrajectoryToolbar_module_css_default.root,
7461
7501
  role: "toolbar",
@@ -7527,6 +7567,19 @@ window.__ModuleLoader__.load({
7527
7567
  "aria-hidden": "true",
7528
7568
  children: allAssistantsCollapsed ? "⊞" : "⊟"
7529
7569
  }), t("toolbar.calls")]
7570
+ }),
7571
+ (0, react_jsx_runtime.jsxs)("button", {
7572
+ type: "button",
7573
+ className: TrajectoryToolbar_module_css_default.action,
7574
+ "aria-label": allSubCallsCollapsed ? t("toolbar.expandSubCalls") : t("toolbar.collapseSubCalls"),
7575
+ "aria-pressed": allSubCallsCollapsed,
7576
+ title: allSubCallsCollapsed ? t("toolbar.expandSubCalls") : t("toolbar.collapseSubCalls"),
7577
+ onClick: onToggleAllSubCalls,
7578
+ children: [(0, react_jsx_runtime.jsx)("span", {
7579
+ className: TrajectoryToolbar_module_css_default.actionIcon,
7580
+ "aria-hidden": "true",
7581
+ children: allSubCallsCollapsed ? "⊞" : "⊟"
7582
+ }), t("toolbar.subCalls")]
7530
7583
  })
7531
7584
  ]
7532
7585
  }), (0, react_jsx_runtime.jsxs)("div", {
@@ -7677,7 +7730,7 @@ window.__ModuleLoader__.load({
7677
7730
  }
7678
7731
  //#endregion
7679
7732
  //#region \0qilin-css:/home/runner/work/QiLin/QiLin/packages/client/ui-trajectory/src/client/TrajectoryTimeline.module.css.mjs
7680
- const css$2 = ".wYdfba_root{z-index:1;isolation:isolate;border-bottom:.5px solid var(--qilin-alias-border-l2);user-select:none;flex:none;position:relative}.wYdfba_root [role=tooltip]{font:var(--qilin-font-xxxs-11)}.wYdfba_plot{background:var(--qilin-alias-bg-layer-2);grid-template-columns:44px minmax(0,1fr);height:50px;display:grid;overflow:hidden}.wYdfba_labels{border-right:.5px solid var(--qilin-alias-border-l1);color:var(--qilin-alias-label-caption);font:var(--qilin-font-xs-13);font-size:10px;line-height:1;position:relative}.wYdfba_labels span{text-align:right;justify-content:flex-end;align-items:center;height:8px;display:flex;position:absolute;right:3px}.wYdfba_labels span:first-child{top:7px}.wYdfba_labels span:nth-child(2){top:21px}.wYdfba_labels span:nth-child(3){top:35px}.wYdfba_track{cursor:crosshair;touch-action:none;position:relative;overflow:hidden}.wYdfba_track[data-panning=true]{cursor:grabbing}.wYdfba_earlierHistory{z-index:5;appearance:none;box-sizing:border-box;background:linear-gradient(to right, var(--qilin-alias-bg-layer-2) 0, var(--qilin-alias-bg-layer-2) 38%, transparent 100%);width:28px;color:var(--qilin-alias-label-secondary);font:var(--qilin-font-xs-13);opacity:.72;cursor:pointer;border:0;outline:none;justify-content:flex-start;align-items:center;padding-left:3px;line-height:1;display:flex;position:absolute;top:0;bottom:0;left:0}.wYdfba_earlierHistory:hover{opacity:1}.wYdfba_earlierHistory[aria-disabled=true]{cursor:default}.wYdfba_earlierHistory:focus-visible{box-shadow:inset 0 0 0 1px var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary))}.wYdfba_empty{color:var(--qilin-alias-label-caption);font:var(--qilin-font-xs-13);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.wYdfba_track:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:-1px}.wYdfba_lanes{z-index:2;top:7px;bottom:7px;left:var(--trajectory-domain-left);width:var(--trajectory-domain-width);position:absolute}.wYdfba_turnBoundaries{z-index:3;top:0;bottom:0;left:var(--trajectory-domain-left);width:var(--trajectory-domain-width);pointer-events:none;position:absolute}@media (prefers-reduced-motion:no-preference){.wYdfba_lanes[data-animate-viewport=true],.wYdfba_turnBoundaries[data-animate-viewport=true]{transition:left .18s ease-out}}.wYdfba_turnBoundary{top:0;bottom:0;left:var(--trajectory-turn-left);background:var(--qilin-alias-border-l2);width:.5px;position:absolute}.wYdfba_span{top:calc(var(--trajectory-span-lane) * 14px);left:calc(var(--trajectory-span-left) + var(--trajectory-span-gap));width:max(2px, calc(var(--trajectory-span-width) - var(--trajectory-span-gap) - var(--trajectory-span-gap)));background:var(--qilin-alias-label-secondary);opacity:.78;border-radius:1px;min-width:2px;height:8px;position:absolute}.wYdfba_span[data-timeline-span=user]{background:var(--qilin-alias-state-business-primary)}.wYdfba_span[data-timeline-span=context]{background:color-mix(in srgb, var(--qilin-alias-state-success-primary) 68%, var(--qilin-alias-label-secondary))}.wYdfba_span[data-timeline-span=message]{--trajectory-assistant-decoding-color:color-mix(in srgb, var(--qilin-alias-brand-primary-new-colorprimary-new-color) 60%, var(--qilin-alias-state-error-secondary));--trajectory-assistant-ttft-color:color-mix(in srgb, var(--trajectory-assistant-decoding-color) 54%, var(--qilin-alias-bg-layer-2));background:var(--trajectory-assistant-decoding-color);opacity:1}.wYdfba_span[data-timeline-span=message][data-assistant-timing=true]{background:linear-gradient(to right, var(--trajectory-assistant-ttft-color) 0, var(--trajectory-assistant-ttft-color) var(--trajectory-assistant-ttft), var(--trajectory-assistant-decoding-color) var(--trajectory-assistant-ttft), var(--trajectory-assistant-decoding-color) 100%)}.wYdfba_span[data-timeline-span=tool],.wYdfba_span[data-timeline-span=subtool]{background:var(--qilin-alias-state-warn-label);opacity:1}.wYdfba_span[data-error=true]{background:var(--qilin-alias-state-error-primary)}.wYdfba_span[data-equal-duration=true]{width:8px;min-width:8px}.wYdfba_span[data-selected=false]{opacity:.2}.wYdfba_span[data-hovered=true]:not([data-current=true]){z-index:1;opacity:1;box-shadow:0 0 0 1px var(--qilin-alias-bg-layer-2), 0 0 0 2px color-mix(in srgb, var(--qilin-alias-state-business-primary) 80%, transparent)}.wYdfba_span[data-current=true]{z-index:1;opacity:1;box-shadow:0 0 0 1px var(--qilin-alias-bg-layer-2), 0 0 0 2px var(--qilin-alias-state-business-primary)}.wYdfba_span[data-search-match=false]{opacity:.14}.wYdfba_selection{z-index:1;top:0;bottom:0;left:var(--trajectory-selection-left);width:var(--trajectory-selection-width);background:color-mix(in srgb, var(--qilin-alias-state-business-primary) 12%, transparent);min-width:1px;box-shadow:-100vw 0 0 100vw color-mix(in srgb, var(--qilin-alias-bg-layer-1) 58%, transparent), 100vw 0 0 100vw color-mix(in srgb, var(--qilin-alias-bg-layer-1) 58%, transparent);pointer-events:none;position:absolute}.wYdfba_selectionEdges{z-index:4;top:0;bottom:0;left:var(--trajectory-selection-left);width:var(--trajectory-selection-width);pointer-events:none;min-width:1px;position:absolute}.wYdfba_hoverLine{z-index:4;top:0;bottom:0;left:clamp(0px, calc(var(--trajectory-hover-left) - 1px), calc(100% - 2px));background:var(--qilin-alias-state-business-primary);pointer-events:none;width:2px;position:absolute}.wYdfba_selectionEdges:before,.wYdfba_selectionEdges:after{background:var(--qilin-alias-state-business-primary);content:\"\";width:3px;position:absolute;top:0;bottom:0}.wYdfba_selectionEdges:before{left:0}.wYdfba_selectionEdges:after{right:0}.wYdfba_selectionEdges[data-dragging=true]:before,.wYdfba_selectionEdges[data-dragging=true]:after{width:2px}.wYdfba_selection[data-dragging=true]{background:color-mix(in srgb, var(--qilin-alias-state-business-primary) 18%, transparent)}";
7733
+ const css$2 = ".wYdfba_root{z-index:1;isolation:isolate;border-bottom:1px solid var(--qilin-alias-border-l2);user-select:none;flex:none;position:relative}.wYdfba_root [role=tooltip]{font:var(--qilin-font-xxxs-11)}.wYdfba_plot{background:var(--qilin-alias-bg-layer-2);grid-template-columns:44px minmax(0,1fr);height:50px;display:grid;overflow:hidden}.wYdfba_labels{border-right:1px solid var(--qilin-alias-border-l1);color:var(--qilin-alias-label-caption);font:var(--qilin-font-xs-13);font-size:10px;line-height:1;position:relative}.wYdfba_labels span{text-align:right;justify-content:flex-end;align-items:center;height:8px;display:flex;position:absolute;right:3px}.wYdfba_labels span:first-child{top:7px}.wYdfba_labels span:nth-child(2){top:21px}.wYdfba_labels span:nth-child(3){top:35px}.wYdfba_track{cursor:crosshair;touch-action:none;position:relative;overflow:hidden}.wYdfba_track[data-panning=true]{cursor:grabbing}.wYdfba_earlierHistory{z-index:5;appearance:none;box-sizing:border-box;background:linear-gradient(to right, var(--qilin-alias-bg-layer-2) 0, var(--qilin-alias-bg-layer-2) 38%, transparent 100%);width:28px;color:var(--qilin-alias-label-secondary);font:var(--qilin-font-xs-13);opacity:.72;cursor:pointer;border:0;outline:none;justify-content:flex-start;align-items:center;padding-left:3px;line-height:1;display:flex;position:absolute;top:0;bottom:0;left:0}.wYdfba_earlierHistory:hover{opacity:1}.wYdfba_earlierHistory[aria-disabled=true]{cursor:default}.wYdfba_earlierHistory:focus-visible{box-shadow:inset 0 0 0 1px var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary))}.wYdfba_empty{color:var(--qilin-alias-label-caption);font:var(--qilin-font-xs-13);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.wYdfba_track:focus-visible{outline:1px solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:-1px}.wYdfba_lanes{z-index:2;top:7px;bottom:7px;left:var(--trajectory-domain-left);width:var(--trajectory-domain-width);position:absolute}.wYdfba_turnBoundaries{z-index:3;top:0;bottom:0;left:var(--trajectory-domain-left);width:var(--trajectory-domain-width);pointer-events:none;position:absolute}@media (prefers-reduced-motion:no-preference){.wYdfba_lanes[data-animate-viewport=true],.wYdfba_turnBoundaries[data-animate-viewport=true]{transition:left .18s ease-out}}.wYdfba_turnBoundary{top:0;bottom:0;left:var(--trajectory-turn-left);background:var(--qilin-alias-border-l2);width:1px;position:absolute}.wYdfba_span{top:calc(var(--trajectory-span-lane) * 14px);left:calc(var(--trajectory-span-left) + var(--trajectory-span-gap));width:max(2px, calc(var(--trajectory-span-width) - var(--trajectory-span-gap) - var(--trajectory-span-gap)));background:var(--qilin-alias-label-secondary);opacity:.78;border-radius:1px;min-width:2px;height:8px;position:absolute}.wYdfba_span[data-timeline-span=user]{background:var(--qilin-alias-state-business-primary)}.wYdfba_span[data-timeline-span=context]{background:color-mix(in srgb, var(--qilin-alias-state-success-primary) 68%, var(--qilin-alias-label-secondary))}.wYdfba_span[data-timeline-span=message]{--trajectory-assistant-decoding-color:color-mix(in srgb, var(--qilin-alias-brand-primary-new-colorprimary-new-color) 60%, var(--qilin-alias-state-error-secondary));--trajectory-assistant-ttft-color:color-mix(in srgb, var(--trajectory-assistant-decoding-color) 54%, var(--qilin-alias-bg-layer-2));background:var(--trajectory-assistant-decoding-color);opacity:1}.wYdfba_span[data-timeline-span=message][data-assistant-timing=true]{background:linear-gradient(to right, var(--trajectory-assistant-ttft-color) 0, var(--trajectory-assistant-ttft-color) var(--trajectory-assistant-ttft), var(--trajectory-assistant-decoding-color) var(--trajectory-assistant-ttft), var(--trajectory-assistant-decoding-color) 100%)}.wYdfba_span[data-timeline-span=tool],.wYdfba_span[data-timeline-span=subtool]{background:var(--qilin-alias-state-warn-label);opacity:1}.wYdfba_span[data-error=true]{background:var(--qilin-alias-state-error-primary)}.wYdfba_span[data-equal-duration=true]{width:8px;min-width:8px}.wYdfba_span[data-selected=false]{opacity:.2}.wYdfba_span[data-hovered=true]:not([data-current=true]){z-index:1;opacity:1;box-shadow:0 0 0 1px var(--qilin-alias-bg-layer-2), 0 0 0 2px color-mix(in srgb, var(--qilin-alias-state-business-primary) 80%, transparent)}.wYdfba_span[data-current=true]{z-index:1;opacity:1;box-shadow:0 0 0 1px var(--qilin-alias-bg-layer-2), 0 0 0 2px var(--qilin-alias-state-business-primary)}.wYdfba_span[data-search-match=false]{opacity:.14}.wYdfba_selection{z-index:1;top:0;bottom:0;left:var(--trajectory-selection-left);width:var(--trajectory-selection-width);background:color-mix(in srgb, var(--qilin-alias-state-business-primary) 12%, transparent);min-width:1px;box-shadow:-100vw 0 0 100vw color-mix(in srgb, var(--qilin-alias-bg-layer-1) 58%, transparent), 100vw 0 0 100vw color-mix(in srgb, var(--qilin-alias-bg-layer-1) 58%, transparent);pointer-events:none;position:absolute}.wYdfba_selectionEdges{z-index:4;top:0;bottom:0;left:var(--trajectory-selection-left);width:var(--trajectory-selection-width);pointer-events:none;min-width:1px;position:absolute}.wYdfba_hoverLine{z-index:4;top:0;bottom:0;left:clamp(0px, calc(var(--trajectory-hover-left) - 1px), calc(100% - 2px));background:var(--qilin-alias-state-business-primary);pointer-events:none;width:2px;position:absolute}.wYdfba_selectionEdges:before,.wYdfba_selectionEdges:after{background:var(--qilin-alias-state-business-primary);content:\"\";width:3px;position:absolute;top:0;bottom:0}.wYdfba_selectionEdges:before{left:0}.wYdfba_selectionEdges:after{right:0}.wYdfba_selectionEdges[data-dragging=true]:before,.wYdfba_selectionEdges[data-dragging=true]:after{width:2px}.wYdfba_selection[data-dragging=true]{background:color-mix(in srgb, var(--qilin-alias-state-business-primary) 18%, transparent)}";
7681
7734
  const tagId$2 = "@qilin-agent/client-ui-trajectory/TrajectoryTimeline.module.css";
7682
7735
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
7683
7736
  const tag = document.createElement("style");
@@ -8961,11 +9014,11 @@ window.__ModuleLoader__.load({
8961
9014
  };
8962
9015
  }
8963
9016
  function summarizeResult(node, t) {
8964
- if (node.isError) return { result: node.error?.code ?? "error" };
8965
9017
  for (const block of node.content) if (block.type === "text" && typeof block.text === "string" && block.text !== "") return {
8966
9018
  result: "",
8967
9019
  resultPreviewMarkdown: block.text
8968
9020
  };
9021
+ if (node.isError) return { result: node.error?.code ?? "error" };
8969
9022
  const images = imageBlockCount(node.content);
8970
9023
  if (images > 0) return { result: t("layout.imageCount", { count: images }) };
8971
9024
  return { result: t("record.noOutput") };
@@ -8977,9 +9030,9 @@ window.__ModuleLoader__.load({
8977
9030
  };
8978
9031
  }
8979
9032
  function detailResult(node, t) {
8980
- if (node.isError) return node.error === void 0 ? "error" : `${node.error.name}: ${node.error.code}`;
8981
9033
  const text = node.content.filter((block) => block.type === "text" && typeof block.text === "string").map((block) => block.type === "text" ? block.text : "").join("\n");
8982
- if (text !== "") return text;
9034
+ if (text !== "" && (!node.isError || node.content.some((block) => block.type === "text" && typeof block.text === "string" && block.text !== ""))) return text;
9035
+ if (node.isError) return node.error === void 0 ? "error" : `${node.error.name}: ${node.error.code}`;
8983
9036
  const images = imageBlockCount(node.content);
8984
9037
  if (images > 0) return t("layout.imageCount", { count: images });
8985
9038
  if (node.content.length === 0 || node.content.every((block) => block.type === "text" && (typeof block.text !== "string" || block.text === ""))) return t("record.noOutput");
@@ -9187,6 +9240,7 @@ window.__ModuleLoader__.load({
9187
9240
  loadImage
9188
9241
  }), [loadImage, renderSlot]);
9189
9242
  const [collapsedAssistants, setCollapsedAssistants] = (0, react.useState)(EMPTY_RECORD_IDS);
9243
+ const [collapsedTools, setCollapsedTools] = (0, react.useState)(EMPTY_RECORD_IDS);
9190
9244
  const [timelineSelection, setTimelineSelection] = (0, react.useState)(null);
9191
9245
  const actualDuration = useDuration((value) => value);
9192
9246
  const [actualTime, setActualTime] = (0, react.useState)(false);
@@ -9446,6 +9500,8 @@ window.__ModuleLoader__.load({
9446
9500
  return ids;
9447
9501
  }, [timelineTurns]);
9448
9502
  const allAssistantsCollapsed = collapsibleAssistantIds.length > 0 && collapsibleAssistantIds.every((index) => collapsedAssistants.has(index));
9503
+ const collapsibleToolIds = (0, react.useMemo)(() => timelineTurns.flatMap((turn) => turn.groups.flatMap((group) => group.cells.flatMap((cell, index) => cell.kind === "tool" && group.cells[index + 1]?.kind === "subtool" ? [trajectoryRecordId(cell)] : []))), [timelineTurns]);
9504
+ const allSubCallsCollapsed = collapsibleToolIds.length > 0 && collapsibleToolIds.every((id) => collapsedTools.has(id));
9449
9505
  const toggleTurn = (turn) => {
9450
9506
  setCollapsedTurns((current) => {
9451
9507
  const collapsed = new Set(current);
@@ -9478,6 +9534,22 @@ window.__ModuleLoader__.load({
9478
9534
  return collapsed;
9479
9535
  });
9480
9536
  };
9537
+ const toggleTool = (id) => {
9538
+ setCollapsedTools((current) => {
9539
+ const collapsed = new Set(current);
9540
+ if (collapsed.has(id)) collapsed.delete(id);
9541
+ else collapsed.add(id);
9542
+ return collapsed;
9543
+ });
9544
+ };
9545
+ const toggleAllSubCalls = () => {
9546
+ setCollapsedTools((current) => {
9547
+ const collapsed = new Set(current);
9548
+ if (allSubCallsCollapsed) for (const id of collapsibleToolIds) collapsed.delete(id);
9549
+ else for (const id of collapsibleToolIds) collapsed.add(id);
9550
+ return collapsed;
9551
+ });
9552
+ };
9481
9553
  const loadEarlierHistory = (0, react.useCallback)(async () => {
9482
9554
  if (!hasResidentOlderHistory && !await loadOlder()) return false;
9483
9555
  setHistoryNodeLimit((limit) => limit + HISTORY_PAGE_NODES);
@@ -9501,6 +9573,8 @@ window.__ModuleLoader__.load({
9501
9573
  onToggleAllTurns: toggleAllTurns,
9502
9574
  allAssistantsCollapsed,
9503
9575
  onToggleAllAssistants: toggleAllAssistants,
9576
+ allSubCallsCollapsed,
9577
+ onToggleAllSubCalls: toggleAllSubCalls,
9504
9578
  searchQuery,
9505
9579
  onSearchQueryChange: setSearchQuery,
9506
9580
  t
@@ -9548,6 +9622,8 @@ window.__ModuleLoader__.load({
9548
9622
  onToggleTurn: toggleTurn,
9549
9623
  collapsedAssistants,
9550
9624
  onToggleAssistant: toggleAssistant,
9625
+ collapsedTools,
9626
+ onToggleTool: toggleTool,
9551
9627
  inspectCallId,
9552
9628
  onInspectApplied: completeViewRequest
9553
9629
  })
@@ -10619,7 +10695,7 @@ window.__ModuleLoader__.load({
10619
10695
  }
10620
10696
  //#endregion
10621
10697
  //#region \0qilin-css:/home/runner/work/QiLin/QiLin/packages/client/ui-trajectory/src/client/TrajectoryGraphView.module.css.mjs
10622
- const css = ".PKVdPa_root{box-sizing:border-box;width:100%;height:100%;min-height:0;color:var(--qilin-alias-label-primary);background:var(--qilin-alias-bg-layer-1);--qilin-scrollbar-thumb:var(--qilin-alias-scrollbar-bg-l2);--qilin-scrollbar-thumb-hover:var(--qilin-alias-scrollbar-hover-l2);flex-direction:column;display:flex;overflow:hidden}.PKVdPa_toolbar{border-bottom:.5px solid var(--qilin-alias-border-l2);flex:none;align-items:center;gap:4px;height:32px;padding:0 8px;display:flex}.PKVdPa_tool{width:22px;height:22px;color:var(--qilin-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex}.PKVdPa_tool:hover{background:var(--qilin-alias-interactive-bg-hover);color:var(--qilin-alias-label-primary)}.PKVdPa_tool[aria-pressed=true]{background:var(--qilin-alias-interactive-bg-active);color:var(--qilin-alias-brand-primary)}.PKVdPa_spacer{flex:1}.PKVdPa_stat{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary);white-space:nowrap;line-height:1}.PKVdPa_legend{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary);flex:none;align-items:center;gap:12px;padding:4px 10px;display:flex}.PKVdPa_legendChips{flex-wrap:wrap;flex:auto;align-items:center;gap:4px 12px;min-width:0;display:flex}.PKVdPa_legendItem{white-space:nowrap;flex:none;align-items:center;gap:4px;display:inline-flex}.PKVdPa_legendDot{background:var(--graph-lane);border-radius:2px;width:8px;height:8px}.PKVdPa_laneInput{--graph-lane:var(--qilin-alias-label-tertiary)}.PKVdPa_laneModel{--graph-lane:var(--qilin-alias-brand-primary)}.PKVdPa_laneTool{--graph-lane:var(--qilin-alias-state-business-primary)}.PKVdPa_canvas{background-image:radial-gradient(var(--qilin-alias-border-l2) 1px, transparent 0);background-size:18px 18px;flex:1;min-height:0;position:relative;overflow:auto}.PKVdPa_svg{margin-inline:auto;display:block}.PKVdPa_band{fill:color-mix(in srgb, var(--qilin-alias-bg-layer-2) 55%, transparent)}.PKVdPa_bandLabel{fill:var(--qilin-alias-label-secondary);letter-spacing:.2px;font-size:10px;font-weight:500}.PKVdPa_laneRail{stroke:var(--qilin-alias-border-l2);stroke-dasharray:.5 6;stroke-linecap:round}.PKVdPa_edge{fill:none;stroke:var(--qilin-alias-border-l3);stroke-width:1.4px;stroke-linecap:round;opacity:.9}.PKVdPa_edgeArrowBody{fill:var(--qilin-alias-border-l3)}.PKVdPa_edgeArrowBody[data-kind=prompt]{fill:var(--qilin-alias-label-tertiary)}.PKVdPa_edgeArrowBody[data-kind=result]{fill:var(--qilin-alias-brand-primary)}.PKVdPa_edgeArrowBody[data-kind=dispatch]{fill:var(--qilin-alias-state-business-primary)}.PKVdPa_edgeArrowBody[data-kind=subcall]{fill:var(--qilin-alias-label-secondary)}.PKVdPa_edgeArrowBody[data-kind=loop]{fill:var(--qilin-alias-state-warn-primary)}.PKVdPa_edgePrompt{stroke:var(--qilin-alias-label-tertiary)}.PKVdPa_edgeResult{stroke:var(--qilin-alias-brand-primary)}.PKVdPa_edgeDispatch{stroke:var(--qilin-alias-state-business-primary)}.PKVdPa_edgeSubcall{stroke:var(--qilin-alias-label-secondary);stroke-dasharray:3 3}.PKVdPa_edgeLoop{stroke:var(--qilin-alias-state-warn-primary)}.PKVdPa_edgeLive{stroke:var(--qilin-alias-state-success-primary);stroke-dasharray:5 4;animation:.9s linear infinite PKVdPa_qilin-trajectory-graph-flow}.PKVdPa_edgeSelected{stroke-width:2.2px}.PKVdPa_node{cursor:pointer}.PKVdPa_node[data-kind=system],.PKVdPa_node[data-kind=compaction]{--node-accent:var(--qilin-alias-label-tertiary)}.PKVdPa_node[data-kind=user]{--node-accent:var(--qilin-alias-brand-primary)}.PKVdPa_node[data-kind=steering],.PKVdPa_node[data-kind=compact-request],.PKVdPa_node[data-kind=running-call],.PKVdPa_node[data-kind=retry]{--node-accent:var(--qilin-alias-state-warn-primary)}.PKVdPa_node[data-kind=context]{--node-accent:var(--qilin-alias-label-secondary)}.PKVdPa_node[data-kind=command],.PKVdPa_node[data-kind=assistant]{--node-accent:var(--qilin-alias-state-business-primary)}.PKVdPa_node[data-kind=request],.PKVdPa_node[data-kind=partial]{--node-accent:var(--qilin-alias-state-success-primary)}.PKVdPa_node[data-kind=tool]{--node-accent:var(--qilin-alias-link)}.PKVdPa_node[data-kind=error],.PKVdPa_node[data-kind=max-tokens]{--node-accent:var(--qilin-alias-state-error-primary)}.PKVdPa_node[data-kind=unknown]{--node-accent:var(--qilin-alias-label-dimmed)}.PKVdPa_nodeRect{fill:var(--qilin-alias-bg-layer-2);stroke:var(--qilin-alias-border-l3);stroke-width:1px;transition:stroke .12s var(--ds-ease-in-out)}.PKVdPa_nodeAccent{fill:var(--node-accent)}.PKVdPa_nodeLabel{fill:var(--qilin-alias-label-primary);font-size:11px;font-weight:500}.PKVdPa_nodeBadge{fill:var(--qilin-alias-label-tertiary);font-size:9px}.PKVdPa_nodeLive .PKVdPa_nodeRect{animation:1.4s ease-in-out infinite PKVdPa_qilin-trajectory-graph-pulse}.PKVdPa_nodeHot .PKVdPa_nodeRect{stroke:var(--qilin-alias-brand-primary);stroke-width:1.6px}.PKVdPa_nodeDim{opacity:.28}.PKVdPa_nodeCountImg{fill:var(--qilin-alias-state-warn-primary)}.PKVdPa_nodeCountFile{fill:var(--qilin-alias-label-tertiary)}.PKVdPa_nodeCountText{fill:var(--qilin-alias-bg-layer-1);font-size:7.5px;font-weight:600}.PKVdPa_packetHot{fill:var(--qilin-alias-brand-primary)}.PKVdPa_liveDot{corner-shape:round;background:var(--qilin-alias-state-success-primary);border-radius:50%;flex:none;width:6px;height:6px;animation:1.4s ease-in-out infinite PKVdPa_qilin-trajectory-graph-pulse}.PKVdPa_paused .PKVdPa_edgeLive,.PKVdPa_paused .PKVdPa_nodeLive .PKVdPa_nodeRect,.PKVdPa_paused .PKVdPa_liveDot{animation-play-state:paused}@keyframes PKVdPa_qilin-trajectory-graph-flow{0%{stroke-dashoffset:18px}to{stroke-dashoffset:0}}@keyframes PKVdPa_qilin-trajectory-graph-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.PKVdPa_edgeLive,.PKVdPa_nodeLive .PKVdPa_nodeRect,.PKVdPa_liveDot{animation:none}}.PKVdPa_note{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary);flex:none;padding:4px 10px}.PKVdPa_empty{font-size:var(--qilin-font-xs-13-font-size);color:var(--qilin-alias-label-tertiary);flex:1;justify-content:center;align-items:center;display:flex}.PKVdPa_inspector{border-top:.5px solid var(--qilin-alias-border-l2);background:var(--qilin-alias-bg-layer-2);flex:none;max-height:40%;padding:8px 10px;overflow:auto}.PKVdPa_inspectorHead{align-items:center;gap:6px;display:flex}.PKVdPa_inspectorKind{font-size:var(--qilin-font-xxs-strong-12-font-size);color:var(--qilin-alias-label-primary)}.PKVdPa_inspectorLane{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary)}.PKVdPa_inspectorStatus{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary)}.PKVdPa_inspectorStatus[data-status=error]{color:var(--qilin-alias-state-error-primary)}.PKVdPa_inspectorStatus[data-status=running]{color:var(--qilin-alias-state-success-primary)}.PKVdPa_inspectorMeta{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary);margin-top:4px}.PKVdPa_inspectorSection{margin-top:6px}.PKVdPa_inspectorLabel{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary);display:block}.PKVdPa_inspectorBody{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary);white-space:pre-wrap;word-break:break-word;margin:2px 0 0}.PKVdPa_glyph{font-size:13px;line-height:1}.PKVdPa_tool:disabled{opacity:.4;cursor:default}.PKVdPa_canvasDragging{cursor:grabbing;user-select:none}.PKVdPa_edgeHit{fill:none;stroke:#0000;stroke-width:9px;pointer-events:stroke;cursor:pointer}.PKVdPa_edgeDim{opacity:.2}.PKVdPa_edgeHot{stroke-width:2.2px}.PKVdPa_edgeKindHot{stroke-width:2.2px;opacity:1}.PKVdPa_legendEdge{font:inherit;color:var(--qilin-alias-label-secondary);white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:none;align-items:center;gap:4px;padding:0;display:inline-flex}.PKVdPa_legendEdge:hover{color:var(--qilin-alias-label-primary)}.PKVdPa_legendEdge[aria-pressed=true]{color:var(--qilin-alias-label-primary);text-underline-offset:2px;text-decoration:underline}.PKVdPa_legendEdgeDot{background:var(--qilin-alias-border-l3);border-radius:1px;width:10px;height:2.5px}.PKVdPa_legendEdgeDot[data-kind=prompt]{background:var(--qilin-alias-label-tertiary)}.PKVdPa_legendEdgeDot[data-kind=result]{background:var(--qilin-alias-brand-primary)}.PKVdPa_legendEdgeDot[data-kind=dispatch]{background:var(--qilin-alias-state-business-primary)}.PKVdPa_legendEdgeDot[data-kind=subcall]{background:repeating-linear-gradient(90deg, var(--qilin-alias-label-secondary) 0 2px, transparent 2px 4px)}.PKVdPa_legendEdgeDot[data-kind=loop]{background:var(--qilin-alias-state-warn-primary)}.PKVdPa_legendEdgeHint{color:var(--qilin-alias-label-dimmed)}.PKVdPa_search{border:.5px solid var(--qilin-alias-border-l4);min-width:76px;height:22px;color:var(--qilin-alias-label-primary);background:var(--qilin-alias-bg-layer-2);font:var(--qilin-font-xxxs-11);border-radius:4px;flex:0 150px;padding:0 6px}.PKVdPa_search::placeholder{color:var(--qilin-alias-label-caption)}.PKVdPa_search:focus{border-color:var(--qilin-alias-state-business-primary);background:var(--qilin-alias-bg-layer-1);outline:none}.PKVdPa_searchCount{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary);white-space:nowrap;flex:none}.PKVdPa_searchNone{color:var(--qilin-alias-state-error-primary)}.PKVdPa_attachments{margin-top:6px}.PKVdPa_attachment{align-items:center;gap:6px;margin-top:4px;display:flex}.PKVdPa_attachmentIcon{width:26px;height:26px;color:var(--qilin-alias-label-tertiary);background:var(--qilin-alias-bg-layer-3);border-radius:4px;flex:none;justify-content:center;align-items:center;display:inline-flex}.PKVdPa_attachmentThumb{background:var(--qilin-alias-bg-layer-3);cursor:zoom-in;border:0;border-radius:4px;flex:none;width:26px;height:26px;padding:0}.PKVdPa_attachmentThumb img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.PKVdPa_attachmentText{flex-direction:column;min-width:0;display:flex}.PKVdPa_attachmentName{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.PKVdPa_attachmentMeta{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.PKVdPa_inspectorMarkdown{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary);margin-top:6px}.PKVdPa_toolBody{margin-top:6px}.PKVdPa_toolHead{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.PKVdPa_toolName{font-size:var(--qilin-font-xxs-strong-12-font-size);color:var(--qilin-alias-label-primary)}.PKVdPa_toolCallId{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary);word-break:break-all}.PKVdPa_toolError{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-state-error-primary)}.PKVdPa_toolPending{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-state-warn-primary)}.PKVdPa_toolArgs{margin-top:4px}.PKVdPa_toolArgs summary{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary);cursor:pointer}.PKVdPa_toolResult{margin-top:4px}.PKVdPa_toolResultLabel{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary)}.PKVdPa_toolResult .PKVdPa_inspectorBody[data-error=true]{color:var(--qilin-alias-state-error-primary)}";
10698
+ const css = ".PKVdPa_root{box-sizing:border-box;width:100%;height:100%;min-height:0;color:var(--qilin-alias-label-primary);background:var(--qilin-alias-bg-layer-1);--qilin-scrollbar-thumb:var(--qilin-alias-scrollbar-bg-l2);--qilin-scrollbar-thumb-hover:var(--qilin-alias-scrollbar-hover-l2);flex-direction:column;display:flex;overflow:hidden}.PKVdPa_toolbar{border-bottom:1px solid var(--qilin-alias-border-l2);flex:none;align-items:center;gap:4px;height:32px;padding:0 8px;display:flex}.PKVdPa_tool{width:22px;height:22px;color:var(--qilin-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex}.PKVdPa_tool:hover{background:var(--qilin-alias-interactive-bg-hover);color:var(--qilin-alias-label-primary)}.PKVdPa_tool[aria-pressed=true]{background:var(--qilin-alias-interactive-bg-active);color:var(--qilin-alias-brand-primary)}.PKVdPa_spacer{flex:1}.PKVdPa_stat{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary);white-space:nowrap;line-height:1}.PKVdPa_legend{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary);flex:none;align-items:center;gap:12px;padding:4px 10px;display:flex}.PKVdPa_legendChips{flex-wrap:wrap;flex:auto;align-items:center;gap:4px 12px;min-width:0;display:flex}.PKVdPa_legendItem{white-space:nowrap;flex:none;align-items:center;gap:4px;display:inline-flex}.PKVdPa_legendDot{background:var(--graph-lane);border-radius:2px;width:8px;height:8px}.PKVdPa_laneInput{--graph-lane:var(--qilin-alias-label-tertiary)}.PKVdPa_laneModel{--graph-lane:var(--qilin-alias-brand-primary)}.PKVdPa_laneTool{--graph-lane:var(--qilin-alias-state-business-primary)}.PKVdPa_canvas{background-image:radial-gradient(var(--qilin-alias-border-l2) 1px, transparent 0);background-size:18px 18px;flex:1;min-height:0;position:relative;overflow:auto}.PKVdPa_svg{margin-inline:auto;display:block}.PKVdPa_band{fill:color-mix(in srgb, var(--qilin-alias-bg-layer-2) 55%, transparent)}.PKVdPa_bandLabel{fill:var(--qilin-alias-label-secondary);letter-spacing:.2px;font-size:10px;font-weight:500}.PKVdPa_laneRail{stroke:var(--qilin-alias-border-l2);stroke-dasharray:.5 6;stroke-linecap:round}.PKVdPa_edge{fill:none;stroke:var(--qilin-alias-border-l3);stroke-width:1.4px;stroke-linecap:round;opacity:.9}.PKVdPa_edgeArrowBody{fill:var(--qilin-alias-border-l3)}.PKVdPa_edgeArrowBody[data-kind=prompt]{fill:var(--qilin-alias-label-tertiary)}.PKVdPa_edgeArrowBody[data-kind=result]{fill:var(--qilin-alias-brand-primary)}.PKVdPa_edgeArrowBody[data-kind=dispatch]{fill:var(--qilin-alias-state-business-primary)}.PKVdPa_edgeArrowBody[data-kind=subcall]{fill:var(--qilin-alias-label-secondary)}.PKVdPa_edgeArrowBody[data-kind=loop]{fill:var(--qilin-alias-state-warn-primary)}.PKVdPa_edgePrompt{stroke:var(--qilin-alias-label-tertiary)}.PKVdPa_edgeResult{stroke:var(--qilin-alias-brand-primary)}.PKVdPa_edgeDispatch{stroke:var(--qilin-alias-state-business-primary)}.PKVdPa_edgeSubcall{stroke:var(--qilin-alias-label-secondary);stroke-dasharray:3 3}.PKVdPa_edgeLoop{stroke:var(--qilin-alias-state-warn-primary)}.PKVdPa_edgeLive{stroke:var(--qilin-alias-state-success-primary);stroke-dasharray:5 4;animation:.9s linear infinite PKVdPa_qilin-trajectory-graph-flow}.PKVdPa_edgeSelected{stroke-width:2.2px}.PKVdPa_node{cursor:pointer}.PKVdPa_node[data-kind=system],.PKVdPa_node[data-kind=compaction]{--node-accent:var(--qilin-alias-label-tertiary)}.PKVdPa_node[data-kind=user]{--node-accent:var(--qilin-alias-brand-primary)}.PKVdPa_node[data-kind=steering],.PKVdPa_node[data-kind=compact-request],.PKVdPa_node[data-kind=running-call],.PKVdPa_node[data-kind=retry]{--node-accent:var(--qilin-alias-state-warn-primary)}.PKVdPa_node[data-kind=context]{--node-accent:var(--qilin-alias-label-secondary)}.PKVdPa_node[data-kind=command],.PKVdPa_node[data-kind=assistant]{--node-accent:var(--qilin-alias-state-business-primary)}.PKVdPa_node[data-kind=request],.PKVdPa_node[data-kind=partial]{--node-accent:var(--qilin-alias-state-success-primary)}.PKVdPa_node[data-kind=tool]{--node-accent:var(--qilin-alias-link)}.PKVdPa_node[data-kind=error],.PKVdPa_node[data-kind=max-tokens]{--node-accent:var(--qilin-alias-state-error-primary)}.PKVdPa_node[data-kind=unknown]{--node-accent:var(--qilin-alias-label-dimmed)}.PKVdPa_nodeRect{fill:var(--qilin-alias-bg-layer-2);stroke:var(--qilin-alias-border-l3);stroke-width:1px;transition:stroke .12s var(--ds-ease-in-out)}.PKVdPa_nodeAccent{fill:var(--node-accent)}.PKVdPa_nodeLabel{fill:var(--qilin-alias-label-primary);font-size:11px;font-weight:500}.PKVdPa_nodeBadge{fill:var(--qilin-alias-label-tertiary);font-size:9px}.PKVdPa_nodeLive .PKVdPa_nodeRect{animation:1.4s ease-in-out infinite PKVdPa_qilin-trajectory-graph-pulse}.PKVdPa_nodeHot .PKVdPa_nodeRect{stroke:var(--qilin-alias-brand-primary);stroke-width:1.6px}.PKVdPa_nodeDim{opacity:.28}.PKVdPa_nodeCountImg{fill:var(--qilin-alias-state-warn-primary)}.PKVdPa_nodeCountFile{fill:var(--qilin-alias-label-tertiary)}.PKVdPa_nodeCountText{fill:var(--qilin-alias-bg-layer-1);font-size:7.5px;font-weight:600}.PKVdPa_packetHot{fill:var(--qilin-alias-brand-primary)}.PKVdPa_liveDot{corner-shape:round;background:var(--qilin-alias-state-success-primary);border-radius:50%;flex:none;width:6px;height:6px;animation:1.4s ease-in-out infinite PKVdPa_qilin-trajectory-graph-pulse}.PKVdPa_paused .PKVdPa_edgeLive,.PKVdPa_paused .PKVdPa_nodeLive .PKVdPa_nodeRect,.PKVdPa_paused .PKVdPa_liveDot{animation-play-state:paused}@keyframes PKVdPa_qilin-trajectory-graph-flow{0%{stroke-dashoffset:18px}to{stroke-dashoffset:0}}@keyframes PKVdPa_qilin-trajectory-graph-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.PKVdPa_edgeLive,.PKVdPa_nodeLive .PKVdPa_nodeRect,.PKVdPa_liveDot{animation:none}}.PKVdPa_note{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary);flex:none;padding:4px 10px}.PKVdPa_empty{font-size:var(--qilin-font-xs-13-font-size);color:var(--qilin-alias-label-tertiary);flex:1;justify-content:center;align-items:center;display:flex}.PKVdPa_inspector{border-top:1px solid var(--qilin-alias-border-l2);background:var(--qilin-alias-bg-layer-2);flex:none;max-height:40%;padding:8px 10px;overflow:auto}.PKVdPa_inspectorHead{align-items:center;gap:6px;display:flex}.PKVdPa_inspectorKind{font-size:var(--qilin-font-xxs-strong-12-font-size);color:var(--qilin-alias-label-primary)}.PKVdPa_inspectorLane{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary)}.PKVdPa_inspectorStatus{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary)}.PKVdPa_inspectorStatus[data-status=error]{color:var(--qilin-alias-state-error-primary)}.PKVdPa_inspectorStatus[data-status=running]{color:var(--qilin-alias-state-success-primary)}.PKVdPa_inspectorMeta{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary);margin-top:4px}.PKVdPa_inspectorSection{margin-top:6px}.PKVdPa_inspectorLabel{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary);display:block}.PKVdPa_inspectorBody{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary);white-space:pre-wrap;word-break:break-word;margin:2px 0 0}.PKVdPa_glyph{font-size:13px;line-height:1}.PKVdPa_tool:disabled{opacity:.4;cursor:default}.PKVdPa_canvasDragging{cursor:grabbing;user-select:none}.PKVdPa_edgeHit{fill:none;stroke:#0000;stroke-width:9px;pointer-events:stroke;cursor:pointer}.PKVdPa_edgeDim{opacity:.2}.PKVdPa_edgeHot{stroke-width:2.2px}.PKVdPa_edgeKindHot{stroke-width:2.2px;opacity:1}.PKVdPa_legendEdge{font:inherit;color:var(--qilin-alias-label-secondary);white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:none;align-items:center;gap:4px;padding:0;display:inline-flex}.PKVdPa_legendEdge:hover{color:var(--qilin-alias-label-primary)}.PKVdPa_legendEdge[aria-pressed=true]{color:var(--qilin-alias-label-primary);text-underline-offset:2px;text-decoration:underline}.PKVdPa_legendEdgeDot{background:var(--qilin-alias-border-l3);border-radius:1px;width:10px;height:2.5px}.PKVdPa_legendEdgeDot[data-kind=prompt]{background:var(--qilin-alias-label-tertiary)}.PKVdPa_legendEdgeDot[data-kind=result]{background:var(--qilin-alias-brand-primary)}.PKVdPa_legendEdgeDot[data-kind=dispatch]{background:var(--qilin-alias-state-business-primary)}.PKVdPa_legendEdgeDot[data-kind=subcall]{background:repeating-linear-gradient(90deg, var(--qilin-alias-label-secondary) 0 2px, transparent 2px 4px)}.PKVdPa_legendEdgeDot[data-kind=loop]{background:var(--qilin-alias-state-warn-primary)}.PKVdPa_legendEdgeHint{color:var(--qilin-alias-label-dimmed)}.PKVdPa_search{border:1px solid var(--qilin-alias-border-l4);min-width:76px;height:22px;color:var(--qilin-alias-label-primary);background:var(--qilin-alias-bg-layer-2);font:var(--qilin-font-xxxs-11);border-radius:4px;flex:0 150px;padding:0 6px}.PKVdPa_search::placeholder{color:var(--qilin-alias-label-caption)}.PKVdPa_search:focus{border-color:var(--qilin-alias-state-business-primary);background:var(--qilin-alias-bg-layer-1);outline:none}.PKVdPa_searchCount{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary);white-space:nowrap;flex:none}.PKVdPa_searchNone{color:var(--qilin-alias-state-error-primary)}.PKVdPa_attachments{margin-top:6px}.PKVdPa_attachment{align-items:center;gap:6px;margin-top:4px;display:flex}.PKVdPa_attachmentIcon{width:26px;height:26px;color:var(--qilin-alias-label-tertiary);background:var(--qilin-alias-bg-layer-3);border-radius:4px;flex:none;justify-content:center;align-items:center;display:inline-flex}.PKVdPa_attachmentThumb{background:var(--qilin-alias-bg-layer-3);cursor:zoom-in;border:0;border-radius:4px;flex:none;width:26px;height:26px;padding:0}.PKVdPa_attachmentThumb img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.PKVdPa_attachmentText{flex-direction:column;min-width:0;display:flex}.PKVdPa_attachmentName{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.PKVdPa_attachmentMeta{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.PKVdPa_inspectorMarkdown{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-secondary);margin-top:6px}.PKVdPa_toolBody{margin-top:6px}.PKVdPa_toolHead{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.PKVdPa_toolName{font-size:var(--qilin-font-xxs-strong-12-font-size);color:var(--qilin-alias-label-primary)}.PKVdPa_toolCallId{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary);word-break:break-all}.PKVdPa_toolError{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-state-error-primary)}.PKVdPa_toolPending{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-state-warn-primary)}.PKVdPa_toolArgs{margin-top:4px}.PKVdPa_toolArgs summary{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary);cursor:pointer}.PKVdPa_toolResult{margin-top:4px}.PKVdPa_toolResultLabel{font-size:var(--qilin-font-xxxs-11-font-size);color:var(--qilin-alias-label-tertiary)}.PKVdPa_toolResult .PKVdPa_inspectorBody[data-error=true]{color:var(--qilin-alias-state-error-primary)}";
10623
10699
  const tagId = "@qilin-agent/client-ui-trajectory/TrajectoryGraphView.module.css";
10624
10700
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
10625
10701
  const tag = document.createElement("style");
@@ -10927,6 +11003,20 @@ window.__ModuleLoader__.load({
10927
11003
  const [imageUrls, setImageUrls] = (0, react.useState)({});
10928
11004
  const urlCacheRef = (0, react.useRef)({});
10929
11005
  const [lightbox, setLightbox] = (0, react.useState)(null);
11006
+ const [imageReloadTick, setImageReloadTick] = (0, react.useState)(0);
11007
+ const reloadedImagesRef = (0, react.useRef)(/* @__PURE__ */ new Set());
11008
+ const reloadImage = (0, react.useCallback)((attachmentId) => {
11009
+ if (reloadedImagesRef.current.has(attachmentId)) return;
11010
+ reloadedImagesRef.current.add(attachmentId);
11011
+ urlCacheRef.current[attachmentId] = void 0;
11012
+ setImageUrls((current) => {
11013
+ if (current[attachmentId] === void 0) return current;
11014
+ const next = { ...current };
11015
+ next[attachmentId] = void 0;
11016
+ return next;
11017
+ });
11018
+ setImageReloadTick((tick) => tick + 1);
11019
+ }, []);
10930
11020
  const modelById = (0, react.useMemo)(() => new Map(windowed.graph.nodes.map((node) => [node.id, node])), [windowed]);
10931
11021
  const laidById = (0, react.useMemo)(() => new Map(layout.nodes.map((laid) => [laid.node.id, laid])), [layout]);
10932
11022
  const edgeById = (0, react.useMemo)(() => new Map(layout.edges.map((edge) => [edge.id, edge])), [layout]);
@@ -11087,7 +11177,11 @@ window.__ModuleLoader__.load({
11087
11177
  return () => {
11088
11178
  cancelled = true;
11089
11179
  };
11090
- }, [selected, loadImage]);
11180
+ }, [
11181
+ selected,
11182
+ loadImage,
11183
+ imageReloadTick
11184
+ ]);
11091
11185
  /** Change the scale, keeping the canvas point at the given viewport offsets fixed. */
11092
11186
  function zoomBy(factor, offsetInViewportX, offsetInViewportY) {
11093
11187
  const element = canvasRef.current;
@@ -11603,7 +11697,10 @@ window.__ModuleLoader__.load({
11603
11697
  children: (0, react_jsx_runtime.jsx)("img", {
11604
11698
  src: url,
11605
11699
  alt: presentation.name,
11606
- loading: "lazy"
11700
+ loading: "lazy",
11701
+ onError: () => {
11702
+ reloadImage(attachment.attachmentId);
11703
+ }
11607
11704
  })
11608
11705
  }) : (0, react_jsx_runtime.jsx)("span", {
11609
11706
  className: TrajectoryGraphView_module_css_default.attachmentIcon,
@@ -54,6 +54,10 @@ export interface TrajectoryTableProps {
54
54
  collapsedAssistants: ReadonlySet<string>;
55
55
  /** Toggle tool calls under one assistant record. */
56
56
  onToggleAssistant: (id: string) => void;
57
+ /** Stable tool record ids whose nested calls are folded. */
58
+ collapsedTools: ReadonlySet<string>;
59
+ /** Toggle nested calls under one tool record. */
60
+ onToggleTool: (id: string) => void;
57
61
  /** One-shot cross-view inspect: open and scroll to this call's record. */
58
62
  inspectCallId?: string | null;
59
63
  /** Acknowledge a consumed (or unresolvable) inspect request. */
@@ -106,6 +110,6 @@ export interface TrajectoryUsage {
106
110
  * @param props - Grouped trajectory data and whole-ledger fold state.
107
111
  * @returns The ledger and an optional local record inspector.
108
112
  */
109
- export declare function TrajectoryTable({ t, stringWrapping, renderImages, requestNumbers: sessionRequestNumbers, turns, streamingCells, timelineFocusIndexes, searchMatchIndexes, onSelectedIndexChange, onRecordSelect, recordSelection, recordFocus, historyLoading, olderHistoryLoading, historyStartSeq, hasOlderRecords, onLoadOlder, onClearSelection, collapsedTurns, onToggleTurn, collapsedAssistants, onToggleAssistant, inspectCallId, onInspectApplied, }: TrajectoryTableProps): import("react").JSX.Element;
113
+ export declare function TrajectoryTable({ t, stringWrapping, renderImages, requestNumbers: sessionRequestNumbers, turns, streamingCells, timelineFocusIndexes, searchMatchIndexes, onSelectedIndexChange, onRecordSelect, recordSelection, recordFocus, historyLoading, olderHistoryLoading, historyStartSeq, hasOlderRecords, onLoadOlder, onClearSelection, collapsedTurns, onToggleTurn, collapsedAssistants, onToggleAssistant, collapsedTools, onToggleTool, inspectCallId, onInspectApplied, }: TrajectoryTableProps): import("react").JSX.Element;
110
114
  export {};
111
115
  //# sourceMappingURL=TrajectoryTable.d.ts.map
@@ -18,6 +18,10 @@ export interface TrajectoryToolbarProps {
18
18
  allAssistantsCollapsed: boolean;
19
19
  /** Fold or expand tool calls under every collapsible assistant. */
20
20
  onToggleAllAssistants: () => void;
21
+ /** Whether every tool's nested calls are currently folded. */
22
+ allSubCallsCollapsed: boolean;
23
+ /** Fold or expand nested calls under every tool. */
24
+ onToggleAllSubCalls: () => void;
21
25
  /** Current live ledger search query. */
22
26
  searchQuery: string;
23
27
  /** Update the live ledger search query. */
@@ -30,5 +34,5 @@ export interface TrajectoryToolbarProps {
30
34
  * @param props - rendered counts and whole-list fold state.
31
35
  * @returns the toolbar element.
32
36
  */
33
- export declare function TrajectoryToolbar({ actualDuration, onActualDurationChange, actualTime, onActualTimeChange, allTurnsCollapsed, onToggleAllTurns, allAssistantsCollapsed, onToggleAllAssistants, searchQuery, onSearchQueryChange, t, }: TrajectoryToolbarProps): import("react").JSX.Element;
37
+ export declare function TrajectoryToolbar({ actualDuration, onActualDurationChange, actualTime, onActualTimeChange, allTurnsCollapsed, onToggleAllTurns, allAssistantsCollapsed, onToggleAllAssistants, allSubCallsCollapsed, onToggleAllSubCalls, searchQuery, onSearchQueryChange, t, }: TrajectoryToolbarProps): import("react").JSX.Element;
34
38
  //# sourceMappingURL=TrajectoryToolbar.d.ts.map
@@ -12,6 +12,7 @@ export interface CodeProgram {
12
12
  }
13
13
  /**
14
14
  * Resolve a PTC program without guessing its language from source or current runtime settings.
15
+ * Unknown explicit languages or conflicting recorded hints leave the source unhighlighted.
15
16
  * @param cell - Recorded tool arguments and the schema visible at call time.
16
17
  * @returns The program, or undefined for another tool or unsupported arguments.
17
18
  */
@@ -15,6 +15,9 @@ export declare const zh: {
15
15
  readonly 'toolbar.calls': "调用";
16
16
  readonly 'toolbar.expandCalls': "展开所有调用";
17
17
  readonly 'toolbar.collapseCalls': "收起所有调用";
18
+ readonly 'toolbar.subCalls': "子调用";
19
+ readonly 'toolbar.expandSubCalls': "展开所有子调用";
20
+ readonly 'toolbar.collapseSubCalls': "收起所有子调用";
18
21
  readonly 'toolbar.search': "搜索轨迹";
19
22
  readonly 'toolbar.searchPlaceholder': "搜索";
20
23
  readonly 'kind.system': "系统";
@@ -139,6 +142,7 @@ export declare const zh: {
139
142
  readonly 'request.collapsedSummary': "已收起的{kind}概述,{summary}";
140
143
  readonly 'request.collapsedTurn': "轮次";
141
144
  readonly 'request.collapsedAssistant': "助手";
145
+ readonly 'request.collapsedTool': "子调用";
142
146
  readonly 'request.rowAria': "{request}{kind},{content}";
143
147
  readonly 'request.rowPrefix': "请求 {request},";
144
148
  readonly 'request.rowAriaCompaction': "请求 {request},压缩";
@@ -3,7 +3,7 @@ import type { TrajectoryCellProps } from './trajectory-record.ts';
3
3
  /** Minimal record shape required by the trajectory virtual-row projection. */
4
4
  export interface VirtualizableTrajectoryRecord {
5
5
  cell: TrajectoryCellProps;
6
- collapsedSummaryKind?: 'turn' | 'assistant';
6
+ collapsedSummaryKind?: 'turn' | 'assistant' | 'tool';
7
7
  }
8
8
  /** One logical record retained inside a measurable virtual row. */
9
9
  export interface TrajectoryVirtualRowEntry<T extends VirtualizableTrajectoryRecord> {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qilin-agent/client-ui-trajectory",
3
3
  "description": "Trajectory event ledger with an interactive timing overview: pure-consumer plugin registering into the conversation ViewMap (no service)",
4
- "version": "3.1.7",
4
+ "version": "3.1.8",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -43,34 +43,34 @@
43
43
  },
44
44
  "license": "MIT",
45
45
  "peerDependencies": {
46
- "@qilin-agent/kylin": "~4.0.5"
46
+ "@qilin-agent/kylin": "~4.0.6-alpha.2"
47
47
  },
48
48
  "devDependencies": {
49
+ "@qilin-agent/agent": "3.1.8",
50
+ "@qilin-agent/client-locale": "3.1.8",
51
+ "@qilin-agent/client-test-runtime": "3.1.8",
52
+ "@qilin-agent/client-ui-primitives": "3.1.8",
53
+ "@qilin-agent/client-ui-conversation": "3.1.8",
54
+ "@qilin-agent/client-ui-slots": "3.1.8",
55
+ "@qilin-agent/compaction": "3.1.8",
56
+ "@qilin-agent/tools": "3.1.8",
49
57
  "@types/react": "~18.3.1",
50
58
  "@types/react-dom": "~18.3.0",
59
+ "@qilin-agent/kylin": "~4.0.6-alpha.2",
51
60
  "react": "^18.2.0",
52
61
  "react-dom": "^18.2.0",
62
+ "@qilin-agent/client-store": "3.1.8",
63
+ "@qilin-agent/client-ui-chat": "3.1.8",
64
+ "@qilin-agent/session": "3.1.8",
65
+ "@qilin-agent/api-session-controller": "3.1.8",
66
+ "@qilin-agent/client-ui-renderer": "3.1.8",
67
+ "@qilin-agent/client-ui-session": "3.1.8",
68
+ "@qilin-agent/client-ui-sidebar-right": "3.1.8",
69
+ "@qilin-agent/llm": "3.1.8",
70
+ "@qilin-agent/attachment": "3.1.8",
53
71
  "@tanstack/react-virtual": "^3.14.9",
54
72
  "diff": "^9.0.0",
55
- "@qilin-agent/client-locale": "3.1.7",
56
- "@qilin-agent/client-test-runtime": "3.1.7",
57
- "@qilin-agent/agent": "3.1.7",
58
- "@qilin-agent/client-ui-primitives": "3.1.7",
59
- "@qilin-agent/client-ui-slots": "3.1.7",
60
- "@qilin-agent/client-ui-conversation": "3.1.7",
61
- "@qilin-agent/kylin": "~4.0.5",
62
- "@qilin-agent/client-store": "3.1.7",
63
- "@qilin-agent/tools": "3.1.7",
64
- "@qilin-agent/client-ui-chat": "3.1.7",
65
- "@qilin-agent/compaction": "3.1.7",
66
- "@qilin-agent/session": "3.1.7",
67
- "@qilin-agent/api-session-controller": "3.1.7",
68
- "@qilin-agent/client-ui-renderer": "3.1.7",
69
- "@qilin-agent/client-ui-session": "3.1.7",
70
- "@qilin-agent/llm": "3.1.7",
71
- "@qilin-agent/util-values": "3.1.7",
72
- "@qilin-agent/attachment": "3.1.7",
73
- "@qilin-agent/client-ui-sidebar-right": "3.1.7"
73
+ "@qilin-agent/util-values": "3.1.8"
74
74
  },
75
75
  "files": [
76
76
  "lib/index.js",