dsh-watcher 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/client.js CHANGED
@@ -55,6 +55,32 @@ window.__ModuleLoader__.load({
55
55
  };
56
56
  }
57
57
  //#endregion
58
+ //#region src/client/history-loader.ts
59
+ /**
60
+ * Build the explicit whole-history loader for one Session: repeat the
61
+ * Session's public, read-only paging verb until the head stops moving, using
62
+ * the same conversation head key the header overlay reports. Nothing starts
63
+ * it automatically — only a user action does.
64
+ */
65
+ function createCompleteHistoryLoader(ctx, sessionId, session) {
66
+ return (signal) => loadCompleteHistory({
67
+ signal,
68
+ loadOlder: () => session.loadOlder(),
69
+ read: () => {
70
+ const sessionSnapshot = session.getSnapshot();
71
+ const chat = ctx.uiConversation.binding(sessionId).snapshot.getSnapshot().views.get("chat");
72
+ if (chat === void 0) throw new Error("dsh-watcher: Chat conversation target is unavailable");
73
+ const firstNode = chat.legacy.nodes[0];
74
+ const firstTurn = chat.timeline.turnOrder[0];
75
+ return {
76
+ hasMore: sessionSnapshot.hasMore,
77
+ loadingOlder: sessionSnapshot.loadingOlder,
78
+ headKey: `${firstTurn ?? "none"}:${firstNode?.seq ?? "none"}:${chat.legacy.nodes.length}`
79
+ };
80
+ }
81
+ });
82
+ }
83
+ //#endregion
58
84
  //#region src/hub/follow.ts
59
85
  /**
60
86
  * Follow versus pin state for the work rail.
@@ -1690,8 +1716,8 @@ window.__ModuleLoader__.load({
1690
1716
  });
1691
1717
  }
1692
1718
  //#endregion
1693
- //#region \0dshx-css-module:/agent/repos/dsh-watcher/src/client/Watcher.module.css.mjs
1694
- const css$2 = ".qzKc3a_root{--watcher-panel-max-height:min(680px, calc(100vh - 112px));--watcher-motion-fast:.14s;--watcher-motion-panel:.18s;--watcher-motion-inspector:.2s;--watcher-motion-content-out:.12s;--watcher-ease-out:cubic-bezier(.2, .8, .2, 1);--watcher-ease-glide:cubic-bezier(.22, .61, .36, 1);position:relative}.qzKc3a_trigger{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:32px;height:32px;color:var(--dsw-alias-label-primary);cursor:pointer;transition:background-color var(--watcher-motion-fast) ease, border-color var(--watcher-motion-fast) ease, color var(--watcher-motion-fast) ease, transform .1s ease;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.qzKc3a_trigger:hover:not(:disabled),.qzKc3a_trigger:focus-visible{background:var(--dsw-alias-interactive-bg-hover)}.qzKc3a_trigger:active{transform:scale(.96)}.qzKc3a_trigger:focus-visible{outline:2px solid var(--dsw-static-deepseek-450);outline-offset:2px}.qzKc3a_trigger[data-open]{border-color:var(--dsw-alias-button-ghost-active-border);background:var(--dsw-alias-button-ghost-active-fill);color:var(--dsw-static-deepseek-450)}.qzKc3a_trigger[data-live]{color:var(--dsw-static-deepseek-450)}.qzKc3a_trigger[data-alert]{color:var(--dsw-alias-state-error-primary)}.qzKc3a_eye,.qzKc3a_eyeBlink,.qzKc3a_eyePupil{transform-box:fill-box;transform-origin:50%;display:block}.qzKc3a_trigger[data-live] .qzKc3a_eyePupil{animation:qzKc3a_watcher-eye-scan 2.8s var(--watcher-ease-out) infinite}.qzKc3a_trigger[data-live] .qzKc3a_eyeBlink{animation:5.2s ease-in-out infinite qzKc3a_watcher-eye-blink}@keyframes qzKc3a_watcher-eye-scan{0%,12%,92%,to{transform:translate(0)}30%{transform:translate(1.35px)}54%{transform:translate(-1.2px)}74%{transform:translate(.8px)}}@keyframes qzKc3a_watcher-eye-blink{0%,42%,44.5%,to{transform:scaleY(1)}43.2%{transform:scaleY(.12)}}.qzKc3a_menu{z-index:1100;--watcher-panel-max-height:min(680px, calc(100vh - 24px));--watcher-motion-fast:.14s;--watcher-motion-panel:.18s;--watcher-motion-inspector:.2s;--watcher-motion-content-out:.12s;--watcher-ease-out:cubic-bezier(.2, .8, .2, 1);--watcher-ease-glide:cubic-bezier(.22, .61, .36, 1);box-sizing:border-box;max-width:calc(100vw - 24px);max-height:var(--watcher-panel-max-height);border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-specific-menu);box-shadow:var(--dsw-shadow-lv3);color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);transform-origin:100% 0;animation:qzKc3a_watcher-panel-enter var(--watcher-motion-panel) var(--watcher-ease-out);isolation:isolate;border-radius:12px;align-items:stretch;font-size:13px;line-height:20px;display:flex;position:fixed;top:auto;left:auto;right:auto;overflow:hidden}.qzKc3a_menu[data-sized]{max-width:none}.qzKc3a_menu[data-sized] .qzKc3a_workPicture{flex:auto;width:auto;min-height:0;max-height:none}.qzKc3a_resizeEdgeRight,.qzKc3a_resizeEdgeBottom,.qzKc3a_resizeGrip{z-index:5;touch-action:none;position:absolute}.qzKc3a_resizeEdgeRight{cursor:ew-resize;width:8px;top:0;bottom:0;right:0}.qzKc3a_resizeEdgeBottom{cursor:ns-resize;height:8px;bottom:0;left:0;right:0}.qzKc3a_resizeGrip{cursor:nwse-resize;border-right:2px solid var(--dsw-alias-border-l2);border-bottom:2px solid var(--dsw-alias-border-l2);opacity:.55;border-bottom-right-radius:4px;width:14px;height:14px;transition:opacity .12s;bottom:3px;right:3px}.qzKc3a_resizeGrip:hover{opacity:1;border-color:var(--dsw-alias-label-secondary)}@keyframes qzKc3a_watcher-panel-enter{0%{opacity:0;transform:translateY(-5px)scale(.992)}to{opacity:1;transform:translateY(0)scale(1)}}.qzKc3a_workPicture{width:min(720px,100vw - 32px);min-width:0;min-height:290px;max-height:var(--watcher-panel-max-height);background:var(--dsw-specific-menu);flex-direction:column;flex:none;display:flex}.qzKc3a_pictureHeader{border-bottom:1px solid var(--dsw-alias-border-l2);flex:none;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 14px 14px 16px;display:flex}.qzKc3a_nowBlock{min-width:0}.qzKc3a_eyebrow{color:var(--dsw-static-deepseek-450);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:12px;font-weight:500;line-height:18px;display:flex;overflow:hidden}.qzKc3a_eyebrow[data-alert]{color:var(--dsw-alias-state-error-primary)}.qzKc3a_now{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:17px;font-weight:600;line-height:24px;overflow:hidden}.qzKc3a_summary{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;margin-top:4px;font-size:12px;line-height:18px;display:flex}.qzKc3a_summary span+span:before{content:\"·\";color:var(--dsw-alias-label-dimmed);margin:0 6px}.qzKc3a_summary [data-partial]{color:var(--dsw-alias-state-warn-primary)}.qzKc3a_loadAllInlineBtn{background:var(--dsw-specific-menu);color:var(--dsw-static-deepseek-450);cursor:pointer;border:1px solid #4d6bfe66;border-radius:4px;align-items:center;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:500;line-height:16px;transition:all .12s;display:inline-flex}.qzKc3a_loadAllInlineBtn:hover{background:var(--dsw-static-deepseek-450);color:#fff}.qzKc3a_sessionTiming{border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);flex:none;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:9px 10px;display:grid}.qzKc3a_sessionTimingMetric{min-width:0;padding:0 8px}.qzKc3a_sessionTimingMetric+.qzKc3a_sessionTimingMetric{border-left:1px solid var(--dsw-alias-border-l2)}.qzKc3a_sessionTimingMetric dt,.qzKc3a_sessionTimingMetric dd{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.qzKc3a_sessionTimingMetric dt{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.qzKc3a_sessionTimingMetric dd{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;line-height:19px}.qzKc3a_viewToolbar{border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-specific-menu);flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:6px 14px;min-height:42px;padding:6px 14px;display:flex}.qzKc3a_viewControl{align-items:center;gap:6px;min-width:0;display:flex}.qzKc3a_viewToolbarLabel{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:12px;line-height:18px}.qzKc3a_viewMode{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:7px;flex:none;grid-template-columns:repeat(2,minmax(42px,1fr));padding:2px;display:inline-grid}.qzKc3a_viewMode button{min-height:26px;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:2px 9px;font-size:12px;line-height:18px}.qzKc3a_viewMode button:hover{color:var(--dsw-alias-label-primary)}.qzKc3a_viewMode button[data-active]{background:var(--dsw-specific-menu);box-shadow:inset 0 0 0 1px var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);font-weight:600}.qzKc3a_historyNotice{border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);flex:none;align-items:center;gap:10px;min-height:48px;padding:7px 14px 8px 16px;display:flex}.qzKc3a_historyNoticeCopy{flex-direction:column;flex:1;min-width:0;display:flex}.qzKc3a_historyNoticeCopy strong{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;line-height:18px;overflow:hidden}.qzKc3a_historyNoticeCopy span{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.qzKc3a_historyNotice button{border:1px solid var(--dsw-alias-button-ghost-active-border);background:var(--dsw-specific-menu);min-height:28px;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;border-radius:7px;flex:none;padding:3px 9px;font-size:12px;line-height:18px}.qzKc3a_historyNotice button:hover:not(:disabled){background:var(--dsw-alias-button-ghost-active-hover)}.qzKc3a_historyNotice button:disabled{color:var(--dsw-alias-label-tertiary);cursor:progress}.qzKc3a_follow{white-space:nowrap;flex:none;margin-top:2px}.qzKc3a_unread{border:1px solid var(--dsw-alias-button-ghost-active-border);background:var(--dsw-alias-button-ghost-active-fill);width:calc(100% - 28px);min-height:34px;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;margin:10px 14px 0;font-size:12px;display:inline-flex}.qzKc3a_unread:hover{background:var(--dsw-alias-button-ghost-active-hover)}.qzKc3a_unread:focus-visible,.qzKc3a_turnToggle:focus-visible,.qzKc3a_phaseToggle:focus-visible,.qzKc3a_stepToggle:focus-visible,.qzKc3a_analysisClusterToggle:focus-visible,.qzKc3a_modelStageToggle:focus-visible,.qzKc3a_reasoningToggle:focus-visible,.qzKc3a_groupedModelToggle:focus-visible,.qzKc3a_viewMode button:focus-visible,.qzKc3a_historyNotice button:focus-visible,.qzKc3a_overviewOccurrence:focus-visible,.qzKc3a_inspectorBack:focus-visible,.qzKc3a_occurrence:focus-visible,.qzKc3a_tab:focus-visible,.qzKc3a_copyRaw:focus-visible{outline:2px solid var(--dsw-static-deepseek-450);outline-offset:-2px}.qzKc3a_railViewport{overscroll-behavior:contain;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);flex:1;min-height:0;overflow:auto}.qzKc3a_turns{padding:8px 10px 18px}.qzKc3a_turn+.qzKc3a_turn{border-top:1px solid var(--dsw-alias-border-l2);margin-top:12px;padding-top:12px}.qzKc3a_turnHeader{padding:0 2px 2px}.qzKc3a_turnHeader h2{margin:0}.qzKc3a_turnToggle{box-sizing:border-box;width:100%;min-height:50px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 8px;display:grid}.qzKc3a_turnToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.qzKc3a_turnChevron{color:var(--dsw-alias-label-tertiary);transition:transform var(--watcher-motion-fast) var(--watcher-ease-out);transform:rotate(0)}.qzKc3a_turnToggle[aria-expanded=true] .qzKc3a_turnChevron{transform:rotate(90deg)}.qzKc3a_turnCopy{flex-direction:column;min-width:0;display:flex}.qzKc3a_turnTitleLine{align-items:center;gap:6px;min-width:0;display:flex}.qzKc3a_turnTitle{color:var(--dsw-alias-label-secondary);font-size:13px;font-weight:600;line-height:20px}.qzKc3a_turnSummary,.qzKc3a_turnDuration{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px;font-weight:400;line-height:18px}.qzKc3a_turnSummary{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.qzKc3a_turnPerformance{white-space:nowrap;flex-direction:column;align-items:flex-end;min-width:62px;display:flex}.qzKc3a_turnDuration{white-space:nowrap}.qzKc3a_turnSpeed{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500;line-height:18px}.qzKc3a_turnBody[hidden]{display:none}.qzKc3a_groupRail{padding-left:18px;position:relative}.qzKc3a_railLine{background:var(--dsw-alias-border-l2);pointer-events:none;width:1px;position:absolute;top:18px;bottom:18px;left:23px}.qzKc3a_phase{z-index:1;box-sizing:border-box;width:100%;padding:3px 0 11px;position:relative}.qzKc3a_phase+.qzKc3a_phase{margin-top:4px}.qzKc3a_phaseHeader{position:relative}.qzKc3a_phaseToggle{box-sizing:border-box;width:100%;min-height:42px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;grid-template-columns:10px 12px minmax(0,1fr);align-items:center;gap:6px;padding:3px 8px 3px 0;display:grid;position:relative}.qzKc3a_phaseToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.qzKc3a_phase[data-now]>.qzKc3a_phaseHeader .qzKc3a_phaseToggle{background:var(--dsw-alias-bg-layer-2);border-radius:7px}.qzKc3a_phaseChevron,.qzKc3a_stepChevron,.qzKc3a_analysisClusterChevron{color:var(--dsw-alias-label-tertiary);transition:transform var(--watcher-motion-fast) var(--watcher-ease-out);transform:rotate(0)}.qzKc3a_phaseToggle[aria-expanded=true] .qzKc3a_phaseChevron,.qzKc3a_stepToggle[aria-expanded=true] .qzKc3a_stepChevron,.qzKc3a_analysisClusterToggle[aria-expanded=true] .qzKc3a_analysisClusterChevron{transform:rotate(90deg)}.qzKc3a_phaseMarker{box-sizing:border-box;background:var(--dsw-alias-label-tertiary);width:10px;height:10px;box-shadow:0 0 0 4px var(--dsw-specific-menu);border-radius:50%;display:block;position:relative}.qzKc3a_phaseMarker[data-state=active],.qzKc3a_phaseMarker[data-state=current]{background:var(--dsw-static-deepseek-450)}.qzKc3a_phaseMarker[data-state=waiting]{background:var(--dsw-alias-state-warn-primary)}.qzKc3a_phaseMarker[data-state=failure],.qzKc3a_phaseMarker[data-state=interrupted]{background:var(--dsw-alias-state-error-primary)}.qzKc3a_phaseMarker[data-state=partial]{border:1px dashed var(--dsw-alias-label-tertiary);background:var(--dsw-specific-menu)}.qzKc3a_neutralDot{border:1px solid var(--dsw-alias-label-tertiary);background:var(--dsw-alias-label-tertiary);border-radius:50%;flex:none;width:10px;height:10px;display:inline-block;position:relative}.qzKc3a_neutralDot[data-status=unknown]{background:var(--dsw-specific-menu);border-style:dashed}.qzKc3a_phaseCopy,.qzKc3a_occurrenceCopy{flex-direction:column;min-width:0;display:flex}.qzKc3a_phaseTitleLine{align-items:center;gap:6px;min-width:0;display:flex}.qzKc3a_phaseTitle{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:550;line-height:21px;overflow:hidden}.qzKc3a_phaseMeta{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:12px;line-height:18px;overflow:hidden}.qzKc3a_groupBadges{flex:none;align-items:center;gap:4px;display:inline-flex}.qzKc3a_groupBadges span,.qzKc3a_overviewTag,.qzKc3a_patternLabel,.qzKc3a_parallelLabel{border:1px solid var(--dsw-alias-border-l2);min-height:18px;color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;padding:0 5px;font-size:11px;font-weight:500;line-height:16px;display:inline-flex}.qzKc3a_groupBadges [data-kind=retry]{color:var(--dsw-alias-state-error-primary)}.qzKc3a_groupBadges [data-kind=parallel],.qzKc3a_overviewTag[data-state=active],.qzKc3a_overviewTag[data-state=current]{color:var(--dsw-static-deepseek-450)}.qzKc3a_overviewTag[data-state=waiting]{color:var(--dsw-alias-state-warn-primary)}.qzKc3a_overviewTag[data-state=failure],.qzKc3a_overviewTag[data-state=interrupted]{color:var(--dsw-alias-state-error-primary)}.qzKc3a_overviewTag[data-state=partial]{color:var(--dsw-alias-label-tertiary)}.qzKc3a_occurrenceChevron{color:var(--dsw-alias-label-dimmed);opacity:0;transition:opacity var(--watcher-motion-fast) ease, transform var(--watcher-motion-fast) ease;flex:none;transform:translate(-2px)}.qzKc3a_occurrence:hover .qzKc3a_occurrenceChevron,.qzKc3a_occurrence[data-selected] .qzKc3a_occurrenceChevron,.qzKc3a_occurrence:focus-visible .qzKc3a_occurrenceChevron{opacity:1;transform:translate(0)}.qzKc3a_stepTimeline{border-left:1px solid var(--dsw-alias-border-l2);margin:1px 8px 0 28px;padding-left:11px;position:relative}.qzKc3a_overviewStep{min-width:0;position:relative}.qzKc3a_overviewStep+.qzKc3a_overviewStep{margin-top:10px;padding-top:8px}.qzKc3a_overviewStep:before{background:var(--dsw-alias-border-l2);content:\"\";width:8px;height:1px;position:absolute;top:13px;left:-12px}.qzKc3a_overviewStepHeader{min-height:29px}.qzKc3a_stepToggle{box-sizing:border-box;width:100%;min-height:29px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:5px;padding:2px 4px 2px 0;display:grid}.qzKc3a_stepToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.qzKc3a_overviewStepLabel,.qzKc3a_overviewStepSignals{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px;line-height:18px}.qzKc3a_overviewStepLabel{min-width:0;font-family:var(--dsw-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.qzKc3a_overviewStepSignals{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.qzKc3a_overviewOccurrences{position:relative}.qzKc3a_overviewStep[data-parallel] .qzKc3a_overviewOccurrences{border-left:1px solid var(--dsw-static-deepseek-450);padding-left:5px}.qzKc3a_modelStage{border-left:2px solid var(--dsw-static-deepseek-450);background:var(--dsw-alias-bg-layer-2);border-radius:0 7px 7px 0;min-width:0;margin:2px 2px 7px;overflow:hidden}.qzKc3a_modelStage[data-live]{box-shadow:inset 0 0 0 1px var(--dsw-alias-button-ghost-active-border)}.qzKc3a_modelStageToggle{box-sizing:border-box;width:100%;min-height:42px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:12px 8px minmax(0,1fr);align-items:center;gap:7px;padding:5px 9px 5px 7px;display:grid}.qzKc3a_modelStageToggle:hover,.qzKc3a_reasoningToggle:hover,.qzKc3a_groupedModelToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.qzKc3a_modelStageChevron,.qzKc3a_reasoningChevron,.qzKc3a_groupedModelChevron{color:var(--dsw-alias-label-tertiary);transition:transform var(--watcher-motion-fast) var(--watcher-ease-out)}.qzKc3a_modelStageToggle[aria-expanded=true] .qzKc3a_modelStageChevron,.qzKc3a_reasoningToggle[aria-expanded=true] .qzKc3a_reasoningChevron,.qzKc3a_groupedModelToggle[aria-expanded=true] .qzKc3a_groupedModelChevron{transform:rotate(90deg)}.qzKc3a_modelStageGlyph{background:var(--dsw-static-deepseek-450);width:7px;height:7px;box-shadow:0 0 0 3px var(--dsw-alias-button-ghost-active-fill);border-radius:999px}.qzKc3a_modelStageCopy{grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:8px;min-width:0;display:grid}.qzKc3a_modelStageTitle{color:var(--dsw-alias-label-primary);white-space:nowrap;font-size:13px;font-weight:600;line-height:20px}.qzKc3a_modelStageSummary{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.qzKc3a_modelStageBody{padding:2px 10px 10px 20px}.qzKc3a_modelStageBar{background:var(--dsw-alias-border-l2);border-radius:999px;gap:2px;height:5px;margin:2px 0 10px;display:flex;overflow:hidden}.qzKc3a_modelStageBar>span{border-radius:inherit;min-width:3px}.qzKc3a_modelStageBar [data-segment=wait],.qzKc3a_modelStageSwatch[data-segment=wait]{background:var(--dsw-alias-label-dimmed)}.qzKc3a_modelStageBar [data-segment=reasoning],.qzKc3a_modelStageSwatch[data-segment=reasoning]{background:var(--dsw-static-deepseek-450)}.qzKc3a_modelStageBar [data-segment=output],.qzKc3a_modelStageSwatch[data-segment=output]{background:var(--dsw-alias-label-secondary)}.qzKc3a_modelStageBar [data-segment=unattributed],.qzKc3a_modelStageSwatch[data-segment=unattributed]{background:var(--dsw-alias-state-warn-primary)}.qzKc3a_modelStageLedger{grid-template-columns:minmax(0,1fr);gap:5px 12px;margin:0;display:grid}.qzKc3a_modelStageMetric{min-width:0;color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:8px;font-size:12px;line-height:18px;display:flex}.qzKc3a_modelStageMetric dt,.qzKc3a_modelStageMetric dd{margin:0}.qzKc3a_modelStageMetric dt{align-items:center;gap:6px;min-width:0;display:inline-flex}.qzKc3a_modelStageMetric dd{color:var(--dsw-alias-label-secondary);text-align:right;flex:none}.qzKc3a_modelStageSwatch{border-radius:999px;flex:none;width:6px;height:6px}.qzKc3a_modelStageNote{color:var(--dsw-alias-label-tertiary);margin:8px 0 0;font-size:12px;line-height:18px}.qzKc3a_reasoningAttempts{border-top:1px solid var(--dsw-alias-border-l2);margin-top:8px;padding-top:1px}.qzKc3a_reasoningDisclosure{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:6px;min-width:0;margin-top:5px;overflow:hidden}.qzKc3a_reasoningToggle{box-sizing:border-box;width:100%;min-height:34px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:6px;padding:5px 8px;display:grid}.qzKc3a_reasoningLabel{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:550;line-height:20px}.qzKc3a_reasoningMeta{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;text-align:left;white-space:normal;grid-column:2;font-size:12px;line-height:18px;overflow:hidden}.qzKc3a_reasoningBody{box-sizing:border-box;border-top:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-markdown-code-block);max-height:320px;color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);margin:0;padding:10px 12px;font-size:13px;line-height:1.6;overflow:auto}.qzKc3a_reasoningBody>*{margin-top:0;margin-bottom:8px}.qzKc3a_reasoningBody>:last-child{margin-bottom:0}.qzKc3a_reasoningBody .md-code-block{max-width:100%}.qzKc3a_groupedModelStages{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:7px;margin-bottom:9px;position:relative;overflow:hidden}.qzKc3a_groupedModelStages:before{background:var(--dsw-alias-border-l2);content:\"\";width:8px;height:1px;position:absolute;top:20px;left:-12px}.qzKc3a_groupedModelToggle{box-sizing:border-box;width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:7px;padding:5px 9px;display:grid}.qzKc3a_groupedModelToggle>span{justify-content:space-between;align-items:baseline;gap:10px;min-width:0;display:flex}.qzKc3a_groupedModelToggle strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.qzKc3a_groupedModelToggle small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.qzKc3a_groupedModelList{border-top:1px solid var(--dsw-alias-border-l2);padding:0 7px 8px 22px}.qzKc3a_groupedModelStep{min-width:0;padding-top:8px}.qzKc3a_groupedModelStep+.qzKc3a_groupedModelStep{border-top:1px solid var(--dsw-alias-border-l2)}.qzKc3a_groupedModelStepLabel{color:var(--dsw-alias-label-tertiary);font-family:var(--dsw-font-mono);margin:0 2px 4px;font-size:12px;line-height:18px;display:block}.qzKc3a_analysisClusters{border-left:1px solid var(--dsw-alias-border-l2);margin:1px 8px 0 28px;padding-left:11px;position:relative}.qzKc3a_analysisCluster,.qzKc3a_analysisSingleton{min-width:0;position:relative}.qzKc3a_analysisCluster+.qzKc3a_analysisCluster,.qzKc3a_analysisCluster+.qzKc3a_analysisSingleton,.qzKc3a_analysisSingleton+.qzKc3a_analysisCluster,.qzKc3a_analysisSingleton+.qzKc3a_analysisSingleton{margin-top:6px}.qzKc3a_analysisCluster:before,.qzKc3a_analysisSingleton:before{background:var(--dsw-alias-border-l2);content:\"\";width:8px;height:1px;position:absolute;top:20px;left:-12px}.qzKc3a_analysisClusterToggle{box-sizing:border-box;width:100%;min-height:46px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;grid-template-columns:12px 10px minmax(0,1fr) auto;align-items:center;gap:7px;padding:5px 6px 5px 4px;display:grid}.qzKc3a_analysisClusterToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.qzKc3a_analysisCluster[data-open]>.qzKc3a_analysisClusterToggle{border-color:var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2)}.qzKc3a_analysisClusterDotSlot{width:10px;height:10px;display:block;position:relative}.qzKc3a_analysisClusterDot{inset:0;position:absolute!important}.qzKc3a_analysisClusterCopy{flex-direction:column;min-width:0;display:flex}.qzKc3a_analysisClusterTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:550;line-height:20px;overflow:hidden}.qzKc3a_analysisClusterMeta{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.qzKc3a_analysisClusterCount{min-width:28px;color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:12px;font-weight:600;line-height:18px}.qzKc3a_analysisClusterItems{border-left:1px solid var(--dsw-alias-border-l2);margin:3px 0 8px 17px;padding-left:5px}.qzKc3a_overviewOccurrence{box-sizing:border-box;width:100%;min-height:45px;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--watcher-motion-fast) var(--watcher-ease-out), border-color var(--watcher-motion-fast) var(--watcher-ease-out), box-shadow var(--watcher-motion-fast) var(--watcher-ease-out);animation:qzKc3a_watcher-live-append var(--watcher-motion-fast) var(--watcher-ease-out);background:0 0;border:1px solid #0000;border-radius:7px;grid-template-columns:22px 10px minmax(0,1fr) auto 12px;align-items:center;gap:7px;padding:5px 5px 5px 7px;display:grid;position:relative}.qzKc3a_overviewOccurrence+.qzKc3a_overviewOccurrence{margin-top:2px}.qzKc3a_overviewOccurrence:hover{background:var(--dsw-alias-interactive-bg-hover)}.qzKc3a_overviewOccurrence[data-current]:not([data-selected]){background:var(--dsw-alias-bg-layer-2)}.qzKc3a_overviewOccurrence[data-selected]{border-color:var(--dsw-alias-button-ghost-active-border);background:var(--dsw-alias-button-ghost-active-fill);box-shadow:inset 2px 0 0 var(--dsw-static-deepseek-450)}.qzKc3a_overviewOccurrenceIndex{color:var(--dsw-alias-label-dimmed);font-family:var(--dsw-font-mono);font-variant-numeric:tabular-nums;text-align:right;font-size:11px;line-height:18px}.qzKc3a_overviewOccurrenceDotSlot{width:10px;height:10px;display:block;position:relative}.qzKc3a_overviewOccurrenceDot{inset:0;position:absolute!important}.qzKc3a_overviewOccurrenceCopy{flex-direction:column;min-width:0;display:flex}.qzKc3a_overviewOccurrenceTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:550;line-height:20px;overflow:hidden}.qzKc3a_overviewOccurrenceMeta{color:var(--dsw-alias-label-tertiary);font-family:var(--dsw-font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.qzKc3a_overviewOccurrenceDuration{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;line-height:18px}.qzKc3a_overviewOccurrenceChevron{color:var(--dsw-alias-label-dimmed);opacity:0;transition:opacity var(--watcher-motion-fast) ease, transform var(--watcher-motion-fast) ease;transform:translate(-2px)}.qzKc3a_overviewOccurrence:hover .qzKc3a_overviewOccurrenceChevron,.qzKc3a_overviewOccurrence[data-selected] .qzKc3a_overviewOccurrenceChevron,.qzKc3a_overviewOccurrence:focus-visible .qzKc3a_overviewOccurrenceChevron{opacity:1;transform:translate(0)}@keyframes qzKc3a_watcher-live-append{0%{opacity:.5;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.qzKc3a_empty{min-height:250px;color:var(--dsw-alias-label-tertiary);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:28px;display:flex}.qzKc3a_emptyEye{color:var(--dsw-alias-label-secondary);margin-bottom:12px;display:inline-flex}.qzKc3a_empty strong{color:var(--dsw-alias-label-secondary);font-size:14px;font-weight:600;line-height:21px}.qzKc3a_empty>span:last-child{margin-top:4px;font-size:12px;line-height:18px}.qzKc3a_inspector{width:438px;min-width:0;max-height:var(--watcher-panel-max-height);border-right:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);flex-direction:column;flex:none;display:flex}@media (width>=861px){.qzKc3a_inspector{animation:qzKc3a_watcher-inspector-enter var(--watcher-motion-inspector) var(--watcher-ease-glide);overflow:hidden}.qzKc3a_inspector>*{box-sizing:border-box;width:438px;animation:qzKc3a_watcher-inspector-content-in var(--watcher-motion-content-out) var(--watcher-ease-glide) var(--watcher-motion-inspector) both}.qzKc3a_inspector[data-closing]{pointer-events:none;animation:qzKc3a_watcher-inspector-exit var(--watcher-motion-inspector) var(--watcher-ease-glide) var(--watcher-motion-content-out) forwards}.qzKc3a_inspector[data-closing]>*{animation:qzKc3a_watcher-inspector-content-out var(--watcher-motion-content-out) ease-in forwards}}@keyframes qzKc3a_watcher-inspector-enter{0%{width:0}}@keyframes qzKc3a_watcher-inspector-content-in{0%{opacity:0;transform:translate(16px)}}@keyframes qzKc3a_watcher-inspector-content-out{to{opacity:0;transform:translate(16px)}}@keyframes qzKc3a_watcher-inspector-exit{to{width:0}}.qzKc3a_inspectorHeader{border-bottom:1px solid var(--dsw-alias-border-l2);flex:none;padding:16px 16px 14px}.qzKc3a_inspectorBack{min-height:28px;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;margin:-4px 0 8px -6px;padding:0 7px 0 5px;font-size:12px;display:inline-flex}.qzKc3a_inspectorBack:hover{background:var(--dsw-alias-interactive-bg-hover)}.qzKc3a_statusLine,.qzKc3a_detailStatus{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;align-items:center;gap:7px;font-size:12px;line-height:18px;display:flex}.qzKc3a_statusLine[data-status=failure],.qzKc3a_statusLine[data-status=interrupted],.qzKc3a_detailStatus[data-status=failure],.qzKc3a_detailStatus[data-status=interrupted]{color:var(--dsw-alias-state-error-primary)}.qzKc3a_statusLine[data-status=running],.qzKc3a_detailStatus[data-status=running]{color:var(--dsw-static-deepseek-450)}.qzKc3a_statusLine[data-status=waiting],.qzKc3a_detailStatus[data-status=waiting]{color:var(--dsw-alias-state-warn-primary)}.qzKc3a_location{min-width:0;color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;margin-left:auto}.qzKc3a_inspectorTitle{color:var(--dsw-alias-label-primary);margin:8px 0 0;font-size:18px;font-weight:600;line-height:25px}.qzKc3a_inspectorSummary{color:var(--dsw-alias-label-tertiary);margin:3px 0 0;font-size:12px;line-height:18px}.qzKc3a_groupSignals{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.qzKc3a_groupSignals span{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px}.qzKc3a_groupSignals span+span:before{content:\"·\";color:var(--dsw-alias-label-dimmed);margin-right:6px}.qzKc3a_groupSignals [data-retry]{color:var(--dsw-alias-state-warn-primary)}.qzKc3a_groupSignals [data-error]{color:var(--dsw-alias-state-error-primary)}.qzKc3a_inspectorBody{overscroll-behavior:contain;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);flex:1;min-height:0;overflow:auto}.qzKc3a_executionSection{border-bottom:1px solid var(--dsw-alias-border-l2);padding:14px 16px 16px}.qzKc3a_sectionHeading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.qzKc3a_sectionHeading h3{color:var(--dsw-alias-label-secondary);margin:0;font-size:13px;font-weight:600;line-height:20px}.qzKc3a_sectionHeading>span{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px}.qzKc3a_executionList{max-height:188px;padding-right:2px;overflow:auto}.qzKc3a_stepBlock+.qzKc3a_stepBlock{border-top:1px solid var(--dsw-alias-border-l2);margin-top:10px;padding-top:10px}.qzKc3a_stepHeading{min-height:22px;color:var(--dsw-alias-label-tertiary);font-family:var(--dsw-font-mono);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:8px;padding:0 3px;font-size:12px;display:flex}.qzKc3a_stepSignals{align-items:center;gap:6px;min-width:0;display:inline-flex}.qzKc3a_stepDuration{color:var(--dsw-alias-label-secondary);font-family:var(--dsw-font-family);font-variant-numeric:tabular-nums;white-space:nowrap}.qzKc3a_parallelLabel{color:var(--dsw-static-deepseek-450);font-family:var(--dsw-font-family)}.qzKc3a_occurrences{margin-top:4px;position:relative}.qzKc3a_stepBlock[data-parallel] .qzKc3a_occurrences{border-left:1px solid var(--dsw-static-deepseek-450);padding-left:10px}.qzKc3a_occurrence{box-sizing:border-box;width:100%;min-height:46px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:10px minmax(0,1fr) auto 13px;align-items:center;gap:8px;padding:6px 7px;transition:background-color .14s,border-color .14s;display:grid}.qzKc3a_occurrenceDuration{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;line-height:18px}.qzKc3a_occurrence+.qzKc3a_occurrence{margin-top:2px}.qzKc3a_occurrence:hover{background:var(--dsw-alias-interactive-bg-hover)}.qzKc3a_occurrence[data-selected]{border-color:var(--dsw-alias-button-ghost-active-border);background:var(--dsw-alias-button-ghost-active-fill)}.qzKc3a_occurrenceTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550;line-height:19px;overflow:hidden}.qzKc3a_occurrenceMeta{color:var(--dsw-alias-label-tertiary);font-family:var(--dsw-font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.qzKc3a_detailSection{padding:16px}.qzKc3a_detailHeader{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;display:grid}.qzKc3a_detailIdentity{min-width:0}.qzKc3a_detailIdentity h3{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);margin:6px 0 0;font-size:16px;font-weight:600;line-height:23px}.qzKc3a_detailIdentity p{overflow-wrap:anywhere;color:var(--dsw-alias-label-tertiary);font-family:var(--dsw-font-mono);margin:3px 0 0;font-size:12px;line-height:18px}.qzKc3a_patternLabel{color:var(--dsw-alias-state-warn-primary)}.qzKc3a_metrics{font-variant-numeric:tabular-nums;grid-template-columns:auto auto;gap:2px 8px;margin:0;font-size:12px;line-height:18px;display:grid}.qzKc3a_metrics dt{color:var(--dsw-alias-label-tertiary)}.qzKc3a_metrics dd{color:var(--dsw-alias-label-secondary);text-align:right;margin:0}.qzKc3a_metrics [data-error]{color:var(--dsw-alias-state-error-primary)}.qzKc3a_tabs{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:end;gap:4px;margin-top:16px;display:flex}.qzKc3a_tab{min-width:56px;min-height:36px;color:var(--dsw-alias-label-tertiary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 10px;font-size:13px;position:relative}.qzKc3a_tab:hover{color:var(--dsw-alias-label-primary)}.qzKc3a_tab[data-active]{color:var(--dsw-alias-label-primary);font-weight:600}.qzKc3a_tab[data-active]:after{content:\"\";background:var(--dsw-static-deepseek-450);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:9px;right:9px}.qzKc3a_tabPanel{--dsl-terminal-font:400 13px/22px var(--dsw-font-mono);min-height:116px;padding-top:12px}.qzKc3a_tabPanel>*{margin-top:0;margin-bottom:0}.qzKc3a_jsonSurface{font-size:13px;overflow:auto}.qzKc3a_jsonSurface [role=tree]{font-size:13px;line-height:20px}.qzKc3a_rawPanel pre{box-sizing:border-box;width:100%;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-mono);tab-size:2;margin:0;font-size:13px;line-height:20px;overflow:auto}.qzKc3a_documentResult{min-width:0;color:var(--dsw-alias-label-primary);padding:2px 2px 8px}.qzKc3a_documentResult .md-code-block{max-width:100%}.qzKc3a_documentResult blockquote{color:var(--dsw-alias-label-secondary)}.qzKc3a_documentResult table{font-variant-numeric:tabular-nums}.qzKc3a_rawPanel{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-markdown-code-block);border-radius:8px;overflow:hidden}.qzKc3a_rawToolbar{border-bottom:1px solid var(--dsw-alias-border-l2);min-height:38px;color:var(--dsw-alias-label-tertiary);justify-content:space-between;align-items:center;gap:12px;padding:0 10px 0 12px;font-size:12px;display:flex}.qzKc3a_copyRaw{min-height:28px;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;padding:0 6px;font-size:12px;display:inline-flex}.qzKc3a_copyRaw:hover{background:var(--dsw-alias-interactive-bg-hover)}.qzKc3a_rawPanel pre{white-space:pre;max-height:320px;padding:12px}.qzKc3a_artifactResult,.qzKc3a_detailEmpty{border:1px solid var(--dsw-alias-border-l2);min-height:116px;color:var(--dsw-alias-label-tertiary);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:18px;font-size:13px;display:flex}.qzKc3a_artifactResult strong{color:var(--dsw-alias-label-secondary);margin-top:6px;font-size:14px}.qzKc3a_artifactResult>span{margin-top:2px;font-size:12px}.qzKc3a_artifactResult .qzKc3a_jsonSurface{text-align:left;width:100%;margin-top:12px}.qzKc3a_artifactGlyph{color:var(--dsw-static-deepseek-450);font-size:24px;line-height:28px}.qzKc3a_inspectorFooter{border-top:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);flex:none;padding:9px 16px;font-size:12px;line-height:18px}@media (prefers-reduced-motion:reduce){.qzKc3a_inspector,.qzKc3a_inspector>*{animation:none}.qzKc3a_inspector[data-closing],.qzKc3a_inspector[data-closing]>*{animation-duration:.01ms;animation-delay:0s}.qzKc3a_menu,.qzKc3a_trigger[data-live] .qzKc3a_eyePupil,.qzKc3a_trigger[data-live] .qzKc3a_eyeBlink{animation:none}.qzKc3a_trigger,.qzKc3a_overviewOccurrence,.qzKc3a_turnChevron,.qzKc3a_phaseChevron,.qzKc3a_stepChevron,.qzKc3a_analysisClusterChevron,.qzKc3a_modelStageChevron,.qzKc3a_reasoningChevron,.qzKc3a_groupedModelChevron,.qzKc3a_occurrence,.qzKc3a_overviewOccurrenceChevron,.qzKc3a_occurrenceChevron{transition-duration:.01ms}.qzKc3a_overviewOccurrence{animation:none}.qzKc3a_root [data-state=ongoing] rect,.qzKc3a_menu [data-state=ongoing] rect{opacity:.55;animation:none!important}}@media (width<=860px){.qzKc3a_menu{flex-direction:column-reverse;width:min(720px,100vw - 24px);max-height:calc(100vh - 88px)}.qzKc3a_workPicture{width:auto;min-height:250px;max-height:none}.qzKc3a_menu:not(:has(.qzKc3a_inspector)){height:min(680px,100vh - 88px)}.qzKc3a_menu:not(:has(.qzKc3a_inspector)) .qzKc3a_workPicture{flex:auto}.qzKc3a_inspector{border-right:0;width:auto;max-height:none}.qzKc3a_menu:has(.qzKc3a_inspector){height:min(680px,100vh - 88px)}.qzKc3a_menu:has(.qzKc3a_inspector) .qzKc3a_workPicture{display:none}.qzKc3a_menu:has(.qzKc3a_inspector) .qzKc3a_inspector{flex:auto;min-height:0;max-height:none}.qzKc3a_inspectorBack svg{transform:rotate(180deg)}.qzKc3a_inspectorHeader{padding-top:14px}.qzKc3a_executionList{max-height:150px}}@media (width<=520px){.qzKc3a_menu{width:calc(100vw - 24px)}.qzKc3a_pictureHeader{padding:14px 12px}.qzKc3a_now{font-size:16px}.qzKc3a_turns{padding-inline:6px}.qzKc3a_groupBadges span:nth-child(n+2){display:none}.qzKc3a_inspectorHeader,.qzKc3a_executionSection,.qzKc3a_detailSection{padding-inline:12px}.qzKc3a_detailHeader{grid-template-columns:1fr}.qzKc3a_metrics{grid-template-columns:auto 1fr}.qzKc3a_metrics dd{text-align:left}.qzKc3a_modelStageCopy{grid-template-columns:1fr;gap:0}.qzKc3a_modelStageSummary{white-space:normal}.qzKc3a_modelStageLedger{grid-template-columns:1fr}.qzKc3a_reasoningToggle{grid-template-columns:12px minmax(0,1fr)}.qzKc3a_reasoningMeta{text-align:left;white-space:normal;grid-column:2}.qzKc3a_groupedModelToggle>span{gap:0;display:grid}.qzKc3a_groupedModelToggle small{white-space:normal}.qzKc3a_groupedModelList{padding-left:12px}}";
1719
+ //#region \0dshx-css-module:./src/client/Watcher.module.css.mjs
1720
+ const css$2 = ".PXhr7W_root{--watcher-panel-max-height:min(680px, calc(100vh - 112px));--watcher-motion-fast:.14s;--watcher-motion-panel:.18s;--watcher-motion-inspector:.2s;--watcher-motion-content-out:.12s;--watcher-ease-out:cubic-bezier(.2, .8, .2, 1);--watcher-ease-glide:cubic-bezier(.22, .61, .36, 1);position:relative}.PXhr7W_trigger{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:32px;height:32px;color:var(--dsw-alias-label-primary);cursor:pointer;transition:background-color var(--watcher-motion-fast) ease, border-color var(--watcher-motion-fast) ease, color var(--watcher-motion-fast) ease, transform .1s ease;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.PXhr7W_trigger:hover:not(:disabled),.PXhr7W_trigger:focus-visible{background:var(--dsw-alias-interactive-bg-hover)}.PXhr7W_trigger:active{transform:scale(.96)}.PXhr7W_trigger:focus-visible{outline:2px solid var(--dsw-static-deepseek-450);outline-offset:2px}.PXhr7W_trigger[data-open]{border-color:var(--dsw-alias-button-ghost-active-border);background:var(--dsw-alias-button-ghost-active-fill);color:var(--dsw-static-deepseek-450)}.PXhr7W_trigger[data-live]{color:var(--dsw-static-deepseek-450)}.PXhr7W_trigger[data-alert]{color:var(--dsw-alias-state-error-primary)}.PXhr7W_eye,.PXhr7W_eyeBlink,.PXhr7W_eyePupil{transform-box:fill-box;transform-origin:50%;display:block}.PXhr7W_trigger[data-live] .PXhr7W_eyePupil{animation:PXhr7W_watcher-eye-scan 2.8s var(--watcher-ease-out) infinite}.PXhr7W_trigger[data-live] .PXhr7W_eyeBlink{animation:5.2s ease-in-out infinite PXhr7W_watcher-eye-blink}@keyframes PXhr7W_watcher-eye-scan{0%,12%,92%,to{transform:translate(0)}30%{transform:translate(1.35px)}54%{transform:translate(-1.2px)}74%{transform:translate(.8px)}}@keyframes PXhr7W_watcher-eye-blink{0%,42%,44.5%,to{transform:scaleY(1)}43.2%{transform:scaleY(.12)}}.PXhr7W_menu{z-index:1100;--watcher-panel-max-height:min(680px, calc(100vh - 24px));--watcher-motion-fast:.14s;--watcher-motion-panel:.18s;--watcher-motion-inspector:.2s;--watcher-motion-content-out:.12s;--watcher-ease-out:cubic-bezier(.2, .8, .2, 1);--watcher-ease-glide:cubic-bezier(.22, .61, .36, 1);box-sizing:border-box;max-width:calc(100vw - 24px);max-height:var(--watcher-panel-max-height);border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-specific-menu);box-shadow:var(--dsw-shadow-lv3);color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);transform-origin:100% 0;animation:PXhr7W_watcher-panel-enter var(--watcher-motion-panel) var(--watcher-ease-out);isolation:isolate;border-radius:12px;align-items:stretch;font-size:13px;line-height:20px;display:flex;position:fixed;top:auto;left:auto;right:auto;overflow:hidden}.PXhr7W_menu[data-sized]{max-width:none}.PXhr7W_menu[data-sized] .PXhr7W_workPicture{flex:auto;width:auto;min-height:0;max-height:none}.PXhr7W_sidebarHost{box-sizing:border-box;--watcher-panel-max-height:min(680px, calc(100vh - 24px));--watcher-motion-fast:.14s;--watcher-motion-panel:.18s;--watcher-motion-inspector:.2s;--watcher-motion-content-out:.12s;--watcher-ease-out:cubic-bezier(.2, .8, .2, 1);--watcher-ease-glide:cubic-bezier(.22, .61, .36, 1);height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);flex-direction:column;font-size:13px;line-height:20px;display:flex;overflow:hidden}.PXhr7W_sidebarHost[data-watcher-sidebar=waiting]{color:var(--dsw-alias-label-tertiary);justify-content:center;align-items:center}.PXhr7W_sidebarHost .PXhr7W_workPicture{flex:auto;width:100%;min-width:0;min-height:0;max-height:none}.PXhr7W_sidebarHost .PXhr7W_inspector{flex:0 auto;width:100%;min-height:0;max-height:45%}.PXhr7W_sidebarHost .PXhr7W_inspector>*{width:100%;max-width:100%}.PXhr7W_resizeEdgeRight,.PXhr7W_resizeEdgeBottom,.PXhr7W_resizeGrip{z-index:5;touch-action:none;position:absolute}.PXhr7W_resizeEdgeRight{cursor:ew-resize;width:8px;top:0;bottom:0;right:0}.PXhr7W_resizeEdgeBottom{cursor:ns-resize;height:8px;bottom:0;left:0;right:0}.PXhr7W_resizeGrip{cursor:nwse-resize;border-right:2px solid var(--dsw-alias-border-l2);border-bottom:2px solid var(--dsw-alias-border-l2);opacity:.55;border-bottom-right-radius:4px;width:14px;height:14px;transition:opacity .12s;bottom:3px;right:3px}.PXhr7W_resizeGrip:hover{opacity:1;border-color:var(--dsw-alias-label-secondary)}@keyframes PXhr7W_watcher-panel-enter{0%{opacity:0;transform:translateY(-5px)scale(.992)}to{opacity:1;transform:translateY(0)scale(1)}}.PXhr7W_workPicture{width:min(720px,100vw - 32px);min-width:0;min-height:290px;max-height:var(--watcher-panel-max-height);background:var(--dsw-specific-menu);flex-direction:column;flex:none;display:flex}.PXhr7W_pictureHeader{border-bottom:1px solid var(--dsw-alias-border-l2);flex:none;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 14px 14px 16px;display:flex}.PXhr7W_nowBlock{min-width:0}.PXhr7W_eyebrow{color:var(--dsw-static-deepseek-450);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:12px;font-weight:500;line-height:18px;display:flex;overflow:hidden}.PXhr7W_eyebrow[data-alert]{color:var(--dsw-alias-state-error-primary)}.PXhr7W_now{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:17px;font-weight:600;line-height:24px;overflow:hidden}.PXhr7W_summary{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;margin-top:4px;font-size:12px;line-height:18px;display:flex}.PXhr7W_summary span+span:before{content:\"·\";color:var(--dsw-alias-label-dimmed);margin:0 6px}.PXhr7W_summary [data-partial]{color:var(--dsw-alias-state-warn-primary)}.PXhr7W_loadAllInlineBtn{background:var(--dsw-specific-menu);color:var(--dsw-static-deepseek-450);cursor:pointer;border:1px solid #4d6bfe66;border-radius:4px;align-items:center;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:500;line-height:16px;transition:all .12s;display:inline-flex}.PXhr7W_loadAllInlineBtn:hover{background:var(--dsw-static-deepseek-450);color:#fff}.PXhr7W_sessionTiming{border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);flex:none;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:9px 10px;display:grid}.PXhr7W_sessionTimingMetric{min-width:0;padding:0 8px}.PXhr7W_sessionTimingMetric+.PXhr7W_sessionTimingMetric{border-left:1px solid var(--dsw-alias-border-l2)}.PXhr7W_sessionTimingMetric dt,.PXhr7W_sessionTimingMetric dd{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.PXhr7W_sessionTimingMetric dt{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.PXhr7W_sessionTimingMetric dd{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;line-height:19px}.PXhr7W_viewToolbar{border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-specific-menu);flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:6px 14px;min-height:42px;padding:6px 14px;display:flex}.PXhr7W_viewControl{align-items:center;gap:6px;min-width:0;display:flex}.PXhr7W_viewToolbarLabel{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:12px;line-height:18px}.PXhr7W_viewMode{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:7px;flex:none;grid-template-columns:repeat(2,minmax(42px,1fr));padding:2px;display:inline-grid}.PXhr7W_viewMode button{min-height:26px;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:2px 9px;font-size:12px;line-height:18px}.PXhr7W_viewMode button:hover{color:var(--dsw-alias-label-primary)}.PXhr7W_viewMode button[data-active]{background:var(--dsw-specific-menu);box-shadow:inset 0 0 0 1px var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);font-weight:600}.PXhr7W_historyNotice{border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);flex:none;align-items:center;gap:10px;min-height:48px;padding:7px 14px 8px 16px;display:flex}.PXhr7W_historyNoticeCopy{flex-direction:column;flex:1;min-width:0;display:flex}.PXhr7W_historyNoticeCopy strong{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;line-height:18px;overflow:hidden}.PXhr7W_historyNoticeCopy span{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.PXhr7W_historyNotice button{border:1px solid var(--dsw-alias-button-ghost-active-border);background:var(--dsw-specific-menu);min-height:28px;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;border-radius:7px;flex:none;padding:3px 9px;font-size:12px;line-height:18px}.PXhr7W_historyNotice button:hover:not(:disabled){background:var(--dsw-alias-button-ghost-active-hover)}.PXhr7W_historyNotice button:disabled{color:var(--dsw-alias-label-tertiary);cursor:progress}.PXhr7W_follow{white-space:nowrap;flex:none;margin-top:2px}.PXhr7W_unread{border:1px solid var(--dsw-alias-button-ghost-active-border);background:var(--dsw-alias-button-ghost-active-fill);width:calc(100% - 28px);min-height:34px;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;margin:10px 14px 0;font-size:12px;display:inline-flex}.PXhr7W_unread:hover{background:var(--dsw-alias-button-ghost-active-hover)}.PXhr7W_unread:focus-visible,.PXhr7W_turnToggle:focus-visible,.PXhr7W_phaseToggle:focus-visible,.PXhr7W_stepToggle:focus-visible,.PXhr7W_analysisClusterToggle:focus-visible,.PXhr7W_modelStageToggle:focus-visible,.PXhr7W_reasoningToggle:focus-visible,.PXhr7W_groupedModelToggle:focus-visible,.PXhr7W_viewMode button:focus-visible,.PXhr7W_historyNotice button:focus-visible,.PXhr7W_overviewOccurrence:focus-visible,.PXhr7W_inspectorBack:focus-visible,.PXhr7W_occurrence:focus-visible,.PXhr7W_tab:focus-visible,.PXhr7W_copyRaw:focus-visible{outline:2px solid var(--dsw-static-deepseek-450);outline-offset:-2px}.PXhr7W_railViewport{overscroll-behavior:contain;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);flex:1;min-height:0;overflow:auto}.PXhr7W_turns{padding:8px 10px 18px}.PXhr7W_turn+.PXhr7W_turn{border-top:1px solid var(--dsw-alias-border-l2);margin-top:12px;padding-top:12px}.PXhr7W_turnHeader{padding:0 2px 2px}.PXhr7W_turnHeader h2{margin:0}.PXhr7W_turnToggle{box-sizing:border-box;width:100%;min-height:50px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 8px;display:grid}.PXhr7W_turnToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.PXhr7W_turnChevron{color:var(--dsw-alias-label-tertiary);transition:transform var(--watcher-motion-fast) var(--watcher-ease-out);transform:rotate(0)}.PXhr7W_turnToggle[aria-expanded=true] .PXhr7W_turnChevron{transform:rotate(90deg)}.PXhr7W_turnCopy{flex-direction:column;min-width:0;display:flex}.PXhr7W_turnTitleLine{align-items:center;gap:6px;min-width:0;display:flex}.PXhr7W_turnTitle{color:var(--dsw-alias-label-secondary);font-size:13px;font-weight:600;line-height:20px}.PXhr7W_turnSummary,.PXhr7W_turnDuration{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px;font-weight:400;line-height:18px}.PXhr7W_turnSummary{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.PXhr7W_turnPerformance{white-space:nowrap;flex-direction:column;align-items:flex-end;min-width:62px;display:flex}.PXhr7W_turnDuration{white-space:nowrap}.PXhr7W_turnSpeed{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500;line-height:18px}.PXhr7W_turnBody[hidden]{display:none}.PXhr7W_groupRail{padding-left:18px;position:relative}.PXhr7W_railLine{background:var(--dsw-alias-border-l2);pointer-events:none;width:1px;position:absolute;top:18px;bottom:18px;left:23px}.PXhr7W_phase{z-index:1;box-sizing:border-box;width:100%;padding:3px 0 11px;position:relative}.PXhr7W_phase+.PXhr7W_phase{margin-top:4px}.PXhr7W_phaseHeader{position:relative}.PXhr7W_phaseToggle{box-sizing:border-box;width:100%;min-height:42px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;grid-template-columns:10px 12px minmax(0,1fr);align-items:center;gap:6px;padding:3px 8px 3px 0;display:grid;position:relative}.PXhr7W_phaseToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.PXhr7W_phase[data-now]>.PXhr7W_phaseHeader .PXhr7W_phaseToggle{background:var(--dsw-alias-bg-layer-2);border-radius:7px}.PXhr7W_phaseChevron,.PXhr7W_stepChevron,.PXhr7W_analysisClusterChevron{color:var(--dsw-alias-label-tertiary);transition:transform var(--watcher-motion-fast) var(--watcher-ease-out);transform:rotate(0)}.PXhr7W_phaseToggle[aria-expanded=true] .PXhr7W_phaseChevron,.PXhr7W_stepToggle[aria-expanded=true] .PXhr7W_stepChevron,.PXhr7W_analysisClusterToggle[aria-expanded=true] .PXhr7W_analysisClusterChevron{transform:rotate(90deg)}.PXhr7W_phaseMarker{box-sizing:border-box;background:var(--dsw-alias-label-tertiary);width:10px;height:10px;box-shadow:0 0 0 4px var(--dsw-specific-menu);border-radius:50%;display:block;position:relative}.PXhr7W_phaseMarker[data-state=active],.PXhr7W_phaseMarker[data-state=current]{background:var(--dsw-static-deepseek-450)}.PXhr7W_phaseMarker[data-state=waiting]{background:var(--dsw-alias-state-warn-primary)}.PXhr7W_phaseMarker[data-state=failure],.PXhr7W_phaseMarker[data-state=interrupted]{background:var(--dsw-alias-state-error-primary)}.PXhr7W_phaseMarker[data-state=partial]{border:1px dashed var(--dsw-alias-label-tertiary);background:var(--dsw-specific-menu)}.PXhr7W_neutralDot{border:1px solid var(--dsw-alias-label-tertiary);background:var(--dsw-alias-label-tertiary);border-radius:50%;flex:none;width:10px;height:10px;display:inline-block;position:relative}.PXhr7W_neutralDot[data-status=unknown]{background:var(--dsw-specific-menu);border-style:dashed}.PXhr7W_phaseCopy,.PXhr7W_occurrenceCopy{flex-direction:column;min-width:0;display:flex}.PXhr7W_phaseTitleLine{align-items:center;gap:6px;min-width:0;display:flex}.PXhr7W_phaseTitle{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:550;line-height:21px;overflow:hidden}.PXhr7W_phaseMeta{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:12px;line-height:18px;overflow:hidden}.PXhr7W_groupBadges{flex:none;align-items:center;gap:4px;display:inline-flex}.PXhr7W_groupBadges span,.PXhr7W_overviewTag,.PXhr7W_patternLabel,.PXhr7W_parallelLabel{border:1px solid var(--dsw-alias-border-l2);min-height:18px;color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;padding:0 5px;font-size:11px;font-weight:500;line-height:16px;display:inline-flex}.PXhr7W_groupBadges [data-kind=retry]{color:var(--dsw-alias-state-error-primary)}.PXhr7W_groupBadges [data-kind=parallel],.PXhr7W_overviewTag[data-state=active],.PXhr7W_overviewTag[data-state=current]{color:var(--dsw-static-deepseek-450)}.PXhr7W_overviewTag[data-state=waiting]{color:var(--dsw-alias-state-warn-primary)}.PXhr7W_overviewTag[data-state=failure],.PXhr7W_overviewTag[data-state=interrupted]{color:var(--dsw-alias-state-error-primary)}.PXhr7W_overviewTag[data-state=partial]{color:var(--dsw-alias-label-tertiary)}.PXhr7W_occurrenceChevron{color:var(--dsw-alias-label-dimmed);opacity:0;transition:opacity var(--watcher-motion-fast) ease, transform var(--watcher-motion-fast) ease;flex:none;transform:translate(-2px)}.PXhr7W_occurrence:hover .PXhr7W_occurrenceChevron,.PXhr7W_occurrence[data-selected] .PXhr7W_occurrenceChevron,.PXhr7W_occurrence:focus-visible .PXhr7W_occurrenceChevron{opacity:1;transform:translate(0)}.PXhr7W_stepTimeline{border-left:1px solid var(--dsw-alias-border-l2);margin:1px 8px 0 28px;padding-left:11px;position:relative}.PXhr7W_overviewStep{min-width:0;position:relative}.PXhr7W_overviewStep+.PXhr7W_overviewStep{margin-top:10px;padding-top:8px}.PXhr7W_overviewStep:before{background:var(--dsw-alias-border-l2);content:\"\";width:8px;height:1px;position:absolute;top:13px;left:-12px}.PXhr7W_overviewStepHeader{min-height:29px}.PXhr7W_stepToggle{box-sizing:border-box;width:100%;min-height:29px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:5px;padding:2px 4px 2px 0;display:grid}.PXhr7W_stepToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.PXhr7W_overviewStepLabel,.PXhr7W_overviewStepSignals{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px;line-height:18px}.PXhr7W_overviewStepLabel{min-width:0;font-family:var(--dsw-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.PXhr7W_overviewStepSignals{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.PXhr7W_overviewOccurrences{position:relative}.PXhr7W_overviewStep[data-parallel] .PXhr7W_overviewOccurrences{border-left:1px solid var(--dsw-static-deepseek-450);padding-left:5px}.PXhr7W_modelStage{border-left:2px solid var(--dsw-static-deepseek-450);background:var(--dsw-alias-bg-layer-2);border-radius:0 7px 7px 0;min-width:0;margin:2px 2px 7px;overflow:hidden}.PXhr7W_modelStage[data-live]{box-shadow:inset 0 0 0 1px var(--dsw-alias-button-ghost-active-border)}.PXhr7W_modelStageToggle{box-sizing:border-box;width:100%;min-height:42px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:12px 8px minmax(0,1fr);align-items:center;gap:7px;padding:5px 9px 5px 7px;display:grid}.PXhr7W_modelStageToggle:hover,.PXhr7W_reasoningToggle:hover,.PXhr7W_groupedModelToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.PXhr7W_modelStageChevron,.PXhr7W_reasoningChevron,.PXhr7W_groupedModelChevron{color:var(--dsw-alias-label-tertiary);transition:transform var(--watcher-motion-fast) var(--watcher-ease-out)}.PXhr7W_modelStageToggle[aria-expanded=true] .PXhr7W_modelStageChevron,.PXhr7W_reasoningToggle[aria-expanded=true] .PXhr7W_reasoningChevron,.PXhr7W_groupedModelToggle[aria-expanded=true] .PXhr7W_groupedModelChevron{transform:rotate(90deg)}.PXhr7W_modelStageGlyph{background:var(--dsw-static-deepseek-450);width:7px;height:7px;box-shadow:0 0 0 3px var(--dsw-alias-button-ghost-active-fill);border-radius:999px}.PXhr7W_modelStageCopy{grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:8px;min-width:0;display:grid}.PXhr7W_modelStageTitle{color:var(--dsw-alias-label-primary);white-space:nowrap;font-size:13px;font-weight:600;line-height:20px}.PXhr7W_modelStageSummary{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.PXhr7W_modelStageBody{padding:2px 10px 10px 20px}.PXhr7W_modelStageBar{background:var(--dsw-alias-border-l2);border-radius:999px;gap:2px;height:5px;margin:2px 0 10px;display:flex;overflow:hidden}.PXhr7W_modelStageBar>span{border-radius:inherit;min-width:3px}.PXhr7W_modelStageBar [data-segment=wait],.PXhr7W_modelStageSwatch[data-segment=wait]{background:var(--dsw-alias-label-dimmed)}.PXhr7W_modelStageBar [data-segment=reasoning],.PXhr7W_modelStageSwatch[data-segment=reasoning]{background:var(--dsw-static-deepseek-450)}.PXhr7W_modelStageBar [data-segment=output],.PXhr7W_modelStageSwatch[data-segment=output]{background:var(--dsw-alias-label-secondary)}.PXhr7W_modelStageBar [data-segment=unattributed],.PXhr7W_modelStageSwatch[data-segment=unattributed]{background:var(--dsw-alias-state-warn-primary)}.PXhr7W_modelStageLedger{grid-template-columns:minmax(0,1fr);gap:5px 12px;margin:0;display:grid}.PXhr7W_modelStageMetric{min-width:0;color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:8px;font-size:12px;line-height:18px;display:flex}.PXhr7W_modelStageMetric dt,.PXhr7W_modelStageMetric dd{margin:0}.PXhr7W_modelStageMetric dt{align-items:center;gap:6px;min-width:0;display:inline-flex}.PXhr7W_modelStageMetric dd{color:var(--dsw-alias-label-secondary);text-align:right;flex:none}.PXhr7W_modelStageSwatch{border-radius:999px;flex:none;width:6px;height:6px}.PXhr7W_modelStageNote{color:var(--dsw-alias-label-tertiary);margin:8px 0 0;font-size:12px;line-height:18px}.PXhr7W_reasoningAttempts{border-top:1px solid var(--dsw-alias-border-l2);margin-top:8px;padding-top:1px}.PXhr7W_reasoningDisclosure{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:6px;min-width:0;margin-top:5px;overflow:hidden}.PXhr7W_reasoningToggle{box-sizing:border-box;width:100%;min-height:34px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:6px;padding:5px 8px;display:grid}.PXhr7W_reasoningLabel{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:550;line-height:20px}.PXhr7W_reasoningMeta{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;text-align:left;white-space:normal;grid-column:2;font-size:12px;line-height:18px;overflow:hidden}.PXhr7W_reasoningBody{box-sizing:border-box;border-top:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-markdown-code-block);max-height:320px;color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);margin:0;padding:10px 12px;font-size:13px;line-height:1.6;overflow:auto}.PXhr7W_reasoningBody>*{margin-top:0;margin-bottom:8px}.PXhr7W_reasoningBody>:last-child{margin-bottom:0}.PXhr7W_reasoningBody .md-code-block{max-width:100%}.PXhr7W_groupedModelStages{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:7px;margin-bottom:9px;position:relative;overflow:hidden}.PXhr7W_groupedModelStages:before{background:var(--dsw-alias-border-l2);content:\"\";width:8px;height:1px;position:absolute;top:20px;left:-12px}.PXhr7W_groupedModelToggle{box-sizing:border-box;width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:7px;padding:5px 9px;display:grid}.PXhr7W_groupedModelToggle>span{justify-content:space-between;align-items:baseline;gap:10px;min-width:0;display:flex}.PXhr7W_groupedModelToggle strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.PXhr7W_groupedModelToggle small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.PXhr7W_groupedModelList{border-top:1px solid var(--dsw-alias-border-l2);padding:0 7px 8px 22px}.PXhr7W_groupedModelStep{min-width:0;padding-top:8px}.PXhr7W_groupedModelStep+.PXhr7W_groupedModelStep{border-top:1px solid var(--dsw-alias-border-l2)}.PXhr7W_groupedModelStepLabel{color:var(--dsw-alias-label-tertiary);font-family:var(--dsw-font-mono);margin:0 2px 4px;font-size:12px;line-height:18px;display:block}.PXhr7W_analysisClusters{border-left:1px solid var(--dsw-alias-border-l2);margin:1px 8px 0 28px;padding-left:11px;position:relative}.PXhr7W_analysisCluster,.PXhr7W_analysisSingleton{min-width:0;position:relative}.PXhr7W_analysisCluster+.PXhr7W_analysisCluster,.PXhr7W_analysisCluster+.PXhr7W_analysisSingleton,.PXhr7W_analysisSingleton+.PXhr7W_analysisCluster,.PXhr7W_analysisSingleton+.PXhr7W_analysisSingleton{margin-top:6px}.PXhr7W_analysisCluster:before,.PXhr7W_analysisSingleton:before{background:var(--dsw-alias-border-l2);content:\"\";width:8px;height:1px;position:absolute;top:20px;left:-12px}.PXhr7W_analysisClusterToggle{box-sizing:border-box;width:100%;min-height:46px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;grid-template-columns:12px 10px minmax(0,1fr) auto;align-items:center;gap:7px;padding:5px 6px 5px 4px;display:grid}.PXhr7W_analysisClusterToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.PXhr7W_analysisCluster[data-open]>.PXhr7W_analysisClusterToggle{border-color:var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2)}.PXhr7W_analysisClusterDotSlot{width:10px;height:10px;display:block;position:relative}.PXhr7W_analysisClusterDot{inset:0;position:absolute!important}.PXhr7W_analysisClusterCopy{flex-direction:column;min-width:0;display:flex}.PXhr7W_analysisClusterTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:550;line-height:20px;overflow:hidden}.PXhr7W_analysisClusterMeta{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.PXhr7W_analysisClusterCount{min-width:28px;color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:12px;font-weight:600;line-height:18px}.PXhr7W_analysisClusterItems{border-left:1px solid var(--dsw-alias-border-l2);margin:3px 0 8px 17px;padding-left:5px}.PXhr7W_overviewOccurrence{box-sizing:border-box;width:100%;min-height:45px;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--watcher-motion-fast) var(--watcher-ease-out), border-color var(--watcher-motion-fast) var(--watcher-ease-out), box-shadow var(--watcher-motion-fast) var(--watcher-ease-out);animation:PXhr7W_watcher-live-append var(--watcher-motion-fast) var(--watcher-ease-out);background:0 0;border:1px solid #0000;border-radius:7px;grid-template-columns:22px 10px minmax(0,1fr) auto 12px;align-items:center;gap:7px;padding:5px 5px 5px 7px;display:grid;position:relative}.PXhr7W_overviewOccurrence+.PXhr7W_overviewOccurrence{margin-top:2px}.PXhr7W_overviewOccurrence:hover{background:var(--dsw-alias-interactive-bg-hover)}.PXhr7W_overviewOccurrence[data-current]:not([data-selected]){background:var(--dsw-alias-bg-layer-2)}.PXhr7W_overviewOccurrence[data-selected]{border-color:var(--dsw-alias-button-ghost-active-border);background:var(--dsw-alias-button-ghost-active-fill);box-shadow:inset 2px 0 0 var(--dsw-static-deepseek-450)}.PXhr7W_overviewOccurrenceIndex{color:var(--dsw-alias-label-dimmed);font-family:var(--dsw-font-mono);font-variant-numeric:tabular-nums;text-align:right;font-size:11px;line-height:18px}.PXhr7W_overviewOccurrenceDotSlot{width:10px;height:10px;display:block;position:relative}.PXhr7W_overviewOccurrenceDot{inset:0;position:absolute!important}.PXhr7W_overviewOccurrenceCopy{flex-direction:column;min-width:0;display:flex}.PXhr7W_overviewOccurrenceTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:550;line-height:20px;overflow:hidden}.PXhr7W_overviewOccurrenceMeta{color:var(--dsw-alias-label-tertiary);font-family:var(--dsw-font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.PXhr7W_overviewOccurrenceDuration{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;line-height:18px}.PXhr7W_overviewOccurrenceChevron{color:var(--dsw-alias-label-dimmed);opacity:0;transition:opacity var(--watcher-motion-fast) ease, transform var(--watcher-motion-fast) ease;transform:translate(-2px)}.PXhr7W_overviewOccurrence:hover .PXhr7W_overviewOccurrenceChevron,.PXhr7W_overviewOccurrence[data-selected] .PXhr7W_overviewOccurrenceChevron,.PXhr7W_overviewOccurrence:focus-visible .PXhr7W_overviewOccurrenceChevron{opacity:1;transform:translate(0)}@keyframes PXhr7W_watcher-live-append{0%{opacity:.5;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.PXhr7W_empty{min-height:250px;color:var(--dsw-alias-label-tertiary);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:28px;display:flex}.PXhr7W_emptyEye{color:var(--dsw-alias-label-secondary);margin-bottom:12px;display:inline-flex}.PXhr7W_empty strong{color:var(--dsw-alias-label-secondary);font-size:14px;font-weight:600;line-height:21px}.PXhr7W_empty>span:last-child{margin-top:4px;font-size:12px;line-height:18px}.PXhr7W_inspector{width:438px;min-width:0;max-height:var(--watcher-panel-max-height);border-right:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);flex-direction:column;flex:none;display:flex}@media (width>=861px){.PXhr7W_inspector{animation:PXhr7W_watcher-inspector-enter var(--watcher-motion-inspector) var(--watcher-ease-glide);overflow:hidden}.PXhr7W_inspector>*{box-sizing:border-box;width:438px;animation:PXhr7W_watcher-inspector-content-in var(--watcher-motion-content-out) var(--watcher-ease-glide) var(--watcher-motion-inspector) both}.PXhr7W_inspector[data-closing]{pointer-events:none;animation:PXhr7W_watcher-inspector-exit var(--watcher-motion-inspector) var(--watcher-ease-glide) var(--watcher-motion-content-out) forwards}.PXhr7W_inspector[data-closing]>*{animation:PXhr7W_watcher-inspector-content-out var(--watcher-motion-content-out) ease-in forwards}}@keyframes PXhr7W_watcher-inspector-enter{0%{width:0}}@keyframes PXhr7W_watcher-inspector-content-in{0%{opacity:0;transform:translate(16px)}}@keyframes PXhr7W_watcher-inspector-content-out{to{opacity:0;transform:translate(16px)}}@keyframes PXhr7W_watcher-inspector-exit{to{width:0}}.PXhr7W_inspectorHeader{border-bottom:1px solid var(--dsw-alias-border-l2);flex:none;padding:16px 16px 14px}.PXhr7W_inspectorBack{min-height:28px;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;margin:-4px 0 8px -6px;padding:0 7px 0 5px;font-size:12px;display:inline-flex}.PXhr7W_inspectorBack:hover{background:var(--dsw-alias-interactive-bg-hover)}.PXhr7W_statusLine,.PXhr7W_detailStatus{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;align-items:center;gap:7px;font-size:12px;line-height:18px;display:flex}.PXhr7W_statusLine[data-status=failure],.PXhr7W_statusLine[data-status=interrupted],.PXhr7W_detailStatus[data-status=failure],.PXhr7W_detailStatus[data-status=interrupted]{color:var(--dsw-alias-state-error-primary)}.PXhr7W_statusLine[data-status=running],.PXhr7W_detailStatus[data-status=running]{color:var(--dsw-static-deepseek-450)}.PXhr7W_statusLine[data-status=waiting],.PXhr7W_detailStatus[data-status=waiting]{color:var(--dsw-alias-state-warn-primary)}.PXhr7W_location{min-width:0;color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;margin-left:auto}.PXhr7W_inspectorTitle{color:var(--dsw-alias-label-primary);margin:8px 0 0;font-size:18px;font-weight:600;line-height:25px}.PXhr7W_inspectorSummary{color:var(--dsw-alias-label-tertiary);margin:3px 0 0;font-size:12px;line-height:18px}.PXhr7W_groupSignals{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.PXhr7W_groupSignals span{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px}.PXhr7W_groupSignals span+span:before{content:\"·\";color:var(--dsw-alias-label-dimmed);margin-right:6px}.PXhr7W_groupSignals [data-retry]{color:var(--dsw-alias-state-warn-primary)}.PXhr7W_groupSignals [data-error]{color:var(--dsw-alias-state-error-primary)}.PXhr7W_inspectorBody{overscroll-behavior:contain;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);flex:1;min-height:0;overflow:auto}.PXhr7W_executionSection{border-bottom:1px solid var(--dsw-alias-border-l2);padding:14px 16px 16px}.PXhr7W_sectionHeading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.PXhr7W_sectionHeading h3{color:var(--dsw-alias-label-secondary);margin:0;font-size:13px;font-weight:600;line-height:20px}.PXhr7W_sectionHeading>span{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px}.PXhr7W_executionList{max-height:188px;padding-right:2px;overflow:auto}.PXhr7W_stepBlock+.PXhr7W_stepBlock{border-top:1px solid var(--dsw-alias-border-l2);margin-top:10px;padding-top:10px}.PXhr7W_stepHeading{min-height:22px;color:var(--dsw-alias-label-tertiary);font-family:var(--dsw-font-mono);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:8px;padding:0 3px;font-size:12px;display:flex}.PXhr7W_stepSignals{align-items:center;gap:6px;min-width:0;display:inline-flex}.PXhr7W_stepDuration{color:var(--dsw-alias-label-secondary);font-family:var(--dsw-font-family);font-variant-numeric:tabular-nums;white-space:nowrap}.PXhr7W_parallelLabel{color:var(--dsw-static-deepseek-450);font-family:var(--dsw-font-family)}.PXhr7W_occurrences{margin-top:4px;position:relative}.PXhr7W_stepBlock[data-parallel] .PXhr7W_occurrences{border-left:1px solid var(--dsw-static-deepseek-450);padding-left:10px}.PXhr7W_occurrence{box-sizing:border-box;width:100%;min-height:46px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:10px minmax(0,1fr) auto 13px;align-items:center;gap:8px;padding:6px 7px;transition:background-color .14s,border-color .14s;display:grid}.PXhr7W_occurrenceDuration{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;line-height:18px}.PXhr7W_occurrence+.PXhr7W_occurrence{margin-top:2px}.PXhr7W_occurrence:hover{background:var(--dsw-alias-interactive-bg-hover)}.PXhr7W_occurrence[data-selected]{border-color:var(--dsw-alias-button-ghost-active-border);background:var(--dsw-alias-button-ghost-active-fill)}.PXhr7W_occurrenceTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550;line-height:19px;overflow:hidden}.PXhr7W_occurrenceMeta{color:var(--dsw-alias-label-tertiary);font-family:var(--dsw-font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.PXhr7W_detailSection{padding:16px}.PXhr7W_detailHeader{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;display:grid}.PXhr7W_detailIdentity{min-width:0}.PXhr7W_detailIdentity h3{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);margin:6px 0 0;font-size:16px;font-weight:600;line-height:23px}.PXhr7W_detailIdentity p{overflow-wrap:anywhere;color:var(--dsw-alias-label-tertiary);font-family:var(--dsw-font-mono);margin:3px 0 0;font-size:12px;line-height:18px}.PXhr7W_patternLabel{color:var(--dsw-alias-state-warn-primary)}.PXhr7W_metrics{font-variant-numeric:tabular-nums;grid-template-columns:auto auto;gap:2px 8px;margin:0;font-size:12px;line-height:18px;display:grid}.PXhr7W_metrics dt{color:var(--dsw-alias-label-tertiary)}.PXhr7W_metrics dd{color:var(--dsw-alias-label-secondary);text-align:right;margin:0}.PXhr7W_metrics [data-error]{color:var(--dsw-alias-state-error-primary)}.PXhr7W_tabs{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:end;gap:4px;margin-top:16px;display:flex}.PXhr7W_tab{min-width:56px;min-height:36px;color:var(--dsw-alias-label-tertiary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 10px;font-size:13px;position:relative}.PXhr7W_tab:hover{color:var(--dsw-alias-label-primary)}.PXhr7W_tab[data-active]{color:var(--dsw-alias-label-primary);font-weight:600}.PXhr7W_tab[data-active]:after{content:\"\";background:var(--dsw-static-deepseek-450);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:9px;right:9px}.PXhr7W_tabPanel{--dsl-terminal-font:400 13px/22px var(--dsw-font-mono);min-height:116px;padding-top:12px}.PXhr7W_tabPanel>*{margin-top:0;margin-bottom:0}.PXhr7W_jsonSurface{font-size:13px;overflow:auto}.PXhr7W_jsonSurface [role=tree]{font-size:13px;line-height:20px}.PXhr7W_rawPanel pre{box-sizing:border-box;width:100%;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-mono);tab-size:2;margin:0;font-size:13px;line-height:20px;overflow:auto}.PXhr7W_documentResult{min-width:0;color:var(--dsw-alias-label-primary);padding:2px 2px 8px}.PXhr7W_documentResult .md-code-block{max-width:100%}.PXhr7W_documentResult blockquote{color:var(--dsw-alias-label-secondary)}.PXhr7W_documentResult table{font-variant-numeric:tabular-nums}.PXhr7W_rawPanel{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-markdown-code-block);border-radius:8px;overflow:hidden}.PXhr7W_rawToolbar{border-bottom:1px solid var(--dsw-alias-border-l2);min-height:38px;color:var(--dsw-alias-label-tertiary);justify-content:space-between;align-items:center;gap:12px;padding:0 10px 0 12px;font-size:12px;display:flex}.PXhr7W_copyRaw{min-height:28px;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;padding:0 6px;font-size:12px;display:inline-flex}.PXhr7W_copyRaw:hover{background:var(--dsw-alias-interactive-bg-hover)}.PXhr7W_rawPanel pre{white-space:pre;max-height:320px;padding:12px}.PXhr7W_artifactResult,.PXhr7W_detailEmpty{border:1px solid var(--dsw-alias-border-l2);min-height:116px;color:var(--dsw-alias-label-tertiary);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:18px;font-size:13px;display:flex}.PXhr7W_artifactResult strong{color:var(--dsw-alias-label-secondary);margin-top:6px;font-size:14px}.PXhr7W_artifactResult>span{margin-top:2px;font-size:12px}.PXhr7W_artifactResult .PXhr7W_jsonSurface{text-align:left;width:100%;margin-top:12px}.PXhr7W_artifactGlyph{color:var(--dsw-static-deepseek-450);font-size:24px;line-height:28px}.PXhr7W_inspectorFooter{border-top:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);flex:none;padding:9px 16px;font-size:12px;line-height:18px}@media (prefers-reduced-motion:reduce){.PXhr7W_inspector,.PXhr7W_inspector>*{animation:none}.PXhr7W_inspector[data-closing],.PXhr7W_inspector[data-closing]>*{animation-duration:.01ms;animation-delay:0s}.PXhr7W_menu,.PXhr7W_trigger[data-live] .PXhr7W_eyePupil,.PXhr7W_trigger[data-live] .PXhr7W_eyeBlink{animation:none}.PXhr7W_trigger,.PXhr7W_overviewOccurrence,.PXhr7W_turnChevron,.PXhr7W_phaseChevron,.PXhr7W_stepChevron,.PXhr7W_analysisClusterChevron,.PXhr7W_modelStageChevron,.PXhr7W_reasoningChevron,.PXhr7W_groupedModelChevron,.PXhr7W_occurrence,.PXhr7W_overviewOccurrenceChevron,.PXhr7W_occurrenceChevron{transition-duration:.01ms}.PXhr7W_overviewOccurrence{animation:none}.PXhr7W_root [data-state=ongoing] rect,.PXhr7W_menu [data-state=ongoing] rect{opacity:.55;animation:none!important}}@media (width<=860px){.PXhr7W_menu{flex-direction:column-reverse;width:min(720px,100vw - 24px);max-height:calc(100vh - 88px)}.PXhr7W_workPicture{width:auto;min-height:250px;max-height:none}.PXhr7W_menu:not(:has(.PXhr7W_inspector)){height:min(680px,100vh - 88px)}.PXhr7W_menu:not(:has(.PXhr7W_inspector)) .PXhr7W_workPicture{flex:auto}.PXhr7W_inspector{border-right:0;width:auto;max-height:none}.PXhr7W_menu:has(.PXhr7W_inspector){height:min(680px,100vh - 88px)}.PXhr7W_menu:has(.PXhr7W_inspector) .PXhr7W_workPicture{display:none}.PXhr7W_menu:has(.PXhr7W_inspector) .PXhr7W_inspector{flex:auto;min-height:0;max-height:none}.PXhr7W_inspectorBack svg{transform:rotate(180deg)}.PXhr7W_inspectorHeader{padding-top:14px}.PXhr7W_executionList{max-height:150px}}@media (width<=520px){.PXhr7W_menu{width:calc(100vw - 24px)}.PXhr7W_pictureHeader{padding:14px 12px}.PXhr7W_now{font-size:16px}.PXhr7W_turns{padding-inline:6px}.PXhr7W_groupBadges span:nth-child(n+2){display:none}.PXhr7W_inspectorHeader,.PXhr7W_executionSection,.PXhr7W_detailSection{padding-inline:12px}.PXhr7W_detailHeader{grid-template-columns:1fr}.PXhr7W_metrics{grid-template-columns:auto 1fr}.PXhr7W_metrics dd{text-align:left}.PXhr7W_modelStageCopy{grid-template-columns:1fr;gap:0}.PXhr7W_modelStageSummary{white-space:normal}.PXhr7W_modelStageLedger{grid-template-columns:1fr}.PXhr7W_reasoningToggle{grid-template-columns:12px minmax(0,1fr)}.PXhr7W_reasoningMeta{text-align:left;white-space:normal;grid-column:2}.PXhr7W_groupedModelToggle>span{gap:0;display:grid}.PXhr7W_groupedModelToggle small{white-space:normal}.PXhr7W_groupedModelList{padding-left:12px}}";
1695
1721
  const tagId$2 = "dsh-watcher/Watcher.module.css";
1696
1722
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
1697
1723
  const tag = document.createElement("style");
@@ -1701,167 +1727,168 @@ window.__ModuleLoader__.load({
1701
1727
  document.head.appendChild(tag);
1702
1728
  }
1703
1729
  var Watcher_module_css_default = {
1704
- "analysisCluster": "qzKc3a_analysisCluster",
1705
- "analysisClusterChevron": "qzKc3a_analysisClusterChevron",
1706
- "analysisClusterCopy": "qzKc3a_analysisClusterCopy",
1707
- "analysisClusterCount": "qzKc3a_analysisClusterCount",
1708
- "analysisClusterDot": "qzKc3a_analysisClusterDot",
1709
- "analysisClusterDotSlot": "qzKc3a_analysisClusterDotSlot",
1710
- "analysisClusterItems": "qzKc3a_analysisClusterItems",
1711
- "analysisClusterMeta": "qzKc3a_analysisClusterMeta",
1712
- "analysisClusters": "qzKc3a_analysisClusters",
1713
- "analysisClusterTitle": "qzKc3a_analysisClusterTitle",
1714
- "analysisClusterToggle": "qzKc3a_analysisClusterToggle",
1715
- "analysisSingleton": "qzKc3a_analysisSingleton",
1716
- "artifactGlyph": "qzKc3a_artifactGlyph",
1717
- "artifactResult": "qzKc3a_artifactResult",
1718
- "copyRaw": "qzKc3a_copyRaw",
1719
- "detailEmpty": "qzKc3a_detailEmpty",
1720
- "detailHeader": "qzKc3a_detailHeader",
1721
- "detailIdentity": "qzKc3a_detailIdentity",
1722
- "detailSection": "qzKc3a_detailSection",
1723
- "detailStatus": "qzKc3a_detailStatus",
1724
- "documentResult": "qzKc3a_documentResult",
1725
- "empty": "qzKc3a_empty",
1726
- "emptyEye": "qzKc3a_emptyEye",
1727
- "executionList": "qzKc3a_executionList",
1728
- "executionSection": "qzKc3a_executionSection",
1729
- "eye": "qzKc3a_eye",
1730
- "eyeBlink": "qzKc3a_eyeBlink",
1731
- "eyebrow": "qzKc3a_eyebrow",
1732
- "eyePupil": "qzKc3a_eyePupil",
1733
- "follow": "qzKc3a_follow",
1734
- "groupBadges": "qzKc3a_groupBadges",
1735
- "groupedModelChevron": "qzKc3a_groupedModelChevron",
1736
- "groupedModelList": "qzKc3a_groupedModelList",
1737
- "groupedModelStages": "qzKc3a_groupedModelStages",
1738
- "groupedModelStep": "qzKc3a_groupedModelStep",
1739
- "groupedModelStepLabel": "qzKc3a_groupedModelStepLabel",
1740
- "groupedModelToggle": "qzKc3a_groupedModelToggle",
1741
- "groupRail": "qzKc3a_groupRail",
1742
- "groupSignals": "qzKc3a_groupSignals",
1743
- "historyNotice": "qzKc3a_historyNotice",
1744
- "historyNoticeCopy": "qzKc3a_historyNoticeCopy",
1745
- "inspector": "qzKc3a_inspector",
1746
- "inspectorBack": "qzKc3a_inspectorBack",
1747
- "inspectorBody": "qzKc3a_inspectorBody",
1748
- "inspectorFooter": "qzKc3a_inspectorFooter",
1749
- "inspectorHeader": "qzKc3a_inspectorHeader",
1750
- "inspectorSummary": "qzKc3a_inspectorSummary",
1751
- "inspectorTitle": "qzKc3a_inspectorTitle",
1752
- "jsonSurface": "qzKc3a_jsonSurface",
1753
- "loadAllInlineBtn": "qzKc3a_loadAllInlineBtn",
1754
- "location": "qzKc3a_location",
1755
- "menu": "qzKc3a_menu",
1756
- "metrics": "qzKc3a_metrics",
1757
- "modelStage": "qzKc3a_modelStage",
1758
- "modelStageBar": "qzKc3a_modelStageBar",
1759
- "modelStageBody": "qzKc3a_modelStageBody",
1760
- "modelStageChevron": "qzKc3a_modelStageChevron",
1761
- "modelStageCopy": "qzKc3a_modelStageCopy",
1762
- "modelStageGlyph": "qzKc3a_modelStageGlyph",
1763
- "modelStageLedger": "qzKc3a_modelStageLedger",
1764
- "modelStageMetric": "qzKc3a_modelStageMetric",
1765
- "modelStageNote": "qzKc3a_modelStageNote",
1766
- "modelStageSummary": "qzKc3a_modelStageSummary",
1767
- "modelStageSwatch": "qzKc3a_modelStageSwatch",
1768
- "modelStageTitle": "qzKc3a_modelStageTitle",
1769
- "modelStageToggle": "qzKc3a_modelStageToggle",
1770
- "neutralDot": "qzKc3a_neutralDot",
1771
- "now": "qzKc3a_now",
1772
- "nowBlock": "qzKc3a_nowBlock",
1773
- "occurrence": "qzKc3a_occurrence",
1774
- "occurrenceChevron": "qzKc3a_occurrenceChevron",
1775
- "occurrenceCopy": "qzKc3a_occurrenceCopy",
1776
- "occurrenceDuration": "qzKc3a_occurrenceDuration",
1777
- "occurrenceMeta": "qzKc3a_occurrenceMeta",
1778
- "occurrences": "qzKc3a_occurrences",
1779
- "occurrenceTitle": "qzKc3a_occurrenceTitle",
1780
- "overviewOccurrence": "qzKc3a_overviewOccurrence",
1781
- "overviewOccurrenceChevron": "qzKc3a_overviewOccurrenceChevron",
1782
- "overviewOccurrenceCopy": "qzKc3a_overviewOccurrenceCopy",
1783
- "overviewOccurrenceDot": "qzKc3a_overviewOccurrenceDot",
1784
- "overviewOccurrenceDotSlot": "qzKc3a_overviewOccurrenceDotSlot",
1785
- "overviewOccurrenceDuration": "qzKc3a_overviewOccurrenceDuration",
1786
- "overviewOccurrenceIndex": "qzKc3a_overviewOccurrenceIndex",
1787
- "overviewOccurrenceMeta": "qzKc3a_overviewOccurrenceMeta",
1788
- "overviewOccurrences": "qzKc3a_overviewOccurrences",
1789
- "overviewOccurrenceTitle": "qzKc3a_overviewOccurrenceTitle",
1790
- "overviewStep": "qzKc3a_overviewStep",
1791
- "overviewStepHeader": "qzKc3a_overviewStepHeader",
1792
- "overviewStepLabel": "qzKc3a_overviewStepLabel",
1793
- "overviewStepSignals": "qzKc3a_overviewStepSignals",
1794
- "overviewTag": "qzKc3a_overviewTag",
1795
- "parallelLabel": "qzKc3a_parallelLabel",
1796
- "patternLabel": "qzKc3a_patternLabel",
1797
- "phase": "qzKc3a_phase",
1798
- "phaseChevron": "qzKc3a_phaseChevron",
1799
- "phaseCopy": "qzKc3a_phaseCopy",
1800
- "phaseHeader": "qzKc3a_phaseHeader",
1801
- "phaseMarker": "qzKc3a_phaseMarker",
1802
- "phaseMeta": "qzKc3a_phaseMeta",
1803
- "phaseTitle": "qzKc3a_phaseTitle",
1804
- "phaseTitleLine": "qzKc3a_phaseTitleLine",
1805
- "phaseToggle": "qzKc3a_phaseToggle",
1806
- "pictureHeader": "qzKc3a_pictureHeader",
1807
- "railLine": "qzKc3a_railLine",
1808
- "railViewport": "qzKc3a_railViewport",
1809
- "rawPanel": "qzKc3a_rawPanel",
1810
- "rawToolbar": "qzKc3a_rawToolbar",
1811
- "reasoningAttempts": "qzKc3a_reasoningAttempts",
1812
- "reasoningBody": "qzKc3a_reasoningBody",
1813
- "reasoningChevron": "qzKc3a_reasoningChevron",
1814
- "reasoningDisclosure": "qzKc3a_reasoningDisclosure",
1815
- "reasoningLabel": "qzKc3a_reasoningLabel",
1816
- "reasoningMeta": "qzKc3a_reasoningMeta",
1817
- "reasoningToggle": "qzKc3a_reasoningToggle",
1818
- "resizeEdgeBottom": "qzKc3a_resizeEdgeBottom",
1819
- "resizeEdgeRight": "qzKc3a_resizeEdgeRight",
1820
- "resizeGrip": "qzKc3a_resizeGrip",
1821
- "root": "qzKc3a_root",
1822
- "sectionHeading": "qzKc3a_sectionHeading",
1823
- "sessionTiming": "qzKc3a_sessionTiming",
1824
- "sessionTimingMetric": "qzKc3a_sessionTimingMetric",
1825
- "statusLine": "qzKc3a_statusLine",
1826
- "stepBlock": "qzKc3a_stepBlock",
1827
- "stepChevron": "qzKc3a_stepChevron",
1828
- "stepDuration": "qzKc3a_stepDuration",
1829
- "stepHeading": "qzKc3a_stepHeading",
1830
- "stepSignals": "qzKc3a_stepSignals",
1831
- "stepTimeline": "qzKc3a_stepTimeline",
1832
- "stepToggle": "qzKc3a_stepToggle",
1833
- "summary": "qzKc3a_summary",
1834
- "tab": "qzKc3a_tab",
1835
- "tabPanel": "qzKc3a_tabPanel",
1836
- "tabs": "qzKc3a_tabs",
1837
- "trigger": "qzKc3a_trigger",
1838
- "turn": "qzKc3a_turn",
1839
- "turnBody": "qzKc3a_turnBody",
1840
- "turnChevron": "qzKc3a_turnChevron",
1841
- "turnCopy": "qzKc3a_turnCopy",
1842
- "turnDuration": "qzKc3a_turnDuration",
1843
- "turnHeader": "qzKc3a_turnHeader",
1844
- "turnPerformance": "qzKc3a_turnPerformance",
1845
- "turns": "qzKc3a_turns",
1846
- "turnSpeed": "qzKc3a_turnSpeed",
1847
- "turnSummary": "qzKc3a_turnSummary",
1848
- "turnTitle": "qzKc3a_turnTitle",
1849
- "turnTitleLine": "qzKc3a_turnTitleLine",
1850
- "turnToggle": "qzKc3a_turnToggle",
1851
- "unread": "qzKc3a_unread",
1852
- "viewControl": "qzKc3a_viewControl",
1853
- "viewMode": "qzKc3a_viewMode",
1854
- "viewToolbar": "qzKc3a_viewToolbar",
1855
- "viewToolbarLabel": "qzKc3a_viewToolbarLabel",
1856
- "watcher-eye-blink": "qzKc3a_watcher-eye-blink",
1857
- "watcher-eye-scan": "qzKc3a_watcher-eye-scan",
1858
- "watcher-inspector-content-in": "qzKc3a_watcher-inspector-content-in",
1859
- "watcher-inspector-content-out": "qzKc3a_watcher-inspector-content-out",
1860
- "watcher-inspector-enter": "qzKc3a_watcher-inspector-enter",
1861
- "watcher-inspector-exit": "qzKc3a_watcher-inspector-exit",
1862
- "watcher-live-append": "qzKc3a_watcher-live-append",
1863
- "watcher-panel-enter": "qzKc3a_watcher-panel-enter",
1864
- "workPicture": "qzKc3a_workPicture"
1730
+ "analysisCluster": "PXhr7W_analysisCluster",
1731
+ "analysisClusterChevron": "PXhr7W_analysisClusterChevron",
1732
+ "analysisClusterCopy": "PXhr7W_analysisClusterCopy",
1733
+ "analysisClusterCount": "PXhr7W_analysisClusterCount",
1734
+ "analysisClusterDot": "PXhr7W_analysisClusterDot",
1735
+ "analysisClusterDotSlot": "PXhr7W_analysisClusterDotSlot",
1736
+ "analysisClusterItems": "PXhr7W_analysisClusterItems",
1737
+ "analysisClusterMeta": "PXhr7W_analysisClusterMeta",
1738
+ "analysisClusters": "PXhr7W_analysisClusters",
1739
+ "analysisClusterTitle": "PXhr7W_analysisClusterTitle",
1740
+ "analysisClusterToggle": "PXhr7W_analysisClusterToggle",
1741
+ "analysisSingleton": "PXhr7W_analysisSingleton",
1742
+ "artifactGlyph": "PXhr7W_artifactGlyph",
1743
+ "artifactResult": "PXhr7W_artifactResult",
1744
+ "copyRaw": "PXhr7W_copyRaw",
1745
+ "detailEmpty": "PXhr7W_detailEmpty",
1746
+ "detailHeader": "PXhr7W_detailHeader",
1747
+ "detailIdentity": "PXhr7W_detailIdentity",
1748
+ "detailSection": "PXhr7W_detailSection",
1749
+ "detailStatus": "PXhr7W_detailStatus",
1750
+ "documentResult": "PXhr7W_documentResult",
1751
+ "empty": "PXhr7W_empty",
1752
+ "emptyEye": "PXhr7W_emptyEye",
1753
+ "executionList": "PXhr7W_executionList",
1754
+ "executionSection": "PXhr7W_executionSection",
1755
+ "eye": "PXhr7W_eye",
1756
+ "eyeBlink": "PXhr7W_eyeBlink",
1757
+ "eyebrow": "PXhr7W_eyebrow",
1758
+ "eyePupil": "PXhr7W_eyePupil",
1759
+ "follow": "PXhr7W_follow",
1760
+ "groupBadges": "PXhr7W_groupBadges",
1761
+ "groupedModelChevron": "PXhr7W_groupedModelChevron",
1762
+ "groupedModelList": "PXhr7W_groupedModelList",
1763
+ "groupedModelStages": "PXhr7W_groupedModelStages",
1764
+ "groupedModelStep": "PXhr7W_groupedModelStep",
1765
+ "groupedModelStepLabel": "PXhr7W_groupedModelStepLabel",
1766
+ "groupedModelToggle": "PXhr7W_groupedModelToggle",
1767
+ "groupRail": "PXhr7W_groupRail",
1768
+ "groupSignals": "PXhr7W_groupSignals",
1769
+ "historyNotice": "PXhr7W_historyNotice",
1770
+ "historyNoticeCopy": "PXhr7W_historyNoticeCopy",
1771
+ "inspector": "PXhr7W_inspector",
1772
+ "inspectorBack": "PXhr7W_inspectorBack",
1773
+ "inspectorBody": "PXhr7W_inspectorBody",
1774
+ "inspectorFooter": "PXhr7W_inspectorFooter",
1775
+ "inspectorHeader": "PXhr7W_inspectorHeader",
1776
+ "inspectorSummary": "PXhr7W_inspectorSummary",
1777
+ "inspectorTitle": "PXhr7W_inspectorTitle",
1778
+ "jsonSurface": "PXhr7W_jsonSurface",
1779
+ "loadAllInlineBtn": "PXhr7W_loadAllInlineBtn",
1780
+ "location": "PXhr7W_location",
1781
+ "menu": "PXhr7W_menu",
1782
+ "metrics": "PXhr7W_metrics",
1783
+ "modelStage": "PXhr7W_modelStage",
1784
+ "modelStageBar": "PXhr7W_modelStageBar",
1785
+ "modelStageBody": "PXhr7W_modelStageBody",
1786
+ "modelStageChevron": "PXhr7W_modelStageChevron",
1787
+ "modelStageCopy": "PXhr7W_modelStageCopy",
1788
+ "modelStageGlyph": "PXhr7W_modelStageGlyph",
1789
+ "modelStageLedger": "PXhr7W_modelStageLedger",
1790
+ "modelStageMetric": "PXhr7W_modelStageMetric",
1791
+ "modelStageNote": "PXhr7W_modelStageNote",
1792
+ "modelStageSummary": "PXhr7W_modelStageSummary",
1793
+ "modelStageSwatch": "PXhr7W_modelStageSwatch",
1794
+ "modelStageTitle": "PXhr7W_modelStageTitle",
1795
+ "modelStageToggle": "PXhr7W_modelStageToggle",
1796
+ "neutralDot": "PXhr7W_neutralDot",
1797
+ "now": "PXhr7W_now",
1798
+ "nowBlock": "PXhr7W_nowBlock",
1799
+ "occurrence": "PXhr7W_occurrence",
1800
+ "occurrenceChevron": "PXhr7W_occurrenceChevron",
1801
+ "occurrenceCopy": "PXhr7W_occurrenceCopy",
1802
+ "occurrenceDuration": "PXhr7W_occurrenceDuration",
1803
+ "occurrenceMeta": "PXhr7W_occurrenceMeta",
1804
+ "occurrences": "PXhr7W_occurrences",
1805
+ "occurrenceTitle": "PXhr7W_occurrenceTitle",
1806
+ "overviewOccurrence": "PXhr7W_overviewOccurrence",
1807
+ "overviewOccurrenceChevron": "PXhr7W_overviewOccurrenceChevron",
1808
+ "overviewOccurrenceCopy": "PXhr7W_overviewOccurrenceCopy",
1809
+ "overviewOccurrenceDot": "PXhr7W_overviewOccurrenceDot",
1810
+ "overviewOccurrenceDotSlot": "PXhr7W_overviewOccurrenceDotSlot",
1811
+ "overviewOccurrenceDuration": "PXhr7W_overviewOccurrenceDuration",
1812
+ "overviewOccurrenceIndex": "PXhr7W_overviewOccurrenceIndex",
1813
+ "overviewOccurrenceMeta": "PXhr7W_overviewOccurrenceMeta",
1814
+ "overviewOccurrences": "PXhr7W_overviewOccurrences",
1815
+ "overviewOccurrenceTitle": "PXhr7W_overviewOccurrenceTitle",
1816
+ "overviewStep": "PXhr7W_overviewStep",
1817
+ "overviewStepHeader": "PXhr7W_overviewStepHeader",
1818
+ "overviewStepLabel": "PXhr7W_overviewStepLabel",
1819
+ "overviewStepSignals": "PXhr7W_overviewStepSignals",
1820
+ "overviewTag": "PXhr7W_overviewTag",
1821
+ "parallelLabel": "PXhr7W_parallelLabel",
1822
+ "patternLabel": "PXhr7W_patternLabel",
1823
+ "phase": "PXhr7W_phase",
1824
+ "phaseChevron": "PXhr7W_phaseChevron",
1825
+ "phaseCopy": "PXhr7W_phaseCopy",
1826
+ "phaseHeader": "PXhr7W_phaseHeader",
1827
+ "phaseMarker": "PXhr7W_phaseMarker",
1828
+ "phaseMeta": "PXhr7W_phaseMeta",
1829
+ "phaseTitle": "PXhr7W_phaseTitle",
1830
+ "phaseTitleLine": "PXhr7W_phaseTitleLine",
1831
+ "phaseToggle": "PXhr7W_phaseToggle",
1832
+ "pictureHeader": "PXhr7W_pictureHeader",
1833
+ "railLine": "PXhr7W_railLine",
1834
+ "railViewport": "PXhr7W_railViewport",
1835
+ "rawPanel": "PXhr7W_rawPanel",
1836
+ "rawToolbar": "PXhr7W_rawToolbar",
1837
+ "reasoningAttempts": "PXhr7W_reasoningAttempts",
1838
+ "reasoningBody": "PXhr7W_reasoningBody",
1839
+ "reasoningChevron": "PXhr7W_reasoningChevron",
1840
+ "reasoningDisclosure": "PXhr7W_reasoningDisclosure",
1841
+ "reasoningLabel": "PXhr7W_reasoningLabel",
1842
+ "reasoningMeta": "PXhr7W_reasoningMeta",
1843
+ "reasoningToggle": "PXhr7W_reasoningToggle",
1844
+ "resizeEdgeBottom": "PXhr7W_resizeEdgeBottom",
1845
+ "resizeEdgeRight": "PXhr7W_resizeEdgeRight",
1846
+ "resizeGrip": "PXhr7W_resizeGrip",
1847
+ "root": "PXhr7W_root",
1848
+ "sectionHeading": "PXhr7W_sectionHeading",
1849
+ "sessionTiming": "PXhr7W_sessionTiming",
1850
+ "sessionTimingMetric": "PXhr7W_sessionTimingMetric",
1851
+ "sidebarHost": "PXhr7W_sidebarHost",
1852
+ "statusLine": "PXhr7W_statusLine",
1853
+ "stepBlock": "PXhr7W_stepBlock",
1854
+ "stepChevron": "PXhr7W_stepChevron",
1855
+ "stepDuration": "PXhr7W_stepDuration",
1856
+ "stepHeading": "PXhr7W_stepHeading",
1857
+ "stepSignals": "PXhr7W_stepSignals",
1858
+ "stepTimeline": "PXhr7W_stepTimeline",
1859
+ "stepToggle": "PXhr7W_stepToggle",
1860
+ "summary": "PXhr7W_summary",
1861
+ "tab": "PXhr7W_tab",
1862
+ "tabPanel": "PXhr7W_tabPanel",
1863
+ "tabs": "PXhr7W_tabs",
1864
+ "trigger": "PXhr7W_trigger",
1865
+ "turn": "PXhr7W_turn",
1866
+ "turnBody": "PXhr7W_turnBody",
1867
+ "turnChevron": "PXhr7W_turnChevron",
1868
+ "turnCopy": "PXhr7W_turnCopy",
1869
+ "turnDuration": "PXhr7W_turnDuration",
1870
+ "turnHeader": "PXhr7W_turnHeader",
1871
+ "turnPerformance": "PXhr7W_turnPerformance",
1872
+ "turns": "PXhr7W_turns",
1873
+ "turnSpeed": "PXhr7W_turnSpeed",
1874
+ "turnSummary": "PXhr7W_turnSummary",
1875
+ "turnTitle": "PXhr7W_turnTitle",
1876
+ "turnTitleLine": "PXhr7W_turnTitleLine",
1877
+ "turnToggle": "PXhr7W_turnToggle",
1878
+ "unread": "PXhr7W_unread",
1879
+ "viewControl": "PXhr7W_viewControl",
1880
+ "viewMode": "PXhr7W_viewMode",
1881
+ "viewToolbar": "PXhr7W_viewToolbar",
1882
+ "viewToolbarLabel": "PXhr7W_viewToolbarLabel",
1883
+ "watcher-eye-blink": "PXhr7W_watcher-eye-blink",
1884
+ "watcher-eye-scan": "PXhr7W_watcher-eye-scan",
1885
+ "watcher-inspector-content-in": "PXhr7W_watcher-inspector-content-in",
1886
+ "watcher-inspector-content-out": "PXhr7W_watcher-inspector-content-out",
1887
+ "watcher-inspector-enter": "PXhr7W_watcher-inspector-enter",
1888
+ "watcher-inspector-exit": "PXhr7W_watcher-inspector-exit",
1889
+ "watcher-live-append": "PXhr7W_watcher-live-append",
1890
+ "watcher-panel-enter": "PXhr7W_watcher-panel-enter",
1891
+ "workPicture": "PXhr7W_workPicture"
1865
1892
  };
1866
1893
  //#endregion
1867
1894
  //#region src/insights/presentation.mjs
@@ -1925,7 +1952,7 @@ window.__ModuleLoader__.load({
1925
1952
  const candidate = rawCandidate?.val ?? rawCandidate;
1926
1953
  let value = null, error = null;
1927
1954
  if (row.origin === "subagent") error = "直接子代理暂未纳入;避免重复计算继承前缀";
1928
- else if (candidate?.version === 1 && candidate.sessionId === row.sessionId && candidate.totals && Array.isArray(candidate.models) && Array.isArray(candidate.findings)) value = candidate;
1955
+ else if ((candidate?.version === 2 || candidate?.version === 1) && candidate.sessionId === row.sessionId && candidate.totals && Array.isArray(candidate.models) && Array.isArray(candidate.findings)) value = candidate;
1929
1956
  else error = "尚无 Watcher 统计缓存;在加载插件后运行或打开此会话,再刷新统计";
1930
1957
  return {
1931
1958
  sessionId: row.sessionId,
@@ -3203,8 +3230,8 @@ window.__ModuleLoader__.load({
3203
3230
  return serializeEffectivePricing(defaultPricing());
3204
3231
  }
3205
3232
  //#endregion
3206
- //#region \0dshx-css-module:/agent/repos/dsh-watcher/src/client/Insights.module.css.mjs
3207
- const css$1 = "._3jWyTq_hudBox{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-specific-menu);width:100%;font-family:var(--dsw-font-family);flex:none}._3jWyTq_hudTop{background:var(--dsw-alias-bg-layer-2);border-bottom:1px solid var(--dsw-alias-border-l2);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;display:flex}._3jWyTq_hudTopLeft{flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;display:flex}._3jWyTq_hudHeading{color:var(--dsw-alias-label-secondary);white-space:nowrap;font-size:11px;font-weight:600}._3jWyTq_currentModelTag{background:var(--dsw-alias-interactive-bg-hover);white-space:nowrap;border-radius:4px;flex-shrink:1;align-items:center;gap:5px;min-width:0;max-width:100%;padding:1px 6px;font-size:11px;display:inline-flex}._3jWyTq_modelTagText{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}._3jWyTq_effortTag{color:var(--dsw-static-deepseek-450,#5686fe);white-space:nowrap;background:#5686fe1f;border-radius:3px;flex-shrink:0;padding:0 5px;font-size:10px;font-weight:600;line-height:14px}._3jWyTq_contextTag{color:var(--dsw-alias-label-secondary,#5f636d);background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e2e8f0);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:4px;flex-shrink:0;padding:1px 7px;font-size:11px}._3jWyTq_hudTopRight{flex-shrink:0;align-items:center;gap:10px;display:flex}._3jWyTq_collapseBtn{width:20px;height:20px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}._3jWyTq_collapseBtn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._3jWyTq_collapseChevron{font-size:11px;transition:transform .12s;display:inline-block}._3jWyTq_hudBox[data-collapsed] ._3jWyTq_collapseChevron{transform:rotate(-90deg)}._3jWyTq_hudBox[data-collapsed] ._3jWyTq_hudTop{border-bottom:none}._3jWyTq_tokenStat{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}._3jWyTq_tokenStat strong{color:var(--dsw-alias-label-primary)}._3jWyTq_costStat{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}._3jWyTq_costStat strong{color:var(--dsw-alias-label-primary)}._3jWyTq_scopeGroup{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:5px;gap:1px;padding:1px;display:inline-flex}._3jWyTq_scopeBtn{color:var(--dsw-alias-label-tertiary);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:3px;padding:2px 7px;font-size:11px;line-height:14px;transition:all .12s}._3jWyTq_scopeBtn[data-active]{background:var(--dsw-specific-menu);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1);font-weight:600}._3jWyTq_modelTabBar{background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l2);gap:4px;padding:6px 14px;display:flex;overflow-x:auto}._3jWyTq_modelTabBtn{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-specific-menu);color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:11px;transition:all .12s}._3jWyTq_modelTabBtn[data-active]{background:var(--dsw-static-deepseek-450,#5686fe);color:#fff;border-color:var(--dsw-static-deepseek-450,#5686fe);font-weight:600}._3jWyTq_hudBody{padding:10px 14px}._3jWyTq_alertSection{flex-direction:column;gap:6px;margin-top:8px;display:flex}._3jWyTq_alertCard{border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}._3jWyTq_alertCardDanger{background:#e5484d14;border:1px solid #e5484d40}._3jWyTq_alertCardWarn{background:#f59e0b14;border:1px solid #f59e0b40}._3jWyTq_alertLeft{align-items:center;gap:8px;min-width:0;display:flex}._3jWyTq_alertTag{color:#fff;border-radius:3px;flex:none;padding:1px 5px;font-size:10px;font-weight:600}._3jWyTq_tagDanger{background:var(--dsw-alias-state-error-primary,#e5484d)}._3jWyTq_tagWarn{background:#f59e0b}._3jWyTq_alertTexts{flex-direction:column;min-width:0;display:flex}._3jWyTq_alertMainText{color:var(--dsw-alias-label-primary);font-size:12px;font-weight:600}._3jWyTq_alertSubText{color:var(--dsw-alias-label-secondary);font-size:11px}._3jWyTq_alertActionBtn{color:var(--dsw-static-deepseek-450,#5686fe);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:2px 6px;font-size:11px;font-weight:600}._3jWyTq_settingsContainer{width:100%;min-width:0;max-width:100%;color:var(--dsw-alias-label-primary);box-sizing:border-box;flex-direction:column;gap:14px;padding:0 0 24px;display:flex;overflow-x:hidden}._3jWyTq_cockpitHeader{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;display:flex}._3jWyTq_cockpitTitleArea h2{color:var(--dsw-alias-label-primary);letter-spacing:-.3px;margin:0;font-size:17px;font-weight:700}._3jWyTq_cockpitSubTitle{color:var(--dsw-alias-label-tertiary);margin:3px 0 0;font-size:12px}._3jWyTq_headerRightControls{align-items:center;gap:8px;display:flex}._3jWyTq_rangeSwitchGroup{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;padding:2px;display:flex}._3jWyTq_rangeBtn{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 10px;font-size:11px;font-weight:600;transition:all .12s}._3jWyTq_rangeBtn[data-active]{background:var(--dsw-specific-menu);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1)}._3jWyTq_settingsScanBtn{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:500;transition:all .12s}._3jWyTq_heroStatsRow{border-bottom:1px solid var(--dsw-alias-border-l2);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;padding-bottom:10px;display:flex}._3jWyTq_heroPair{flex-wrap:wrap;align-items:flex-start;gap:40px;min-width:0;display:flex}._3jWyTq_heroMetric{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:flex}._3jWyTq_heroCaption{color:var(--dsw-alias-label-secondary);font-size:11px;font-weight:600;line-height:1.2}._3jWyTq_heroValue{letter-spacing:-.5px;color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1.15}._3jWyTq_heroFootnote{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:1.3}._3jWyTq_heroMetaCol{color:var(--dsw-alias-label-secondary);white-space:nowrap;flex-wrap:nowrap;gap:14px;font-size:12px;display:flex}._3jWyTq_heroMetaCol strong{color:var(--dsw-alias-label-primary)}._3jWyTq_roastGrid{box-sizing:border-box;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;display:grid}@media (width<=440px){._3jWyTq_roastGrid{grid-template-columns:1fr}}._3jWyTq_roastItem{background:var(--dsw-specific-menu);border:1px solid var(--dsw-alias-border-l2);min-height:136px;box-shadow:var(--dsw-shadow-lv1);cursor:pointer;user-select:none;box-sizing:border-box;border-radius:8px;flex-direction:column;justify-content:space-between;padding:12px 14px;transition:all .12s;display:flex}._3jWyTq_roastItem:hover{background:var(--dsw-alias-bg-layer-2);border-color:var(--dsw-alias-border-l3);transform:translateY(-1px)}._3jWyTq_roastItemActive{background:var(--dsw-alias-bg-layer-2);box-shadow:0 0 0 1px var(--dsw-static-deepseek-450,#5686fe);border-color:var(--dsw-static-deepseek-450,#5686fe)!important}._3jWyTq_roastHead{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._3jWyTq_roastTag{letter-spacing:.3px;font-size:11px;font-weight:700}._3jWyTq_roastCategoryBadge{color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1,#0000000f);border-radius:3px;padding:1px 4px;font-size:9px;line-height:1.2}._3jWyTq_roastTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;line-height:18px;overflow:hidden}._3jWyTq_roastDesc{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:10px;line-height:15px;overflow:hidden}._3jWyTq_roastVal{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:12px;font-weight:700;overflow:hidden}._3jWyTq_roastFooter{border-top:1px dashed var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);justify-content:space-between;align-items:center;margin-top:10px;padding-top:8px;font-size:10px;line-height:1;display:flex}._3jWyTq_roastFooterLeft{text-overflow:ellipsis;white-space:nowrap;max-width:110px;overflow:hidden}._3jWyTq_roastAction{color:var(--dsw-alias-label-secondary);flex-shrink:0;font-weight:600;transition:color .12s}._3jWyTq_roastItem:hover ._3jWyTq_roastAction,._3jWyTq_roastItemActive ._3jWyTq_roastAction{color:var(--dsw-static-deepseek-450,#5686fe)}._3jWyTq_drilldownPanel{background:var(--dsw-specific-menu);border:1px solid var(--dsw-static-deepseek-450,#5686fe);box-shadow:var(--dsw-shadow-lv2,0 4px 12px #00000014);border-radius:10px;flex-direction:column;gap:12px;min-width:0;padding:14px 16px;animation:.15s ease-out _3jWyTq_slideDown;display:flex}@keyframes _3jWyTq_slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}._3jWyTq_drilldownHead{border-bottom:1px solid var(--dsw-alias-border-l2);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding-bottom:8px;display:flex}._3jWyTq_drilldownTitleGroup{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}._3jWyTq_drilldownTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}._3jWyTq_drilldownSub{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}._3jWyTq_drilldownCloseBtn{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;padding:3px 8px;font-size:11px;transition:all .12s}._3jWyTq_drilldownCloseBtn:hover{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l3)}._3jWyTq_drilldownEmpty{text-align:center;color:var(--dsw-alias-label-tertiary);padding:16px;font-size:12px}._3jWyTq_rankList{flex-direction:column;gap:8px;display:flex}._3jWyTq_rankItem{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1,#0000000f);border-radius:6px;flex-direction:column;gap:6px;min-width:0;padding:8px 12px;display:flex}._3jWyTq_rankItemTop{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}._3jWyTq_rankItemLeft{flex:1;align-items:center;gap:8px;min-width:0;display:flex}._3jWyTq_rankBadge{color:var(--dsw-alias-label-secondary);background:var(--dsw-specific-menu);border:1px solid var(--dsw-alias-border-l2);font-variant-numeric:tabular-nums;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:700;line-height:1.2}._3jWyTq_rankBadgeGold{color:#d97706;background:#f59e0b1f;border-color:#f59e0b66}._3jWyTq_rankName{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}._3jWyTq_rankValMain{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:12px;font-weight:700}._3jWyTq_rankTrack{background:var(--dsw-specific-menu);border-radius:3px;width:100%;height:6px;overflow:hidden}._3jWyTq_rankBar{border-radius:3px;height:100%;transition:width .2s}._3jWyTq_rankSubText{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;justify-content:space-between;align-items:center;gap:8px;font-size:10px;line-height:1.2;display:flex;overflow:hidden}._3jWyTq_rankSubText strong{color:var(--dsw-alias-label-primary)}._3jWyTq_toolDrillSection{flex-direction:column;gap:12px;min-width:0;display:flex}._3jWyTq_toolCompoundBox{flex-direction:column;gap:6px;display:flex}._3jWyTq_toolCompoundTrack{background:var(--dsw-alias-bg-layer-2);border-radius:4px;gap:1px;height:10px;display:flex;overflow:hidden}._3jWyTq_toolSliceBash{background:var(--dsw-static-green-500,#10b981);height:100%}._3jWyTq_toolSliceFile{background:#0ea5e9;height:100%}._3jWyTq_toolCompoundLegend{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;gap:16px;font-size:11px;display:flex}._3jWyTq_toolCompoundLegend span{align-items:center;gap:6px;display:flex}._3jWyTq_toolCompoundLegend strong{color:var(--dsw-alias-label-primary)}._3jWyTq_toolGridCards{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=600px){._3jWyTq_toolGridCards{grid-template-columns:1fr}}._3jWyTq_toolMiniCard{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;flex-direction:column;gap:4px;min-width:0;padding:10px 12px;display:flex}._3jWyTq_toolMiniTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex;overflow:hidden}._3jWyTq_toolMiniNum{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;margin:2px 0;font-size:15px;font-weight:700}._3jWyTq_toolMiniDesc{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:14px}._3jWyTq_toolTopList{border-top:1px dashed var(--dsw-alias-border-l2);flex-direction:column;gap:6px;padding-top:8px;display:flex}._3jWyTq_toolTopListTitle{color:var(--dsw-alias-label-secondary);margin-bottom:2px;font-size:11px;font-weight:600}._3jWyTq_errorDrillSection{flex-direction:column;gap:8px;display:flex}._3jWyTq_errorAllGoodBox{color:var(--dsw-static-green-500,#10b981);text-align:center;background:#10b98114;border:1px solid #10b9814d;border-radius:6px;padding:16px;font-size:12px;font-weight:600}._3jWyTq_errorSessionList{flex-direction:column;gap:6px;display:flex}._3jWyTq_errorSessionRow{background:var(--dsw-alias-bg-layer-2);font-variant-numeric:tabular-nums;border-radius:4px;grid-template-columns:28px 110px 1fr 75px 75px;align-items:center;gap:8px;min-width:0;padding:6px 10px;font-size:11px;display:grid}._3jWyTq_vizSplitGrid{box-sizing:border-box;grid-template-columns:1fr;gap:12px;width:100%;display:grid}._3jWyTq_vizPanel{background:var(--dsw-specific-menu);border:1px solid var(--dsw-alias-border-l2);box-shadow:var(--dsw-shadow-lv1);box-sizing:border-box;border-radius:10px;flex-direction:column;gap:10px;width:100%;min-width:0;padding:12px 14px;display:flex;overflow:hidden}._3jWyTq_vizHead{justify-content:space-between;align-items:center;font-size:12px;display:flex}._3jWyTq_vizTitle{color:var(--dsw-alias-label-primary);font-weight:700}._3jWyTq_vizSub{color:var(--dsw-alias-label-secondary);font-size:10px}._3jWyTq_donutWrap{box-sizing:border-box;flex-direction:row;align-items:center;gap:20px;width:100%;display:flex}@media (width<=480px){._3jWyTq_donutWrap{flex-direction:column;align-items:center}}._3jWyTq_donutSvgBox{width:140px;height:140px;position:relative}._3jWyTq_donutSvg{width:100%;height:100%}._3jWyTq_donutCenterText{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;width:68px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}._3jWyTq_donutCenterNum{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-size:17px;font-weight:800;line-height:1.1}._3jWyTq_donutCenterSub{color:var(--dsw-alias-label-tertiary);white-space:nowrap;margin-top:2px;font-size:10px;font-weight:500;line-height:1}._3jWyTq_donutLegendList{flex-direction:column;flex:1;gap:3px;width:100%;min-width:0;display:flex}._3jWyTq_donutLegendRow{cursor:pointer;border-radius:4px;justify-content:space-between;align-items:center;min-width:0;padding:3px 6px;font-size:11px;transition:background .12s;display:flex}._3jWyTq_donutLegendRow:hover,._3jWyTq_donutLegendRowActive{background:var(--dsw-alias-bg-layer-2)}._3jWyTq_dlLeft{flex:1;align-items:center;gap:6px;min-width:0;margin-right:8px;display:flex}._3jWyTq_dlDot{border-radius:2px;flex-shrink:0;width:8px;height:8px}._3jWyTq_dlName{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);min-width:0;overflow:hidden}._3jWyTq_dlRight{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-secondary);white-space:nowrap;flex-shrink:0;font-weight:600}._3jWyTq_donutInspectBar{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;align-items:center;gap:8px;min-width:0;margin-top:2px;padding:6px 10px;font-size:11px;display:flex}._3jWyTq_donutInspectName{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}._3jWyTq_donutInspectTag{color:var(--dsw-static-deepseek-450,#5686fe);background:#5686fe1f;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:600;line-height:1.2}._3jWyTq_donutInspectVal{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-secondary);white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}._3jWyTq_dayStack{align-items:stretch;gap:3px;min-width:0;height:160px;display:flex}._3jWyTq_dayStackWeek{justify-content:center;gap:12px}._3jWyTq_dayStackWeek ._3jWyTq_dayCol{max-width:48px}._3jWyTq_dayCol{flex-direction:column;flex:1 1 0;align-items:stretch;gap:4px;min-width:0;display:flex}._3jWyTq_dayColFill{background:var(--dsw-alias-bg-layer-2);border-radius:4px;flex-direction:column-reverse;flex:1;justify-content:flex-start;min-height:0;transition:filter .12s;display:flex;overflow:hidden}._3jWyTq_dayColFill:hover{filter:brightness(1.1)}._3jWyTq_daySeg{flex:none;width:100%;min-height:0}._3jWyTq_dayEmptyDot{background:var(--dsw-alias-border-l2);border-radius:2px;width:100%;height:3px;margin-top:auto}._3jWyTq_dayLabel{color:var(--dsw-alias-label-tertiary);text-align:center;white-space:nowrap;font-size:10px;line-height:1;overflow:hidden}._3jWyTq_chartAreaBox{width:100%;height:180px;position:relative}._3jWyTq_chartSvg{width:100%;height:100%;overflow:visible}._3jWyTq_chartAxisLabel{fill:var(--dsw-alias-label-tertiary);font-size:9px}._3jWyTq_chartGridLine{stroke:var(--dsw-alias-border-l2);stroke-dasharray:2 3}._3jWyTq_chartFoot{color:var(--dsw-alias-label-tertiary);border-top:1px solid var(--dsw-alias-border-l2);padding-top:6px;font-size:10px}._3jWyTq_tableTitleGroup{flex-direction:column;gap:2px;min-width:0;display:flex}._3jWyTq_tableSortGroup{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;flex-shrink:0;gap:2px;padding:2px;display:flex}._3jWyTq_sortBtn{color:var(--dsw-alias-label-tertiary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:2px 7px;font-size:10px;line-height:16px;transition:all .12s}._3jWyTq_sortBtn:hover{color:var(--dsw-alias-label-primary)}._3jWyTq_sortBtn[data-active]{background:var(--dsw-specific-menu);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1);font-weight:600}._3jWyTq_sessionTableBox{box-sizing:border-box;flex-direction:column;gap:4px;width:100%;display:flex}._3jWyTq_sessionTableHeader{color:var(--dsw-alias-label-tertiary);border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);box-sizing:border-box;border-radius:6px;grid-template-columns:minmax(0,1.2fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,.7fr) minmax(0,.7fr) 14px;align-items:center;gap:6px;padding:6px 10px;font-size:10px;font-weight:600;display:grid}._3jWyTq_sessionItemRow{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:6px;transition:border-color .12s;overflow:hidden}._3jWyTq_sessionItemRow:hover{border-color:var(--dsw-alias-border-l3)}._3jWyTq_tableRankNum{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;margin-right:4px;font-size:10px}._3jWyTq_sessionItemHead{width:100%;color:inherit;text-align:left;cursor:pointer;font-variant-numeric:tabular-nums;box-sizing:border-box;background:0 0;border:0;grid-template-columns:minmax(0,1.2fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,.7fr) minmax(0,.7fr) 14px;align-items:center;gap:6px;padding:8px 10px;font-size:11px;display:grid}._3jWyTq_sessionTokenCell{flex-direction:column;align-items:flex-end;gap:2px;min-width:0;display:flex}._3jWyTq_sessionTokenBar{background:var(--dsw-static-deepseek-450,#5686fe);border-radius:1px;max-width:100%;height:2px}._3jWyTq_sessionModelCell{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._3jWyTq_statusOk{color:var(--dsw-static-green-500,#10b981)}._3jWyTq_statusWarn{color:#b45309}._3jWyTq_statusBad{color:var(--dsw-alias-state-error-primary,#ef4444);font-weight:600}._3jWyTq_sessionIdTag{color:var(--dsw-alias-label-primary);font-family:ui-monospace,monospace;font-size:11px;font-weight:600}._3jWyTq_arrowIcon{color:var(--dsw-alias-label-tertiary);transition:transform .12s}._3jWyTq_sessionItemOpen ._3jWyTq_arrowIcon{transform:rotate(90deg)}._3jWyTq_sessionItemDrawer{background:var(--dsw-specific-menu);border-top:1px dashed var(--dsw-alias-border-l2);padding:10px 12px;font-size:11px}._3jWyTq_drawerTitle{color:var(--dsw-alias-label-primary);margin-bottom:6px;font-weight:600}._3jWyTq_drawerBarTrack{background:var(--dsw-alias-bg-layer-2);border-radius:4px;gap:1px;height:8px;margin-bottom:6px;display:flex;overflow:hidden}._3jWyTq_drawerSliceModel{background:var(--dsw-static-deepseek-450,#5686fe);height:100%}._3jWyTq_drawerSliceTool{background:var(--dsw-static-green-500,#10b981);height:100%}._3jWyTq_drawerMetaRow{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:10px;display:flex}._3jWyTq_settingsDrawer{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);background:var(--dsw-specific-menu);border-radius:8px;padding:8px 12px;font-size:11px}._3jWyTq_settingsSummary{cursor:pointer;color:var(--dsw-alias-label-secondary);font-weight:500}._3jWyTq_settingsDrawerContent{flex-wrap:wrap;align-items:center;gap:14px;padding-top:10px;display:flex}._3jWyTq_priceOverrideHelp,._3jWyTq_priceOverridePath{width:100%;color:var(--dsw-alias-label-secondary);margin:0;font-size:11px;line-height:1.45}._3jWyTq_priceOverrideInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;min-height:120px;color:var(--dsw-alias-label-primary);resize:vertical;border-radius:6px;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}._3jWyTq_priceOverrideError{width:100%;color:var(--dsw-alias-state-error-primary,#e5484d);margin:0;font-size:11px}._3jWyTq_priceOverrideActions{align-items:center;gap:8px;display:flex}._3jWyTq_settingsResetBtn{color:var(--dsw-alias-label-secondary);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;background:0 0;border-radius:4px;padding:3px 10px;font-size:11px}._3jWyTq_settingInlineItem{align-items:center;gap:6px;display:flex}._3jWyTq_settingsMiniInput{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:50px;color:var(--dsw-alias-label-primary);text-align:right;border-radius:4px;outline:none;padding:3px 6px;font-size:11px}._3jWyTq_settingsMiniSaveBtn{background:var(--dsw-static-deepseek-450,#5686fe);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:3px 10px;font-size:11px}._3jWyTq_emptyScan{text-align:center;color:var(--dsw-alias-label-tertiary);padding:20px;font-size:12px}._3jWyTq_chartLegend{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;padding:5px 8px;display:flex}._3jWyTq_chartLegendItem{color:var(--dsw-alias-label-secondary);align-items:center;gap:5px;min-width:0;font-size:11px;display:flex}._3jWyTq_chartLegendDot{border-radius:50%;flex-shrink:0;width:7px;height:7px}._3jWyTq_chartLegendName{text-overflow:ellipsis;white-space:nowrap;max-width:130px;color:var(--dsw-alias-label-primary);font-weight:500;overflow:hidden}._3jWyTq_chartLegendVal{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-secondary);font-size:10px;font-weight:600}._3jWyTq_chartInteractiveWrap{width:100%;position:relative}._3jWyTq_dayBarTopLabel{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-secondary);text-align:center;white-space:nowrap;text-overflow:ellipsis;min-height:14px;font-size:9px;font-weight:600;line-height:14px;overflow:hidden}._3jWyTq_dayColFillActive{box-shadow:0 0 0 2px var(--dsw-static-deepseek-450,#5686fe);filter:brightness(1.2)!important}._3jWyTq_dayLabelToday{font-weight:700;color:var(--dsw-static-deepseek-450,#5686fe)!important}._3jWyTq_chartTooltipBox{z-index:50;pointer-events:none;background:var(--dsw-specific-menu);border:1px solid var(--dsw-alias-border-l1);backdrop-filter:blur(8px);border-radius:8px;min-width:150px;max-width:260px;padding:8px 10px;transition:opacity .12s,transform .12s;position:absolute;box-shadow:0 6px 20px #00000047}._3jWyTq_chartTooltipBox._3jWyTq_chartTooltipPortal{z-index:1200;visibility:hidden;position:fixed;top:0;left:0}._3jWyTq_chartTooltipDate{color:var(--dsw-alias-label-primary);justify-content:space-between;align-items:center;gap:6px;margin-bottom:4px;font-size:11px;font-weight:700;display:flex}._3jWyTq_chartTooltipDateBadge{color:var(--dsw-static-deepseek-450,#5686fe);background:#5686fe26;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:600}._3jWyTq_chartTooltipTotal{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;align-items:baseline;gap:5px;margin-bottom:4px;font-size:13px;font-weight:800;display:flex}._3jWyTq_chartTooltipSessions{color:var(--dsw-alias-label-tertiary);font-size:10px;font-weight:500}._3jWyTq_chartTooltipDivider{background:var(--dsw-alias-border-l2);height:1px;margin:5px 0}._3jWyTq_chartTooltipModelList{flex-direction:column;gap:3px;display:flex}._3jWyTq_chartTooltipModelRow{justify-content:space-between;align-items:center;gap:8px;font-size:10px;display:flex}._3jWyTq_chartTooltipModelLeft{flex:1;align-items:center;gap:5px;min-width:0;display:flex}._3jWyTq_chartTooltipModelDot{border-radius:50%;flex-shrink:0;width:6px;height:6px}._3jWyTq_chartTooltipModelName{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-secondary);overflow:hidden}._3jWyTq_chartTooltipModelRight{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-primary);white-space:nowrap;flex-shrink:0;font-weight:600}._3jWyTq_lineChartWrap{user-select:none;width:100%;min-width:0;height:170px;position:relative}._3jWyTq_lineChartSvg{width:100%;height:100%;display:block;overflow:visible}._3jWyTq_lineGrid{stroke:var(--dsw-alias-border-l2);stroke-dasharray:2 3}._3jWyTq_lineAxisText{fill:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:9px}._3jWyTq_lineCursor{stroke:var(--dsw-static-deepseek-450,#5686fe);stroke-dasharray:3 3;stroke-width:1.5px;pointer-events:none}._3jWyTq_lineActiveOuter{fill:#5686fe40;pointer-events:none;animation:1.5s ease-in-out infinite _3jWyTq_linePulse}@keyframes _3jWyTq_linePulse{0%,to{opacity:.8;transform:scale(1)}50%{opacity:.4;transform:scale(1.3)}}._3jWyTq_lineActiveInner{fill:var(--dsw-static-deepseek-450,#5686fe);stroke:#fff;stroke-width:1.5px;pointer-events:none}._3jWyTq_viewSwitchGroup{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:5px;gap:2px;padding:2px;display:flex}._3jWyTq_viewSwitchBtn{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 7px;font-size:10px;font-weight:600;transition:all .12s}._3jWyTq_viewSwitchBtn[data-active]{background:var(--dsw-specific-menu);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1)}._3jWyTq_heatmapPanel{background:var(--dsw-specific-menu);border:1px solid var(--dsw-alias-border-l2);box-shadow:var(--dsw-shadow-lv1);box-sizing:border-box;border-radius:10px;flex-direction:column;gap:10px;width:100%;min-width:0;margin-top:12px;padding:14px 16px;display:flex}._3jWyTq_heatmapHead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;display:flex}._3jWyTq_heatmapTitleGroup{flex-direction:column;gap:2px;display:flex}._3jWyTq_heatmapTitle{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:700}._3jWyTq_heatmapSub{color:var(--dsw-alias-label-secondary);font-size:11px}._3jWyTq_heatmapStatsRow{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;gap:14px;font-size:11px;display:flex}._3jWyTq_heatmapStatsRow strong{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-weight:700}._3jWyTq_heatmapScrollArea{box-sizing:border-box;width:100%;padding:8px 4px 14px;overflow:auto visible}._3jWyTq_heatmapContainer{flex-direction:column;gap:6px;width:max-content;display:flex;position:relative}._3jWyTq_heatmapMonthsRow{height:16px;margin-left:32px;display:block;position:relative}._3jWyTq_heatmapMonthLabel{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:10px;font-weight:600;position:absolute}._3jWyTq_heatmapGrid{gap:8px;display:flex}._3jWyTq_heatmapWeekdaysCol{width:24px;height:109px;color:var(--dsw-alias-label-tertiary);user-select:none;flex-direction:column;flex-shrink:0;justify-content:space-between;padding:0;font-size:9px;display:flex}._3jWyTq_heatmapWeeksRow{gap:3px;display:flex}._3jWyTq_heatmapWeekCol{flex-direction:column;gap:3px;display:flex}._3jWyTq_heatmapCell{box-sizing:border-box;cursor:pointer;border-radius:2px;width:13px;height:13px;transition:outline .1s,box-shadow .1s,filter .1s;position:relative}._3jWyTq_heatmapCellToday{outline-offset:1px;z-index:5;outline:1.5px solid var(--dsw-static-deepseek-450,#5686fe)!important}._3jWyTq_heatmapCell[data-level=\"0\"]{background:var(--dsw-alias-bg-layer-2,#ffffff09);border:1px solid var(--dsw-alias-border-l2,#ffffff14)}._3jWyTq_heatmapCell[data-level=\"1\"]{background:#5686fe38;border:1px solid #5686fe59}._3jWyTq_heatmapCell[data-level=\"2\"]{background:#5686fe73;border:1px solid #5686fe99}._3jWyTq_heatmapCell[data-level=\"3\"]{background:#5686feb8;border:1px solid #5686fee0;box-shadow:0 0 6px #5686fe40}._3jWyTq_heatmapCell[data-level=\"4\"]{background:var(--dsw-static-deepseek-450,#5686fe);border:1px solid #9bb8ff;box-shadow:0 0 10px #5686fe8c}._3jWyTq_heatmapCell[data-future=true]{opacity:.28;cursor:default;background:0 0!important;border:1px dashed #ffffff26!important}._3jWyTq_heatmapCell:hover:not([data-future=true]),._3jWyTq_heatmapCellActive{outline-offset:1px;filter:brightness(1.25);z-index:10;transform:none;outline:2px solid #fff!important;box-shadow:0 0 12px #5686fed9!important}._3jWyTq_heatmapLiveHud{color:var(--dsw-alias-label-primary);background:#5686fe1f;border:1px solid #5686fe47;border-radius:6px;align-items:center;gap:8px;padding:3px 8px;font-size:11px;display:flex}._3jWyTq_heatmapLiveDate{color:var(--dsw-static-deepseek-450,#5686fe);font-weight:700}._3jWyTq_heatmapLiveTokens{font-variant-numeric:tabular-nums;font-weight:700}._3jWyTq_heatmapLiveModel{color:var(--dsw-alias-label-secondary);font-size:10px}._3jWyTq_heatmapFoot{color:var(--dsw-alias-label-tertiary);border-top:1px solid var(--dsw-alias-border-l2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:4px;padding-top:8px;font-size:10px;display:flex}._3jWyTq_heatmapLegend{color:var(--dsw-alias-label-tertiary);align-items:center;gap:4px;font-size:10px;display:flex}._3jWyTq_heatmapLegendCell{border-radius:2px;width:10px;height:10px}";
3233
+ //#region \0dshx-css-module:./src/client/Insights.module.css.mjs
3234
+ const css$1 = "._8ePy_W_hudBox{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-specific-menu);width:100%;font-family:var(--dsw-font-family);flex:none}._8ePy_W_hudTop{background:var(--dsw-alias-bg-layer-2);border-bottom:1px solid var(--dsw-alias-border-l2);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;display:flex}._8ePy_W_hudTopLeft{flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;display:flex}._8ePy_W_hudHeading{color:var(--dsw-alias-label-secondary);white-space:nowrap;font-size:11px;font-weight:600}._8ePy_W_currentModelTag{background:var(--dsw-alias-interactive-bg-hover);white-space:nowrap;border-radius:4px;flex-shrink:1;align-items:center;gap:5px;min-width:0;max-width:100%;padding:1px 6px;font-size:11px;display:inline-flex}._8ePy_W_modelTagText{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}._8ePy_W_effortTag{color:var(--dsw-static-deepseek-450,#5686fe);white-space:nowrap;background:#5686fe1f;border-radius:3px;flex-shrink:0;padding:0 5px;font-size:10px;font-weight:600;line-height:14px}._8ePy_W_contextTag{color:var(--dsw-alias-label-secondary,#5f636d);background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e2e8f0);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:4px;flex-shrink:0;padding:1px 7px;font-size:11px}._8ePy_W_hudTopRight{flex-shrink:0;align-items:center;gap:10px;display:flex}._8ePy_W_collapseBtn{width:20px;height:20px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}._8ePy_W_collapseBtn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._8ePy_W_collapseChevron{font-size:11px;transition:transform .12s;display:inline-block}._8ePy_W_hudBox[data-collapsed] ._8ePy_W_collapseChevron{transform:rotate(-90deg)}._8ePy_W_hudBox[data-collapsed] ._8ePy_W_hudTop{border-bottom:none}._8ePy_W_tokenStat{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}._8ePy_W_tokenStat strong{color:var(--dsw-alias-label-primary)}._8ePy_W_costStat{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}._8ePy_W_costStat strong{color:var(--dsw-alias-label-primary)}._8ePy_W_scopeGroup{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:5px;gap:1px;padding:1px;display:inline-flex}._8ePy_W_scopeBtn{color:var(--dsw-alias-label-tertiary);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:3px;padding:2px 7px;font-size:11px;line-height:14px;transition:all .12s}._8ePy_W_scopeBtn[data-active]{background:var(--dsw-specific-menu);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1);font-weight:600}._8ePy_W_modelTabBar{background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l2);gap:4px;padding:6px 14px;display:flex;overflow-x:auto}._8ePy_W_modelTabBtn{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-specific-menu);color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:11px;transition:all .12s}._8ePy_W_modelTabBtn[data-active]{background:var(--dsw-static-deepseek-450,#5686fe);color:#fff;border-color:var(--dsw-static-deepseek-450,#5686fe);font-weight:600}._8ePy_W_hudBody{padding:10px 14px}._8ePy_W_alertSection{flex-direction:column;gap:6px;margin-top:8px;display:flex}._8ePy_W_alertCard{border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}._8ePy_W_alertCardDanger{background:#e5484d14;border:1px solid #e5484d40}._8ePy_W_alertCardWarn{background:#f59e0b14;border:1px solid #f59e0b40}._8ePy_W_alertLeft{align-items:center;gap:8px;min-width:0;display:flex}._8ePy_W_alertTag{color:#fff;border-radius:3px;flex:none;padding:1px 5px;font-size:10px;font-weight:600}._8ePy_W_tagDanger{background:var(--dsw-alias-state-error-primary,#e5484d)}._8ePy_W_tagWarn{background:#f59e0b}._8ePy_W_alertTexts{flex-direction:column;min-width:0;display:flex}._8ePy_W_alertMainText{color:var(--dsw-alias-label-primary);font-size:12px;font-weight:600}._8ePy_W_alertSubText{color:var(--dsw-alias-label-secondary);font-size:11px}._8ePy_W_alertActionBtn{color:var(--dsw-static-deepseek-450,#5686fe);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:2px 6px;font-size:11px;font-weight:600}._8ePy_W_settingsContainer{width:100%;min-width:0;max-width:100%;color:var(--dsw-alias-label-primary);box-sizing:border-box;flex-direction:column;gap:14px;padding:0 0 24px;display:flex;overflow-x:hidden}._8ePy_W_cockpitHeader{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;display:flex}._8ePy_W_cockpitTitleArea h2{color:var(--dsw-alias-label-primary);letter-spacing:-.3px;margin:0;font-size:17px;font-weight:700}._8ePy_W_cockpitSubTitle{color:var(--dsw-alias-label-tertiary);margin:3px 0 0;font-size:12px}._8ePy_W_headerRightControls{align-items:center;gap:8px;display:flex}._8ePy_W_rangeSwitchGroup{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;padding:2px;display:flex}._8ePy_W_rangeBtn{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 10px;font-size:11px;font-weight:600;transition:all .12s}._8ePy_W_rangeBtn[data-active]{background:var(--dsw-specific-menu);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1)}._8ePy_W_settingsScanBtn{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:500;transition:all .12s}._8ePy_W_heroStatsRow{border-bottom:1px solid var(--dsw-alias-border-l2);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;padding-bottom:10px;display:flex}._8ePy_W_heroPair{flex-wrap:wrap;align-items:flex-start;gap:40px;min-width:0;display:flex}._8ePy_W_heroMetric{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:flex}._8ePy_W_heroCaption{color:var(--dsw-alias-label-secondary);font-size:11px;font-weight:600;line-height:1.2}._8ePy_W_heroValue{letter-spacing:-.5px;color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1.15}._8ePy_W_heroFootnote{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:1.3}._8ePy_W_heroMetaCol{color:var(--dsw-alias-label-secondary);white-space:nowrap;flex-wrap:nowrap;gap:14px;font-size:12px;display:flex}._8ePy_W_heroMetaCol strong{color:var(--dsw-alias-label-primary)}._8ePy_W_roastGrid{box-sizing:border-box;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;display:grid}@media (width<=440px){._8ePy_W_roastGrid{grid-template-columns:1fr}}._8ePy_W_roastItem{background:var(--dsw-specific-menu);border:1px solid var(--dsw-alias-border-l2);min-height:136px;box-shadow:var(--dsw-shadow-lv1);cursor:pointer;user-select:none;box-sizing:border-box;border-radius:8px;flex-direction:column;justify-content:space-between;padding:12px 14px;transition:all .12s;display:flex}._8ePy_W_roastItem:hover{background:var(--dsw-alias-bg-layer-2);border-color:var(--dsw-alias-border-l3);transform:translateY(-1px)}._8ePy_W_roastItemActive{background:var(--dsw-alias-bg-layer-2);box-shadow:0 0 0 1px var(--dsw-static-deepseek-450,#5686fe);border-color:var(--dsw-static-deepseek-450,#5686fe)!important}._8ePy_W_roastHead{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._8ePy_W_roastTag{letter-spacing:.3px;font-size:11px;font-weight:700}._8ePy_W_roastCategoryBadge{color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1,#0000000f);border-radius:3px;padding:1px 4px;font-size:9px;line-height:1.2}._8ePy_W_roastTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;line-height:18px;overflow:hidden}._8ePy_W_roastDesc{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:10px;line-height:15px;overflow:hidden}._8ePy_W_roastVal{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:12px;font-weight:700;overflow:hidden}._8ePy_W_roastFooter{border-top:1px dashed var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);justify-content:space-between;align-items:center;margin-top:10px;padding-top:8px;font-size:10px;line-height:1;display:flex}._8ePy_W_roastFooterLeft{text-overflow:ellipsis;white-space:nowrap;max-width:110px;overflow:hidden}._8ePy_W_roastAction{color:var(--dsw-alias-label-secondary);flex-shrink:0;font-weight:600;transition:color .12s}._8ePy_W_roastItem:hover ._8ePy_W_roastAction,._8ePy_W_roastItemActive ._8ePy_W_roastAction{color:var(--dsw-static-deepseek-450,#5686fe)}._8ePy_W_drilldownPanel{background:var(--dsw-specific-menu);border:1px solid var(--dsw-static-deepseek-450,#5686fe);box-shadow:var(--dsw-shadow-lv2,0 4px 12px #00000014);border-radius:10px;flex-direction:column;gap:12px;min-width:0;padding:14px 16px;animation:.15s ease-out _8ePy_W_slideDown;display:flex}@keyframes _8ePy_W_slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}._8ePy_W_drilldownHead{border-bottom:1px solid var(--dsw-alias-border-l2);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding-bottom:8px;display:flex}._8ePy_W_drilldownTitleGroup{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}._8ePy_W_drilldownTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}._8ePy_W_drilldownSub{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}._8ePy_W_drilldownCloseBtn{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;padding:3px 8px;font-size:11px;transition:all .12s}._8ePy_W_drilldownCloseBtn:hover{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l3)}._8ePy_W_drilldownEmpty{text-align:center;color:var(--dsw-alias-label-tertiary);padding:16px;font-size:12px}._8ePy_W_rankList{flex-direction:column;gap:8px;display:flex}._8ePy_W_rankItem{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1,#0000000f);border-radius:6px;flex-direction:column;gap:6px;min-width:0;padding:8px 12px;display:flex}._8ePy_W_rankItemTop{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}._8ePy_W_rankItemLeft{flex:1;align-items:center;gap:8px;min-width:0;display:flex}._8ePy_W_rankBadge{color:var(--dsw-alias-label-secondary);background:var(--dsw-specific-menu);border:1px solid var(--dsw-alias-border-l2);font-variant-numeric:tabular-nums;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:700;line-height:1.2}._8ePy_W_rankBadgeGold{color:#d97706;background:#f59e0b1f;border-color:#f59e0b66}._8ePy_W_rankName{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}._8ePy_W_rankValMain{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:12px;font-weight:700}._8ePy_W_rankTrack{background:var(--dsw-specific-menu);border-radius:3px;width:100%;height:6px;overflow:hidden}._8ePy_W_rankBar{border-radius:3px;height:100%;transition:width .2s}._8ePy_W_rankSubText{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;justify-content:space-between;align-items:center;gap:8px;font-size:10px;line-height:1.2;display:flex;overflow:hidden}._8ePy_W_rankSubText strong{color:var(--dsw-alias-label-primary)}._8ePy_W_toolDrillSection{flex-direction:column;gap:12px;min-width:0;display:flex}._8ePy_W_toolCompoundBox{flex-direction:column;gap:6px;display:flex}._8ePy_W_toolCompoundTrack{background:var(--dsw-alias-bg-layer-2);border-radius:4px;gap:1px;height:10px;display:flex;overflow:hidden}._8ePy_W_toolSliceBash{background:var(--dsw-static-green-500,#10b981);height:100%}._8ePy_W_toolSliceFile{background:#0ea5e9;height:100%}._8ePy_W_toolCompoundLegend{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;gap:16px;font-size:11px;display:flex}._8ePy_W_toolCompoundLegend span{align-items:center;gap:6px;display:flex}._8ePy_W_toolCompoundLegend strong{color:var(--dsw-alias-label-primary)}._8ePy_W_toolGridCards{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=600px){._8ePy_W_toolGridCards{grid-template-columns:1fr}}._8ePy_W_toolMiniCard{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;flex-direction:column;gap:4px;min-width:0;padding:10px 12px;display:flex}._8ePy_W_toolMiniTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex;overflow:hidden}._8ePy_W_toolMiniNum{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;margin:2px 0;font-size:15px;font-weight:700}._8ePy_W_toolMiniDesc{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:14px}._8ePy_W_toolTopList{border-top:1px dashed var(--dsw-alias-border-l2);flex-direction:column;gap:6px;padding-top:8px;display:flex}._8ePy_W_toolTopListTitle{color:var(--dsw-alias-label-secondary);margin-bottom:2px;font-size:11px;font-weight:600}._8ePy_W_errorDrillSection{flex-direction:column;gap:8px;display:flex}._8ePy_W_errorAllGoodBox{color:var(--dsw-static-green-500,#10b981);text-align:center;background:#10b98114;border:1px solid #10b9814d;border-radius:6px;padding:16px;font-size:12px;font-weight:600}._8ePy_W_errorSessionList{flex-direction:column;gap:6px;display:flex}._8ePy_W_errorSessionRow{background:var(--dsw-alias-bg-layer-2);font-variant-numeric:tabular-nums;border-radius:4px;grid-template-columns:28px 110px 1fr 75px 75px;align-items:center;gap:8px;min-width:0;padding:6px 10px;font-size:11px;display:grid}._8ePy_W_vizSplitGrid{box-sizing:border-box;grid-template-columns:1fr;gap:12px;width:100%;display:grid}._8ePy_W_vizPanel{background:var(--dsw-specific-menu);border:1px solid var(--dsw-alias-border-l2);box-shadow:var(--dsw-shadow-lv1);box-sizing:border-box;border-radius:10px;flex-direction:column;gap:10px;width:100%;min-width:0;padding:12px 14px;display:flex;overflow:hidden}._8ePy_W_vizHead{justify-content:space-between;align-items:center;font-size:12px;display:flex}._8ePy_W_vizTitle{color:var(--dsw-alias-label-primary);font-weight:700}._8ePy_W_vizSub{color:var(--dsw-alias-label-secondary);font-size:10px}._8ePy_W_donutWrap{box-sizing:border-box;flex-direction:row;align-items:center;gap:20px;width:100%;display:flex}@media (width<=480px){._8ePy_W_donutWrap{flex-direction:column;align-items:center}}._8ePy_W_donutSvgBox{width:140px;height:140px;position:relative}._8ePy_W_donutSvg{width:100%;height:100%}._8ePy_W_donutCenterText{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;width:68px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}._8ePy_W_donutCenterNum{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-size:17px;font-weight:800;line-height:1.1}._8ePy_W_donutCenterSub{color:var(--dsw-alias-label-tertiary);white-space:nowrap;margin-top:2px;font-size:10px;font-weight:500;line-height:1}._8ePy_W_donutLegendList{flex-direction:column;flex:1;gap:3px;width:100%;min-width:0;display:flex}._8ePy_W_donutLegendRow{cursor:pointer;border-radius:4px;justify-content:space-between;align-items:center;min-width:0;padding:3px 6px;font-size:11px;transition:background .12s;display:flex}._8ePy_W_donutLegendRow:hover,._8ePy_W_donutLegendRowActive{background:var(--dsw-alias-bg-layer-2)}._8ePy_W_dlLeft{flex:1;align-items:center;gap:6px;min-width:0;margin-right:8px;display:flex}._8ePy_W_dlDot{border-radius:2px;flex-shrink:0;width:8px;height:8px}._8ePy_W_dlName{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);min-width:0;overflow:hidden}._8ePy_W_dlRight{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-secondary);white-space:nowrap;flex-shrink:0;font-weight:600}._8ePy_W_donutInspectBar{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;align-items:center;gap:8px;min-width:0;margin-top:2px;padding:6px 10px;font-size:11px;display:flex}._8ePy_W_donutInspectName{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}._8ePy_W_donutInspectTag{color:var(--dsw-static-deepseek-450,#5686fe);background:#5686fe1f;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:600;line-height:1.2}._8ePy_W_donutInspectVal{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-secondary);white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}._8ePy_W_dayStack{align-items:stretch;gap:3px;min-width:0;height:160px;display:flex}._8ePy_W_dayStackWeek{justify-content:center;gap:12px}._8ePy_W_dayStackWeek ._8ePy_W_dayCol{max-width:48px}._8ePy_W_dayCol{flex-direction:column;flex:1 1 0;align-items:stretch;gap:4px;min-width:0;display:flex}._8ePy_W_dayColFill{background:var(--dsw-alias-bg-layer-2);border-radius:4px;flex-direction:column-reverse;flex:1;justify-content:flex-start;min-height:0;transition:filter .12s;display:flex;overflow:hidden}._8ePy_W_dayColFill:hover{filter:brightness(1.1)}._8ePy_W_daySeg{flex:none;width:100%;min-height:0}._8ePy_W_dayEmptyDot{background:var(--dsw-alias-border-l2);border-radius:2px;width:100%;height:3px;margin-top:auto}._8ePy_W_dayLabel{color:var(--dsw-alias-label-tertiary);text-align:center;white-space:nowrap;font-size:10px;line-height:1;overflow:hidden}._8ePy_W_chartAreaBox{width:100%;height:180px;position:relative}._8ePy_W_chartSvg{width:100%;height:100%;overflow:visible}._8ePy_W_chartAxisLabel{fill:var(--dsw-alias-label-tertiary);font-size:9px}._8ePy_W_chartGridLine{stroke:var(--dsw-alias-border-l2);stroke-dasharray:2 3}._8ePy_W_chartFoot{color:var(--dsw-alias-label-tertiary);border-top:1px solid var(--dsw-alias-border-l2);padding-top:6px;font-size:10px}._8ePy_W_tableTitleGroup{flex-direction:column;gap:2px;min-width:0;display:flex}._8ePy_W_tableSortGroup{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;flex-shrink:0;gap:2px;padding:2px;display:flex}._8ePy_W_sortBtn{color:var(--dsw-alias-label-tertiary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:2px 7px;font-size:10px;line-height:16px;transition:all .12s}._8ePy_W_sortBtn:hover{color:var(--dsw-alias-label-primary)}._8ePy_W_sortBtn[data-active]{background:var(--dsw-specific-menu);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1);font-weight:600}._8ePy_W_sessionTableBox{box-sizing:border-box;flex-direction:column;gap:4px;width:100%;display:flex}._8ePy_W_sessionTableHeader{color:var(--dsw-alias-label-tertiary);border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);box-sizing:border-box;border-radius:6px;grid-template-columns:minmax(0,1.2fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,.7fr) minmax(0,.7fr) 14px;align-items:center;gap:6px;padding:6px 10px;font-size:10px;font-weight:600;display:grid}._8ePy_W_sessionItemRow{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:6px;transition:border-color .12s;overflow:hidden}._8ePy_W_sessionItemRow:hover{border-color:var(--dsw-alias-border-l3)}._8ePy_W_tableRankNum{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;margin-right:4px;font-size:10px}._8ePy_W_sessionItemHead{width:100%;color:inherit;text-align:left;cursor:pointer;font-variant-numeric:tabular-nums;box-sizing:border-box;background:0 0;border:0;grid-template-columns:minmax(0,1.2fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,.7fr) minmax(0,.7fr) 14px;align-items:center;gap:6px;padding:8px 10px;font-size:11px;display:grid}._8ePy_W_sessionTokenCell{flex-direction:column;align-items:flex-end;gap:2px;min-width:0;display:flex}._8ePy_W_sessionTokenBar{background:var(--dsw-static-deepseek-450,#5686fe);border-radius:1px;max-width:100%;height:2px}._8ePy_W_sessionModelCell{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._8ePy_W_statusOk{color:var(--dsw-static-green-500,#10b981)}._8ePy_W_statusWarn{color:#b45309}._8ePy_W_statusBad{color:var(--dsw-alias-state-error-primary,#ef4444);font-weight:600}._8ePy_W_sessionIdTag{color:var(--dsw-alias-label-primary);font-family:ui-monospace,monospace;font-size:11px;font-weight:600}._8ePy_W_arrowIcon{color:var(--dsw-alias-label-tertiary);transition:transform .12s}._8ePy_W_sessionItemOpen ._8ePy_W_arrowIcon{transform:rotate(90deg)}._8ePy_W_sessionItemDrawer{background:var(--dsw-specific-menu);border-top:1px dashed var(--dsw-alias-border-l2);padding:10px 12px;font-size:11px}._8ePy_W_drawerTitle{color:var(--dsw-alias-label-primary);margin-bottom:6px;font-weight:600}._8ePy_W_drawerBarTrack{background:var(--dsw-alias-bg-layer-2);border-radius:4px;gap:1px;height:8px;margin-bottom:6px;display:flex;overflow:hidden}._8ePy_W_drawerSliceModel{background:var(--dsw-static-deepseek-450,#5686fe);height:100%}._8ePy_W_drawerSliceTool{background:var(--dsw-static-green-500,#10b981);height:100%}._8ePy_W_drawerMetaRow{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:10px;display:flex}._8ePy_W_settingsDrawer{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);background:var(--dsw-specific-menu);border-radius:8px;padding:8px 12px;font-size:11px}._8ePy_W_settingsSummary{cursor:pointer;color:var(--dsw-alias-label-secondary);font-weight:500}._8ePy_W_settingsDrawerContent{flex-wrap:wrap;align-items:center;gap:14px;padding-top:10px;display:flex}._8ePy_W_priceOverrideHelp,._8ePy_W_priceOverridePath{width:100%;color:var(--dsw-alias-label-secondary);margin:0;font-size:11px;line-height:1.45}._8ePy_W_priceOverrideInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;min-height:120px;color:var(--dsw-alias-label-primary);resize:vertical;border-radius:6px;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}._8ePy_W_priceOverrideError{width:100%;color:var(--dsw-alias-state-error-primary,#e5484d);margin:0;font-size:11px}._8ePy_W_priceOverrideActions{align-items:center;gap:8px;display:flex}._8ePy_W_settingsResetBtn{color:var(--dsw-alias-label-secondary);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;background:0 0;border-radius:4px;padding:3px 10px;font-size:11px}._8ePy_W_settingInlineItem{align-items:center;gap:6px;display:flex}._8ePy_W_settingsMiniInput{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:50px;color:var(--dsw-alias-label-primary);text-align:right;border-radius:4px;outline:none;padding:3px 6px;font-size:11px}._8ePy_W_settingsMiniSaveBtn{background:var(--dsw-static-deepseek-450,#5686fe);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:3px 10px;font-size:11px}._8ePy_W_emptyScan{text-align:center;color:var(--dsw-alias-label-tertiary);padding:20px;font-size:12px}._8ePy_W_chartLegend{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;padding:5px 8px;display:flex}._8ePy_W_chartLegendItem{color:var(--dsw-alias-label-secondary);align-items:center;gap:5px;min-width:0;font-size:11px;display:flex}._8ePy_W_chartLegendDot{border-radius:50%;flex-shrink:0;width:7px;height:7px}._8ePy_W_chartLegendName{text-overflow:ellipsis;white-space:nowrap;max-width:130px;color:var(--dsw-alias-label-primary);font-weight:500;overflow:hidden}._8ePy_W_chartLegendVal{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-secondary);font-size:10px;font-weight:600}._8ePy_W_chartInteractiveWrap{width:100%;position:relative}._8ePy_W_dayBarTopLabel{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-secondary);text-align:center;white-space:nowrap;text-overflow:ellipsis;min-height:14px;font-size:9px;font-weight:600;line-height:14px;overflow:hidden}._8ePy_W_dayColFillActive{box-shadow:0 0 0 2px var(--dsw-static-deepseek-450,#5686fe);filter:brightness(1.2)!important}._8ePy_W_dayLabelToday{font-weight:700;color:var(--dsw-static-deepseek-450,#5686fe)!important}._8ePy_W_chartTooltipBox{z-index:50;pointer-events:none;background:var(--dsw-specific-menu);border:1px solid var(--dsw-alias-border-l1);backdrop-filter:blur(8px);border-radius:8px;min-width:150px;max-width:260px;padding:8px 10px;transition:opacity .12s,transform .12s;position:absolute;box-shadow:0 6px 20px #00000047}._8ePy_W_chartTooltipBox._8ePy_W_chartTooltipPortal{z-index:1200;visibility:hidden;position:fixed;top:0;left:0}._8ePy_W_chartTooltipDate{color:var(--dsw-alias-label-primary);justify-content:space-between;align-items:center;gap:6px;margin-bottom:4px;font-size:11px;font-weight:700;display:flex}._8ePy_W_chartTooltipDateBadge{color:var(--dsw-static-deepseek-450,#5686fe);background:#5686fe26;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:600}._8ePy_W_chartTooltipTotal{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;align-items:baseline;gap:5px;margin-bottom:4px;font-size:13px;font-weight:800;display:flex}._8ePy_W_chartTooltipSessions{color:var(--dsw-alias-label-tertiary);font-size:10px;font-weight:500}._8ePy_W_chartTooltipDivider{background:var(--dsw-alias-border-l2);height:1px;margin:5px 0}._8ePy_W_chartTooltipModelList{flex-direction:column;gap:3px;display:flex}._8ePy_W_chartTooltipModelRow{justify-content:space-between;align-items:center;gap:8px;font-size:10px;display:flex}._8ePy_W_chartTooltipModelLeft{flex:1;align-items:center;gap:5px;min-width:0;display:flex}._8ePy_W_chartTooltipModelDot{border-radius:50%;flex-shrink:0;width:6px;height:6px}._8ePy_W_chartTooltipModelName{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-secondary);overflow:hidden}._8ePy_W_chartTooltipModelRight{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-primary);white-space:nowrap;flex-shrink:0;font-weight:600}._8ePy_W_lineChartWrap{user-select:none;width:100%;min-width:0;height:170px;position:relative}._8ePy_W_lineChartSvg{width:100%;height:100%;display:block;overflow:visible}._8ePy_W_lineGrid{stroke:var(--dsw-alias-border-l2);stroke-dasharray:2 3}._8ePy_W_lineAxisText{fill:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:9px}._8ePy_W_lineCursor{stroke:var(--dsw-static-deepseek-450,#5686fe);stroke-dasharray:3 3;stroke-width:1.5px;pointer-events:none}._8ePy_W_lineActiveOuter{fill:#5686fe40;pointer-events:none;animation:1.5s ease-in-out infinite _8ePy_W_linePulse}@keyframes _8ePy_W_linePulse{0%,to{opacity:.8;transform:scale(1)}50%{opacity:.4;transform:scale(1.3)}}._8ePy_W_lineActiveInner{fill:var(--dsw-static-deepseek-450,#5686fe);stroke:#fff;stroke-width:1.5px;pointer-events:none}._8ePy_W_viewSwitchGroup{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:5px;gap:2px;padding:2px;display:flex}._8ePy_W_viewSwitchBtn{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 7px;font-size:10px;font-weight:600;transition:all .12s}._8ePy_W_viewSwitchBtn[data-active]{background:var(--dsw-specific-menu);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1)}._8ePy_W_heatmapPanel{background:var(--dsw-specific-menu);border:1px solid var(--dsw-alias-border-l2);box-shadow:var(--dsw-shadow-lv1);box-sizing:border-box;border-radius:10px;flex-direction:column;gap:10px;width:100%;min-width:0;margin-top:12px;padding:14px 16px;display:flex}._8ePy_W_heatmapHead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;display:flex}._8ePy_W_heatmapTitleGroup{flex-direction:column;gap:2px;display:flex}._8ePy_W_heatmapTitle{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:700}._8ePy_W_heatmapSub{color:var(--dsw-alias-label-secondary);font-size:11px}._8ePy_W_heatmapStatsRow{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;gap:14px;font-size:11px;display:flex}._8ePy_W_heatmapStatsRow strong{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-weight:700}._8ePy_W_heatmapScrollArea{box-sizing:border-box;width:100%;padding:8px 4px 14px;overflow:auto visible}._8ePy_W_heatmapContainer{flex-direction:column;gap:6px;width:max-content;display:flex;position:relative}._8ePy_W_heatmapMonthsRow{height:16px;margin-left:32px;display:block;position:relative}._8ePy_W_heatmapMonthLabel{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:10px;font-weight:600;position:absolute}._8ePy_W_heatmapGrid{gap:8px;display:flex}._8ePy_W_heatmapWeekdaysCol{width:24px;height:109px;color:var(--dsw-alias-label-tertiary);user-select:none;flex-direction:column;flex-shrink:0;justify-content:space-between;padding:0;font-size:9px;display:flex}._8ePy_W_heatmapWeeksRow{gap:3px;display:flex}._8ePy_W_heatmapWeekCol{flex-direction:column;gap:3px;display:flex}._8ePy_W_heatmapCell{box-sizing:border-box;cursor:pointer;border-radius:2px;width:13px;height:13px;transition:outline .1s,box-shadow .1s,filter .1s;position:relative}._8ePy_W_heatmapCellToday{outline-offset:1px;z-index:5;outline:1.5px solid var(--dsw-static-deepseek-450,#5686fe)!important}._8ePy_W_heatmapCell[data-level=\"0\"]{background:var(--dsw-alias-bg-layer-2,#ffffff09);border:1px solid var(--dsw-alias-border-l2,#ffffff14)}._8ePy_W_heatmapCell[data-level=\"1\"]{background:#5686fe38;border:1px solid #5686fe59}._8ePy_W_heatmapCell[data-level=\"2\"]{background:#5686fe73;border:1px solid #5686fe99}._8ePy_W_heatmapCell[data-level=\"3\"]{background:#5686feb8;border:1px solid #5686fee0;box-shadow:0 0 6px #5686fe40}._8ePy_W_heatmapCell[data-level=\"4\"]{background:var(--dsw-static-deepseek-450,#5686fe);border:1px solid #9bb8ff;box-shadow:0 0 10px #5686fe8c}._8ePy_W_heatmapCell[data-future=true]{opacity:.28;cursor:default;background:0 0!important;border:1px dashed #ffffff26!important}._8ePy_W_heatmapCell:hover:not([data-future=true]),._8ePy_W_heatmapCellActive{outline-offset:1px;filter:brightness(1.25);z-index:10;transform:none;outline:2px solid #fff!important;box-shadow:0 0 12px #5686fed9!important}._8ePy_W_heatmapLiveHud{color:var(--dsw-alias-label-primary);background:#5686fe1f;border:1px solid #5686fe47;border-radius:6px;align-items:center;gap:8px;padding:3px 8px;font-size:11px;display:flex}._8ePy_W_heatmapLiveDate{color:var(--dsw-static-deepseek-450,#5686fe);font-weight:700}._8ePy_W_heatmapLiveTokens{font-variant-numeric:tabular-nums;font-weight:700}._8ePy_W_heatmapLiveModel{color:var(--dsw-alias-label-secondary);font-size:10px}._8ePy_W_heatmapFoot{color:var(--dsw-alias-label-tertiary);border-top:1px solid var(--dsw-alias-border-l2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:4px;padding-top:8px;font-size:10px;display:flex}._8ePy_W_heatmapLegend{color:var(--dsw-alias-label-tertiary);align-items:center;gap:4px;font-size:10px;display:flex}._8ePy_W_heatmapLegendCell{border-radius:2px;width:10px;height:10px}";
3208
3235
  const tagId$1 = "dsh-watcher/Insights.module.css";
3209
3236
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
3210
3237
  const tag = document.createElement("style");
@@ -3214,229 +3241,229 @@ window.__ModuleLoader__.load({
3214
3241
  document.head.appendChild(tag);
3215
3242
  }
3216
3243
  var Insights_module_css_default = {
3217
- "alertActionBtn": "_3jWyTq_alertActionBtn",
3218
- "alertCard": "_3jWyTq_alertCard",
3219
- "alertCardDanger": "_3jWyTq_alertCardDanger",
3220
- "alertCardWarn": "_3jWyTq_alertCardWarn",
3221
- "alertLeft": "_3jWyTq_alertLeft",
3222
- "alertMainText": "_3jWyTq_alertMainText",
3223
- "alertSection": "_3jWyTq_alertSection",
3224
- "alertSubText": "_3jWyTq_alertSubText",
3225
- "alertTag": "_3jWyTq_alertTag",
3226
- "alertTexts": "_3jWyTq_alertTexts",
3227
- "arrowIcon": "_3jWyTq_arrowIcon",
3228
- "chartAreaBox": "_3jWyTq_chartAreaBox",
3229
- "chartAxisLabel": "_3jWyTq_chartAxisLabel",
3230
- "chartFoot": "_3jWyTq_chartFoot",
3231
- "chartGridLine": "_3jWyTq_chartGridLine",
3232
- "chartInteractiveWrap": "_3jWyTq_chartInteractiveWrap",
3233
- "chartLegend": "_3jWyTq_chartLegend",
3234
- "chartLegendDot": "_3jWyTq_chartLegendDot",
3235
- "chartLegendItem": "_3jWyTq_chartLegendItem",
3236
- "chartLegendName": "_3jWyTq_chartLegendName",
3237
- "chartLegendVal": "_3jWyTq_chartLegendVal",
3238
- "chartSvg": "_3jWyTq_chartSvg",
3239
- "chartTooltipBox": "_3jWyTq_chartTooltipBox",
3240
- "chartTooltipDate": "_3jWyTq_chartTooltipDate",
3241
- "chartTooltipDateBadge": "_3jWyTq_chartTooltipDateBadge",
3242
- "chartTooltipDivider": "_3jWyTq_chartTooltipDivider",
3243
- "chartTooltipModelDot": "_3jWyTq_chartTooltipModelDot",
3244
- "chartTooltipModelLeft": "_3jWyTq_chartTooltipModelLeft",
3245
- "chartTooltipModelList": "_3jWyTq_chartTooltipModelList",
3246
- "chartTooltipModelName": "_3jWyTq_chartTooltipModelName",
3247
- "chartTooltipModelRight": "_3jWyTq_chartTooltipModelRight",
3248
- "chartTooltipModelRow": "_3jWyTq_chartTooltipModelRow",
3249
- "chartTooltipPortal": "_3jWyTq_chartTooltipPortal",
3250
- "chartTooltipSessions": "_3jWyTq_chartTooltipSessions",
3251
- "chartTooltipTotal": "_3jWyTq_chartTooltipTotal",
3252
- "cockpitHeader": "_3jWyTq_cockpitHeader",
3253
- "cockpitSubTitle": "_3jWyTq_cockpitSubTitle",
3254
- "cockpitTitleArea": "_3jWyTq_cockpitTitleArea",
3255
- "collapseBtn": "_3jWyTq_collapseBtn",
3256
- "collapseChevron": "_3jWyTq_collapseChevron",
3257
- "contextTag": "_3jWyTq_contextTag",
3258
- "costStat": "_3jWyTq_costStat",
3259
- "currentModelTag": "_3jWyTq_currentModelTag",
3260
- "dayBarTopLabel": "_3jWyTq_dayBarTopLabel",
3261
- "dayCol": "_3jWyTq_dayCol",
3262
- "dayColFill": "_3jWyTq_dayColFill",
3263
- "dayColFillActive": "_3jWyTq_dayColFillActive",
3264
- "dayEmptyDot": "_3jWyTq_dayEmptyDot",
3265
- "dayLabel": "_3jWyTq_dayLabel",
3266
- "dayLabelToday": "_3jWyTq_dayLabelToday",
3267
- "daySeg": "_3jWyTq_daySeg",
3268
- "dayStack": "_3jWyTq_dayStack",
3269
- "dayStackWeek": "_3jWyTq_dayStackWeek",
3270
- "dlDot": "_3jWyTq_dlDot",
3271
- "dlLeft": "_3jWyTq_dlLeft",
3272
- "dlName": "_3jWyTq_dlName",
3273
- "dlRight": "_3jWyTq_dlRight",
3274
- "donutCenterNum": "_3jWyTq_donutCenterNum",
3275
- "donutCenterSub": "_3jWyTq_donutCenterSub",
3276
- "donutCenterText": "_3jWyTq_donutCenterText",
3277
- "donutInspectBar": "_3jWyTq_donutInspectBar",
3278
- "donutInspectName": "_3jWyTq_donutInspectName",
3279
- "donutInspectTag": "_3jWyTq_donutInspectTag",
3280
- "donutInspectVal": "_3jWyTq_donutInspectVal",
3281
- "donutLegendList": "_3jWyTq_donutLegendList",
3282
- "donutLegendRow": "_3jWyTq_donutLegendRow",
3283
- "donutLegendRowActive": "_3jWyTq_donutLegendRowActive",
3284
- "donutSvg": "_3jWyTq_donutSvg",
3285
- "donutSvgBox": "_3jWyTq_donutSvgBox",
3286
- "donutWrap": "_3jWyTq_donutWrap",
3287
- "drawerBarTrack": "_3jWyTq_drawerBarTrack",
3288
- "drawerMetaRow": "_3jWyTq_drawerMetaRow",
3289
- "drawerSliceModel": "_3jWyTq_drawerSliceModel",
3290
- "drawerSliceTool": "_3jWyTq_drawerSliceTool",
3291
- "drawerTitle": "_3jWyTq_drawerTitle",
3292
- "drilldownCloseBtn": "_3jWyTq_drilldownCloseBtn",
3293
- "drilldownEmpty": "_3jWyTq_drilldownEmpty",
3294
- "drilldownHead": "_3jWyTq_drilldownHead",
3295
- "drilldownPanel": "_3jWyTq_drilldownPanel",
3296
- "drilldownSub": "_3jWyTq_drilldownSub",
3297
- "drilldownTitle": "_3jWyTq_drilldownTitle",
3298
- "drilldownTitleGroup": "_3jWyTq_drilldownTitleGroup",
3299
- "effortTag": "_3jWyTq_effortTag",
3300
- "emptyScan": "_3jWyTq_emptyScan",
3301
- "errorAllGoodBox": "_3jWyTq_errorAllGoodBox",
3302
- "errorDrillSection": "_3jWyTq_errorDrillSection",
3303
- "errorSessionList": "_3jWyTq_errorSessionList",
3304
- "errorSessionRow": "_3jWyTq_errorSessionRow",
3305
- "headerRightControls": "_3jWyTq_headerRightControls",
3306
- "heatmapCell": "_3jWyTq_heatmapCell",
3307
- "heatmapCellActive": "_3jWyTq_heatmapCellActive",
3308
- "heatmapCellToday": "_3jWyTq_heatmapCellToday",
3309
- "heatmapContainer": "_3jWyTq_heatmapContainer",
3310
- "heatmapFoot": "_3jWyTq_heatmapFoot",
3311
- "heatmapGrid": "_3jWyTq_heatmapGrid",
3312
- "heatmapHead": "_3jWyTq_heatmapHead",
3313
- "heatmapLegend": "_3jWyTq_heatmapLegend",
3314
- "heatmapLegendCell": "_3jWyTq_heatmapLegendCell",
3315
- "heatmapLiveDate": "_3jWyTq_heatmapLiveDate",
3316
- "heatmapLiveHud": "_3jWyTq_heatmapLiveHud",
3317
- "heatmapLiveModel": "_3jWyTq_heatmapLiveModel",
3318
- "heatmapLiveTokens": "_3jWyTq_heatmapLiveTokens",
3319
- "heatmapMonthLabel": "_3jWyTq_heatmapMonthLabel",
3320
- "heatmapMonthsRow": "_3jWyTq_heatmapMonthsRow",
3321
- "heatmapPanel": "_3jWyTq_heatmapPanel",
3322
- "heatmapScrollArea": "_3jWyTq_heatmapScrollArea",
3323
- "heatmapStatsRow": "_3jWyTq_heatmapStatsRow",
3324
- "heatmapSub": "_3jWyTq_heatmapSub",
3325
- "heatmapTitle": "_3jWyTq_heatmapTitle",
3326
- "heatmapTitleGroup": "_3jWyTq_heatmapTitleGroup",
3327
- "heatmapWeekCol": "_3jWyTq_heatmapWeekCol",
3328
- "heatmapWeekdaysCol": "_3jWyTq_heatmapWeekdaysCol",
3329
- "heatmapWeeksRow": "_3jWyTq_heatmapWeeksRow",
3330
- "heroCaption": "_3jWyTq_heroCaption",
3331
- "heroFootnote": "_3jWyTq_heroFootnote",
3332
- "heroMetaCol": "_3jWyTq_heroMetaCol",
3333
- "heroMetric": "_3jWyTq_heroMetric",
3334
- "heroPair": "_3jWyTq_heroPair",
3335
- "heroStatsRow": "_3jWyTq_heroStatsRow",
3336
- "heroValue": "_3jWyTq_heroValue",
3337
- "hudBody": "_3jWyTq_hudBody",
3338
- "hudBox": "_3jWyTq_hudBox",
3339
- "hudHeading": "_3jWyTq_hudHeading",
3340
- "hudTop": "_3jWyTq_hudTop",
3341
- "hudTopLeft": "_3jWyTq_hudTopLeft",
3342
- "hudTopRight": "_3jWyTq_hudTopRight",
3343
- "lineActiveInner": "_3jWyTq_lineActiveInner",
3344
- "lineActiveOuter": "_3jWyTq_lineActiveOuter",
3345
- "lineAxisText": "_3jWyTq_lineAxisText",
3346
- "lineChartSvg": "_3jWyTq_lineChartSvg",
3347
- "lineChartWrap": "_3jWyTq_lineChartWrap",
3348
- "lineCursor": "_3jWyTq_lineCursor",
3349
- "lineGrid": "_3jWyTq_lineGrid",
3350
- "linePulse": "_3jWyTq_linePulse",
3351
- "modelTabBar": "_3jWyTq_modelTabBar",
3352
- "modelTabBtn": "_3jWyTq_modelTabBtn",
3353
- "modelTagText": "_3jWyTq_modelTagText",
3354
- "priceOverrideActions": "_3jWyTq_priceOverrideActions",
3355
- "priceOverrideError": "_3jWyTq_priceOverrideError",
3356
- "priceOverrideHelp": "_3jWyTq_priceOverrideHelp",
3357
- "priceOverrideInput": "_3jWyTq_priceOverrideInput",
3358
- "priceOverridePath": "_3jWyTq_priceOverridePath",
3359
- "rangeBtn": "_3jWyTq_rangeBtn",
3360
- "rangeSwitchGroup": "_3jWyTq_rangeSwitchGroup",
3361
- "rankBadge": "_3jWyTq_rankBadge",
3362
- "rankBadgeGold": "_3jWyTq_rankBadgeGold",
3363
- "rankBar": "_3jWyTq_rankBar",
3364
- "rankItem": "_3jWyTq_rankItem",
3365
- "rankItemLeft": "_3jWyTq_rankItemLeft",
3366
- "rankItemTop": "_3jWyTq_rankItemTop",
3367
- "rankList": "_3jWyTq_rankList",
3368
- "rankName": "_3jWyTq_rankName",
3369
- "rankSubText": "_3jWyTq_rankSubText",
3370
- "rankTrack": "_3jWyTq_rankTrack",
3371
- "rankValMain": "_3jWyTq_rankValMain",
3372
- "roastAction": "_3jWyTq_roastAction",
3373
- "roastCategoryBadge": "_3jWyTq_roastCategoryBadge",
3374
- "roastDesc": "_3jWyTq_roastDesc",
3375
- "roastFooter": "_3jWyTq_roastFooter",
3376
- "roastFooterLeft": "_3jWyTq_roastFooterLeft",
3377
- "roastGrid": "_3jWyTq_roastGrid",
3378
- "roastHead": "_3jWyTq_roastHead",
3379
- "roastItem": "_3jWyTq_roastItem",
3380
- "roastItemActive": "_3jWyTq_roastItemActive",
3381
- "roastTag": "_3jWyTq_roastTag",
3382
- "roastTitle": "_3jWyTq_roastTitle",
3383
- "roastVal": "_3jWyTq_roastVal",
3384
- "scopeBtn": "_3jWyTq_scopeBtn",
3385
- "scopeGroup": "_3jWyTq_scopeGroup",
3386
- "sessionIdTag": "_3jWyTq_sessionIdTag",
3387
- "sessionItemDrawer": "_3jWyTq_sessionItemDrawer",
3388
- "sessionItemHead": "_3jWyTq_sessionItemHead",
3389
- "sessionItemOpen": "_3jWyTq_sessionItemOpen",
3390
- "sessionItemRow": "_3jWyTq_sessionItemRow",
3391
- "sessionModelCell": "_3jWyTq_sessionModelCell",
3392
- "sessionTableBox": "_3jWyTq_sessionTableBox",
3393
- "sessionTableHeader": "_3jWyTq_sessionTableHeader",
3394
- "sessionTokenBar": "_3jWyTq_sessionTokenBar",
3395
- "sessionTokenCell": "_3jWyTq_sessionTokenCell",
3396
- "settingInlineItem": "_3jWyTq_settingInlineItem",
3397
- "settingsContainer": "_3jWyTq_settingsContainer",
3398
- "settingsDrawer": "_3jWyTq_settingsDrawer",
3399
- "settingsDrawerContent": "_3jWyTq_settingsDrawerContent",
3400
- "settingsMiniInput": "_3jWyTq_settingsMiniInput",
3401
- "settingsMiniSaveBtn": "_3jWyTq_settingsMiniSaveBtn",
3402
- "settingsResetBtn": "_3jWyTq_settingsResetBtn",
3403
- "settingsScanBtn": "_3jWyTq_settingsScanBtn",
3404
- "settingsSummary": "_3jWyTq_settingsSummary",
3405
- "slideDown": "_3jWyTq_slideDown",
3406
- "sortBtn": "_3jWyTq_sortBtn",
3407
- "statusBad": "_3jWyTq_statusBad",
3408
- "statusOk": "_3jWyTq_statusOk",
3409
- "statusWarn": "_3jWyTq_statusWarn",
3410
- "tableRankNum": "_3jWyTq_tableRankNum",
3411
- "tableSortGroup": "_3jWyTq_tableSortGroup",
3412
- "tableTitleGroup": "_3jWyTq_tableTitleGroup",
3413
- "tagDanger": "_3jWyTq_tagDanger",
3414
- "tagWarn": "_3jWyTq_tagWarn",
3415
- "tokenStat": "_3jWyTq_tokenStat",
3416
- "toolCompoundBox": "_3jWyTq_toolCompoundBox",
3417
- "toolCompoundLegend": "_3jWyTq_toolCompoundLegend",
3418
- "toolCompoundTrack": "_3jWyTq_toolCompoundTrack",
3419
- "toolDrillSection": "_3jWyTq_toolDrillSection",
3420
- "toolGridCards": "_3jWyTq_toolGridCards",
3421
- "toolMiniCard": "_3jWyTq_toolMiniCard",
3422
- "toolMiniDesc": "_3jWyTq_toolMiniDesc",
3423
- "toolMiniNum": "_3jWyTq_toolMiniNum",
3424
- "toolMiniTitle": "_3jWyTq_toolMiniTitle",
3425
- "toolSliceBash": "_3jWyTq_toolSliceBash",
3426
- "toolSliceFile": "_3jWyTq_toolSliceFile",
3427
- "toolTopList": "_3jWyTq_toolTopList",
3428
- "toolTopListTitle": "_3jWyTq_toolTopListTitle",
3429
- "viewSwitchBtn": "_3jWyTq_viewSwitchBtn",
3430
- "viewSwitchGroup": "_3jWyTq_viewSwitchGroup",
3431
- "vizHead": "_3jWyTq_vizHead",
3432
- "vizPanel": "_3jWyTq_vizPanel",
3433
- "vizSplitGrid": "_3jWyTq_vizSplitGrid",
3434
- "vizSub": "_3jWyTq_vizSub",
3435
- "vizTitle": "_3jWyTq_vizTitle"
3244
+ "alertActionBtn": "_8ePy_W_alertActionBtn",
3245
+ "alertCard": "_8ePy_W_alertCard",
3246
+ "alertCardDanger": "_8ePy_W_alertCardDanger",
3247
+ "alertCardWarn": "_8ePy_W_alertCardWarn",
3248
+ "alertLeft": "_8ePy_W_alertLeft",
3249
+ "alertMainText": "_8ePy_W_alertMainText",
3250
+ "alertSection": "_8ePy_W_alertSection",
3251
+ "alertSubText": "_8ePy_W_alertSubText",
3252
+ "alertTag": "_8ePy_W_alertTag",
3253
+ "alertTexts": "_8ePy_W_alertTexts",
3254
+ "arrowIcon": "_8ePy_W_arrowIcon",
3255
+ "chartAreaBox": "_8ePy_W_chartAreaBox",
3256
+ "chartAxisLabel": "_8ePy_W_chartAxisLabel",
3257
+ "chartFoot": "_8ePy_W_chartFoot",
3258
+ "chartGridLine": "_8ePy_W_chartGridLine",
3259
+ "chartInteractiveWrap": "_8ePy_W_chartInteractiveWrap",
3260
+ "chartLegend": "_8ePy_W_chartLegend",
3261
+ "chartLegendDot": "_8ePy_W_chartLegendDot",
3262
+ "chartLegendItem": "_8ePy_W_chartLegendItem",
3263
+ "chartLegendName": "_8ePy_W_chartLegendName",
3264
+ "chartLegendVal": "_8ePy_W_chartLegendVal",
3265
+ "chartSvg": "_8ePy_W_chartSvg",
3266
+ "chartTooltipBox": "_8ePy_W_chartTooltipBox",
3267
+ "chartTooltipDate": "_8ePy_W_chartTooltipDate",
3268
+ "chartTooltipDateBadge": "_8ePy_W_chartTooltipDateBadge",
3269
+ "chartTooltipDivider": "_8ePy_W_chartTooltipDivider",
3270
+ "chartTooltipModelDot": "_8ePy_W_chartTooltipModelDot",
3271
+ "chartTooltipModelLeft": "_8ePy_W_chartTooltipModelLeft",
3272
+ "chartTooltipModelList": "_8ePy_W_chartTooltipModelList",
3273
+ "chartTooltipModelName": "_8ePy_W_chartTooltipModelName",
3274
+ "chartTooltipModelRight": "_8ePy_W_chartTooltipModelRight",
3275
+ "chartTooltipModelRow": "_8ePy_W_chartTooltipModelRow",
3276
+ "chartTooltipPortal": "_8ePy_W_chartTooltipPortal",
3277
+ "chartTooltipSessions": "_8ePy_W_chartTooltipSessions",
3278
+ "chartTooltipTotal": "_8ePy_W_chartTooltipTotal",
3279
+ "cockpitHeader": "_8ePy_W_cockpitHeader",
3280
+ "cockpitSubTitle": "_8ePy_W_cockpitSubTitle",
3281
+ "cockpitTitleArea": "_8ePy_W_cockpitTitleArea",
3282
+ "collapseBtn": "_8ePy_W_collapseBtn",
3283
+ "collapseChevron": "_8ePy_W_collapseChevron",
3284
+ "contextTag": "_8ePy_W_contextTag",
3285
+ "costStat": "_8ePy_W_costStat",
3286
+ "currentModelTag": "_8ePy_W_currentModelTag",
3287
+ "dayBarTopLabel": "_8ePy_W_dayBarTopLabel",
3288
+ "dayCol": "_8ePy_W_dayCol",
3289
+ "dayColFill": "_8ePy_W_dayColFill",
3290
+ "dayColFillActive": "_8ePy_W_dayColFillActive",
3291
+ "dayEmptyDot": "_8ePy_W_dayEmptyDot",
3292
+ "dayLabel": "_8ePy_W_dayLabel",
3293
+ "dayLabelToday": "_8ePy_W_dayLabelToday",
3294
+ "daySeg": "_8ePy_W_daySeg",
3295
+ "dayStack": "_8ePy_W_dayStack",
3296
+ "dayStackWeek": "_8ePy_W_dayStackWeek",
3297
+ "dlDot": "_8ePy_W_dlDot",
3298
+ "dlLeft": "_8ePy_W_dlLeft",
3299
+ "dlName": "_8ePy_W_dlName",
3300
+ "dlRight": "_8ePy_W_dlRight",
3301
+ "donutCenterNum": "_8ePy_W_donutCenterNum",
3302
+ "donutCenterSub": "_8ePy_W_donutCenterSub",
3303
+ "donutCenterText": "_8ePy_W_donutCenterText",
3304
+ "donutInspectBar": "_8ePy_W_donutInspectBar",
3305
+ "donutInspectName": "_8ePy_W_donutInspectName",
3306
+ "donutInspectTag": "_8ePy_W_donutInspectTag",
3307
+ "donutInspectVal": "_8ePy_W_donutInspectVal",
3308
+ "donutLegendList": "_8ePy_W_donutLegendList",
3309
+ "donutLegendRow": "_8ePy_W_donutLegendRow",
3310
+ "donutLegendRowActive": "_8ePy_W_donutLegendRowActive",
3311
+ "donutSvg": "_8ePy_W_donutSvg",
3312
+ "donutSvgBox": "_8ePy_W_donutSvgBox",
3313
+ "donutWrap": "_8ePy_W_donutWrap",
3314
+ "drawerBarTrack": "_8ePy_W_drawerBarTrack",
3315
+ "drawerMetaRow": "_8ePy_W_drawerMetaRow",
3316
+ "drawerSliceModel": "_8ePy_W_drawerSliceModel",
3317
+ "drawerSliceTool": "_8ePy_W_drawerSliceTool",
3318
+ "drawerTitle": "_8ePy_W_drawerTitle",
3319
+ "drilldownCloseBtn": "_8ePy_W_drilldownCloseBtn",
3320
+ "drilldownEmpty": "_8ePy_W_drilldownEmpty",
3321
+ "drilldownHead": "_8ePy_W_drilldownHead",
3322
+ "drilldownPanel": "_8ePy_W_drilldownPanel",
3323
+ "drilldownSub": "_8ePy_W_drilldownSub",
3324
+ "drilldownTitle": "_8ePy_W_drilldownTitle",
3325
+ "drilldownTitleGroup": "_8ePy_W_drilldownTitleGroup",
3326
+ "effortTag": "_8ePy_W_effortTag",
3327
+ "emptyScan": "_8ePy_W_emptyScan",
3328
+ "errorAllGoodBox": "_8ePy_W_errorAllGoodBox",
3329
+ "errorDrillSection": "_8ePy_W_errorDrillSection",
3330
+ "errorSessionList": "_8ePy_W_errorSessionList",
3331
+ "errorSessionRow": "_8ePy_W_errorSessionRow",
3332
+ "headerRightControls": "_8ePy_W_headerRightControls",
3333
+ "heatmapCell": "_8ePy_W_heatmapCell",
3334
+ "heatmapCellActive": "_8ePy_W_heatmapCellActive",
3335
+ "heatmapCellToday": "_8ePy_W_heatmapCellToday",
3336
+ "heatmapContainer": "_8ePy_W_heatmapContainer",
3337
+ "heatmapFoot": "_8ePy_W_heatmapFoot",
3338
+ "heatmapGrid": "_8ePy_W_heatmapGrid",
3339
+ "heatmapHead": "_8ePy_W_heatmapHead",
3340
+ "heatmapLegend": "_8ePy_W_heatmapLegend",
3341
+ "heatmapLegendCell": "_8ePy_W_heatmapLegendCell",
3342
+ "heatmapLiveDate": "_8ePy_W_heatmapLiveDate",
3343
+ "heatmapLiveHud": "_8ePy_W_heatmapLiveHud",
3344
+ "heatmapLiveModel": "_8ePy_W_heatmapLiveModel",
3345
+ "heatmapLiveTokens": "_8ePy_W_heatmapLiveTokens",
3346
+ "heatmapMonthLabel": "_8ePy_W_heatmapMonthLabel",
3347
+ "heatmapMonthsRow": "_8ePy_W_heatmapMonthsRow",
3348
+ "heatmapPanel": "_8ePy_W_heatmapPanel",
3349
+ "heatmapScrollArea": "_8ePy_W_heatmapScrollArea",
3350
+ "heatmapStatsRow": "_8ePy_W_heatmapStatsRow",
3351
+ "heatmapSub": "_8ePy_W_heatmapSub",
3352
+ "heatmapTitle": "_8ePy_W_heatmapTitle",
3353
+ "heatmapTitleGroup": "_8ePy_W_heatmapTitleGroup",
3354
+ "heatmapWeekCol": "_8ePy_W_heatmapWeekCol",
3355
+ "heatmapWeekdaysCol": "_8ePy_W_heatmapWeekdaysCol",
3356
+ "heatmapWeeksRow": "_8ePy_W_heatmapWeeksRow",
3357
+ "heroCaption": "_8ePy_W_heroCaption",
3358
+ "heroFootnote": "_8ePy_W_heroFootnote",
3359
+ "heroMetaCol": "_8ePy_W_heroMetaCol",
3360
+ "heroMetric": "_8ePy_W_heroMetric",
3361
+ "heroPair": "_8ePy_W_heroPair",
3362
+ "heroStatsRow": "_8ePy_W_heroStatsRow",
3363
+ "heroValue": "_8ePy_W_heroValue",
3364
+ "hudBody": "_8ePy_W_hudBody",
3365
+ "hudBox": "_8ePy_W_hudBox",
3366
+ "hudHeading": "_8ePy_W_hudHeading",
3367
+ "hudTop": "_8ePy_W_hudTop",
3368
+ "hudTopLeft": "_8ePy_W_hudTopLeft",
3369
+ "hudTopRight": "_8ePy_W_hudTopRight",
3370
+ "lineActiveInner": "_8ePy_W_lineActiveInner",
3371
+ "lineActiveOuter": "_8ePy_W_lineActiveOuter",
3372
+ "lineAxisText": "_8ePy_W_lineAxisText",
3373
+ "lineChartSvg": "_8ePy_W_lineChartSvg",
3374
+ "lineChartWrap": "_8ePy_W_lineChartWrap",
3375
+ "lineCursor": "_8ePy_W_lineCursor",
3376
+ "lineGrid": "_8ePy_W_lineGrid",
3377
+ "linePulse": "_8ePy_W_linePulse",
3378
+ "modelTabBar": "_8ePy_W_modelTabBar",
3379
+ "modelTabBtn": "_8ePy_W_modelTabBtn",
3380
+ "modelTagText": "_8ePy_W_modelTagText",
3381
+ "priceOverrideActions": "_8ePy_W_priceOverrideActions",
3382
+ "priceOverrideError": "_8ePy_W_priceOverrideError",
3383
+ "priceOverrideHelp": "_8ePy_W_priceOverrideHelp",
3384
+ "priceOverrideInput": "_8ePy_W_priceOverrideInput",
3385
+ "priceOverridePath": "_8ePy_W_priceOverridePath",
3386
+ "rangeBtn": "_8ePy_W_rangeBtn",
3387
+ "rangeSwitchGroup": "_8ePy_W_rangeSwitchGroup",
3388
+ "rankBadge": "_8ePy_W_rankBadge",
3389
+ "rankBadgeGold": "_8ePy_W_rankBadgeGold",
3390
+ "rankBar": "_8ePy_W_rankBar",
3391
+ "rankItem": "_8ePy_W_rankItem",
3392
+ "rankItemLeft": "_8ePy_W_rankItemLeft",
3393
+ "rankItemTop": "_8ePy_W_rankItemTop",
3394
+ "rankList": "_8ePy_W_rankList",
3395
+ "rankName": "_8ePy_W_rankName",
3396
+ "rankSubText": "_8ePy_W_rankSubText",
3397
+ "rankTrack": "_8ePy_W_rankTrack",
3398
+ "rankValMain": "_8ePy_W_rankValMain",
3399
+ "roastAction": "_8ePy_W_roastAction",
3400
+ "roastCategoryBadge": "_8ePy_W_roastCategoryBadge",
3401
+ "roastDesc": "_8ePy_W_roastDesc",
3402
+ "roastFooter": "_8ePy_W_roastFooter",
3403
+ "roastFooterLeft": "_8ePy_W_roastFooterLeft",
3404
+ "roastGrid": "_8ePy_W_roastGrid",
3405
+ "roastHead": "_8ePy_W_roastHead",
3406
+ "roastItem": "_8ePy_W_roastItem",
3407
+ "roastItemActive": "_8ePy_W_roastItemActive",
3408
+ "roastTag": "_8ePy_W_roastTag",
3409
+ "roastTitle": "_8ePy_W_roastTitle",
3410
+ "roastVal": "_8ePy_W_roastVal",
3411
+ "scopeBtn": "_8ePy_W_scopeBtn",
3412
+ "scopeGroup": "_8ePy_W_scopeGroup",
3413
+ "sessionIdTag": "_8ePy_W_sessionIdTag",
3414
+ "sessionItemDrawer": "_8ePy_W_sessionItemDrawer",
3415
+ "sessionItemHead": "_8ePy_W_sessionItemHead",
3416
+ "sessionItemOpen": "_8ePy_W_sessionItemOpen",
3417
+ "sessionItemRow": "_8ePy_W_sessionItemRow",
3418
+ "sessionModelCell": "_8ePy_W_sessionModelCell",
3419
+ "sessionTableBox": "_8ePy_W_sessionTableBox",
3420
+ "sessionTableHeader": "_8ePy_W_sessionTableHeader",
3421
+ "sessionTokenBar": "_8ePy_W_sessionTokenBar",
3422
+ "sessionTokenCell": "_8ePy_W_sessionTokenCell",
3423
+ "settingInlineItem": "_8ePy_W_settingInlineItem",
3424
+ "settingsContainer": "_8ePy_W_settingsContainer",
3425
+ "settingsDrawer": "_8ePy_W_settingsDrawer",
3426
+ "settingsDrawerContent": "_8ePy_W_settingsDrawerContent",
3427
+ "settingsMiniInput": "_8ePy_W_settingsMiniInput",
3428
+ "settingsMiniSaveBtn": "_8ePy_W_settingsMiniSaveBtn",
3429
+ "settingsResetBtn": "_8ePy_W_settingsResetBtn",
3430
+ "settingsScanBtn": "_8ePy_W_settingsScanBtn",
3431
+ "settingsSummary": "_8ePy_W_settingsSummary",
3432
+ "slideDown": "_8ePy_W_slideDown",
3433
+ "sortBtn": "_8ePy_W_sortBtn",
3434
+ "statusBad": "_8ePy_W_statusBad",
3435
+ "statusOk": "_8ePy_W_statusOk",
3436
+ "statusWarn": "_8ePy_W_statusWarn",
3437
+ "tableRankNum": "_8ePy_W_tableRankNum",
3438
+ "tableSortGroup": "_8ePy_W_tableSortGroup",
3439
+ "tableTitleGroup": "_8ePy_W_tableTitleGroup",
3440
+ "tagDanger": "_8ePy_W_tagDanger",
3441
+ "tagWarn": "_8ePy_W_tagWarn",
3442
+ "tokenStat": "_8ePy_W_tokenStat",
3443
+ "toolCompoundBox": "_8ePy_W_toolCompoundBox",
3444
+ "toolCompoundLegend": "_8ePy_W_toolCompoundLegend",
3445
+ "toolCompoundTrack": "_8ePy_W_toolCompoundTrack",
3446
+ "toolDrillSection": "_8ePy_W_toolDrillSection",
3447
+ "toolGridCards": "_8ePy_W_toolGridCards",
3448
+ "toolMiniCard": "_8ePy_W_toolMiniCard",
3449
+ "toolMiniDesc": "_8ePy_W_toolMiniDesc",
3450
+ "toolMiniNum": "_8ePy_W_toolMiniNum",
3451
+ "toolMiniTitle": "_8ePy_W_toolMiniTitle",
3452
+ "toolSliceBash": "_8ePy_W_toolSliceBash",
3453
+ "toolSliceFile": "_8ePy_W_toolSliceFile",
3454
+ "toolTopList": "_8ePy_W_toolTopList",
3455
+ "toolTopListTitle": "_8ePy_W_toolTopListTitle",
3456
+ "viewSwitchBtn": "_8ePy_W_viewSwitchBtn",
3457
+ "viewSwitchGroup": "_8ePy_W_viewSwitchGroup",
3458
+ "vizHead": "_8ePy_W_vizHead",
3459
+ "vizPanel": "_8ePy_W_vizPanel",
3460
+ "vizSplitGrid": "_8ePy_W_vizSplitGrid",
3461
+ "vizSub": "_8ePy_W_vizSub",
3462
+ "vizTitle": "_8ePy_W_vizTitle"
3436
3463
  };
3437
3464
  //#endregion
3438
- //#region \0dshx-css-module:/agent/repos/dsh-watcher/src/client/TimingPanel.module.css.mjs
3439
- const css = ".Oecg3G_panelBox{--c-ttft:#94a3b8;--c-think:#3b82f6;--c-output:#38bdf8;--c-bash:#059669;--c-file:#34d399;box-sizing:border-box;background:var(--dsw-alias-bg-layer-2,#f5f6f8);border:1px solid var(--dsw-alias-border-l2,#e2e8f0);border-radius:8px;width:100%;padding:12px 14px;position:relative}body[data-ds-dark-theme] .Oecg3G_panelBox{--c-ttft:#64748b;--c-think:#60a5fa;--c-output:#38bdf8;--c-bash:#10b981;--c-file:#6ee7b7}.Oecg3G_topRow{white-space:nowrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:11px;display:flex}.Oecg3G_titleArea{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;display:flex}.Oecg3G_mainTitle{color:var(--dsw-alias-label-primary,#17181c);white-space:nowrap;font-size:12px;font-weight:700}.Oecg3G_liveSpeed{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e2e8f0);color:var(--dsw-alias-label-primary,#17181c);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.Oecg3G_speedDot{background:var(--c-output);border-radius:50%;width:5px;height:5px;animation:1.5s infinite Oecg3G_pulse}.Oecg3G_totalDuration{color:var(--dsw-alias-label-secondary,#5f636d);font-variant-numeric:tabular-nums;white-space:nowrap}.Oecg3G_bottleneckText{color:var(--dsw-alias-label-primary,#17181c);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}.Oecg3G_chartBox{width:100%;margin-bottom:8px;position:relative}.Oecg3G_barTrack{background:var(--dsw-alias-bg-layer-1,#e2e8f0);cursor:crosshair;border-radius:5px;gap:1px;width:100%;height:20px;display:flex;overflow:hidden;box-shadow:inset 0 1px 2px #0000000a}.Oecg3G_modelCluster,.Oecg3G_toolCluster{height:100%;transition:opacity .12s;display:flex;position:relative}.Oecg3G_slice{cursor:pointer;height:100%;transition:all .12s;position:relative}.Oecg3G_slice:hover{filter:brightness(1.15);z-index:5;box-shadow:0 0 6px #0003}.Oecg3G_slice+.Oecg3G_slice{border-left:1px solid #ffffff59}.Oecg3G_sliceTtft{background:var(--c-ttft)}.Oecg3G_sliceThink{background:var(--c-think)}.Oecg3G_sliceOutput{background:var(--c-output)}.Oecg3G_sliceBash{background:var(--c-bash)}.Oecg3G_sliceFile{background:var(--c-file)}.Oecg3G_legendRow{color:var(--dsw-alias-label-secondary,#5f636d);white-space:nowrap;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.Oecg3G_legendGroup{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:12px;display:flex}.Oecg3G_legendItem{cursor:pointer;white-space:nowrap;align-items:center;gap:4px;transition:opacity .12s;display:flex}.Oecg3G_legendItem:hover{opacity:.75}.Oecg3G_dot{border-radius:2px;flex-shrink:0;width:7px;height:7px}.Oecg3G_statusPill{white-space:nowrap;border-radius:4px;flex-shrink:0;align-items:center;gap:4px;padding:1px 7px;font-size:10px;font-weight:600;display:inline-flex}.Oecg3G_statusOk{color:var(--dsw-static-green-500,#15803d)}.Oecg3G_statusWarn{color:#b45309;background:#f59e0b1f}.Oecg3G_statusDanger{color:#b91c1c;background:#ef44441f}.Oecg3G_popover{color:#f8fafc;pointer-events:none;z-index:50;box-sizing:border-box;white-space:nowrap;background:#0f172a;border-radius:8px;width:360px;max-width:calc(100% - 16px);padding:10px 14px;font-size:11px;animation:.12s ease-out Oecg3G_popIn;position:absolute;top:auto;bottom:calc(100% + 8px);box-shadow:0 8px 24px #00000059}.Oecg3G_popover:after{content:\"\";bottom:-5px;left:var(--arrow-left,50%);border:5px solid #0000;border-top-color:#0f172a;border-bottom-width:0;position:absolute;transform:translate(-50%)}.Oecg3G_popTitle{white-space:nowrap;border-bottom:1px solid #ffffff26;justify-content:space-between;align-items:center;gap:16px;margin-bottom:6px;padding-bottom:5px;font-weight:600;display:flex}.Oecg3G_popList{flex-direction:column;gap:3px;display:flex}.Oecg3G_popRow{white-space:nowrap;justify-content:space-between;align-items:center;gap:16px;padding:2px 0;display:flex}.Oecg3G_popLeft{color:#ffffffd9;white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;display:flex}.Oecg3G_popRight{font-variant-numeric:tabular-nums;color:#fff;white-space:nowrap;text-align:right;flex-shrink:0;font-weight:600}.Oecg3G_activeVal{color:#fbbf24;font-weight:700}@keyframes Oecg3G_pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}@keyframes Oecg3G_popIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}";
3465
+ //#region \0dshx-css-module:./src/client/TimingPanel.module.css.mjs
3466
+ const css = "._5u7iNa_panelBox{--c-ttft:#94a3b8;--c-think:#3b82f6;--c-output:#38bdf8;--c-bash:#059669;--c-file:#34d399;box-sizing:border-box;background:var(--dsw-alias-bg-layer-2,#f5f6f8);border:1px solid var(--dsw-alias-border-l2,#e2e8f0);border-radius:8px;width:100%;padding:12px 14px;position:relative}body[data-ds-dark-theme] ._5u7iNa_panelBox{--c-ttft:#64748b;--c-think:#60a5fa;--c-output:#38bdf8;--c-bash:#10b981;--c-file:#6ee7b7}._5u7iNa_topRow{white-space:nowrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:11px;display:flex}._5u7iNa_titleArea{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;display:flex}._5u7iNa_mainTitle{color:var(--dsw-alias-label-primary,#17181c);white-space:nowrap;font-size:12px;font-weight:700}._5u7iNa_liveSpeed{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e2e8f0);color:var(--dsw-alias-label-primary,#17181c);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}._5u7iNa_speedDot{background:var(--c-output);border-radius:50%;width:5px;height:5px;animation:1.5s infinite _5u7iNa_pulse}._5u7iNa_totalDuration{color:var(--dsw-alias-label-secondary,#5f636d);font-variant-numeric:tabular-nums;white-space:nowrap}._5u7iNa_bottleneckText{color:var(--dsw-alias-label-primary,#17181c);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}._5u7iNa_chartBox{width:100%;margin-bottom:8px;position:relative}._5u7iNa_barTrack{background:var(--dsw-alias-bg-layer-1,#e2e8f0);cursor:crosshair;border-radius:5px;gap:1px;width:100%;height:20px;display:flex;overflow:hidden;box-shadow:inset 0 1px 2px #0000000a}._5u7iNa_modelCluster,._5u7iNa_toolCluster{height:100%;transition:opacity .12s;display:flex;position:relative}._5u7iNa_slice{cursor:pointer;height:100%;transition:all .12s;position:relative}._5u7iNa_slice:hover{filter:brightness(1.15);z-index:5;box-shadow:0 0 6px #0003}._5u7iNa_slice+._5u7iNa_slice{border-left:1px solid #ffffff59}._5u7iNa_sliceTtft{background:var(--c-ttft)}._5u7iNa_sliceThink{background:var(--c-think)}._5u7iNa_sliceOutput{background:var(--c-output)}._5u7iNa_sliceBash{background:var(--c-bash)}._5u7iNa_sliceFile{background:var(--c-file)}._5u7iNa_legendRow{color:var(--dsw-alias-label-secondary,#5f636d);white-space:nowrap;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}._5u7iNa_legendGroup{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:12px;display:flex}._5u7iNa_legendItem{cursor:pointer;white-space:nowrap;align-items:center;gap:4px;transition:opacity .12s;display:flex}._5u7iNa_legendItem:hover{opacity:.75}._5u7iNa_dot{border-radius:2px;flex-shrink:0;width:7px;height:7px}._5u7iNa_statusPill{white-space:nowrap;border-radius:4px;flex-shrink:0;align-items:center;gap:4px;padding:1px 7px;font-size:10px;font-weight:600;display:inline-flex}._5u7iNa_statusOk{color:var(--dsw-static-green-500,#15803d)}._5u7iNa_statusWarn{color:#b45309;background:#f59e0b1f}._5u7iNa_statusDanger{color:#b91c1c;background:#ef44441f}._5u7iNa_popover{color:#f8fafc;pointer-events:none;z-index:50;box-sizing:border-box;white-space:nowrap;background:#0f172a;border-radius:8px;width:360px;max-width:calc(100% - 16px);padding:10px 14px;font-size:11px;animation:.12s ease-out _5u7iNa_popIn;position:absolute;top:auto;bottom:calc(100% + 8px);box-shadow:0 8px 24px #00000059}._5u7iNa_popover:after{content:\"\";bottom:-5px;left:var(--arrow-left,50%);border:5px solid #0000;border-top-color:#0f172a;border-bottom-width:0;position:absolute;transform:translate(-50%)}._5u7iNa_popTitle{white-space:nowrap;border-bottom:1px solid #ffffff26;justify-content:space-between;align-items:center;gap:16px;margin-bottom:6px;padding-bottom:5px;font-weight:600;display:flex}._5u7iNa_popList{flex-direction:column;gap:3px;display:flex}._5u7iNa_popRow{white-space:nowrap;justify-content:space-between;align-items:center;gap:16px;padding:2px 0;display:flex}._5u7iNa_popLeft{color:#ffffffd9;white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;display:flex}._5u7iNa_popRight{font-variant-numeric:tabular-nums;color:#fff;white-space:nowrap;text-align:right;flex-shrink:0;font-weight:600}._5u7iNa_activeVal{color:#fbbf24;font-weight:700}@keyframes _5u7iNa_pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}@keyframes _5u7iNa_popIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}";
3440
3467
  const tagId = "dsh-watcher/TimingPanel.module.css";
3441
3468
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
3442
3469
  const tag = document.createElement("style");
@@ -3446,41 +3473,41 @@ window.__ModuleLoader__.load({
3446
3473
  document.head.appendChild(tag);
3447
3474
  }
3448
3475
  var TimingPanel_module_css_default = {
3449
- "activeVal": "Oecg3G_activeVal",
3450
- "barTrack": "Oecg3G_barTrack",
3451
- "bottleneckText": "Oecg3G_bottleneckText",
3452
- "chartBox": "Oecg3G_chartBox",
3453
- "dot": "Oecg3G_dot",
3454
- "legendGroup": "Oecg3G_legendGroup",
3455
- "legendItem": "Oecg3G_legendItem",
3456
- "legendRow": "Oecg3G_legendRow",
3457
- "liveSpeed": "Oecg3G_liveSpeed",
3458
- "mainTitle": "Oecg3G_mainTitle",
3459
- "modelCluster": "Oecg3G_modelCluster",
3460
- "panelBox": "Oecg3G_panelBox",
3461
- "popIn": "Oecg3G_popIn",
3462
- "popLeft": "Oecg3G_popLeft",
3463
- "popList": "Oecg3G_popList",
3464
- "popover": "Oecg3G_popover",
3465
- "popRight": "Oecg3G_popRight",
3466
- "popRow": "Oecg3G_popRow",
3467
- "popTitle": "Oecg3G_popTitle",
3468
- "pulse": "Oecg3G_pulse",
3469
- "slice": "Oecg3G_slice",
3470
- "sliceBash": "Oecg3G_sliceBash",
3471
- "sliceFile": "Oecg3G_sliceFile",
3472
- "sliceOutput": "Oecg3G_sliceOutput",
3473
- "sliceThink": "Oecg3G_sliceThink",
3474
- "sliceTtft": "Oecg3G_sliceTtft",
3475
- "speedDot": "Oecg3G_speedDot",
3476
- "statusDanger": "Oecg3G_statusDanger",
3477
- "statusOk": "Oecg3G_statusOk",
3478
- "statusPill": "Oecg3G_statusPill",
3479
- "statusWarn": "Oecg3G_statusWarn",
3480
- "titleArea": "Oecg3G_titleArea",
3481
- "toolCluster": "Oecg3G_toolCluster",
3482
- "topRow": "Oecg3G_topRow",
3483
- "totalDuration": "Oecg3G_totalDuration"
3476
+ "activeVal": "_5u7iNa_activeVal",
3477
+ "barTrack": "_5u7iNa_barTrack",
3478
+ "bottleneckText": "_5u7iNa_bottleneckText",
3479
+ "chartBox": "_5u7iNa_chartBox",
3480
+ "dot": "_5u7iNa_dot",
3481
+ "legendGroup": "_5u7iNa_legendGroup",
3482
+ "legendItem": "_5u7iNa_legendItem",
3483
+ "legendRow": "_5u7iNa_legendRow",
3484
+ "liveSpeed": "_5u7iNa_liveSpeed",
3485
+ "mainTitle": "_5u7iNa_mainTitle",
3486
+ "modelCluster": "_5u7iNa_modelCluster",
3487
+ "panelBox": "_5u7iNa_panelBox",
3488
+ "popIn": "_5u7iNa_popIn",
3489
+ "popLeft": "_5u7iNa_popLeft",
3490
+ "popList": "_5u7iNa_popList",
3491
+ "popover": "_5u7iNa_popover",
3492
+ "popRight": "_5u7iNa_popRight",
3493
+ "popRow": "_5u7iNa_popRow",
3494
+ "popTitle": "_5u7iNa_popTitle",
3495
+ "pulse": "_5u7iNa_pulse",
3496
+ "slice": "_5u7iNa_slice",
3497
+ "sliceBash": "_5u7iNa_sliceBash",
3498
+ "sliceFile": "_5u7iNa_sliceFile",
3499
+ "sliceOutput": "_5u7iNa_sliceOutput",
3500
+ "sliceThink": "_5u7iNa_sliceThink",
3501
+ "sliceTtft": "_5u7iNa_sliceTtft",
3502
+ "speedDot": "_5u7iNa_speedDot",
3503
+ "statusDanger": "_5u7iNa_statusDanger",
3504
+ "statusOk": "_5u7iNa_statusOk",
3505
+ "statusPill": "_5u7iNa_statusPill",
3506
+ "statusWarn": "_5u7iNa_statusWarn",
3507
+ "titleArea": "_5u7iNa_titleArea",
3508
+ "toolCluster": "_5u7iNa_toolCluster",
3509
+ "topRow": "_5u7iNa_topRow",
3510
+ "totalDuration": "_5u7iNa_totalDuration"
3484
3511
  };
3485
3512
  //#endregion
3486
3513
  //#region src/client/TimingPanel.tsx
@@ -3981,6 +4008,9 @@ window.__ModuleLoader__.load({
3981
4008
  //#endregion
3982
4009
  //#region src/client/Insights.tsx
3983
4010
  const STORAGE = "dsh-watcher:insights-display:v1";
4011
+ function routeLabel(route) {
4012
+ return `${route?.provider || "未标注提供方"}/${route?.model || "未标注模型"}`;
4013
+ }
3984
4014
  function readLimits() {
3985
4015
  try {
3986
4016
  return limitsOf(JSON.parse(localStorage.getItem(STORAGE) ?? "{}"));
@@ -4259,14 +4289,14 @@ window.__ModuleLoader__.load({
4259
4289
  children: [
4260
4290
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4261
4291
  className: Insights_module_css_default.hudHeading,
4262
- children: scope === "turn" ? "本轮" : selectedModel ? `模型: ${selectedModel.model}` : "全会话"
4292
+ children: scope === "turn" ? "本轮" : selectedModel ? `模型: ${routeLabel(selectedModel)}` : "全会话"
4263
4293
  }),
4264
4294
  scope === "turn" && currentRoute?.model ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
4265
4295
  className: Insights_module_css_default.currentModelTag,
4266
- title: currentRoute.model,
4296
+ title: routeLabel(currentRoute),
4267
4297
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", {
4268
4298
  className: Insights_module_css_default.modelTagText,
4269
- children: currentRoute.model
4299
+ children: routeLabel(currentRoute)
4270
4300
  }), currentRoute.effort ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
4271
4301
  className: Insights_module_css_default.effortTag,
4272
4302
  children: ["思考: ", effortLabel(currentRoute.effort)]
@@ -4359,8 +4389,9 @@ window.__ModuleLoader__.load({
4359
4389
  className: Insights_module_css_default.modelTabBtn,
4360
4390
  "data-active": modelFilter === idx ? "" : void 0,
4361
4391
  onClick: () => setModelFilter(idx),
4392
+ title: routeLabel(m),
4362
4393
  children: [
4363
- m.model,
4394
+ routeLabel(m),
4364
4395
  " (",
4365
4396
  m.calls,
4366
4397
  "次)"
@@ -4522,11 +4553,13 @@ window.__ModuleLoader__.load({
4522
4553
  const cacheHitPct = totalInAll > 0 ? Math.round(totalCacheRead / totalInAll * 100) : 0;
4523
4554
  const modelMap = /* @__PURE__ */ new Map();
4524
4555
  for (const view of validViews) for (const m of view.models ?? []) {
4525
- const name = m.model || "未标注";
4556
+ const name = routeLabel(m);
4526
4557
  let row = modelMap.get(name);
4527
4558
  if (!row) {
4528
4559
  row = {
4529
4560
  model: name,
4561
+ provider: m.provider,
4562
+ pricingModel: m.model,
4530
4563
  calls: 0,
4531
4564
  tokens: 0,
4532
4565
  input: 0,
@@ -4630,11 +4663,22 @@ window.__ModuleLoader__.load({
4630
4663
  const bucket = byDay.get(key);
4631
4664
  if (!bucket) return;
4632
4665
  bucket.sessions += 1;
4633
- (row.value.models?.length ? row.value.models : [{
4666
+ const dayBooks = row.value?.days;
4667
+ if (Array.isArray(dayBooks) && dayBooks.length > 0) dayBooks.forEach((d) => {
4668
+ const dayBucket = byDay.get(d.key);
4669
+ if (!dayBucket) return;
4670
+ (Array.isArray(d.models) && d.models.length ? d.models : [{
4671
+ model: "未标注",
4672
+ tokens: d.tokens ?? 0
4673
+ }]).forEach((m) => {
4674
+ dayBucket.models.set(routeLabel(m), (dayBucket.models.get(routeLabel(m)) ?? 0) + (m.tokens ?? 0));
4675
+ });
4676
+ });
4677
+ else (row.value.models?.length ? row.value.models : [{
4634
4678
  model: "未标注",
4635
4679
  tokens: row.value.totals.tokens ?? 0
4636
4680
  }]).forEach((m) => {
4637
- bucket.models.set(m.model, (bucket.models.get(m.model) ?? 0) + (m.tokens ?? 0));
4681
+ bucket.models.set(routeLabel(m), (bucket.models.get(routeLabel(m)) ?? 0) + (m.tokens ?? 0));
4638
4682
  });
4639
4683
  });
4640
4684
  const todayStr = dayKey(Date.now());
@@ -4708,7 +4752,7 @@ window.__ModuleLoader__.load({
4708
4752
  dEntry.tokens += r.value.totals?.tokens ?? 0;
4709
4753
  dEntry.sessions += 1;
4710
4754
  (r.value.models ?? []).forEach((m) => {
4711
- dEntry.models.set(m.model, (dEntry.models.get(m.model) ?? 0) + (m.tokens ?? 0));
4755
+ dEntry.models.set(routeLabel(m), (dEntry.models.get(routeLabel(m)) ?? 0) + (m.tokens ?? 0));
4712
4756
  });
4713
4757
  });
4714
4758
  const nonZeroTokenDays = [...heatmapDayMap.values()].map((d) => d.tokens).filter((t) => t > 0).sort((a, b) => a - b);
@@ -4769,7 +4813,10 @@ window.__ModuleLoader__.load({
4769
4813
  }
4770
4814
  const totalHeatmapTokens = nonZeroTokenDays.reduce((acc, v) => acc + v, 0);
4771
4815
  const totalHeatmapSessions = allHistoricalRows.length;
4772
- const estimatedCost = estimateUsageRows(uniqueModels.length > 0 ? uniqueModels : [{
4816
+ const estimatedCost = estimateUsageRows(uniqueModels.length > 0 ? uniqueModels.map(({ pricingModel, ...row }) => ({
4817
+ ...row,
4818
+ model: pricingModel
4819
+ })) : [{
4773
4820
  model: "未标注",
4774
4821
  tokens: totalTokens,
4775
4822
  input: totalInput,
@@ -5598,8 +5645,8 @@ window.__ModuleLoader__.load({
5598
5645
  }),
5599
5646
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
5600
5647
  className: Insights_module_css_default.rankName,
5601
- title: s.value?.models?.[0]?.model,
5602
- children: s.value?.models?.[0]?.model ?? "通用会话"
5648
+ title: s.value?.models?.[0] ? routeLabel(s.value.models[0]) : void 0,
5649
+ children: s.value?.models?.[0] ? routeLabel(s.value.models[0]) : "通用会话"
5603
5650
  })
5604
5651
  ]
5605
5652
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
@@ -5675,7 +5722,7 @@ window.__ModuleLoader__.load({
5675
5722
  }),
5676
5723
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
5677
5724
  className: Insights_module_css_default.rankName,
5678
- children: s.value?.models?.[0]?.model ?? "通用对话"
5725
+ children: s.value?.models?.[0] ? routeLabel(s.value.models[0]) : "通用对话"
5679
5726
  }),
5680
5727
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
5681
5728
  className: s.value?.totals?.toolErrors > 0 ? Insights_module_css_default.statusBad : Insights_module_css_default.statusOk,
@@ -6528,8 +6575,8 @@ window.__ModuleLoader__.load({
6528
6575
  }),
6529
6576
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
6530
6577
  className: Insights_module_css_default.sessionModelCell,
6531
- title: val.models?.[0]?.model,
6532
- children: val.models?.[0]?.model ?? "未标注"
6578
+ title: routeLabel(val.models?.[0]),
6579
+ children: routeLabel(val.models?.[0])
6533
6580
  }),
6534
6581
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
6535
6582
  className: Insights_module_css_default.sessionTokenCell,
@@ -7026,6 +7073,14 @@ window.__ModuleLoader__.load({
7026
7073
  if (status === "success") return "done";
7027
7074
  return null;
7028
7075
  }
7076
+ /** True when the work picture carries an alert the header trigger must echo. */
7077
+ function edgeAlertOf(picture) {
7078
+ return picture.pendingCount > 0 || picture.now.status === "failure" || picture.now.status === "interrupted";
7079
+ }
7080
+ /** One-word health summary for the header trigger's aria state. */
7081
+ function summaryStateOf(picture) {
7082
+ return picture.pendingCount > 0 ? "等待确认" : picture.running ? "正在执行" : picture.now.status === "failure" ? "执行失败" : picture.now.status === "interrupted" ? "已中断" : picture.nodes.length > 0 ? "就绪" : "待命";
7083
+ }
7029
7084
  function StatusMark({ status, className }) {
7030
7085
  const state = dotState(status);
7031
7086
  return state === null ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
@@ -8044,35 +8099,10 @@ window.__ModuleLoader__.load({
8044
8099
  sessionSnapshot.hasMore,
8045
8100
  sessionSnapshot.running
8046
8101
  ]);
8047
- const running = snapshot.running;
8048
8102
  const wholeSessionStats = useProjection("sessionStats");
8049
8103
  const wholeSessionInsights = useProjection("watcherInsights");
8050
- const snapshotPicture = (0, react.useMemo)(() => foldSnapshot(snapshot, { running }), [snapshot, running]);
8051
- const observedRef = (0, react.useRef)(null);
8052
- const picture = (0, react.useMemo)(() => {
8053
- const previous = observedRef.current?.sessionId === sessionId ? observedRef.current.picture : null;
8054
- const next = previous === null ? snapshotPicture : mergeObservedPictures(previous, snapshotPicture);
8055
- observedRef.current = {
8056
- sessionId,
8057
- picture: next
8058
- };
8059
- return next;
8060
- }, [sessionId, snapshotPicture]);
8061
- const performanceByTurn = (0, react.useMemo)(() => deriveTurnPerformance(snapshot.nodes, picture.turns), [snapshot.nodes, picture.turns]);
8062
- const lastGroup = picture.nodes.at(-1);
8063
- const lastGroupId = lastGroup?.id ?? null;
8064
- const lastItem = lastGroup?.items.at(-1);
8065
- const latestActivityKey = lastItem === void 0 ? lastGroupId : `${lastGroupId}:${lastItem.id}:${lastItem.seq}:${lastItem.status}:${lastItem.resultSeq ?? "open"}:${lastItem.resultTime ?? "open"}`;
8104
+ const { picture, performanceByTurn } = useObservedPicture(sessionId, snapshot);
8066
8105
  const [open, setOpen] = (0, react.useState)(false);
8067
- const [ui, setUi] = (0, react.useState)(() => ({
8068
- follow: true,
8069
- unread: 0,
8070
- selectedId: null
8071
- }));
8072
- const [selectedItemId, setSelectedItemId] = (0, react.useState)(null);
8073
- const [inspectorClosing, setInspectorClosing] = (0, react.useState)(false);
8074
- const inspectorExitTimer = (0, react.useRef)(null);
8075
- const inspectorExitToLatest = (0, react.useRef)(false);
8076
8106
  const [panelPin, setPanelPin] = (0, react.useState)(null);
8077
8107
  const panelPinTimer = (0, react.useRef)(null);
8078
8108
  /** Resize anchors the panel at its current top-left; null until first resized. */
@@ -8083,17 +8113,9 @@ window.__ModuleLoader__.load({
8083
8113
  const resizeStart = (0, react.useRef)(null);
8084
8114
  /** The natural size the panel opened at — the floor; resize can only grow. */
8085
8115
  const resizeMin = (0, react.useRef)(null);
8086
- const [observationMode, setObservationMode] = (0, react.useState)("itemized");
8087
- const [disclosure, setDisclosure] = (0, react.useState)(createDisclosureState);
8088
- const [historyLoad, setHistoryLoad] = (0, react.useState)({ kind: "idle" });
8089
- const now = useLiveClock(open && picture.running);
8090
- const followRef = (0, react.useRef)(createFollow());
8091
8116
  const rootRef = (0, react.useRef)(null);
8092
8117
  const triggerRef = (0, react.useRef)(null);
8093
8118
  const panelRef = (0, react.useRef)(null);
8094
- const railRef = (0, react.useRef)(null);
8095
- const programmaticScrollRef = (0, react.useRef)(false);
8096
- const historyAbortRef = (0, react.useRef)(null);
8097
8119
  const panelPosition = (0, _deepseek_ai_dsh_client_ui_primitives.useAnchoredPosition)({
8098
8120
  open,
8099
8121
  anchorRef: triggerRef,
@@ -8122,86 +8144,11 @@ window.__ModuleLoader__.load({
8122
8144
  document.removeEventListener("keydown", closeOnEscape);
8123
8145
  };
8124
8146
  }, [open]);
8125
- (0, react.useLayoutEffect)(() => {
8126
- historyAbortRef.current?.abort();
8127
- historyAbortRef.current = null;
8128
- setHistoryLoad({ kind: "idle" });
8129
- followRef.current.reset();
8130
- setUi(followRef.current.snapshot());
8131
- setSelectedItemId(null);
8132
- setDisclosure(resetDisclosureOverrides);
8133
- }, [sessionId]);
8134
8147
  (0, react.useEffect)(() => () => {
8135
- historyAbortRef.current?.abort();
8148
+ if (panelPinTimer.current !== null) window.clearTimeout(panelPinTimer.current);
8136
8149
  }, []);
8137
- (0, react.useLayoutEffect)(() => {
8138
- setUi(followRef.current.onPicture(picture));
8139
- }, [latestActivityKey]);
8140
- (0, react.useLayoutEffect)(() => {
8141
- const rail = railRef.current;
8142
- if (!rail || !open || !ui.follow) return;
8143
- programmaticScrollRef.current = true;
8144
- rail.scrollTop = rail.scrollHeight;
8145
- const frame = requestAnimationFrame(() => {
8146
- programmaticScrollRef.current = false;
8147
- });
8148
- return () => {
8149
- cancelAnimationFrame(frame);
8150
- programmaticScrollRef.current = false;
8151
- };
8152
- }, [
8153
- ui.follow,
8154
- latestActivityKey,
8155
- observationMode,
8156
- open
8157
- ]);
8158
- const selected = ui.selectedId === null ? void 0 : picture.nodes.find((group) => group.id === ui.selectedId);
8159
- const latestTurnNumber = picture.turns.at(-1)?.turn ?? null;
8160
- const totalTurnCount = Math.max(picture.turnCount, wholeSessionStats?.turns ?? 0);
8161
- const totalStepCount = Math.max(picture.stepCount, wholeSessionStats?.steps ?? 0);
8162
- const historyProgress = totalStepCount > picture.stepCount ? `${picture.stepCount}/${totalStepCount} 个步骤` : totalTurnCount > picture.turnCount ? `${picture.turnCount}/${totalTurnCount} 个对话轮次` : `${picture.stepCount} 个步骤已载入`;
8163
- const hasEdgeAlert = picture.pendingCount > 0 || picture.now.status === "failure" || picture.now.status === "interrupted";
8164
- const summaryState = picture.pendingCount > 0 ? "等待确认" : picture.running ? "正在执行" : picture.now.status === "failure" ? "执行失败" : picture.now.status === "interrupted" ? "已中断" : picture.nodes.length > 0 ? "就绪" : "待命";
8165
- const nowLabel = picture.now.label || (picture.nodes.length > 0 ? "执行路径已就绪" : "等待指令");
8166
- const selectItem = (group, item) => {
8167
- clearInspectorExit();
8168
- pinPanelFrame();
8169
- setInspectorClosing(false);
8170
- setUi(followRef.current.onSelect(group.id));
8171
- setSelectedItemId(item.id);
8172
- };
8173
- /**
8174
- * "定位现场" must end at the failing work item, not just somewhere near the
8175
- * turn: opening the inspector on that exact item is the whole point of the
8176
- * affordance. A finding whose step can't be matched still lands on its turn.
8177
- */
8178
- const locateEvidence = (e) => {
8179
- pinForDisclosure();
8180
- setDisclosure(chooseDisclosureDepth("detail"));
8181
- const turn = picture.turns.find((t) => t.turn === e.turn);
8182
- const group = turn?.groups.find((g) => g.items.some((i) => i.status === "failure" && e.steps.includes(i.step ?? -1)));
8183
- const item = group?.items.find((i) => i.status === "failure" && e.steps.includes(i.step ?? -1));
8184
- if (turn && group && item) {
8185
- selectItem(group, item);
8186
- requestAnimationFrame(() => document.getElementById(`watcher-turn-${turn.turn}`)?.scrollIntoView({ block: "nearest" }));
8187
- } else requestAnimationFrame(() => document.getElementById(`watcher-turn-${e.turn}`)?.scrollIntoView({ block: "nearest" }));
8188
- };
8189
- const onRailScroll = () => {
8190
- if (programmaticScrollRef.current) return;
8191
- const rail = railRef.current;
8192
- if (rail === null) return;
8193
- const atBottom = rail.scrollHeight - rail.scrollTop - rail.clientHeight < 24;
8194
- setUi(followRef.current.onScroll({ atBottom }));
8195
- };
8196
- const backToLatest = () => {
8197
- programmaticScrollRef.current = true;
8198
- setUi(followRef.current.backToLatest());
8199
- };
8200
- const clearInspectorExit = () => {
8201
- if (inspectorExitTimer.current === null) return;
8202
- window.clearTimeout(inspectorExitTimer.current);
8203
- inspectorExitTimer.current = null;
8204
- };
8150
+ const hasEdgeAlert = edgeAlertOf(picture);
8151
+ const summaryState = summaryStateOf(picture);
8205
8152
  const clearPanelPin = () => {
8206
8153
  if (panelPinTimer.current !== null) {
8207
8154
  window.clearTimeout(panelPinTimer.current);
@@ -8294,74 +8241,6 @@ window.__ModuleLoader__.load({
8294
8241
  window.addEventListener("pointermove", move);
8295
8242
  window.addEventListener("pointerup", up);
8296
8243
  };
8297
- /**
8298
- * Closing the inspector is one continuous motion: the column narrows while
8299
- * the detail content slides right and disappears under the work-path card.
8300
- * The collapse animation already ends at the closed width, so the unmount
8301
- * that finishes it cannot flash or jump.
8302
- * `toLatest` is for the "查看最新" affordance only; the plain back control
8303
- * just closes the detail and keeps the rail pinned where the user left it.
8304
- */
8305
- const finishInspectorExit = () => {
8306
- clearInspectorExit();
8307
- setUi(inspectorExitToLatest.current ? followRef.current.backToLatest() : followRef.current.clearSelection());
8308
- setSelectedItemId(null);
8309
- setInspectorClosing(false);
8310
- };
8311
- const closeInspector = (toLatest = false) => {
8312
- if (inspectorClosing) return;
8313
- inspectorExitToLatest.current = toLatest;
8314
- pinPanelFrame();
8315
- setInspectorClosing(true);
8316
- inspectorExitTimer.current = window.setTimeout(finishInspectorExit, INSPECTOR_EXIT_FALLBACK_MS);
8317
- };
8318
- (0, react.useEffect)(() => () => {
8319
- clearInspectorExit();
8320
- if (panelPinTimer.current !== null) window.clearTimeout(panelPinTimer.current);
8321
- }, []);
8322
- const pinForDisclosure = () => {
8323
- if (ui.follow) setUi(followRef.current.setFollow(false));
8324
- };
8325
- const chooseObservationMode = (mode) => {
8326
- if (mode === observationMode) return;
8327
- if (ui.follow) programmaticScrollRef.current = true;
8328
- setObservationMode(mode);
8329
- };
8330
- const chooseDepth = (depth) => {
8331
- if (depth === disclosure.depth) return;
8332
- pinForDisclosure();
8333
- setDisclosure(chooseDisclosureDepth(depth));
8334
- };
8335
- const startHistoryLoad = () => {
8336
- if (historyLoad.kind === "loading" || historyLoad.kind === "complete") return;
8337
- historyAbortRef.current?.abort();
8338
- const controller = new AbortController();
8339
- historyAbortRef.current = controller;
8340
- setHistoryLoad({ kind: "loading" });
8341
- loadAllHistory(controller.signal).then((result) => {
8342
- if (historyAbortRef.current !== controller) return;
8343
- if (result.kind === "blocked") {
8344
- const message = result.reason === "busy" ? "主会话正在载入历史,请稍后重试" : result.reason === "page-limit" ? "历史页数超出安全上限,请分次重试" : "历史分页没有继续前进,请重试";
8345
- setHistoryLoad({
8346
- kind: "error",
8347
- message
8348
- });
8349
- } else if (result.kind === "complete") setHistoryLoad({ kind: "complete" });
8350
- else setHistoryLoad({ kind: "idle" });
8351
- }).catch((error) => {
8352
- if (historyAbortRef.current !== controller || controller.signal.aborted) return;
8353
- setHistoryLoad({
8354
- kind: "error",
8355
- message: error instanceof Error ? error.message : String(error)
8356
- });
8357
- }).finally(() => {
8358
- if (historyAbortRef.current === controller) historyAbortRef.current = null;
8359
- });
8360
- };
8361
- (0, react.useEffect)(() => {
8362
- if (historyLoad.kind !== "complete" || snapshot.hasMore) return;
8363
- setHistoryLoad({ kind: "idle" });
8364
- }, [historyLoad.kind, snapshot.hasMore]);
8365
8244
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8366
8245
  ref: rootRef,
8367
8246
  className: Watcher_module_css_default.root,
@@ -8402,271 +8281,16 @@ window.__ModuleLoader__.load({
8402
8281
  "data-dsh-watcher-panel": "",
8403
8282
  "data-ud-motion": "watcher-panel-enter",
8404
8283
  children: [
8405
- selected === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExecutionInspector, {
8406
- group: selected,
8407
- selectedItemId,
8408
- live: picture.running && selected.id === lastGroupId,
8409
- now,
8410
- closing: inspectorClosing,
8411
- onSelectItem: setSelectedItemId,
8412
- onBack: () => closeInspector(),
8413
- onExited: finishInspectorExit
8414
- }),
8415
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
8416
- className: Watcher_module_css_default.workPicture,
8417
- "aria-label": "Agent 工作路径",
8418
- "data-ud-check": "watcher-work-picture",
8419
- "data-ud-role": "panel",
8420
- children: [
8421
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", {
8422
- className: Watcher_module_css_default.pictureHeader,
8423
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8424
- className: Watcher_module_css_default.nowBlock,
8425
- "aria-live": "polite",
8426
- children: [
8427
- picture.running || hasEdgeAlert || summaryState !== "就绪" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8428
- className: Watcher_module_css_default.eyebrow,
8429
- "data-alert": hasEdgeAlert ? "" : void 0,
8430
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: summaryState })
8431
- }) : null,
8432
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8433
- className: Watcher_module_css_default.now,
8434
- title: picture.running ? nowLabel : "DSH-Watcher",
8435
- children: picture.running ? nowLabel : "DSH-Watcher"
8436
- }),
8437
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8438
- className: Watcher_module_css_default.summary,
8439
- children: [
8440
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: snapshot.hasMore && totalTurnCount > picture.turnCount ? `已载入 ${picture.turnCount}/${totalTurnCount} 轮` : `${picture.turnCount} 轮` }),
8441
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: snapshot.hasMore && totalStepCount > picture.stepCount ? `${picture.stepCount}/${totalStepCount} 步` : `${picture.stepCount} 步` }),
8442
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: [picture.actionCount, " 次执行"] }),
8443
- snapshot.hasMore || historyLoad.kind === "loading" || historyLoad.kind === "error" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
8444
- type: "button",
8445
- className: Watcher_module_css_default.loadAllInlineBtn,
8446
- onClick: startHistoryLoad,
8447
- disabled: historyLoad.kind === "loading",
8448
- children: historyLoad.kind === "loading" ? "正在补齐历史…" : historyLoad.kind === "error" ? "重试载入" : "载入全部历史 →"
8449
- }) : null,
8450
- historyLoad.kind === "loading" || historyLoad.kind === "error" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8451
- role: "status",
8452
- children: historyLoad.kind === "error" ? historyLoad.message : `已载入 ${historyProgress}`
8453
- }) : null
8454
- ]
8455
- })
8456
- ]
8457
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_deepseek_ai_dsh_client_ui_primitives.Pill, {
8458
- className: Watcher_module_css_default.follow,
8459
- active: ui.follow,
8460
- "aria-pressed": ui.follow,
8461
- "aria-label": ui.follow ? "停止跟随最新工作" : "跟随最新工作",
8462
- onClick: () => {
8463
- if (!ui.follow) programmaticScrollRef.current = true;
8464
- setUi(followRef.current.setFollow(!ui.follow));
8465
- },
8466
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 12 }), ui.follow ? "自动跟随" : "浏览历史"]
8467
- })]
8468
- }),
8469
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SessionInsights, {
8470
- value: wholeSessionInsights,
8471
- now,
8472
- running: picture.running,
8473
- waiting: picture.pendingCount > 0,
8474
- onEvidence: locateEvidence
8475
- }),
8476
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8477
- className: Watcher_module_css_default.viewToolbar,
8478
- "aria-label": "路径视图设置",
8479
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8480
- className: Watcher_module_css_default.viewControl,
8481
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8482
- className: Watcher_module_css_default.viewToolbarLabel,
8483
- children: "组织"
8484
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8485
- className: Watcher_module_css_default.viewMode,
8486
- role: "group",
8487
- "aria-label": "路径组织方式",
8488
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
8489
- type: "button",
8490
- "data-active": observationMode === "itemized" ? "" : void 0,
8491
- "aria-pressed": observationMode === "itemized",
8492
- title: "按时间顺序展示每个步骤和每次执行",
8493
- onClick: () => chooseObservationMode("itemized"),
8494
- children: "逐项"
8495
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
8496
- type: "button",
8497
- "data-active": observationMode === "grouped" ? "" : void 0,
8498
- "aria-pressed": observationMode === "grouped",
8499
- title: "按同一目标或完全相同的指令归类,展开仍可查看原始执行",
8500
- onClick: () => chooseObservationMode("grouped"),
8501
- children: "归类"
8502
- })]
8503
- })]
8504
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8505
- className: Watcher_module_css_default.viewControl,
8506
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8507
- className: Watcher_module_css_default.viewToolbarLabel,
8508
- children: "层级"
8509
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8510
- className: Watcher_module_css_default.viewMode,
8511
- role: "group",
8512
- "aria-label": "路径展开深度",
8513
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
8514
- type: "button",
8515
- "data-active": disclosure.depth === "overview" ? "" : void 0,
8516
- "aria-pressed": disclosure.depth === "overview",
8517
- title: "展开当前轮次,展示阶段概览;阶段内部保持收起",
8518
- onClick: () => chooseDepth("overview"),
8519
- children: "概览"
8520
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
8521
- type: "button",
8522
- "data-active": disclosure.depth === "detail" ? "" : void 0,
8523
- "aria-pressed": disclosure.depth === "detail",
8524
- title: "展开所有轮次、阶段、步骤、模型与推理记录",
8525
- onClick: () => chooseDepth("detail"),
8526
- children: "详情"
8527
- })]
8528
- })]
8529
- })]
8530
- }),
8531
- !ui.follow && ui.unread > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
8532
- type: "button",
8533
- className: Watcher_module_css_default.unread,
8534
- onClick: selected === void 0 ? backToLatest : () => closeInspector(true),
8535
- children: [
8536
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 12 }),
8537
- ui.unread,
8538
- " 条新进展 · 查看最新"
8539
- ]
8540
- }) : null,
8541
- picture.nodes.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8542
- className: Watcher_module_css_default.empty,
8543
- children: [
8544
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8545
- className: Watcher_module_css_default.emptyEye,
8546
- "aria-hidden": "true",
8547
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconLivingEye, { size: 22 })
8548
- }),
8549
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "还没有工作记录" }),
8550
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "第一轮对话开始后,路径会从这里生长" })
8551
- ]
8552
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8553
- ref: railRef,
8554
- className: Watcher_module_css_default.railViewport,
8555
- onScroll: onRailScroll,
8556
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8557
- className: Watcher_module_css_default.turns,
8558
- children: picture.turns.map((turn) => {
8559
- const isLatestTurn = turn.turn === latestTurnNumber;
8560
- const turnState = overviewStateOf(turn.status, isLatestTurn);
8561
- const automaticDefaultOpen = turnNeedsDefaultDisclosure(turnState, isLatestTurn);
8562
- const turnOpen = turnDisclosureOpen(disclosure, turn.turn, automaticDefaultOpen);
8563
- const turnTitle = turn.turn === 0 ? "会话准备" : `对话轮次 ${turn.turn}`;
8564
- const turnSummary = turnOverviewSummary(turn);
8565
- const performance = performanceByTurn.get(turn.turn);
8566
- const duration = turnDuration(turn, isLatestTurn && picture.running, now);
8567
- const tokenSpeed = performance?.throughput.kind === "measured" ? `${formatTokensPerSecond(performance.throughput.tokensPerSecond)} tok/s` : null;
8568
- const durationAria = duration === null ? "" : duration.kind === "exact" ? `,总耗时 ${duration.value}` : `,已记录 ${duration.value},开头未载入`;
8569
- const secondaryPerformance = [duration?.kind === "partial" ? "开头未载入" : null, tokenSpeed].filter((value) => value !== null).join(" · ");
8570
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
8571
- className: Watcher_module_css_default.turn,
8572
- "aria-labelledby": `watcher-turn-${turn.turn}`,
8573
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("header", {
8574
- className: Watcher_module_css_default.turnHeader,
8575
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
8576
- id: `watcher-turn-${turn.turn}`,
8577
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
8578
- type: "button",
8579
- className: Watcher_module_css_default.turnToggle,
8580
- "aria-expanded": turnOpen,
8581
- "aria-controls": `watcher-turn-body-${turn.turn}`,
8582
- "aria-label": `${turnTitle},${OVERVIEW_STATE_LABEL[turnState]},${turnSummary}${durationAria}${tokenSpeed === null ? "" : `,生成速度 ${tokenSpeed}`},${turnOpen ? "收起轮次" : "展开轮次"}`,
8583
- title: turnOpen ? "收起此轮次;新进展仍会继续更新" : "展开此轮次",
8584
- onClick: () => {
8585
- pinForDisclosure();
8586
- setDisclosure((current) => toggleTurnDisclosure(current, turn.turn, automaticDefaultOpen));
8587
- },
8588
- children: [
8589
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutlineRegular, {
8590
- size: 13,
8591
- className: Watcher_module_css_default.turnChevron
8592
- }),
8593
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
8594
- className: Watcher_module_css_default.turnCopy,
8595
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
8596
- className: Watcher_module_css_default.turnTitleLine,
8597
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8598
- className: Watcher_module_css_default.turnTitle,
8599
- children: turnTitle
8600
- }), showOverviewTag(turnState) ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8601
- className: Watcher_module_css_default.overviewTag,
8602
- "data-state": turnState,
8603
- children: OVERVIEW_STATE_LABEL[turnState]
8604
- }) : null]
8605
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8606
- className: Watcher_module_css_default.turnSummary,
8607
- children: turnSummary
8608
- })]
8609
- }),
8610
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
8611
- className: Watcher_module_css_default.turnPerformance,
8612
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8613
- className: Watcher_module_css_default.turnDuration,
8614
- children: duration === null ? OVERVIEW_STATE_LABEL[turnState] : duration.kind === "exact" ? `总 ${duration.value}` : `已记录 ${duration.value}`
8615
- }), secondaryPerformance === "" ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8616
- className: Watcher_module_css_default.turnSpeed,
8617
- children: secondaryPerformance
8618
- })]
8619
- })
8620
- ]
8621
- })
8622
- })
8623
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8624
- id: `watcher-turn-body-${turn.turn}`,
8625
- className: Watcher_module_css_default.turnBody,
8626
- hidden: !turnOpen,
8627
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8628
- className: Watcher_module_css_default.groupRail,
8629
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8630
- className: Watcher_module_css_default.railLine,
8631
- "aria-hidden": "true"
8632
- }), turn.groups.map((group) => {
8633
- const isNow = group.id === lastGroupId;
8634
- const selectedGroup = ui.selectedId === group.id;
8635
- const phaseOpen = layerDisclosureOpen(disclosure, "phase", group.id);
8636
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PhaseOverview, {
8637
- group,
8638
- isNow,
8639
- running: picture.running,
8640
- now,
8641
- selectedGroup,
8642
- selectedItemId,
8643
- observationMode,
8644
- open: phaseOpen,
8645
- disclosure,
8646
- onToggle: () => {
8647
- pinForDisclosure();
8648
- setDisclosure((current) => toggleLayerDisclosure(current, "phase", group.id));
8649
- },
8650
- onToggleLayer: (layer, key) => {
8651
- pinForDisclosure();
8652
- setDisclosure((current) => toggleLayerDisclosure(current, layer, key));
8653
- },
8654
- onToggleReasoning: (key, modelKey) => {
8655
- pinForDisclosure();
8656
- setDisclosure((current) => {
8657
- return toggleLayerDisclosure(layerDisclosureOpen(current, "reasoning", key) ? current : setLayerDisclosure(current, "model", modelKey, true), "reasoning", key);
8658
- });
8659
- },
8660
- onSelectItem: (item) => selectItem(group, item)
8661
- }, group.id);
8662
- })]
8663
- })
8664
- })]
8665
- }, turn.turn);
8666
- })
8667
- })
8668
- })
8669
- ]
8284
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(WorkPicturePanel, {
8285
+ sessionId,
8286
+ picture,
8287
+ performanceByTurn,
8288
+ hasMore: snapshot.hasMore,
8289
+ stats: wholeSessionStats,
8290
+ insights: wholeSessionInsights,
8291
+ loadAllHistory,
8292
+ live: open,
8293
+ onInspectorFrameChange: pinPanelFrame
8670
8294
  }),
8671
8295
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8672
8296
  className: Watcher_module_css_default.resizeEdgeRight,
@@ -8688,10 +8312,475 @@ window.__ModuleLoader__.load({
8688
8312
  }), document.body) : null]
8689
8313
  });
8690
8314
  }
8691
- //#endregion
8692
- //#region src/client/model-trace-definition.ts
8693
- const modelTraceDefinition = {
8694
- kind: "dsh-watcher-model-stage",
8315
+ /**
8316
+ * Folds one Session snapshot into the work picture, merging observations that
8317
+ * outlive the loaded window. Shared by the session-header overlay and the
8318
+ * Better Sidebar tab so both surfaces read the same projection.
8319
+ */
8320
+ function useObservedPicture(sessionId, snapshot) {
8321
+ const running = snapshot.running;
8322
+ const snapshotPicture = (0, react.useMemo)(() => foldSnapshot(snapshot, { running }), [snapshot, running]);
8323
+ const observedRef = (0, react.useRef)(null);
8324
+ const picture = (0, react.useMemo)(() => {
8325
+ const previous = observedRef.current?.sessionId === sessionId ? observedRef.current.picture : null;
8326
+ const next = previous === null ? snapshotPicture : mergeObservedPictures(previous, snapshotPicture);
8327
+ observedRef.current = {
8328
+ sessionId,
8329
+ picture: next
8330
+ };
8331
+ return next;
8332
+ }, [sessionId, snapshotPicture]);
8333
+ return {
8334
+ picture,
8335
+ performanceByTurn: (0, react.useMemo)(() => deriveTurnPerformance(snapshot.nodes, picture.turns), [snapshot.nodes, picture.turns])
8336
+ };
8337
+ }
8338
+ /**
8339
+ * The work picture itself: the docked inspector column plus the turns rail.
8340
+ * Extracted from the session-header overlay so the Better Sidebar tab can
8341
+ * render the same picture without the portal, the trigger, or the drag frame.
8342
+ * Owns every picture-local concern (follow, disclosure, observation mode,
8343
+ * history load, inspector lifecycle); positioning stays with the host.
8344
+ */
8345
+ function WorkPicturePanel({ sessionId, picture, performanceByTurn, hasMore, stats, insights, hideInsights, loadAllHistory, live, onInspectorFrameChange, domIdPrefix }) {
8346
+ const [ui, setUi] = (0, react.useState)(() => ({
8347
+ follow: true,
8348
+ unread: 0,
8349
+ selectedId: null
8350
+ }));
8351
+ const [selectedItemId, setSelectedItemId] = (0, react.useState)(null);
8352
+ const [inspectorClosing, setInspectorClosing] = (0, react.useState)(false);
8353
+ const inspectorExitTimer = (0, react.useRef)(null);
8354
+ const inspectorExitToLatest = (0, react.useRef)(false);
8355
+ const [observationMode, setObservationMode] = (0, react.useState)("itemized");
8356
+ const [disclosure, setDisclosure] = (0, react.useState)(createDisclosureState);
8357
+ const [historyLoad, setHistoryLoad] = (0, react.useState)({ kind: "idle" });
8358
+ const now = useLiveClock(live && picture.running);
8359
+ const followRef = (0, react.useRef)(createFollow());
8360
+ const railRef = (0, react.useRef)(null);
8361
+ const programmaticScrollRef = (0, react.useRef)(false);
8362
+ const historyAbortRef = (0, react.useRef)(null);
8363
+ /** Coexisting surfaces (header overlay + sidebar tab) must not share DOM ids. */
8364
+ const domPrefix = domIdPrefix ?? "watcher-turn";
8365
+ const selected = ui.selectedId === null ? void 0 : picture.nodes.find((group) => group.id === ui.selectedId);
8366
+ const lastGroup = picture.nodes.at(-1);
8367
+ const lastGroupId = lastGroup?.id ?? null;
8368
+ const lastItem = lastGroup?.items.at(-1);
8369
+ const latestActivityKey = lastItem === void 0 ? lastGroupId : `${lastGroupId}:${lastItem.id}:${lastItem.seq}:${lastItem.status}:${lastItem.resultSeq ?? "open"}:${lastItem.resultTime ?? "open"}`;
8370
+ const latestTurnNumber = picture.turns.at(-1)?.turn ?? null;
8371
+ const totalTurnCount = Math.max(picture.turnCount, stats?.turns ?? 0);
8372
+ const totalStepCount = Math.max(picture.stepCount, stats?.steps ?? 0);
8373
+ const historyProgress = totalStepCount > picture.stepCount ? `${picture.stepCount}/${totalStepCount} 个步骤` : totalTurnCount > picture.turnCount ? `${picture.turnCount}/${totalTurnCount} 个对话轮次` : `${picture.stepCount} 个步骤已载入`;
8374
+ const hasEdgeAlert = edgeAlertOf(picture);
8375
+ const summaryState = summaryStateOf(picture);
8376
+ const nowLabel = picture.now.label || (picture.nodes.length > 0 ? "执行路径已就绪" : "等待指令");
8377
+ (0, react.useLayoutEffect)(() => {
8378
+ historyAbortRef.current?.abort();
8379
+ historyAbortRef.current = null;
8380
+ setHistoryLoad({ kind: "idle" });
8381
+ followRef.current.reset();
8382
+ setUi(followRef.current.snapshot());
8383
+ setSelectedItemId(null);
8384
+ setDisclosure(resetDisclosureOverrides);
8385
+ }, [sessionId]);
8386
+ (0, react.useEffect)(() => () => {
8387
+ historyAbortRef.current?.abort();
8388
+ clearInspectorExit();
8389
+ }, []);
8390
+ (0, react.useLayoutEffect)(() => {
8391
+ setUi(followRef.current.onPicture(picture));
8392
+ }, [latestActivityKey]);
8393
+ (0, react.useLayoutEffect)(() => {
8394
+ const rail = railRef.current;
8395
+ if (!rail || !live || !ui.follow) return;
8396
+ programmaticScrollRef.current = true;
8397
+ rail.scrollTop = rail.scrollHeight;
8398
+ const frame = requestAnimationFrame(() => {
8399
+ programmaticScrollRef.current = false;
8400
+ });
8401
+ return () => {
8402
+ cancelAnimationFrame(frame);
8403
+ programmaticScrollRef.current = false;
8404
+ };
8405
+ }, [
8406
+ ui.follow,
8407
+ latestActivityKey,
8408
+ observationMode,
8409
+ live
8410
+ ]);
8411
+ const selectItem = (group, item) => {
8412
+ clearInspectorExit();
8413
+ onInspectorFrameChange?.();
8414
+ setInspectorClosing(false);
8415
+ setUi(followRef.current.onSelect(group.id));
8416
+ setSelectedItemId(item.id);
8417
+ };
8418
+ /**
8419
+ * "定位现场" must end at the failing work item, not just somewhere near the
8420
+ * turn: opening the inspector on that exact item is the whole point of the
8421
+ * affordance. A finding whose step can't be matched still lands on its turn.
8422
+ */
8423
+ const locateEvidence = (e) => {
8424
+ pinForDisclosure();
8425
+ setDisclosure(chooseDisclosureDepth("detail"));
8426
+ const turn = picture.turns.find((t) => t.turn === e.turn);
8427
+ const group = turn?.groups.find((g) => g.items.some((i) => i.status === "failure" && e.steps.includes(i.step ?? -1)));
8428
+ const item = group?.items.find((i) => i.status === "failure" && e.steps.includes(i.step ?? -1));
8429
+ if (turn && group && item) {
8430
+ selectItem(group, item);
8431
+ requestAnimationFrame(() => document.getElementById(`${domPrefix}-${turn.turn}`)?.scrollIntoView({ block: "nearest" }));
8432
+ } else requestAnimationFrame(() => document.getElementById(`${domPrefix}-${e.turn}`)?.scrollIntoView({ block: "nearest" }));
8433
+ };
8434
+ const onRailScroll = () => {
8435
+ if (programmaticScrollRef.current) return;
8436
+ const rail = railRef.current;
8437
+ if (rail === null) return;
8438
+ const atBottom = rail.scrollHeight - rail.scrollTop - rail.clientHeight < 24;
8439
+ setUi(followRef.current.onScroll({ atBottom }));
8440
+ };
8441
+ const backToLatest = () => {
8442
+ programmaticScrollRef.current = true;
8443
+ setUi(followRef.current.backToLatest());
8444
+ };
8445
+ const clearInspectorExit = () => {
8446
+ if (inspectorExitTimer.current === null) return;
8447
+ window.clearTimeout(inspectorExitTimer.current);
8448
+ inspectorExitTimer.current = null;
8449
+ };
8450
+ /**
8451
+ * Closing the inspector is one continuous motion: the column narrows while
8452
+ * the detail content slides right and disappears under the work-path card.
8453
+ * The collapse animation already ends at the closed width, so the unmount
8454
+ * that finishes it cannot flash or jump.
8455
+ * `toLatest` is for the "查看最新" affordance only; the plain back control
8456
+ * just closes the detail and keeps the rail pinned where the user left it.
8457
+ */
8458
+ const finishInspectorExit = () => {
8459
+ setUi(inspectorExitToLatest.current ? followRef.current.backToLatest() : followRef.current.clearSelection());
8460
+ setSelectedItemId(null);
8461
+ setInspectorClosing(false);
8462
+ };
8463
+ const closeInspector = (toLatest = false) => {
8464
+ if (inspectorClosing) return;
8465
+ inspectorExitToLatest.current = toLatest;
8466
+ onInspectorFrameChange?.();
8467
+ setInspectorClosing(true);
8468
+ inspectorExitTimer.current = window.setTimeout(finishInspectorExit, INSPECTOR_EXIT_FALLBACK_MS);
8469
+ };
8470
+ const pinForDisclosure = () => {
8471
+ if (ui.follow) setUi(followRef.current.setFollow(false));
8472
+ };
8473
+ const chooseObservationMode = (mode) => {
8474
+ if (mode === observationMode) return;
8475
+ if (ui.follow) programmaticScrollRef.current = true;
8476
+ setObservationMode(mode);
8477
+ };
8478
+ const chooseDepth = (depth) => {
8479
+ if (depth === disclosure.depth) return;
8480
+ pinForDisclosure();
8481
+ setDisclosure(chooseDisclosureDepth(depth));
8482
+ };
8483
+ const startHistoryLoad = () => {
8484
+ if (historyLoad.kind === "loading" || historyLoad.kind === "complete") return;
8485
+ if (loadAllHistory === void 0) return;
8486
+ historyAbortRef.current?.abort();
8487
+ const controller = new AbortController();
8488
+ historyAbortRef.current = controller;
8489
+ setHistoryLoad({ kind: "loading" });
8490
+ loadAllHistory(controller.signal).then((result) => {
8491
+ if (historyAbortRef.current !== controller) return;
8492
+ if (result.kind === "blocked") {
8493
+ const message = result.reason === "busy" ? "主会话正在载入历史,请稍后重试" : result.reason === "page-limit" ? "历史页数超出安全上限,请分次重试" : "历史分页没有继续前进,请重试";
8494
+ setHistoryLoad({
8495
+ kind: "error",
8496
+ message
8497
+ });
8498
+ } else if (result.kind === "complete") setHistoryLoad({ kind: "complete" });
8499
+ else setHistoryLoad({ kind: "idle" });
8500
+ }).catch((error) => {
8501
+ if (historyAbortRef.current !== controller || controller.signal.aborted) return;
8502
+ setHistoryLoad({
8503
+ kind: "error",
8504
+ message: error instanceof Error ? error.message : String(error)
8505
+ });
8506
+ }).finally(() => {
8507
+ if (historyAbortRef.current === controller) historyAbortRef.current = null;
8508
+ });
8509
+ };
8510
+ (0, react.useEffect)(() => {
8511
+ if (historyLoad.kind !== "complete" || hasMore) return;
8512
+ setHistoryLoad({ kind: "idle" });
8513
+ }, [historyLoad.kind, hasMore]);
8514
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [selected === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExecutionInspector, {
8515
+ group: selected,
8516
+ selectedItemId,
8517
+ live: picture.running && selected.id === lastGroupId,
8518
+ now,
8519
+ closing: inspectorClosing,
8520
+ onSelectItem: setSelectedItemId,
8521
+ onBack: () => closeInspector(),
8522
+ onExited: finishInspectorExit
8523
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
8524
+ className: Watcher_module_css_default.workPicture,
8525
+ "aria-label": "Agent 工作路径",
8526
+ "data-ud-check": "watcher-work-picture",
8527
+ "data-ud-role": "panel",
8528
+ children: [
8529
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", {
8530
+ className: Watcher_module_css_default.pictureHeader,
8531
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8532
+ className: Watcher_module_css_default.nowBlock,
8533
+ "aria-live": "polite",
8534
+ children: [
8535
+ picture.running || hasEdgeAlert || summaryState !== "就绪" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8536
+ className: Watcher_module_css_default.eyebrow,
8537
+ "data-alert": hasEdgeAlert ? "" : void 0,
8538
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: summaryState })
8539
+ }) : null,
8540
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8541
+ className: Watcher_module_css_default.now,
8542
+ title: picture.running ? nowLabel : "DSH-Watcher",
8543
+ children: picture.running ? nowLabel : "DSH-Watcher"
8544
+ }),
8545
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8546
+ className: Watcher_module_css_default.summary,
8547
+ children: [
8548
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: hasMore && totalTurnCount > picture.turnCount ? `已载入 ${picture.turnCount}/${totalTurnCount} 轮` : `${picture.turnCount} 轮` }),
8549
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: hasMore && totalStepCount > picture.stepCount ? `${picture.stepCount}/${totalStepCount} 步` : `${picture.stepCount} 步` }),
8550
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: [picture.actionCount, " 次执行"] }),
8551
+ hasMore || historyLoad.kind === "loading" || historyLoad.kind === "error" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
8552
+ type: "button",
8553
+ className: Watcher_module_css_default.loadAllInlineBtn,
8554
+ onClick: startHistoryLoad,
8555
+ disabled: historyLoad.kind === "loading",
8556
+ children: historyLoad.kind === "loading" ? "正在补齐历史…" : historyLoad.kind === "error" ? "重试载入" : "载入全部历史 →"
8557
+ }) : null,
8558
+ historyLoad.kind === "loading" || historyLoad.kind === "error" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8559
+ role: "status",
8560
+ children: historyLoad.kind === "error" ? historyLoad.message : `已载入 ${historyProgress}`
8561
+ }) : null
8562
+ ]
8563
+ })
8564
+ ]
8565
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_deepseek_ai_dsh_client_ui_primitives.Pill, {
8566
+ className: Watcher_module_css_default.follow,
8567
+ active: ui.follow,
8568
+ "aria-pressed": ui.follow,
8569
+ "aria-label": ui.follow ? "停止跟随最新工作" : "跟随最新工作",
8570
+ onClick: () => {
8571
+ if (!ui.follow) programmaticScrollRef.current = true;
8572
+ setUi(followRef.current.setFollow(!ui.follow));
8573
+ },
8574
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 12 }), ui.follow ? "自动跟随" : "浏览历史"]
8575
+ })]
8576
+ }),
8577
+ hideInsights === true ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SessionInsights, {
8578
+ value: insights,
8579
+ now,
8580
+ running: picture.running,
8581
+ waiting: picture.pendingCount > 0,
8582
+ onEvidence: locateEvidence
8583
+ }),
8584
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8585
+ className: Watcher_module_css_default.viewToolbar,
8586
+ "aria-label": "路径视图设置",
8587
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8588
+ className: Watcher_module_css_default.viewControl,
8589
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8590
+ className: Watcher_module_css_default.viewToolbarLabel,
8591
+ children: "组织"
8592
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8593
+ className: Watcher_module_css_default.viewMode,
8594
+ role: "group",
8595
+ "aria-label": "路径组织方式",
8596
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
8597
+ type: "button",
8598
+ "data-active": observationMode === "itemized" ? "" : void 0,
8599
+ "aria-pressed": observationMode === "itemized",
8600
+ title: "按时间顺序展示每个步骤和每次执行",
8601
+ onClick: () => chooseObservationMode("itemized"),
8602
+ children: "逐项"
8603
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
8604
+ type: "button",
8605
+ "data-active": observationMode === "grouped" ? "" : void 0,
8606
+ "aria-pressed": observationMode === "grouped",
8607
+ title: "按同一目标或完全相同的指令归类,展开仍可查看原始执行",
8608
+ onClick: () => chooseObservationMode("grouped"),
8609
+ children: "归类"
8610
+ })]
8611
+ })]
8612
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8613
+ className: Watcher_module_css_default.viewControl,
8614
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8615
+ className: Watcher_module_css_default.viewToolbarLabel,
8616
+ children: "层级"
8617
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8618
+ className: Watcher_module_css_default.viewMode,
8619
+ role: "group",
8620
+ "aria-label": "路径展开深度",
8621
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
8622
+ type: "button",
8623
+ "data-active": disclosure.depth === "overview" ? "" : void 0,
8624
+ "aria-pressed": disclosure.depth === "overview",
8625
+ title: "展开当前轮次,展示阶段概览;阶段内部保持收起",
8626
+ onClick: () => chooseDepth("overview"),
8627
+ children: "概览"
8628
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
8629
+ type: "button",
8630
+ "data-active": disclosure.depth === "detail" ? "" : void 0,
8631
+ "aria-pressed": disclosure.depth === "detail",
8632
+ title: "展开所有轮次、阶段、步骤、模型与推理记录",
8633
+ onClick: () => chooseDepth("detail"),
8634
+ children: "详情"
8635
+ })]
8636
+ })]
8637
+ })]
8638
+ }),
8639
+ !ui.follow && ui.unread > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
8640
+ type: "button",
8641
+ className: Watcher_module_css_default.unread,
8642
+ onClick: selected === void 0 ? backToLatest : () => closeInspector(true),
8643
+ children: [
8644
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 12 }),
8645
+ ui.unread,
8646
+ " 条新进展 · 查看最新"
8647
+ ]
8648
+ }) : null,
8649
+ picture.nodes.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8650
+ className: Watcher_module_css_default.empty,
8651
+ children: [
8652
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8653
+ className: Watcher_module_css_default.emptyEye,
8654
+ "aria-hidden": "true",
8655
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconLivingEye, { size: 22 })
8656
+ }),
8657
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "还没有工作记录" }),
8658
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "第一轮对话开始后,路径会从这里生长" })
8659
+ ]
8660
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8661
+ ref: railRef,
8662
+ className: Watcher_module_css_default.railViewport,
8663
+ onScroll: onRailScroll,
8664
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8665
+ className: Watcher_module_css_default.turns,
8666
+ children: picture.turns.map((turn) => {
8667
+ const isLatestTurn = turn.turn === latestTurnNumber;
8668
+ const turnState = overviewStateOf(turn.status, isLatestTurn);
8669
+ const automaticDefaultOpen = turnNeedsDefaultDisclosure(turnState, isLatestTurn);
8670
+ const turnOpen = turnDisclosureOpen(disclosure, turn.turn, automaticDefaultOpen);
8671
+ const turnTitle = turn.turn === 0 ? "会话准备" : `对话轮次 ${turn.turn}`;
8672
+ const turnSummary = turnOverviewSummary(turn);
8673
+ const performance = performanceByTurn.get(turn.turn);
8674
+ const duration = turnDuration(turn, isLatestTurn && picture.running, now);
8675
+ const tokenSpeed = performance?.throughput.kind === "measured" ? `${formatTokensPerSecond(performance.throughput.tokensPerSecond)} tok/s` : null;
8676
+ const durationAria = duration === null ? "" : duration.kind === "exact" ? `,总耗时 ${duration.value}` : `,已记录 ${duration.value},开头未载入`;
8677
+ const secondaryPerformance = [duration?.kind === "partial" ? "开头未载入" : null, tokenSpeed].filter((value) => value !== null).join(" · ");
8678
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
8679
+ className: Watcher_module_css_default.turn,
8680
+ "aria-labelledby": `${domPrefix}-${turn.turn}`,
8681
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("header", {
8682
+ className: Watcher_module_css_default.turnHeader,
8683
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
8684
+ id: `${domPrefix}-${turn.turn}`,
8685
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
8686
+ type: "button",
8687
+ className: Watcher_module_css_default.turnToggle,
8688
+ "aria-expanded": turnOpen,
8689
+ "aria-controls": `${domPrefix}-body-${turn.turn}`,
8690
+ "aria-label": `${turnTitle},${OVERVIEW_STATE_LABEL[turnState]},${turnSummary}${durationAria}${tokenSpeed === null ? "" : `,生成速度 ${tokenSpeed}`},${turnOpen ? "收起轮次" : "展开轮次"}`,
8691
+ title: turnOpen ? "收起此轮次;新进展仍会继续更新" : "展开此轮次",
8692
+ onClick: () => {
8693
+ pinForDisclosure();
8694
+ setDisclosure((current) => toggleTurnDisclosure(current, turn.turn, automaticDefaultOpen));
8695
+ },
8696
+ children: [
8697
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutlineRegular, {
8698
+ size: 13,
8699
+ className: Watcher_module_css_default.turnChevron
8700
+ }),
8701
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
8702
+ className: Watcher_module_css_default.turnCopy,
8703
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
8704
+ className: Watcher_module_css_default.turnTitleLine,
8705
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8706
+ className: Watcher_module_css_default.turnTitle,
8707
+ children: turnTitle
8708
+ }), showOverviewTag(turnState) ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8709
+ className: Watcher_module_css_default.overviewTag,
8710
+ "data-state": turnState,
8711
+ children: OVERVIEW_STATE_LABEL[turnState]
8712
+ }) : null]
8713
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8714
+ className: Watcher_module_css_default.turnSummary,
8715
+ children: turnSummary
8716
+ })]
8717
+ }),
8718
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
8719
+ className: Watcher_module_css_default.turnPerformance,
8720
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8721
+ className: Watcher_module_css_default.turnDuration,
8722
+ children: duration === null ? OVERVIEW_STATE_LABEL[turnState] : duration.kind === "exact" ? `总 ${duration.value}` : `已记录 ${duration.value}`
8723
+ }), secondaryPerformance === "" ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8724
+ className: Watcher_module_css_default.turnSpeed,
8725
+ children: secondaryPerformance
8726
+ })]
8727
+ })
8728
+ ]
8729
+ })
8730
+ })
8731
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8732
+ id: `${domPrefix}-body-${turn.turn}`,
8733
+ className: Watcher_module_css_default.turnBody,
8734
+ hidden: !turnOpen,
8735
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8736
+ className: Watcher_module_css_default.groupRail,
8737
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8738
+ className: Watcher_module_css_default.railLine,
8739
+ "aria-hidden": "true"
8740
+ }), turn.groups.map((group) => {
8741
+ const isNow = group.id === lastGroupId;
8742
+ const selectedGroup = ui.selectedId === group.id;
8743
+ const phaseOpen = layerDisclosureOpen(disclosure, "phase", group.id);
8744
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PhaseOverview, {
8745
+ group,
8746
+ isNow,
8747
+ running: picture.running,
8748
+ now,
8749
+ selectedGroup,
8750
+ selectedItemId,
8751
+ observationMode,
8752
+ open: phaseOpen,
8753
+ disclosure,
8754
+ onToggle: () => {
8755
+ pinForDisclosure();
8756
+ setDisclosure((current) => toggleLayerDisclosure(current, "phase", group.id));
8757
+ },
8758
+ onToggleLayer: (layer, key) => {
8759
+ pinForDisclosure();
8760
+ setDisclosure((current) => toggleLayerDisclosure(current, layer, key));
8761
+ },
8762
+ onToggleReasoning: (key, modelKey) => {
8763
+ pinForDisclosure();
8764
+ setDisclosure((current) => {
8765
+ return toggleLayerDisclosure(layerDisclosureOpen(current, "reasoning", key) ? current : setLayerDisclosure(current, "model", modelKey, true), "reasoning", key);
8766
+ });
8767
+ },
8768
+ onSelectItem: (item) => selectItem(group, item)
8769
+ }, group.id);
8770
+ })]
8771
+ })
8772
+ })]
8773
+ }, turn.turn);
8774
+ })
8775
+ })
8776
+ })
8777
+ ]
8778
+ })] });
8779
+ }
8780
+ //#endregion
8781
+ //#region src/client/model-trace-definition.ts
8782
+ const modelTraceDefinition = {
8783
+ kind: "dsh-watcher-model-stage",
8695
8784
  match: (event) => {
8696
8785
  const first = modelTraceEventsOf(event)[0];
8697
8786
  if (first === void 0) return null;
@@ -8731,6 +8820,136 @@ window.__ModuleLoader__.load({
8731
8820
  ctx.uiConversation.events.register(modelTraceDefinition);
8732
8821
  }
8733
8822
  //#endregion
8823
+ //#region src/client/SidebarTab.tsx
8824
+ /** Read the optional service off a context without importing the peer. */
8825
+ function betterSidebarServiceOf(ctx) {
8826
+ const service = ctx.betterSidebar;
8827
+ return typeof service === "object" && service !== null ? service : void 0;
8828
+ }
8829
+ /** The Watcher tab descriptor registered into dsh-better-sidebar. */
8830
+ function watcherSidebarDescriptor() {
8831
+ return {
8832
+ id: "dsh-watcher:picture",
8833
+ title: "Watcher",
8834
+ single: true,
8835
+ order: 80,
8836
+ component: ({ ctx, scope, visible }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(WatcherSidebarTab, {
8837
+ ctx,
8838
+ sessionId: scope.sessionId,
8839
+ visible
8840
+ })
8841
+ };
8842
+ }
8843
+ function subscribeNone() {
8844
+ return () => {};
8845
+ }
8846
+ function getSnapshotUndefined() {}
8847
+ /** Subscribe to one snapshot source; tolerate an absent source at rest. */
8848
+ function useObservableValue(source) {
8849
+ const subscribe = (0, react.useMemo)(() => source === void 0 ? void 0 : (listener) => source.subscribe(listener), [source]);
8850
+ const getSnapshot = (0, react.useMemo)(() => source === void 0 ? void 0 : () => source.getSnapshot(), [source]);
8851
+ return (0, react.useSyncExternalStore)(subscribe ?? subscribeNone, getSnapshot ?? getSnapshotUndefined, getSnapshotUndefined);
8852
+ }
8853
+ /**
8854
+ * Resolve the Watcher's data sources for one Session through the same doors the
8855
+ * session-header overlay uses: `sessions.binding` for the Session face and
8856
+ * `uiConversation.binding` for the Conversation snapshot. Returns undefined
8857
+ * while the Session has no retained binding (the tab shows its waiting state).
8858
+ */
8859
+ function resolveSidebarSources(ctx, sessionId) {
8860
+ const face = ctx.sessions?.binding?.(sessionId)?.session;
8861
+ if (face === void 0) return void 0;
8862
+ try {
8863
+ return {
8864
+ conversation: ctx.uiConversation.binding(sessionId).snapshot,
8865
+ session: face,
8866
+ status: ctx.uiSession.sessionStatus,
8867
+ stats: face.projections?.faceOf?.("sessionStats"),
8868
+ face
8869
+ };
8870
+ } catch {
8871
+ return;
8872
+ }
8873
+ }
8874
+ function waitingRoot() {
8875
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8876
+ className: Watcher_module_css_default.sidebarHost,
8877
+ "data-watcher-sidebar": "waiting",
8878
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8879
+ role: "status",
8880
+ children: "Watcher 正在等待会话记录…"
8881
+ })
8882
+ });
8883
+ }
8884
+ /**
8885
+ * The Better Sidebar tab body: the session-header overlay's work picture,
8886
+ * ported onto `scope.sessionId` without the portal, the trigger, or the drag
8887
+ * frame. Reads the same Session/Conversation stores through their binding
8888
+ * faces; the cost/performance HUD and whole-history paging stay explicit (and
8889
+ * `visible: false` never starts a load — only the button does).
8890
+ */
8891
+ function WatcherSidebarTab({ ctx, sessionId, visible }) {
8892
+ const sources = (0, react.useMemo)(() => resolveSidebarSources(ctx, sessionId), [ctx, sessionId]);
8893
+ const conversation = useObservableValue(sources?.conversation);
8894
+ const sessionSnapshot = useObservableValue(sources?.session);
8895
+ const statusMap = useObservableValue(sources?.status);
8896
+ const stats = useObservableValue(sources?.stats);
8897
+ const pendingInteraction = statusMap?.get(sessionId)?.pendingInteraction;
8898
+ const chat = conversation?.views?.get("chat");
8899
+ const snapshot = (0, react.useMemo)(() => {
8900
+ if (conversation === void 0 || chat === void 0 || sessionSnapshot === void 0) return void 0;
8901
+ return {
8902
+ views: conversation.views,
8903
+ chat,
8904
+ nodes: chat.legacy.nodes,
8905
+ turnTimings: chat.legacy.turnTimings,
8906
+ runningCalls: chat.legacy.runningCalls,
8907
+ pending: pendingInteraction === void 0 ? [] : [pendingInteraction],
8908
+ blank: sessionSnapshot.blank,
8909
+ running: sessionSnapshot.running,
8910
+ hasMore: sessionSnapshot.hasMore
8911
+ };
8912
+ }, [
8913
+ conversation,
8914
+ chat,
8915
+ pendingInteraction,
8916
+ sessionSnapshot
8917
+ ]);
8918
+ if (snapshot === void 0) return waitingRoot();
8919
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(WatcherSidebarReady, {
8920
+ ctx,
8921
+ sessionId,
8922
+ visible,
8923
+ snapshot,
8924
+ stats,
8925
+ face: sources?.face
8926
+ });
8927
+ }
8928
+ function WatcherSidebarReady({ ctx, sessionId, visible, snapshot, stats, face }) {
8929
+ const { picture, performanceByTurn } = useObservedPicture(sessionId, snapshot);
8930
+ const loadAllHistory = (0, react.useMemo)(() => face === void 0 ? void 0 : createCompleteHistoryLoader(ctx, sessionId, face), [
8931
+ ctx,
8932
+ sessionId,
8933
+ face
8934
+ ]);
8935
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8936
+ className: Watcher_module_css_default.sidebarHost,
8937
+ "data-watcher-sidebar": "picture",
8938
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(WorkPicturePanel, {
8939
+ sessionId,
8940
+ picture,
8941
+ performanceByTurn,
8942
+ hasMore: snapshot.hasMore,
8943
+ stats,
8944
+ insights: void 0,
8945
+ hideInsights: true,
8946
+ loadAllHistory,
8947
+ live: visible,
8948
+ domIdPrefix: "watcher-side-turn"
8949
+ })
8950
+ });
8951
+ }
8952
+ //#endregion
8734
8953
  //#region src/client/index.tsx
8735
8954
  const name = "dsh-watcher-client";
8736
8955
  const inject = [
@@ -8761,24 +8980,14 @@ window.__ModuleLoader__.load({
8761
8980
  inject: (sessionId) => {
8762
8981
  const session = ctx.sessions.binding?.(sessionId)?.session;
8763
8982
  if (session === void 0) throw new Error(`dsh-watcher: session "${sessionId}" is unavailable`);
8764
- return { loadAllHistory: (signal) => loadCompleteHistory({
8765
- signal,
8766
- loadOlder: () => session.loadOlder(),
8767
- read: () => {
8768
- const sessionSnapshot = session.getSnapshot();
8769
- const chat = ctx.uiConversation.binding(sessionId).snapshot.getSnapshot().views.get("chat");
8770
- if (chat === void 0) throw new Error("dsh-watcher: Chat conversation target is unavailable");
8771
- const firstNode = chat.legacy.nodes[0];
8772
- const firstTurn = chat.timeline.turnOrder[0];
8773
- return {
8774
- hasMore: sessionSnapshot.hasMore,
8775
- loadingOlder: sessionSnapshot.loadingOlder,
8776
- headKey: `${firstTurn ?? "none"}:${firstNode?.seq ?? "none"}:${chat.legacy.nodes.length}`
8777
- };
8778
- }
8779
- }) };
8983
+ return { loadAllHistory: (signal) => createCompleteHistoryLoader(ctx, sessionId, session)(signal) };
8780
8984
  }
8781
8985
  }, Watcher));
8986
+ ctx.inject(["betterSidebar"], (c) => {
8987
+ const { registerTab } = betterSidebarServiceOf(c) ?? {};
8988
+ if (typeof registerTab !== "function") return;
8989
+ c.effect(() => registerTab(watcherSidebarDescriptor()));
8990
+ });
8782
8991
  }
8783
8992
  //#endregion
8784
8993
  exports.apply = apply;