dsh-desktop-enhance 0.3.2 → 0.3.4

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.
Files changed (2) hide show
  1. package/lib/client.js +261 -100
  2. package/package.json +17 -12
package/lib/client.js CHANGED
@@ -45,6 +45,16 @@ window.__ModuleLoader__.load({
45
45
  "sessionInfo.override.reset": "重置为全局默认",
46
46
  "settings.title": "UI 增强",
47
47
  "settings.description": "逐项开关本插件添加的界面增强。关闭后恢复 DSH 原生外观。",
48
+ "settings.enabledSummary": "已启用 ",
49
+ "settings.group.visual": "对话浏览与视觉",
50
+ "settings.group.visual.hint": "查找 · 轮次 · 压缩 · 耗时",
51
+ "settings.group.suggest": "智能追问建议",
52
+ "settings.group.suggest.hint": "每轮结束生成下一轮候选提示词",
53
+ "settings.group.session": "会话信息与能力管控",
54
+ "settings.group.session.hint": "右上角悬浮看板与工具 / Skill 全局默认策略",
55
+ "settings.badge.findBar": "⌘F",
56
+ "settings.badge.turnPrefix": "#N",
57
+ "settings.badge.stepDuration": "14:32 · 23s",
48
58
  "settings.findBar": "页内查找",
49
59
  "settings.findBar.hint": "按 Cmd+F 唤出查找条,在整个对话里搜索并高亮",
50
60
  "settings.turnPrefix": "轮次编号",
@@ -107,6 +117,10 @@ window.__ModuleLoader__.load({
107
117
  "settings.suggestPrompt.missingPlaceholder": "模板里必须保留 {{MAX_SUGGESTIONS}} 与 {{LABEL_MAX}} 两个占位符。",
108
118
  "settings.suggestPrompt.missingFormat": "模板里必须保留输出格式那段(一个 JSON 数组,每条带 \"label\" 与 \"prompt\")。",
109
119
  "settings.suggestPrompt.placeholders": "可用占位符:",
120
+ "settings.suggestPrompt.edit": "编辑模板 ▾",
121
+ "settings.suggestPrompt.collapse": "收起模板 ▴",
122
+ "settings.suggestPrompt.defaultBadge": "默认模板",
123
+ "settings.suggestPrompt.customBadge": "已自定义",
110
124
  "settings.readOnly": "当前宿主没有可写的设置服务,开关暂不可用;插件按默认(全部开启)运行。",
111
125
  "settings.staleHost": "插件已更新,但应用还跑着旧的宿主半侧,这些设置改不动:请重启应用(刷新页面不够)。",
112
126
  "settings.writeFailed": "设置没写进去,开关已退回原状态;请重试。"
@@ -148,6 +162,16 @@ window.__ModuleLoader__.load({
148
162
  "sessionInfo.override.reset": "Reset to global default",
149
163
  "settings.title": "UI enhancements",
150
164
  "settings.description": "Switch each interface enhancement this plugin adds. Turning one off restores the native DSH look.",
165
+ "settings.enabledSummary": "Enabled ",
166
+ "settings.group.visual": "Conversation & visuals",
167
+ "settings.group.visual.hint": "Find · turns · compaction · timing",
168
+ "settings.group.suggest": "Next-round suggestions",
169
+ "settings.group.suggest.hint": "Suggests next-round prompts after each turn",
170
+ "settings.group.session": "Session inspector & capabilities",
171
+ "settings.group.session.hint": "Top-right session inspector and global tool/skill defaults",
172
+ "settings.badge.findBar": "⌘F",
173
+ "settings.badge.turnPrefix": "#N",
174
+ "settings.badge.stepDuration": "14:32 · 23s",
151
175
  "settings.findBar": "Find in conversation",
152
176
  "settings.findBar.hint": "Cmd+F opens a find bar that searches and highlights the whole conversation",
153
177
  "settings.turnPrefix": "Turn numbers",
@@ -210,6 +234,10 @@ window.__ModuleLoader__.load({
210
234
  "settings.suggestPrompt.missingPlaceholder": "The template must keep both the {{MAX_SUGGESTIONS}} and {{LABEL_MAX}} placeholders.",
211
235
  "settings.suggestPrompt.missingFormat": "The template must keep the output-format clause (a JSON array whose entries carry \"label\" and \"prompt\").",
212
236
  "settings.suggestPrompt.placeholders": "Available placeholders: ",
237
+ "settings.suggestPrompt.edit": "Edit template ▾",
238
+ "settings.suggestPrompt.collapse": "Hide template ▴",
239
+ "settings.suggestPrompt.defaultBadge": "Default",
240
+ "settings.suggestPrompt.customBadge": "Customized",
213
241
  "settings.readOnly": "This host has no writable settings service, so the switches are unavailable; the plugin runs with its defaults (all on).",
214
242
  "settings.staleHost": "The plugin updated, but the app is still running the old host half, so these settings cannot change: restart the app (refreshing the page is not enough).",
215
243
  "settings.writeFailed": "The setting did not save; the switch went back. Try again."
@@ -490,6 +518,34 @@ window.__ModuleLoader__.load({
490
518
  "toolsManager",
491
519
  "skillsManager"
492
520
  ];
521
+ const SETTINGS_GROUPS = [
522
+ {
523
+ id: "visual",
524
+ fields: [
525
+ "findBar",
526
+ "turnPrefix",
527
+ "compactionRow",
528
+ "stepDuration"
529
+ ]
530
+ },
531
+ {
532
+ id: "suggest",
533
+ fields: ["suggest"]
534
+ },
535
+ {
536
+ id: "session",
537
+ fields: [
538
+ "sessionInfo",
539
+ "toolsManager",
540
+ "skillsManager"
541
+ ]
542
+ }
543
+ ];
544
+ const FEATURE_BADGES = {
545
+ findBar: "settings.badge.findBar",
546
+ turnPrefix: "settings.badge.turnPrefix",
547
+ stepDuration: "settings.badge.stepDuration"
548
+ };
493
549
  const ALL_FIELDS = [...FIELDS, ...TEXT_FIELDS];
494
550
  function flagOn(value, field) {
495
551
  if (value === null || typeof value !== "object") return true;
@@ -1958,13 +2014,40 @@ window.__ModuleLoader__.load({
1958
2014
  send(0);
1959
2015
  };
1960
2016
  const drifted = ready && !readOnly ? undeclaredFields(value, ALL_FIELDS) : [];
1961
- const items = FIELDS.map((field) => {
2017
+ const renderDefaultsSubpanel = (featureField, configField, key, Component) => flagOn(value, featureField) || readOnly ? h(Component, {
2018
+ key,
2019
+ t,
2020
+ disabledRaw: String(readField(value, configField)),
2021
+ disabled: readOnly || busy.includes(configField) || isUndeclared(configField),
2022
+ onSave: (nextCanonical) => write(configField, nextCanonical)
2023
+ }) : null;
2024
+ const subpanels = {
2025
+ suggest: flagOn(value, "suggest") || readOnly ? h(SuggestSettings, {
2026
+ key: "suggest",
2027
+ t,
2028
+ value,
2029
+ busy,
2030
+ readOnly,
2031
+ write,
2032
+ drifted
2033
+ }) : null,
2034
+ toolsManager: renderDefaultsSubpanel("toolsManager", "disabledTools", "default-tools", DefaultToolsManager),
2035
+ skillsManager: renderDefaultsSubpanel("skillsManager", "disabledSkills", "default-skills", DefaultSkillsManager)
2036
+ };
2037
+ const renderFeatureItem = (field) => {
1962
2038
  const on = flagOn(value, field);
1963
2039
  const dead = drifted.includes(field);
2040
+ const badgeKey = FEATURE_BADGES[field];
2041
+ const subpanel = subpanels[field] ?? null;
1964
2042
  return h("div", {
1965
- className: "de-item",
1966
- key: field
1967
- }, h("div", { className: "de-text" }, h("div", { className: "de-title" }, t("settings." + field)), h("div", { className: "de-desc" }, t("settings." + field + ".hint"))), h("button", {
2043
+ className: "de-item-wrap",
2044
+ key: field,
2045
+ "data-desktop-enhance-item": field,
2046
+ "data-enabled": on ? "true" : "false"
2047
+ }, h("div", { className: "de-item" }, h("div", { className: "de-text" }, h("div", { className: "de-title-row" }, h("span", { className: "de-title" }, t("settings." + field)), badgeKey !== void 0 ? h("span", {
2048
+ className: "de-feature-badge",
2049
+ "data-desktop-enhance-badge": field
2050
+ }, t(badgeKey)) : null), h("div", { className: "de-desc" }, t("settings." + field + ".hint"))), h("button", {
1968
2051
  type: "button",
1969
2052
  className: "de-switch",
1970
2053
  role: "switch",
@@ -1973,8 +2056,18 @@ window.__ModuleLoader__.load({
1973
2056
  "data-desktop-enhance-field": field,
1974
2057
  disabled: readOnly || dead || busy.includes(field),
1975
2058
  onClick: () => write(field, !on)
1976
- }));
1977
- });
2059
+ })), subpanel !== null ? h("div", {
2060
+ key: `sub-${field}`,
2061
+ className: "de-subpanel"
2062
+ }, subpanel) : null);
2063
+ };
2064
+ const sectionCards = SETTINGS_GROUPS.map((group) => h("section", {
2065
+ className: "de-section-card",
2066
+ key: group.id,
2067
+ "data-desktop-enhance-group": group.id
2068
+ }, h("div", { className: "de-section-head" }, h("span", { className: "de-section-title" }, t("settings.group." + group.id)), h("span", { className: "de-section-hint" }, t("settings.group." + group.id + ".hint"))), h("div", { className: "de-section-body" }, ...group.fields.map(renderFeatureItem))));
2069
+ const enabledCount = FIELDS.filter((field) => flagOn(value, field)).length;
2070
+ const countText = `${String(enabledCount)}/${String(FIELDS.length)}`;
1978
2071
  const note = failed.length > 0 ? h("div", {
1979
2072
  className: "de-error",
1980
2073
  role: "alert"
@@ -1982,30 +2075,11 @@ window.__ModuleLoader__.load({
1982
2075
  className: "de-note",
1983
2076
  role: "alert"
1984
2077
  }, t("settings.staleHost") + "(" + drifted.map((field) => labelOf(t, field)).join("、") + ")") : null;
1985
- const showSuggest = flagOn(value, "suggest") || readOnly;
1986
- const showDefaultTools = flagOn(value, "toolsManager") || readOnly;
1987
- const showDefaultSkills = flagOn(value, "skillsManager") || readOnly;
1988
- return h("div", { "data-desktop-enhance-settings": "" }, h("div", {}, h("div", { className: "de-head-title" }, t("settings.title")), h("div", { className: "de-head-desc" }, t("settings.description"))), ...items, showDefaultTools ? h(DefaultToolsManager, {
1989
- key: "default-tools",
1990
- t,
1991
- disabledRaw: String(readField(value, "disabledTools")),
1992
- disabled: readOnly || busy.includes("disabledTools") || isUndeclared("disabledTools"),
1993
- onSave: (nextCanonical) => write("disabledTools", nextCanonical)
1994
- }) : null, showDefaultSkills ? h(DefaultSkillsManager, {
1995
- key: "default-skills",
1996
- t,
1997
- disabledRaw: String(readField(value, "disabledSkills")),
1998
- disabled: readOnly || busy.includes("disabledSkills") || isUndeclared("disabledSkills"),
1999
- onSave: (nextCanonical) => write("disabledSkills", nextCanonical)
2000
- }) : null, showSuggest ? h(SuggestSettings, {
2001
- key: "suggest",
2002
- t,
2003
- value,
2004
- busy,
2005
- readOnly,
2006
- write,
2007
- drifted
2008
- }) : null, note);
2078
+ return h("div", { "data-desktop-enhance-settings": "" }, h("div", { className: "de-head" }, h("div", { className: "de-head-main" }, h("div", { className: "de-head-title" }, t("settings.title")), h("div", { className: "de-head-desc" }, t("settings.description"))), h("span", {
2079
+ className: "de-head-pill",
2080
+ "data-desktop-enhance-enabled-count": countText,
2081
+ "data-all-off": enabledCount === 0 ? "true" : "false"
2082
+ }, `${t("settings.enabledSummary")}${countText}`)), ...sectionCards, note);
2009
2083
  }
2010
2084
  function SuggestSettings({ t, value, busy, readOnly, write, drifted }) {
2011
2085
  const model = textOf(value, "suggestModel");
@@ -2014,36 +2088,36 @@ window.__ModuleLoader__.load({
2014
2088
  const modelDisabled = readOnly || busy.includes("suggestModel") || drifted.includes("suggestModel");
2015
2089
  const effortDisabled = readOnly || busy.includes("suggestReasoning") || drifted.includes("suggestReasoning");
2016
2090
  const promptDisabled = readOnly || busy.includes("suggestPrompt") || drifted.includes("suggestPrompt");
2017
- return h("div", { className: "de-suggest-settings" }, [
2018
- h("div", {
2019
- className: "de-item de-item-block",
2020
- key: "model"
2021
- }, h("div", { className: "de-text" }, h("div", { className: "de-title" }, t("settings.suggestModel")), h("div", { className: "de-desc" }, t("settings.suggestModel.hint"))), h(ModelPicker, {
2022
- model,
2023
- t,
2024
- disabled: modelDisabled,
2025
- onPick: (id) => write("suggestModel", id)
2026
- })),
2027
- h("div", {
2028
- className: "de-item de-item-block",
2029
- key: "reasoning"
2030
- }, h("div", { className: "de-text" }, h("div", { className: "de-title" }, t("settings.suggestReasoning")), h("div", { className: "de-desc" }, t("settings.suggestReasoning.hint"))), h(EffortPicker, {
2031
- model,
2032
- reasoning,
2033
- t,
2034
- disabled: effortDisabled,
2035
- onPick: (id) => write("suggestReasoning", id)
2036
- })),
2037
- h("div", {
2038
- className: "de-item de-item-block",
2039
- key: "prompt"
2040
- }, h("div", { className: "de-text" }, h("div", { className: "de-title" }, t("settings.suggestPrompt")), h("div", { className: "de-desc" }, t("settings.suggestPrompt.hint"))), h(PromptEditor, {
2041
- prompt,
2042
- t,
2043
- readOnly: promptDisabled,
2044
- onSave: (text) => write("suggestPrompt", text)
2045
- }))
2046
- ]);
2091
+ return h("div", { className: "de-suggest-settings" }, [h("div", {
2092
+ className: "de-suggest-grid",
2093
+ key: "grid",
2094
+ "data-desktop-enhance-suggest-grid": "true"
2095
+ }, [h("div", {
2096
+ className: "de-item de-item-block",
2097
+ key: "model"
2098
+ }, h("div", { className: "de-text" }, h("div", { className: "de-title" }, t("settings.suggestModel")), h("div", { className: "de-desc" }, t("settings.suggestModel.hint"))), h(ModelPicker, {
2099
+ model,
2100
+ t,
2101
+ disabled: modelDisabled,
2102
+ onPick: (id) => write("suggestModel", id)
2103
+ })), h("div", {
2104
+ className: "de-item de-item-block",
2105
+ key: "reasoning"
2106
+ }, h("div", { className: "de-text" }, h("div", { className: "de-title" }, t("settings.suggestReasoning")), h("div", { className: "de-desc" }, t("settings.suggestReasoning.hint"))), h(EffortPicker, {
2107
+ model,
2108
+ reasoning,
2109
+ t,
2110
+ disabled: effortDisabled,
2111
+ onPick: (id) => write("suggestReasoning", id)
2112
+ }))]), h("div", {
2113
+ className: "de-item de-item-block de-prompt-item",
2114
+ key: "prompt"
2115
+ }, h("div", { className: "de-text" }, h("div", { className: "de-title" }, t("settings.suggestPrompt")), h("div", { className: "de-desc" }, t("settings.suggestPrompt.hint"))), h(PromptEditor, {
2116
+ prompt,
2117
+ t,
2118
+ readOnly: promptDisabled,
2119
+ onSave: (text) => write("suggestPrompt", text)
2120
+ }))]);
2047
2121
  }
2048
2122
  function ModelPicker({ model, t, disabled, onPick }) {
2049
2123
  const [catalog, setCatalog] = React.useState(null);
@@ -2170,20 +2244,42 @@ window.__ModuleLoader__.load({
2170
2244
  ]);
2171
2245
  }
2172
2246
  function PromptEditor({ prompt, t, readOnly, onSave }) {
2173
- const [draft, setDraft] = React.useState(() => prompt === "" ? DEFAULT_PROMPT : prompt);
2247
+ const effectivePrompt = prompt === "" ? DEFAULT_PROMPT : prompt;
2248
+ const [draft, setDraft] = React.useState(effectivePrompt);
2174
2249
  const [problem, setProblem] = React.useState(null);
2250
+ const [open, setOpen] = React.useState(false);
2175
2251
  React.useEffect(() => {
2176
- setDraft(prompt === "" ? DEFAULT_PROMPT : prompt);
2252
+ setDraft(effectivePrompt);
2177
2253
  setProblem(null);
2178
- }, [prompt]);
2179
- const dirty = draft !== (prompt === "" ? DEFAULT_PROMPT : prompt);
2254
+ }, [effectivePrompt]);
2255
+ const isCustom = effectivePrompt !== DEFAULT_PROMPT;
2256
+ const dirty = draft !== effectivePrompt;
2180
2257
  const save = () => {
2181
2258
  const found = promptProblem(draft);
2182
2259
  setProblem(found);
2183
2260
  if (found !== null) return;
2184
2261
  onSave(draft === "Do not continue the task. Instead, predict what the user is most likely to ask you next, as up to {{MAX_SUGGESTIONS}} concrete prompts written in the user's own voice (imperative, specific to this conversation: name the file, test, or follow-up they would actually type). Prefer the obvious next action (run the tests, commit, fix the thing you flagged, do the same for X) over generic ones. Write them in the same language the user has been writing in. If the conversation is clearly finished, or nothing useful comes to mind, return an empty list.\n\nAnswer with ONLY a JSON array, no prose and no code fence: [{\"label\": \"<at most {{LABEL_MAX}} characters, shown on a button>\", \"prompt\": \"<the full prompt text>\"}]" ? "" : draft);
2185
2262
  };
2186
- return h("div", { className: "de-prompt" }, [
2263
+ return h("div", { className: "de-prompt" }, [h("div", {
2264
+ key: "bar",
2265
+ className: "de-prompt-bar"
2266
+ }, [h("span", {
2267
+ key: "status",
2268
+ className: "de-defaults-pill",
2269
+ "data-desktop-enhance-prompt-status": isCustom ? "custom" : "default"
2270
+ }, t(isCustom ? "settings.suggestPrompt.customBadge" : "settings.suggestPrompt.defaultBadge")), h("button", {
2271
+ key: "toggle",
2272
+ type: "button",
2273
+ className: "de-button",
2274
+ "data-desktop-enhance-prompt-toggle": "true",
2275
+ "aria-expanded": open ? "true" : "false",
2276
+ onClick: () => setOpen((v) => !v)
2277
+ }, t(open ? "settings.suggestPrompt.collapse" : "settings.suggestPrompt.edit"))]), h("div", {
2278
+ key: "body",
2279
+ className: "de-prompt-body",
2280
+ "data-desktop-enhance-prompt-body": "true",
2281
+ hidden: !open
2282
+ }, [
2187
2283
  h("textarea", {
2188
2284
  key: "box",
2189
2285
  className: "de-textarea",
@@ -2230,7 +2326,7 @@ window.__ModuleLoader__.load({
2230
2326
  setProblem(null);
2231
2327
  }
2232
2328
  }, t("settings.suggestPrompt.reset"))])
2233
- ]);
2329
+ ])]);
2234
2330
  }
2235
2331
  function renderDefaultSummaryTags(disabledNames, t, prefixKey, tagAttr) {
2236
2332
  if (disabledNames.length === 0) return h("div", {
@@ -3789,6 +3885,13 @@ window.__ModuleLoader__.load({
3789
3885
  //#region src/client/session-info/tools-popover.ts
3790
3886
  const TOOLS_POPOVER_ATTR = "data-desktop-enhance-tools-popover";
3791
3887
  const SKILLS_POPOVER_ATTR = "data-desktop-enhance-skills-popover";
3888
+ const POPOVER_BACKDROP_ATTR = "data-desktop-enhance-popover-backdrop";
3889
+ function removePopoverBackdrop(root) {
3890
+ if (root === null || root === void 0 || typeof root.querySelector !== "function") return;
3891
+ const existing = root.querySelector(`[${POPOVER_BACKDROP_ATTR}]`);
3892
+ if (existing !== null) existing.remove();
3893
+ }
3894
+ const popoverLiveHandlers = new WeakMap();
3792
3895
  function populateSummaryContainer(container, opts) {
3793
3896
  const { kind, t, titleKey, manageKey, closeKey, disabledPrefixKey, enabledCount, totalCount, disabledInCatalog, customized, popoverOpen, onTogglePopover } = opts;
3794
3897
  const row = globalThis.document.createElement("div");
@@ -4178,13 +4281,20 @@ window.__ModuleLoader__.load({
4178
4281
  return groups.map(buildGroupDom);
4179
4282
  }
4180
4283
  function syncAnchoredPopoverShell(opts) {
4181
- const { root, popoverAttr, kind, t, titleKey, hintKey, searchPlaceholderKey, searchQuery, totalCount, disabledInCatalogCount, hasAnyDisabled, customized, writable, onSearchChange, onEnableAll, onResetOverride, onRefreshCatalog, onClose, renderTreeNodes } = opts;
4284
+ const { root, popoverAttr, kind, t, titleKey, hintKey, searchPlaceholderKey, searchQuery, totalCount, disabledInCatalogCount, hasAnyDisabled, customized, writable, compact = false, onSearchChange, onEnableAll, onResetOverride, onRefreshCatalog, onClose, renderTreeNodes } = opts;
4285
+ removePopoverBackdrop(root);
4286
+ if (compact) {
4287
+ const backdrop = globalThis.document.createElement("div");
4288
+ backdrop.setAttribute(POPOVER_BACKDROP_ATTR, kind);
4289
+ backdrop.addEventListener("click", onClose);
4290
+ root.appendChild(backdrop);
4291
+ }
4182
4292
  const enableAllAttr = `data-${kind}-popover-enable-all`;
4183
4293
  const refreshAttr = `data-${kind}-popover-refresh`;
4184
4294
  let pop = root.querySelector(`[${popoverAttr}]`);
4185
4295
  if (pop === null) {
4186
- pop = globalThis.document.createElement("aside");
4187
- pop.setAttribute(popoverAttr, "");
4296
+ const newPop = globalThis.document.createElement("aside");
4297
+ newPop.setAttribute(popoverAttr, "");
4188
4298
  const head = globalThis.document.createElement("div");
4189
4299
  head.setAttribute("data-tools-popover-header", "");
4190
4300
  const titleWrap = globalThis.document.createElement("div");
@@ -4203,9 +4313,11 @@ window.__ModuleLoader__.load({
4203
4313
  closeBtn.setAttribute("data-tools-popover-close", "");
4204
4314
  if (kind === "skills") closeBtn.setAttribute("data-skills-popover-close", "");
4205
4315
  closeBtn.textContent = "✕";
4206
- closeBtn.addEventListener("click", onClose);
4316
+ closeBtn.addEventListener("click", () => {
4317
+ popoverLiveHandlers.get(newPop)?.onClose();
4318
+ });
4207
4319
  head.appendChild(closeBtn);
4208
- pop.appendChild(head);
4320
+ newPop.appendChild(head);
4209
4321
  const body = globalThis.document.createElement("div");
4210
4322
  body.setAttribute("data-tools-popover-body", "");
4211
4323
  const overrideSlot = globalThis.document.createElement("div");
@@ -4220,7 +4332,7 @@ window.__ModuleLoader__.load({
4220
4332
  searchInput.setAttribute("placeholder", t(searchPlaceholderKey));
4221
4333
  searchInput.value = searchQuery;
4222
4334
  searchInput.addEventListener("input", () => {
4223
- onSearchChange(searchInput.value);
4335
+ popoverLiveHandlers.get(newPop)?.onSearchChange(searchInput.value);
4224
4336
  });
4225
4337
  toolbar.appendChild(searchInput);
4226
4338
  const actions = globalThis.document.createElement("div");
@@ -4229,14 +4341,18 @@ window.__ModuleLoader__.load({
4229
4341
  enableAllBtn.setAttribute("type", "button");
4230
4342
  enableAllBtn.setAttribute("data-tools-btn", "");
4231
4343
  enableAllBtn.setAttribute(enableAllAttr, "");
4232
- enableAllBtn.addEventListener("click", onEnableAll);
4344
+ enableAllBtn.addEventListener("click", () => {
4345
+ popoverLiveHandlers.get(newPop)?.onEnableAll();
4346
+ });
4233
4347
  actions.appendChild(enableAllBtn);
4234
4348
  const refreshBtn = globalThis.document.createElement("button");
4235
4349
  refreshBtn.setAttribute("type", "button");
4236
4350
  refreshBtn.setAttribute("data-tools-btn", "");
4237
4351
  refreshBtn.setAttribute(refreshAttr, "");
4238
4352
  refreshBtn.textContent = t("settings.tools.refresh");
4239
- refreshBtn.addEventListener("click", onRefreshCatalog);
4353
+ refreshBtn.addEventListener("click", () => {
4354
+ popoverLiveHandlers.get(newPop)?.onRefreshCatalog();
4355
+ });
4240
4356
  actions.appendChild(refreshBtn);
4241
4357
  toolbar.appendChild(actions);
4242
4358
  body.appendChild(toolbar);
@@ -4244,9 +4360,17 @@ window.__ModuleLoader__.load({
4244
4360
  treeContainer.setAttribute("data-tools-popover-tree", "");
4245
4361
  if (kind === "skills") treeContainer.setAttribute("data-skills-popover-tree", "");
4246
4362
  body.appendChild(treeContainer);
4247
- pop.appendChild(body);
4248
- root.appendChild(pop);
4363
+ newPop.appendChild(body);
4364
+ root.appendChild(newPop);
4365
+ pop = newPop;
4249
4366
  }
4367
+ popoverLiveHandlers.set(pop, {
4368
+ onSearchChange,
4369
+ onEnableAll,
4370
+ onRefreshCatalog,
4371
+ onClose
4372
+ });
4373
+ pop.setAttribute("data-compact", compact ? "true" : "false");
4250
4374
  syncOverrideBanner(pop, t, customized, writable, onResetOverride);
4251
4375
  const enableAllBtn = pop.querySelector(`[${enableAllAttr}]`);
4252
4376
  if (enableAllBtn !== null) {
@@ -4260,7 +4384,7 @@ window.__ModuleLoader__.load({
4260
4384
  return pop;
4261
4385
  }
4262
4386
  function syncToolsPopover(props) {
4263
- const { root, t, toolsCatalog, disabledSet, disabledInCatalog, customized = false, searchQuery, expandedToolNodes, writable, onSearchChange, onToggleNodeExpand, onCommitSet, onResetOverride, onRefreshCatalog, onClose } = props;
4387
+ const { root, t, toolsCatalog, disabledSet, disabledInCatalog, customized = false, searchQuery, expandedToolNodes, writable, compact = false, onSearchChange, onToggleNodeExpand, onCommitSet, onResetOverride, onRefreshCatalog, onClose } = props;
4264
4388
  return syncAnchoredPopoverShell({
4265
4389
  root,
4266
4390
  popoverAttr: TOOLS_POPOVER_ATTR,
@@ -4275,6 +4399,7 @@ window.__ModuleLoader__.load({
4275
4399
  hasAnyDisabled: disabledSet.size > 0,
4276
4400
  customized,
4277
4401
  writable,
4402
+ compact,
4278
4403
  onSearchChange,
4279
4404
  onEnableAll: () => onCommitSet(new Set()),
4280
4405
  onResetOverride,
@@ -4293,7 +4418,7 @@ window.__ModuleLoader__.load({
4293
4418
  });
4294
4419
  }
4295
4420
  function syncSkillsPopover(props) {
4296
- const { root, t, skillsCatalog, disabledSet, disabledInCatalog, customized = false, searchQuery, expandedSkillScopes, writable, onSearchChange, onToggleScopeExpand, onCommitSet, onResetOverride, onRefreshCatalog, onPreviewSkill, onClose } = props;
4421
+ const { root, t, skillsCatalog, disabledSet, disabledInCatalog, customized = false, searchQuery, expandedSkillScopes, writable, compact = false, onSearchChange, onToggleScopeExpand, onCommitSet, onResetOverride, onRefreshCatalog, onPreviewSkill, onClose } = props;
4297
4422
  return syncAnchoredPopoverShell({
4298
4423
  root,
4299
4424
  popoverAttr: SKILLS_POPOVER_ATTR,
@@ -4308,6 +4433,7 @@ window.__ModuleLoader__.load({
4308
4433
  hasAnyDisabled: disabledSet.size > 0,
4309
4434
  customized,
4310
4435
  writable,
4436
+ compact,
4311
4437
  onSearchChange,
4312
4438
  onEnableAll: () => onCommitSet(new Set()),
4313
4439
  onResetOverride,
@@ -4332,6 +4458,12 @@ window.__ModuleLoader__.load({
4332
4458
  const SESSION_INFO_ATTR = "data-desktop-enhance-session-info";
4333
4459
  const SESSION_INFO_URL = SESSION_INFO_ROUTE;
4334
4460
  const RECONCILE_MS = 700;
4461
+ function isCompactViewport() {
4462
+ const cls = globalThis.document?.body?.getAttribute?.("class") ?? "";
4463
+ if (cls !== "" && cls.split(/\s+/).includes("dsh-remote-portrait")) return true;
4464
+ const width = globalThis.innerWidth;
4465
+ return typeof width === "number" && width > 0 && width <= 768;
4466
+ }
4335
4467
  function openSkillInHost(ctx, sessionId, name) {
4336
4468
  if (sessionId === "" || name === "") return false;
4337
4469
  const sessions = ctx.get("sessions");
@@ -4381,6 +4513,7 @@ window.__ModuleLoader__.load({
4381
4513
  function renderSignature(state) {
4382
4514
  return JSON.stringify({
4383
4515
  minimized: state.minimized,
4516
+ compact: state.compact,
4384
4517
  collapsed: [...state.collapsedSections].sort(),
4385
4518
  sections: state.sections,
4386
4519
  toolsEnabled: state.toolsEnabled,
@@ -4490,7 +4623,7 @@ window.__ModuleLoader__.load({
4490
4623
  let unsubscribeSource = null;
4491
4624
  let hostProjection = null;
4492
4625
  let fetchToken = 0;
4493
- let minimized = false;
4626
+ let userMinimized = null;
4494
4627
  const collapsedSections = new Set();
4495
4628
  let mountedPanel = null;
4496
4629
  let mountedToolsPopover = null;
@@ -4524,13 +4657,16 @@ window.__ModuleLoader__.load({
4524
4657
  mountedSkillsPopover = null;
4525
4658
  }
4526
4659
  }
4527
- function removePanel() {
4660
+ function removePanel(root) {
4661
+ const fallbackParent = mountedPanel?.parentElement ?? mountedPanel?.parentNode ?? null;
4662
+ const hostRoot = root ?? fallbackParent;
4528
4663
  if (mountedPanel !== null) {
4529
4664
  mountedPanel.remove();
4530
4665
  mountedPanel = null;
4531
4666
  }
4532
4667
  removeToolsPopover();
4533
4668
  removeSkillsPopover();
4669
+ removePopoverBackdrop(hostRoot);
4534
4670
  lastSignature = "";
4535
4671
  }
4536
4672
  function detach() {
@@ -4548,6 +4684,7 @@ window.__ModuleLoader__.load({
4548
4684
  activeSessionId = null;
4549
4685
  hostProjection = null;
4550
4686
  activePopover = null;
4687
+ userMinimized = null;
4551
4688
  removePanel();
4552
4689
  }
4553
4690
  function ensureToolsCatalog(root, sessionId, force = false) {
@@ -4633,9 +4770,12 @@ window.__ModuleLoader__.load({
4633
4770
  const clientProjection = currentClientProjection();
4634
4771
  const sections = buildSessionInfoSections(mergeSkillProjections(hostProjection, clientProjection), t);
4635
4772
  const totalItems = sections.reduce((sum, sec) => sum + sec.items.length, 0);
4773
+ const compact = isCompactViewport();
4774
+ const minimized = userMinimized ?? compact;
4636
4775
  const sig = renderSignature({
4637
4776
  sections,
4638
4777
  minimized,
4778
+ compact,
4639
4779
  collapsedSections,
4640
4780
  toolsEnabled,
4641
4781
  toolsWritable,
@@ -4655,6 +4795,7 @@ window.__ModuleLoader__.load({
4655
4795
  });
4656
4796
  let panel = root.querySelector(`[${SESSION_INFO_ATTR}]`);
4657
4797
  if (panel === null) {
4798
+ if (mountedPanel !== null) removePanel();
4658
4799
  panel = globalThis.document.createElement("aside");
4659
4800
  panel.setAttribute(SESSION_INFO_ATTR, "");
4660
4801
  root.appendChild(panel);
@@ -4664,6 +4805,7 @@ window.__ModuleLoader__.load({
4664
4805
  if (sig === lastSignature) return;
4665
4806
  lastSignature = sig;
4666
4807
  panel.setAttribute("data-minimized", minimized ? "true" : "false");
4808
+ panel.setAttribute("data-compact", compact ? "true" : "false");
4667
4809
  panel.setAttribute("data-empty", totalItems === 0 ? "true" : "false");
4668
4810
  const header = globalThis.document.createElement("button");
4669
4811
  header.setAttribute("type", "button");
@@ -4677,9 +4819,12 @@ window.__ModuleLoader__.load({
4677
4819
  titleWrap.appendChild(dot);
4678
4820
  const titleText = globalThis.document.createElement("span");
4679
4821
  if (minimized) {
4680
- const parts = sections.map((sec) => sec.id === "skills" && skillsEnabled && skillsCatalog.length > 0 ? `${sec.shortLabel} ${String(sec.items.length)} (${String(enabledSkillsCount)}/${String(skillsCatalog.length)})` : `${sec.shortLabel} ${String(sec.items.length)}`);
4822
+ const parts = sections.map((sec) => {
4823
+ if (sec.id === "skills" && skillsEnabled && skillsCatalog.length > 0) return !compact || disabledSkillsInCatalog.length > 0 ? `${sec.shortLabel} ${String(sec.items.length)} (${String(enabledSkillsCount)}/${String(skillsCatalog.length)})` : `${sec.shortLabel} ${String(sec.items.length)}`;
4824
+ return `${sec.shortLabel} ${String(sec.items.length)}`;
4825
+ });
4681
4826
  if (toolsEnabled && toolsCatalog.length > 0) parts.push(`${t("sessionInfo.tools.short")} ${String(enabledToolsCount)}/${String(toolsCatalog.length)}`);
4682
- titleText.textContent = `${t("sessionInfo.title")} · ${parts.join(" · ")}`;
4827
+ titleText.textContent = compact ? parts.join(" · ") : `${t("sessionInfo.title")} · ${parts.join(" · ")}`;
4683
4828
  } else titleText.textContent = t("sessionInfo.title");
4684
4829
  titleWrap.appendChild(titleText);
4685
4830
  header.appendChild(titleWrap);
@@ -4688,11 +4833,23 @@ window.__ModuleLoader__.load({
4688
4833
  toggleIcon.textContent = minimized ? "▾" : "−";
4689
4834
  header.appendChild(toggleIcon);
4690
4835
  header.addEventListener("click", () => {
4691
- minimized = !minimized;
4692
- if (minimized) activePopover = null;
4836
+ userMinimized = !(userMinimized ?? isCompactViewport());
4837
+ if (userMinimized) activePopover = null;
4693
4838
  paint(root, sessionId);
4694
4839
  });
4695
4840
  const children = [header];
4841
+ const closePopover = () => {
4842
+ activePopover = null;
4843
+ lastSignature = "";
4844
+ paint(root, sessionId);
4845
+ };
4846
+ const openSkillPreview = (skillName) => {
4847
+ openSkillInHost(ctx, sessionId, skillName);
4848
+ if (compact) {
4849
+ userMinimized = true;
4850
+ closePopover();
4851
+ }
4852
+ };
4696
4853
  if (!minimized) {
4697
4854
  for (const sec of sections) {
4698
4855
  const secCollapsed = collapsedSections.has(sec.id);
@@ -4753,7 +4910,7 @@ window.__ModuleLoader__.load({
4753
4910
  }
4754
4911
  row.appendChild(metaSpan);
4755
4912
  row.addEventListener("click", () => {
4756
- openSkillInHost(ctx, sessionId, item.name);
4913
+ openSkillPreview(item.name);
4757
4914
  });
4758
4915
  body.appendChild(row);
4759
4916
  }
@@ -4801,6 +4958,7 @@ window.__ModuleLoader__.load({
4801
4958
  searchQuery: toolsSearchQuery,
4802
4959
  expandedToolNodes,
4803
4960
  writable: toolsWritable,
4961
+ compact,
4804
4962
  onSearchChange: (nextQuery) => {
4805
4963
  toolsSearchQuery = nextQuery;
4806
4964
  lastSignature = "";
@@ -4827,11 +4985,7 @@ window.__ModuleLoader__.load({
4827
4985
  onRefreshCatalog: () => {
4828
4986
  ensureToolsCatalog(root, sessionId, true);
4829
4987
  },
4830
- onClose: () => {
4831
- activePopover = null;
4832
- lastSignature = "";
4833
- paint(root, sessionId);
4834
- }
4988
+ onClose: closePopover
4835
4989
  });
4836
4990
  } else if (activePopover === "skills" && !minimized) {
4837
4991
  removeToolsPopover();
@@ -4845,6 +4999,7 @@ window.__ModuleLoader__.load({
4845
4999
  searchQuery: skillsSearchQuery,
4846
5000
  expandedSkillScopes,
4847
5001
  writable: skillsWritable,
5002
+ compact,
4848
5003
  onSearchChange: (nextQuery) => {
4849
5004
  skillsSearchQuery = nextQuery;
4850
5005
  lastSignature = "";
@@ -4871,18 +5026,13 @@ window.__ModuleLoader__.load({
4871
5026
  onRefreshCatalog: () => {
4872
5027
  ensureSkillsCatalog(root, sessionId, true);
4873
5028
  },
4874
- onPreviewSkill: (skillName) => {
4875
- openSkillInHost(ctx, sessionId, skillName);
4876
- },
4877
- onClose: () => {
4878
- activePopover = null;
4879
- lastSignature = "";
4880
- paint(root, sessionId);
4881
- }
5029
+ onPreviewSkill: openSkillPreview,
5030
+ onClose: closePopover
4882
5031
  });
4883
5032
  } else {
4884
5033
  removeToolsPopover();
4885
5034
  removeSkillsPopover();
5035
+ removePopoverBackdrop(root);
4886
5036
  }
4887
5037
  }
4888
5038
  function triggerHostRefresh(sessionId, root) {
@@ -4947,9 +5097,16 @@ window.__ModuleLoader__.load({
4947
5097
  });
4948
5098
  observer.observe(globalThis.document.documentElement, {
4949
5099
  childList: true,
4950
- subtree: true
5100
+ subtree: true,
5101
+ attributes: true,
5102
+ attributeFilter: ["class"]
4951
5103
  });
5104
+ const onResize = () => {
5105
+ sync();
5106
+ };
5107
+ globalThis.addEventListener?.("resize", onResize);
4952
5108
  return () => {
5109
+ globalThis.removeEventListener?.("resize", onResize);
4953
5110
  observer.disconnect();
4954
5111
  detach();
4955
5112
  };
@@ -4959,7 +5116,7 @@ window.__ModuleLoader__.load({
4959
5116
  }
4960
5117
  //#endregion
4961
5118
  //#region \0dsh-desktop-enhance-css:/Users/lijiechengbj/projects/AI-agents/dsh-desktop-enhance/src/client/styles/enhance.css.mjs
4962
- var enhance_css_default = "\n\n:root:not([data-desktop-enhance-off-compaction-row])\n [hidden=\"until-found\"]:has([data-chat-flow-kind=\"compaction\"]),\n:root:not([data-desktop-enhance-off-compaction-row])\n [hidden=\"until-found\"]:has([data-chat-flow-kind=\"manual-compaction\"]) {\n content-visibility: visible !important;\n}\n\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"compaction\"][hidden=\"until-found\"],\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"manual-compaction\"][hidden=\"until-found\"] {\n content-visibility: visible !important;\n}\n:root:not([data-desktop-enhance-off-compaction-row])\n [hidden=\"until-found\"]:has([data-chat-flow-kind=\"compaction\"])\n [data-turn-process-member=\"true\"]:not([data-chat-flow-kind=\"compaction\"]):not([data-chat-flow-kind=\"manual-compaction\"]),\n:root:not([data-desktop-enhance-off-compaction-row])\n [hidden=\"until-found\"]:has([data-chat-flow-kind=\"manual-compaction\"])\n [data-turn-process-member=\"true\"]:not([data-chat-flow-kind=\"compaction\"]):not([data-chat-flow-kind=\"manual-compaction\"]) {\n display: none !important;\n}\n\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-step-process=\"true\"][hidden=\"until-found\"]:has([data-chat-flow-kind=\"compaction\"])\n > div:has(> [data-process-activity]),\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-step-process=\"true\"][hidden=\"until-found\"]:has([data-chat-flow-kind=\"manual-compaction\"])\n > div:has(> [data-process-activity]) {\n display: none !important;\n}\n\n\n:root:not([data-desktop-enhance-off-compaction-row]) [data-chat-flow-kind=\"compaction\"],\n:root:not([data-desktop-enhance-off-compaction-row]) [data-chat-flow-kind=\"manual-compaction\"] {\n padding: 6px 0 !important;\n}\n\n:root:not([data-desktop-enhance-off-compaction-row]) [data-chat-flow-kind=\"compaction\"] button,\n:root:not([data-desktop-enhance-off-compaction-row]) [data-chat-flow-kind=\"manual-compaction\"] button {\n width: fit-content !important;\n margin: 0 auto !important;\n height: auto !important;\n min-height: 28px;\n padding: 0 14px !important;\n justify-content: center !important;\n background: var(--dsw-alias-state-warn-tertiary) !important;\n border-radius: 999px !important;\n box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--dsw-alias-state-warn-primary) 45%, transparent);\n color: var(--dsw-alias-state-warn-label) !important;\n}\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"compaction\"] button:hover:not(:disabled),\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"manual-compaction\"] button:hover:not(:disabled) {\n background: var(--dsw-alias-state-warn-secondary) !important;\n}\n\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"compaction\"] button:has([data-compaction-disclosure=\"expanded\"]),\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"manual-compaction\"] button:has([data-compaction-disclosure=\"expanded\"]) {\n width: 100% !important;\n margin: 0 !important;\n border-radius: var(--dsw-radius-sm) !important;\n}\n\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"compaction\"] button > span:not([aria-hidden]):not(:last-child),\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"manual-compaction\"] button > span:not([aria-hidden]):not(:last-child) {\n font-weight: 600;\n}\n\n\n[data-desktop-enhance-reveal] {\n content-visibility: visible !important;\n}\n[hidden=\"until-found\"]:has([data-chat-flow-kind=\"compaction\"])\n [data-turn-process-member=\"true\"][data-desktop-enhance-reveal]:not([data-chat-flow-kind=\"compaction\"]) {\n display: revert !important;\n}\n\n\n:root:not([data-desktop-enhance-off-turn-prefix]) [data-desktop-enhance-turn]::before {\n content: attr(data-desktop-enhance-turn);\n flex: none;\n margin-right: 6px;\n padding: 0 5px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxxs-strong-11);\n}\n\n\n\n:root[data-desktop-enhance-off-find-bar] [data-desktop-enhance-findbar] {\n display: none !important;\n}\n[data-desktop-enhance-findbar] {\n position: absolute;\n top: 12px;\n right: 20px;\n z-index: 30;\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 8px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n box-shadow: var(--dsw-elevation-panel);\n}\n[data-desktop-enhance-findbar] input {\n width: 200px;\n border: none;\n outline: none;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-s-14);\n}\n[data-desktop-enhance-findbar] input:focus-visible {\n outline: 1px solid var(--dsw-focus-ring-color);\n outline-offset: 2px;\n}\n[data-desktop-enhance-findbar] .count {\n min-width: 44px;\n text-align: right;\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n}\n[data-desktop-enhance-findbar] button {\n display: grid;\n place-items: center;\n width: 22px;\n height: 22px;\n padding: 0;\n border: none;\n border-radius: var(--dsw-radius-xs);\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: var(--dsw-font-s-14);\n}\n[data-desktop-enhance-findbar] button:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n[data-desktop-enhance-findbar] button:disabled {\n opacity: .4;\n cursor: default;\n}\n::highlight(desktop-enhance-find) {\n background-color: var(--dsw-alias-state-warn-tertiary);\n}\n::highlight(desktop-enhance-find-current) {\n background-color: var(--dsw-alias-state-warn-primary);\n color: var(--dsw-alias-label-primary-inverted);\n}\n\n\n[data-desktop-enhance-settings] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 0;\n}\n[data-desktop-enhance-settings] .de-head-title {\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-s-14);\n font-weight: 600;\n}\n[data-desktop-enhance-settings] .de-head-desc,\n[data-desktop-enhance-settings] .de-desc {\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n}\n[data-desktop-enhance-settings] .de-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n[data-desktop-enhance-settings] .de-text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n[data-desktop-enhance-settings] .de-title {\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-s-14);\n}\n\n[data-desktop-enhance-settings] .de-switch {\n position: relative;\n flex: none;\n width: 36px;\n height: 20px;\n padding: 0;\n border: none;\n border-radius: 999px;\n background: var(--dsw-alias-interactive-bg-hover-solid);\n cursor: pointer;\n transition: background .15s;\n}\n[data-desktop-enhance-settings] .de-switch::after {\n content: \"\";\n position: absolute;\n top: 2px;\n left: 2px;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n background: var(--dsw-alias-switch-thumb);\n transition: transform .15s;\n}\n[data-desktop-enhance-settings] .de-switch[aria-checked=\"true\"] {\n background: var(--dsw-alias-state-success-primary);\n}\n[data-desktop-enhance-settings] .de-switch[aria-checked=\"true\"]::after {\n transform: translateX(16px);\n}\n[data-desktop-enhance-settings] .de-switch:disabled {\n opacity: .5;\n cursor: default;\n}\n[data-desktop-enhance-settings] .de-note {\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n}\n[data-desktop-enhance-settings] .de-error {\n color: var(--dsw-alias-state-error-primary);\n font: var(--dsw-font-xxs-12);\n}\n\n\n\n[data-desktop-enhance-settings] .de-suggest-settings {\n display: flex;\n flex-direction: column;\n gap: 12px;\n \n border-top: 1px solid var(--dsw-alias-border-l1);\n margin-top: 4px;\n padding-top: 12px;\n}\n[data-desktop-enhance-settings] .de-item-block {\n align-items: stretch;\n flex-direction: column;\n gap: 6px;\n}\n[data-desktop-enhance-settings] .de-select,\n[data-desktop-enhance-settings] .de-text-input,\n[data-desktop-enhance-settings] .de-textarea {\n background: var(--dsw-alias-bg-layer-2);\n border: 1px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-xs-13);\n padding: 6px 8px;\n width: 100%;\n}\n[data-desktop-enhance-settings] .de-select:disabled,\n[data-desktop-enhance-settings] .de-text-input:disabled,\n[data-desktop-enhance-settings] .de-textarea:disabled {\n opacity: .5;\n}\n\n[data-desktop-enhance-settings] .de-textarea {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n line-height: 1.5;\n resize: vertical;\n white-space: pre-wrap;\n}\n[data-desktop-enhance-settings] .de-prompt {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n[data-desktop-enhance-settings] .de-prompt-meta {\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n}\n[data-desktop-enhance-settings] .de-prompt-actions {\n display: flex;\n gap: 8px;\n}\n[data-desktop-enhance-settings] .de-button {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n border: 1px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: var(--dsw-font-xxs-12);\n padding: 4px 10px;\n}\n[data-desktop-enhance-settings] .de-button:hover {\n border-color: var(--dsw-alias-border-l2);\n}\n[data-desktop-enhance-settings] .de-button:disabled {\n cursor: default;\n opacity: .5;\n}\n\n\n\n\n:root[data-desktop-enhance-off-suggest] [data-desktop-enhance='suggest'] {\n display: none !important;\n}\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest {\n align-items: center;\n \n background: color-mix(in srgb, var(--dsw-alias-state-business-tertiary) 10%, transparent);\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 20%, transparent);\n border-radius: var(--dsw-radius-md);\n box-sizing: border-box;\n display: flex;\n \n flex-wrap: wrap;\n gap: 6px;\n \n margin: 0 auto 6px;\n max-width: var(--dsh-composer-card-max-width, 100%);\n \n min-width: 0;\n \n padding: 4px 10px 4px 13px;\n width: calc(100% - var(--dsh-composer-side-clearance, 0px) - var(--dsh-composer-side-clearance, 0px));\n}\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-head {\n align-items: center;\n display: flex;\n flex: none;\n gap: 2px;\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-title {\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n \n white-space: nowrap;\n}\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-close {\n appearance: none;\n background: none;\n border: 0;\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n flex: none;\n font: var(--dsw-font-xxs-12);\n line-height: 1;\n padding: 2px 4px;\n}\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-close:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-row {\n appearance: none;\n align-items: center;\n background: none;\n \n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 35%, transparent);\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n display: flex;\n flex: 0 1 auto;\n font: var(--dsw-font-xs-13);\n gap: 6px;\n \n max-width: 100%;\n min-width: 0;\n padding: 4px 10px;\n text-align: left;\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-row:hover {\n background: var(--dsw-alias-state-business-tertiary);\n border-color: var(--dsw-alias-state-business-primary);\n color: var(--dsw-alias-state-business-primary);\n transition: background-color .12s ease, border-color .12s ease, color .12s ease;\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-row[data-used='true'] {\n border-color: var(--dsw-alias-brand-primary);\n color: var(--dsw-alias-label-secondary);\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-num {\n color: var(--dsw-alias-label-primary);\n flex: none;\n font: var(--dsw-font-xs-13);\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-text {\n max-width: 22ch;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-loading {\n border-style: dashed;\n color: var(--dsw-alias-label-secondary);\n cursor: default;\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-error {\n color: var(--dsw-alias-state-error-primary);\n flex: 1 1 auto;\n font: var(--dsw-font-xxs-12);\n min-width: 0;\n padding: 2px;\n}\n\n\n:root:not([data-desktop-enhance-off-step-duration]) [data-desktop-enhance-duration]::after {\n content: attr(data-desktop-enhance-duration);\n \n margin-left: 8px;\n font-size: inherit;\n line-height: inherit;\n \n font-variant-numeric: tabular-nums;\n color: inherit;\n white-space: nowrap;\n pointer-events: none;\n user-select: none;\n}\n\n:root:not([data-desktop-enhance-off-step-duration])\n [data-desktop-enhance-duration]:has([data-step-process-icon])::after {\n margin-left: 2px;\n}\n\n\n:root[data-desktop-enhance-off-session-info] [data-desktop-enhance-session-info] {\n display: none !important;\n}\n:root:not([data-desktop-enhance-off-session-info]) [data-desktop-enhance-session-info] {\n position: absolute;\n top: 12px;\n right: 36px;\n z-index: 10;\n width: 244px;\n box-sizing: border-box;\n border-radius: var(--dsw-radius-lg);\n border: 1px solid var(--dsw-alias-border-l2);\n background: color-mix(in srgb, var(--dsw-alias-bg-layer-1) 90%, transparent);\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n box-shadow: var(--dsw-elevation-panel);\n color: var(--dsw-alias-label-primary);\n overflow: hidden;\n}\n:root:not([data-desktop-enhance-off-session-info])\n [data-desktop-enhance-session-info][data-minimized=\"true\"] {\n width: auto;\n border-radius: 999px;\n}\n[data-desktop-enhance-session-info] [data-session-info-header] {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 6px 10px;\n border: none;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: color-mix(in srgb, var(--dsw-alias-bg-module-platform) 60%, transparent);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-strong-12, 600 12px/18px sans-serif);\n cursor: pointer;\n user-select: none;\n}\n[data-desktop-enhance-session-info][data-minimized=\"true\"] [data-session-info-header] {\n border-bottom: none;\n background: transparent;\n padding: 5px 11px;\n}\n[data-desktop-enhance-session-info] [data-session-info-header]:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n[data-desktop-enhance-session-info] [data-session-info-title] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n}\n[data-desktop-enhance-session-info] [data-session-info-dot] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex: none;\n background: var(--dsw-alias-state-business-primary);\n box-shadow: 0 0 0 2.5px var(--dsw-alias-state-business-tertiary);\n}\n[data-desktop-enhance-session-info] [data-session-info-dot=\"idle\"] {\n background: var(--dsw-alias-label-caption);\n box-shadow: none;\n}\n[data-desktop-enhance-session-info] [data-session-info-chevron] {\n color: var(--dsw-alias-label-tertiary);\n font-size: 12px;\n line-height: 1;\n}\n[data-desktop-enhance-session-info] [data-session-info-section] {\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n[data-desktop-enhance-session-info] [data-session-info-section]:last-child {\n border-bottom: none;\n}\n[data-desktop-enhance-session-info] [data-session-info-section-header] {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 6px 10px;\n border: none;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-xxs-strong-12, 600 12px/18px sans-serif);\n cursor: pointer;\n user-select: none;\n}\n[data-desktop-enhance-session-info] [data-session-info-section-header]:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n[data-desktop-enhance-session-info] [data-session-info-section-label] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n min-width: 0;\n}\n[data-desktop-enhance-session-info] [data-session-info-arrow] {\n color: var(--dsw-alias-label-tertiary);\n font-size: 10px;\n}\n[data-desktop-enhance-session-info] [data-session-info-count] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 11px;\n font-weight: 600;\n padding: 0 5px;\n line-height: 16px;\n border-radius: 999px;\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n}\n[data-desktop-enhance-session-info][data-empty=\"true\"] [data-session-info-count] {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-tertiary);\n}\n[data-desktop-enhance-session-info] [data-session-info-body] {\n padding: 2px 6px 6px;\n display: flex;\n flex-direction: column;\n gap: 2px;\n max-height: 184px;\n overflow-y: auto;\n}\n[data-desktop-enhance-session-info] [data-session-info-empty] {\n padding: 4px 6px;\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n}\n[data-desktop-enhance-session-info] [data-session-info-item] {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 5px 8px;\n border: none;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n text-align: left;\n}\n[data-desktop-enhance-session-info] [data-session-info-item]:hover {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n}\n[data-desktop-enhance-session-info] [data-session-info-item-name] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 12px;\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n[data-desktop-enhance-session-info] [data-session-info-item-meta] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n flex: none;\n}\n[data-desktop-enhance-session-info] [data-session-info-item-badge] {\n font-size: 10.5px;\n color: var(--dsw-alias-label-tertiary);\n}\n[data-desktop-enhance-session-info] [data-session-info-item-turn] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 11px;\n padding: 0 5px;\n line-height: 16px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-secondary);\n}\n\n\n:root[data-desktop-enhance-off-tools-manager] [data-session-info-section=\"tools\"],\n:root[data-desktop-enhance-off-tools-manager] [data-desktop-enhance-tools-popover],\n:root[data-desktop-enhance-off-tools-manager] [data-desktop-enhance-defaults=\"tools\"] {\n display: none !important;\n}\n:root[data-desktop-enhance-off-skills-manager] [data-session-info-skills-summary],\n:root[data-desktop-enhance-off-skills-manager] [data-desktop-enhance-skills-popover],\n:root[data-desktop-enhance-off-skills-manager] [data-desktop-enhance-defaults=\"skills\"] {\n display: none !important;\n}\n[data-desktop-enhance-session-info] [data-session-info-skills-summary] {\n border-top: 0.5px dashed var(--dsw-alias-border-l2);\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-row] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 10px;\n gap: 8px;\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-left] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n min-width: 0;\n flex-wrap: wrap;\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-title] {\n font: var(--dsw-font-xxs-strong-12, 600 12px/18px sans-serif);\n color: var(--dsw-alias-label-primary);\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-count] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 11px;\n font-weight: 600;\n padding: 0 5px;\n line-height: 16px;\n border-radius: 999px;\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-count][data-has-disabled=\"true\"] {\n background: var(--dsw-alias-state-warn-tertiary);\n color: var(--dsw-alias-state-warn-label);\n}\n[data-desktop-enhance-session-info] [data-session-info-override-badge] {\n font-size: 10px;\n padding: 0 5px;\n line-height: 15px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-state-business-primary);\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 25%, transparent);\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-manage] {\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 30%, transparent);\n border-radius: var(--dsw-radius-xs);\n padding: 2px 8px;\n font: var(--dsw-font-xxs-strong-12, 600 11px/16px sans-serif);\n cursor: pointer;\n flex: none;\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-manage]:hover {\n background: var(--dsw-alias-state-business-primary);\n color: var(--dsw-alias-bg-layer-1);\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-disabled],\n[data-desktop-enhance-session-info] [data-session-info-skills-disabled] {\n padding: 0 10px 7px;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 4px;\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-muted],\n[data-desktop-enhance-tools-popover] [data-session-info-tools-muted],\n[data-desktop-enhance-skills-popover] [data-session-info-tools-muted] {\n font: var(--dsw-font-xxs-12);\n font-size: 11px;\n color: var(--dsw-alias-label-tertiary);\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-tag],\n[data-desktop-enhance-session-info] [data-session-info-skills-tag] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 10.5px;\n padding: 1px 5px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-secondary);\n text-decoration: line-through;\n}\n:root:not([data-desktop-enhance-off-tools-manager]) [data-desktop-enhance-tools-popover],\n:root:not([data-desktop-enhance-off-skills-manager]) [data-desktop-enhance-skills-popover] {\n position: absolute;\n top: 12px;\n right: 292px;\n width: 520px;\n max-width: calc(100% - 308px);\n z-index: 20;\n background: var(--dsw-alias-bg-layer-2);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n box-shadow: var(--dsw-alias-shadow-l2, 0 8px 24px color-mix(in srgb, var(--dsw-alias-label-primary) 12%, transparent));\n display: flex;\n flex-direction: column;\n overflow: hidden;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-primary);\n}\n[data-tools-popover-header] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-3);\n}\n[data-tools-popover-title-wrap] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n[data-tools-popover-title] {\n font: var(--dsw-font-xs-strong-13, 600 13px/18px sans-serif);\n color: var(--dsw-alias-label-primary);\n}\n[data-tools-popover-close] {\n background: transparent;\n border: none;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: var(--dsw-font-xs-13);\n padding: 4px 6px;\n border-radius: var(--dsw-radius-xs);\n}\n[data-tools-popover-close]:hover {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-primary);\n}\n[data-tools-popover-body] {\n display: flex;\n flex-direction: column;\n padding: 10px 12px;\n gap: 8px;\n}\n[data-popover-override-banner] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 6px 10px;\n border-radius: var(--dsw-radius-sm);\n background: color-mix(in srgb, var(--dsw-alias-state-business-tertiary) 45%, transparent);\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 25%, transparent);\n font-size: 11.5px;\n color: var(--dsw-alias-label-primary);\n}\n[data-tools-popover-toolbar] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n[data-tools-popover-search] {\n flex: 1 1 auto;\n min-width: 0;\n background: var(--dsw-alias-bg-layer-1);\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n padding: 5px 9px;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-primary);\n}\n[data-tools-popover-actions] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n flex: none;\n}\n[data-tools-popover-tree] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n max-height: 380px;\n overflow-y: auto;\n padding-right: 2px;\n}\n[data-tools-node-header] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 5px 8px;\n border-radius: var(--dsw-radius-xs);\n cursor: pointer;\n user-select: none;\n}\n[data-tools-node-header]:hover,\n[data-tools-leaf]:hover {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n}\n[data-tools-node-title] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 12px;\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n min-width: 0;\n}\n[data-tools-leaf] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 10px;\n padding: 5px 8px;\n border-radius: var(--dsw-radius-xs);\n}\n[data-tools-leaf-info] {\n flex: 1 1 auto;\n min-width: 0;\n}\n[data-tools-leaf-header],\n[data-skills-leaf-header] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 6px;\n}\n[data-tools-leaf-name] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 12px;\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n word-break: break-all;\n}\n[data-tools-leaf][data-disabled=\"true\"] [data-tools-leaf-name] {\n color: var(--dsw-alias-label-tertiary);\n text-decoration: line-through;\n}\n[data-tools-source-badge],\n[data-skills-source-badge],\n[data-skills-user-only] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 10px;\n padding: 0 5px;\n line-height: 15px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-secondary);\n}\n[data-tools-source-badge=\"plugin\"],\n[data-skills-source-badge=\"project\"] {\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n}\n[data-skills-preview] {\n background: transparent;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font-size: 10px;\n padding: 0 5px;\n line-height: 15px;\n}\n[data-skills-preview]:hover {\n border-color: var(--dsw-alias-state-business-primary);\n color: var(--dsw-alias-state-business-primary);\n}\n[data-tools-leaf-desc] {\n font-size: 11px;\n line-height: 16px;\n color: var(--dsw-alias-label-tertiary);\n margin-top: 2px;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n}\n[data-tools-controls] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n flex: none;\n}\n[data-tools-pill] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 10.5px;\n padding: 1px 6px;\n line-height: 16px;\n border-radius: 999px;\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n}\n[data-tools-pill][data-disabled=\"true\"] {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-tertiary);\n}\n[data-tools-btn] {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: var(--dsw-font-xxs-12);\n font-size: 11px;\n padding: 2px 8px;\n}\n[data-tools-btn]:hover:not(:disabled) {\n border-color: var(--dsw-alias-state-business-primary);\n color: var(--dsw-alias-state-business-primary);\n}\n[data-tools-btn]:disabled {\n cursor: default;\n opacity: .5;\n}\n[data-tools-empty] {\n padding: 8px;\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n}\n\n\n[data-desktop-enhance-settings] .de-defaults-box {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 10px 12px;\n border-radius: var(--dsw-radius-sm);\n border: 1px solid var(--dsw-alias-border-l1);\n background: color-mix(in srgb, var(--dsw-alias-bg-layer-2) 60%, transparent);\n}\n[data-desktop-enhance-settings] .de-defaults-summary {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n}\n[data-desktop-enhance-settings] .de-defaults-title-row {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n[data-desktop-enhance-settings] .de-defaults-tags {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 4px;\n margin-top: 2px;\n}\n[data-desktop-enhance-settings] .de-defaults-status,\n[data-desktop-enhance-settings] .de-defaults-muted {\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n font-size: 11px;\n}\n[data-desktop-enhance-settings] .de-defaults-tag {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 11px;\n padding: 1px 6px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-secondary);\n text-decoration: line-through;\n}\n[data-desktop-enhance-settings] .de-defaults-panel {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding-top: 8px;\n border-top: 1px solid var(--dsw-alias-border-l1);\n}\n[data-desktop-enhance-settings] .de-defaults-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n[data-desktop-enhance-settings] .de-defaults-tree {\n display: flex;\n flex-direction: column;\n gap: 2px;\n max-height: 320px;\n overflow-y: auto;\n}\n[data-desktop-enhance-settings] .de-defaults-group-head,\n[data-desktop-enhance-settings] .de-defaults-leaf {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n padding: 5px 8px;\n border-radius: var(--dsw-radius-xs);\n}\n[data-desktop-enhance-settings] .de-defaults-group-head {\n cursor: pointer;\n user-select: none;\n}\n[data-desktop-enhance-settings] .de-defaults-group-head:hover,\n[data-desktop-enhance-settings] .de-defaults-leaf:hover {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n}\n[data-desktop-enhance-settings] .de-defaults-group-title {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 12px;\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n[data-desktop-enhance-settings] .de-defaults-leaf-info {\n flex: 1 1 auto;\n min-width: 0;\n}\n[data-desktop-enhance-settings] .de-defaults-leaf-head {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 6px;\n}\n[data-desktop-enhance-settings] .de-defaults-leaf-name {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 12px;\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n[data-desktop-enhance-settings] .de-defaults-leaf[data-disabled=\"true\"] .de-defaults-leaf-name {\n color: var(--dsw-alias-label-tertiary);\n text-decoration: line-through;\n}\n[data-desktop-enhance-settings] .de-defaults-leaf-desc {\n font-size: 11px;\n line-height: 16px;\n color: var(--dsw-alias-label-tertiary);\n margin-top: 2px;\n}\n[data-desktop-enhance-settings] .de-defaults-source-badge {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 10px;\n padding: 0 5px;\n line-height: 15px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-secondary);\n}\n[data-desktop-enhance-settings] .de-defaults-source-badge[data-tool-scope=\"plugin\"] {\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n}\n[data-desktop-enhance-settings] .de-defaults-controls {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n flex: none;\n}\n[data-desktop-enhance-settings] .de-defaults-pill {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 10.5px;\n padding: 1px 6px;\n line-height: 16px;\n border-radius: 999px;\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n}\n[data-desktop-enhance-settings] .de-defaults-pill[data-disabled=\"true\"] {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-tertiary);\n}\n\n\n\n";
5119
+ var enhance_css_default = "\n\n:root:not([data-desktop-enhance-off-compaction-row])\n [hidden=\"until-found\"]:has([data-chat-flow-kind=\"compaction\"]),\n:root:not([data-desktop-enhance-off-compaction-row])\n [hidden=\"until-found\"]:has([data-chat-flow-kind=\"manual-compaction\"]) {\n content-visibility: visible !important;\n}\n\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"compaction\"][hidden=\"until-found\"],\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"manual-compaction\"][hidden=\"until-found\"] {\n content-visibility: visible !important;\n}\n:root:not([data-desktop-enhance-off-compaction-row])\n [hidden=\"until-found\"]:has([data-chat-flow-kind=\"compaction\"])\n [data-turn-process-member=\"true\"]:not([data-chat-flow-kind=\"compaction\"]):not([data-chat-flow-kind=\"manual-compaction\"]),\n:root:not([data-desktop-enhance-off-compaction-row])\n [hidden=\"until-found\"]:has([data-chat-flow-kind=\"manual-compaction\"])\n [data-turn-process-member=\"true\"]:not([data-chat-flow-kind=\"compaction\"]):not([data-chat-flow-kind=\"manual-compaction\"]) {\n display: none !important;\n}\n\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-step-process=\"true\"][hidden=\"until-found\"]:has([data-chat-flow-kind=\"compaction\"])\n > div:has(> [data-process-activity]),\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-step-process=\"true\"][hidden=\"until-found\"]:has([data-chat-flow-kind=\"manual-compaction\"])\n > div:has(> [data-process-activity]) {\n display: none !important;\n}\n\n\n:root:not([data-desktop-enhance-off-compaction-row]) [data-chat-flow-kind=\"compaction\"],\n:root:not([data-desktop-enhance-off-compaction-row]) [data-chat-flow-kind=\"manual-compaction\"] {\n padding: 6px 0 !important;\n}\n\n:root:not([data-desktop-enhance-off-compaction-row]) [data-chat-flow-kind=\"compaction\"] button,\n:root:not([data-desktop-enhance-off-compaction-row]) [data-chat-flow-kind=\"manual-compaction\"] button {\n width: fit-content !important;\n margin: 0 auto !important;\n height: auto !important;\n min-height: 28px;\n padding: 0 14px !important;\n justify-content: center !important;\n background: var(--dsw-alias-state-warn-tertiary) !important;\n border-radius: 999px !important;\n box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--dsw-alias-state-warn-primary) 45%, transparent);\n color: var(--dsw-alias-state-warn-label) !important;\n}\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"compaction\"] button:hover:not(:disabled),\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"manual-compaction\"] button:hover:not(:disabled) {\n background: var(--dsw-alias-state-warn-secondary) !important;\n}\n\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"compaction\"] button:has([data-compaction-disclosure=\"expanded\"]),\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"manual-compaction\"] button:has([data-compaction-disclosure=\"expanded\"]) {\n width: 100% !important;\n margin: 0 !important;\n border-radius: var(--dsw-radius-sm) !important;\n}\n\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"compaction\"] button > span:not([aria-hidden]):not(:last-child),\n:root:not([data-desktop-enhance-off-compaction-row])\n [data-chat-flow-kind=\"manual-compaction\"] button > span:not([aria-hidden]):not(:last-child) {\n font-weight: 600;\n}\n\n\n[data-desktop-enhance-reveal] {\n content-visibility: visible !important;\n}\n[hidden=\"until-found\"]:has([data-chat-flow-kind=\"compaction\"])\n [data-turn-process-member=\"true\"][data-desktop-enhance-reveal]:not([data-chat-flow-kind=\"compaction\"]) {\n display: revert !important;\n}\n\n\n:root:not([data-desktop-enhance-off-turn-prefix]) [data-desktop-enhance-turn]::before {\n content: attr(data-desktop-enhance-turn);\n flex: none;\n margin-right: 6px;\n padding: 0 5px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxxs-strong-11);\n}\n\n\n\n:root[data-desktop-enhance-off-find-bar] [data-desktop-enhance-findbar] {\n display: none !important;\n}\n[data-desktop-enhance-findbar] {\n position: absolute;\n top: 12px;\n right: 20px;\n z-index: 30;\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 8px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n box-shadow: var(--dsw-elevation-panel);\n}\n[data-desktop-enhance-findbar] input {\n width: 200px;\n border: none;\n outline: none;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-s-14);\n}\n[data-desktop-enhance-findbar] input:focus-visible {\n outline: 1px solid var(--dsw-focus-ring-color);\n outline-offset: 2px;\n}\n[data-desktop-enhance-findbar] .count {\n min-width: 44px;\n text-align: right;\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n}\n[data-desktop-enhance-findbar] button {\n display: grid;\n place-items: center;\n width: 22px;\n height: 22px;\n padding: 0;\n border: none;\n border-radius: var(--dsw-radius-xs);\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: var(--dsw-font-s-14);\n}\n[data-desktop-enhance-findbar] button:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n[data-desktop-enhance-findbar] button:disabled {\n opacity: .4;\n cursor: default;\n}\n::highlight(desktop-enhance-find) {\n background-color: var(--dsw-alias-state-warn-tertiary);\n}\n::highlight(desktop-enhance-find-current) {\n background-color: var(--dsw-alias-state-warn-primary);\n color: var(--dsw-alias-label-primary-inverted);\n}\n\n\n[data-desktop-enhance-settings] {\n display: flex;\n flex-direction: column;\n gap: 14px;\n padding: 16px 0;\n}\n[data-desktop-enhance-settings] .de-head {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n}\n[data-desktop-enhance-settings] .de-head-main {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n[data-desktop-enhance-settings] .de-head-title {\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-s-14);\n font-weight: 600;\n}\n[data-desktop-enhance-settings] .de-head-desc,\n[data-desktop-enhance-settings] .de-desc {\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n line-height: 1.45;\n}\n[data-desktop-enhance-settings] .de-head-pill {\n flex: none;\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 11px;\n font-weight: 600;\n line-height: 18px;\n padding: 1px 9px;\n border-radius: 999px;\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 22%, transparent);\n}\n[data-desktop-enhance-settings] .de-head-pill[data-all-off=\"true\"] {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-tertiary);\n border-color: var(--dsw-alias-border-l1);\n}\n[data-desktop-enhance-settings] .de-section-card {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-md);\n background: color-mix(in srgb, var(--dsw-alias-bg-layer-2) 45%, transparent);\n overflow: hidden;\n}\n[data-desktop-enhance-settings] .de-section-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 4px 12px;\n padding: 8px 14px;\n background: color-mix(in srgb, var(--dsw-alias-bg-module-platform, var(--dsw-alias-bg-layer-2)) 65%, transparent);\n border-bottom: 1px solid var(--dsw-alias-border-l1);\n}\n[data-desktop-enhance-settings] .de-section-title {\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-xxs-strong-12, 600 12px/18px sans-serif);\n font-weight: 600;\n}\n[data-desktop-enhance-settings] .de-section-hint {\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n font-size: 11px;\n}\n[data-desktop-enhance-settings] .de-section-body {\n display: flex;\n flex-direction: column;\n}\n[data-desktop-enhance-settings] .de-item-wrap {\n display: flex;\n flex-direction: column;\n padding: 11px 14px;\n gap: 10px;\n}\n[data-desktop-enhance-settings] .de-item-wrap + .de-item-wrap {\n border-top: 1px solid var(--dsw-alias-border-l1);\n}\n[data-desktop-enhance-settings] .de-item-wrap[data-enabled=\"false\"] > .de-item .de-title {\n color: var(--dsw-alias-label-secondary);\n}\n[data-desktop-enhance-settings] .de-item-wrap[data-enabled=\"false\"] > .de-item .de-feature-badge {\n opacity: .55;\n}\n[data-desktop-enhance-settings] .de-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n[data-desktop-enhance-settings] .de-text {\n display: flex;\n flex-direction: column;\n gap: 3px;\n min-width: 0;\n}\n[data-desktop-enhance-settings] .de-title-row {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 6px;\n}\n[data-desktop-enhance-settings] .de-title {\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n[data-desktop-enhance-settings] .de-feature-badge {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 10.5px;\n line-height: 16px;\n padding: 0 6px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n border: 1px solid var(--dsw-alias-border-l1);\n color: var(--dsw-alias-label-secondary);\n}\n[data-desktop-enhance-settings] .de-subpanel {\n display: flex;\n flex-direction: column;\n padding-left: 10px;\n border-left: 2px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 28%, var(--dsw-alias-border-l2));\n}\n\n[data-desktop-enhance-settings] .de-switch {\n position: relative;\n flex: none;\n width: 36px;\n height: 20px;\n padding: 0;\n border: none;\n border-radius: 999px;\n background: var(--dsw-alias-interactive-bg-hover-solid);\n cursor: pointer;\n transition: background .15s;\n}\n[data-desktop-enhance-settings] .de-switch::after {\n content: \"\";\n position: absolute;\n top: 2px;\n left: 2px;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n background: var(--dsw-alias-switch-thumb);\n transition: transform .15s;\n}\n[data-desktop-enhance-settings] .de-switch[aria-checked=\"true\"] {\n background: var(--dsw-alias-state-success-primary);\n}\n[data-desktop-enhance-settings] .de-switch[aria-checked=\"true\"]::after {\n transform: translateX(16px);\n}\n[data-desktop-enhance-settings] .de-switch:disabled {\n opacity: .5;\n cursor: default;\n}\n[data-desktop-enhance-settings] .de-note {\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n}\n[data-desktop-enhance-settings] .de-error {\n color: var(--dsw-alias-state-error-primary);\n font: var(--dsw-font-xxs-12);\n}\n\n\n\n[data-desktop-enhance-settings] .de-suggest-settings {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n[data-desktop-enhance-settings] .de-suggest-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 10px;\n}\n[data-desktop-enhance-settings] .de-suggest-grid .de-item-block,\n[data-desktop-enhance-settings] .de-prompt-item,\n[data-desktop-enhance-settings] .de-defaults-box {\n padding: 10px 12px;\n border-radius: var(--dsw-radius-sm);\n border: 1px solid var(--dsw-alias-border-l1);\n background: color-mix(in srgb, var(--dsw-alias-bg-layer-2) 60%, transparent);\n}\n[data-desktop-enhance-settings] .de-suggest-grid .de-item-block {\n justify-content: space-between;\n}\n[data-desktop-enhance-settings] .de-item-block {\n align-items: stretch;\n flex-direction: column;\n gap: 6px;\n}\n[data-desktop-enhance-settings] .de-prompt-item {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: center;\n gap: 8px 12px;\n}\n[data-desktop-enhance-settings] .de-select,\n[data-desktop-enhance-settings] .de-text-input,\n[data-desktop-enhance-settings] .de-textarea {\n box-sizing: border-box;\n background: var(--dsw-alias-bg-layer-1, var(--dsw-alias-bg-layer-2));\n border: 1px solid var(--dsw-alias-border-l2, var(--dsw-alias-border-l1));\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-xs-13);\n padding: 6px 8px;\n width: 100%;\n}\n[data-desktop-enhance-settings] .de-select:disabled,\n[data-desktop-enhance-settings] .de-text-input:disabled,\n[data-desktop-enhance-settings] .de-textarea:disabled {\n opacity: .5;\n}\n\n[data-desktop-enhance-settings] .de-textarea {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n line-height: 1.5;\n resize: vertical;\n white-space: pre-wrap;\n}\n[data-desktop-enhance-settings] .de-prompt {\n display: contents;\n}\n[data-desktop-enhance-settings] .de-prompt-bar {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n flex: none;\n}\n[data-desktop-enhance-settings] .de-prompt-body {\n grid-column: 1 / -1;\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding-top: 8px;\n border-top: 1px solid var(--dsw-alias-border-l1);\n}\n[data-desktop-enhance-settings] .de-prompt-body[hidden] {\n display: none !important;\n}\n[data-desktop-enhance-settings] .de-prompt-meta {\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n}\n[data-desktop-enhance-settings] .de-prompt-actions {\n display: flex;\n gap: 8px;\n}\n[data-desktop-enhance-settings] .de-button {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n border: 1px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: var(--dsw-font-xxs-12);\n padding: 4px 10px;\n}\n[data-desktop-enhance-settings] .de-button:hover {\n border-color: var(--dsw-alias-border-l2);\n}\n[data-desktop-enhance-settings] .de-button:disabled {\n cursor: default;\n opacity: .5;\n}\n\n\n\n\n:root[data-desktop-enhance-off-suggest] [data-desktop-enhance='suggest'] {\n display: none !important;\n}\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest {\n align-items: center;\n \n background: color-mix(in srgb, var(--dsw-alias-state-business-tertiary) 10%, transparent);\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 20%, transparent);\n border-radius: var(--dsw-radius-md);\n box-sizing: border-box;\n display: flex;\n \n flex-wrap: wrap;\n gap: 6px;\n \n margin: 0 auto 6px;\n max-width: var(--dsh-composer-card-max-width, 100%);\n \n min-width: 0;\n \n padding: 4px 10px 4px 13px;\n width: calc(100% - var(--dsh-composer-side-clearance, 0px) - var(--dsh-composer-side-clearance, 0px));\n}\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-head {\n align-items: center;\n display: flex;\n flex: none;\n gap: 2px;\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-title {\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n \n white-space: nowrap;\n}\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-close {\n appearance: none;\n background: none;\n border: 0;\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n flex: none;\n font: var(--dsw-font-xxs-12);\n line-height: 1;\n padding: 2px 4px;\n}\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-close:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-row {\n appearance: none;\n align-items: center;\n background: none;\n \n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 35%, transparent);\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n display: flex;\n flex: 0 1 auto;\n font: var(--dsw-font-xs-13);\n gap: 6px;\n \n max-width: 100%;\n min-width: 0;\n padding: 4px 10px;\n text-align: left;\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-row:hover {\n background: var(--dsw-alias-state-business-tertiary);\n border-color: var(--dsw-alias-state-business-primary);\n color: var(--dsw-alias-state-business-primary);\n transition: background-color .12s ease, border-color .12s ease, color .12s ease;\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-row[data-used='true'] {\n border-color: var(--dsw-alias-brand-primary);\n color: var(--dsw-alias-label-secondary);\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-num {\n color: var(--dsw-alias-label-primary);\n flex: none;\n font: var(--dsw-font-xs-13);\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-text {\n max-width: 22ch;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-loading {\n border-style: dashed;\n color: var(--dsw-alias-label-secondary);\n cursor: default;\n}\n\n:root:not([data-desktop-enhance-off-suggest]) .de-suggest-error {\n color: var(--dsw-alias-state-error-primary);\n flex: 1 1 auto;\n font: var(--dsw-font-xxs-12);\n min-width: 0;\n padding: 2px;\n}\n\n\n:root:not([data-desktop-enhance-off-step-duration]) [data-desktop-enhance-duration]::after {\n content: attr(data-desktop-enhance-duration);\n \n margin-left: 8px;\n font-size: inherit;\n line-height: inherit;\n \n font-variant-numeric: tabular-nums;\n color: inherit;\n white-space: nowrap;\n pointer-events: none;\n user-select: none;\n}\n\n:root:not([data-desktop-enhance-off-step-duration])\n [data-desktop-enhance-duration]:has([data-step-process-icon])::after {\n margin-left: 2px;\n}\n\n\n:root[data-desktop-enhance-off-session-info] [data-desktop-enhance-session-info],\n:root[data-desktop-enhance-off-session-info] [data-desktop-enhance-tools-popover],\n:root[data-desktop-enhance-off-session-info] [data-desktop-enhance-skills-popover],\n:root[data-desktop-enhance-off-session-info] [data-desktop-enhance-popover-backdrop] {\n display: none !important;\n}\n:root:not([data-desktop-enhance-off-session-info]) [data-desktop-enhance-session-info] {\n position: absolute;\n top: 12px;\n right: 36px;\n z-index: 10;\n width: 244px;\n box-sizing: border-box;\n border-radius: var(--dsw-radius-lg);\n border: 1px solid var(--dsw-alias-border-l2);\n background: color-mix(in srgb, var(--dsw-alias-bg-layer-1) 90%, transparent);\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n box-shadow: var(--dsw-elevation-panel);\n color: var(--dsw-alias-label-primary);\n overflow: hidden;\n}\n:root:not([data-desktop-enhance-off-session-info])\n [data-desktop-enhance-session-info][data-minimized=\"true\"] {\n width: auto;\n border-radius: 999px;\n}\n\n:root:not([data-desktop-enhance-off-session-info])\n [data-desktop-enhance-session-info][data-compact=\"true\"] {\n top: 8px;\n right: 10px;\n width: min(260px, calc(100% - 20px));\n}\n:root:not([data-desktop-enhance-off-session-info])\n [data-desktop-enhance-session-info][data-compact=\"true\"][data-minimized=\"true\"] {\n width: auto;\n max-width: calc(100% - 20px);\n}\nbody.dsh-remote-portrait:not(.dsh-remote-rail-hidden) [data-desktop-enhance-session-info],\nbody.dsh-remote-portrait:not(.dsh-remote-rail-hidden) [data-desktop-enhance-tools-popover],\nbody.dsh-remote-portrait:not(.dsh-remote-rail-hidden) [data-desktop-enhance-skills-popover],\nbody.dsh-remote-portrait:not(.dsh-remote-rail-hidden) [data-desktop-enhance-popover-backdrop] {\n display: none !important;\n}\n[data-desktop-enhance-session-info] [data-session-info-header] {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 6px 10px;\n border: none;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: color-mix(in srgb, var(--dsw-alias-bg-module-platform) 60%, transparent);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-strong-12, 600 12px/18px sans-serif);\n cursor: pointer;\n user-select: none;\n}\n[data-desktop-enhance-session-info][data-minimized=\"true\"] [data-session-info-header] {\n border-bottom: none;\n background: transparent;\n padding: 5px 11px;\n}\n[data-desktop-enhance-session-info] [data-session-info-header]:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n[data-desktop-enhance-session-info] [data-session-info-title] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n}\n[data-desktop-enhance-session-info][data-compact=\"true\"] [data-session-info-title],\n[data-desktop-enhance-session-info][data-compact=\"true\"] [data-session-info-title] > span:last-child {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n[data-desktop-enhance-session-info] [data-session-info-dot] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex: none;\n background: var(--dsw-alias-state-business-primary);\n box-shadow: 0 0 0 2.5px var(--dsw-alias-state-business-tertiary);\n}\n[data-desktop-enhance-session-info] [data-session-info-dot=\"idle\"] {\n background: var(--dsw-alias-label-caption);\n box-shadow: none;\n}\n[data-desktop-enhance-session-info] [data-session-info-chevron] {\n color: var(--dsw-alias-label-tertiary);\n font-size: 12px;\n line-height: 1;\n}\n[data-desktop-enhance-session-info] [data-session-info-section] {\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n[data-desktop-enhance-session-info] [data-session-info-section]:last-child {\n border-bottom: none;\n}\n[data-desktop-enhance-session-info] [data-session-info-section-header] {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 6px 10px;\n border: none;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-xxs-strong-12, 600 12px/18px sans-serif);\n cursor: pointer;\n user-select: none;\n}\n[data-desktop-enhance-session-info] [data-session-info-section-header]:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n[data-desktop-enhance-session-info] [data-session-info-section-label] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n min-width: 0;\n}\n[data-desktop-enhance-session-info] [data-session-info-arrow] {\n color: var(--dsw-alias-label-tertiary);\n font-size: 10px;\n}\n[data-desktop-enhance-session-info] [data-session-info-count] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 11px;\n font-weight: 600;\n padding: 0 5px;\n line-height: 16px;\n border-radius: 999px;\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n}\n[data-desktop-enhance-session-info][data-empty=\"true\"] [data-session-info-count] {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-tertiary);\n}\n[data-desktop-enhance-session-info] [data-session-info-body] {\n padding: 2px 6px 6px;\n display: flex;\n flex-direction: column;\n gap: 2px;\n max-height: 184px;\n overflow-y: auto;\n}\n[data-desktop-enhance-session-info] [data-session-info-empty] {\n padding: 4px 6px;\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n}\n[data-desktop-enhance-session-info] [data-session-info-item] {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 5px 8px;\n border: none;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n text-align: left;\n}\n[data-desktop-enhance-session-info] [data-session-info-item]:hover {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n}\n[data-desktop-enhance-session-info] [data-session-info-item-name] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 12px;\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n[data-desktop-enhance-session-info] [data-session-info-item-meta] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n flex: none;\n}\n[data-desktop-enhance-session-info] [data-session-info-item-badge] {\n font-size: 10.5px;\n color: var(--dsw-alias-label-tertiary);\n}\n[data-desktop-enhance-session-info] [data-session-info-item-turn] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 11px;\n padding: 0 5px;\n line-height: 16px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-secondary);\n}\n\n\n:root[data-desktop-enhance-off-tools-manager] [data-session-info-section=\"tools\"],\n:root[data-desktop-enhance-off-tools-manager] [data-desktop-enhance-tools-popover],\n:root[data-desktop-enhance-off-tools-manager] [data-desktop-enhance-popover-backdrop=\"tools\"],\n:root[data-desktop-enhance-off-tools-manager] [data-desktop-enhance-defaults=\"tools\"] {\n display: none !important;\n}\n:root[data-desktop-enhance-off-skills-manager] [data-session-info-skills-summary],\n:root[data-desktop-enhance-off-skills-manager] [data-desktop-enhance-skills-popover],\n:root[data-desktop-enhance-off-skills-manager] [data-desktop-enhance-popover-backdrop=\"skills\"],\n:root[data-desktop-enhance-off-skills-manager] [data-desktop-enhance-defaults=\"skills\"] {\n display: none !important;\n}\n[data-desktop-enhance-session-info] [data-session-info-skills-summary] {\n border-top: 0.5px dashed var(--dsw-alias-border-l2);\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-row] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 10px;\n gap: 8px;\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-left] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n min-width: 0;\n flex-wrap: wrap;\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-title] {\n font: var(--dsw-font-xxs-strong-12, 600 12px/18px sans-serif);\n color: var(--dsw-alias-label-primary);\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-count] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 11px;\n font-weight: 600;\n padding: 0 5px;\n line-height: 16px;\n border-radius: 999px;\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-count][data-has-disabled=\"true\"] {\n background: var(--dsw-alias-state-warn-tertiary);\n color: var(--dsw-alias-state-warn-label);\n}\n[data-desktop-enhance-session-info] [data-session-info-override-badge] {\n font-size: 10px;\n padding: 0 5px;\n line-height: 15px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-state-business-primary);\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 25%, transparent);\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-manage] {\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 30%, transparent);\n border-radius: var(--dsw-radius-xs);\n padding: 2px 8px;\n font: var(--dsw-font-xxs-strong-12, 600 11px/16px sans-serif);\n cursor: pointer;\n flex: none;\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-manage]:hover {\n background: var(--dsw-alias-state-business-primary);\n color: var(--dsw-alias-bg-layer-1);\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-disabled],\n[data-desktop-enhance-session-info] [data-session-info-skills-disabled] {\n padding: 0 10px 7px;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 4px;\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-muted],\n[data-desktop-enhance-tools-popover] [data-session-info-tools-muted],\n[data-desktop-enhance-skills-popover] [data-session-info-tools-muted] {\n font: var(--dsw-font-xxs-12);\n font-size: 11px;\n color: var(--dsw-alias-label-tertiary);\n}\n[data-desktop-enhance-session-info] [data-session-info-tools-tag],\n[data-desktop-enhance-session-info] [data-session-info-skills-tag] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 10.5px;\n padding: 1px 5px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-secondary);\n text-decoration: line-through;\n}\n:root:not([data-desktop-enhance-off-tools-manager]) [data-desktop-enhance-tools-popover],\n:root:not([data-desktop-enhance-off-skills-manager]) [data-desktop-enhance-skills-popover] {\n position: absolute;\n top: 12px;\n right: 292px;\n width: 520px;\n max-width: calc(100% - 308px);\n z-index: 20;\n background: var(--dsw-alias-bg-layer-2);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n box-shadow: var(--dsw-alias-shadow-l2, 0 8px 24px color-mix(in srgb, var(--dsw-alias-label-primary) 12%, transparent));\n display: flex;\n flex-direction: column;\n overflow: hidden;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-primary);\n}\n\n:root:not([data-desktop-enhance-off-session-info]) [data-desktop-enhance-popover-backdrop] {\n position: fixed;\n inset: 0;\n z-index: 2147482050;\n background: var(--dsw-alias-bg-mask-1, color-mix(in srgb, var(--dsw-alias-label-primary) 42%, transparent));\n backdrop-filter: blur(3px);\n -webkit-backdrop-filter: blur(3px);\n}\n:root:not([data-desktop-enhance-off-tools-manager])\n [data-desktop-enhance-tools-popover][data-compact=\"true\"],\n:root:not([data-desktop-enhance-off-skills-manager])\n [data-desktop-enhance-skills-popover][data-compact=\"true\"] {\n position: fixed;\n top: 50%;\n left: 50%;\n right: auto;\n transform: translate(-50%, -50%);\n width: calc(100vw - 24px);\n max-width: 440px;\n max-height: calc(100dvh - 48px);\n z-index: 2147482100;\n border-radius: var(--dsw-radius-lg);\n box-shadow: var(--dsw-elevation-panel);\n}\n[data-desktop-enhance-tools-popover][data-compact=\"true\"] [data-tools-popover-body],\n[data-desktop-enhance-skills-popover][data-compact=\"true\"] [data-tools-popover-body] {\n flex: 1 1 auto;\n min-height: 0;\n overflow: hidden;\n}\n[data-desktop-enhance-tools-popover][data-compact=\"true\"] [data-tools-popover-tree],\n[data-desktop-enhance-skills-popover][data-compact=\"true\"] [data-tools-popover-tree] {\n flex: 1 1 auto;\n min-height: 0;\n max-height: calc(100dvh - 210px);\n -webkit-overflow-scrolling: touch;\n}\n[data-desktop-enhance-tools-popover][data-compact=\"true\"] [data-tools-popover-search],\n[data-desktop-enhance-skills-popover][data-compact=\"true\"] [data-tools-popover-search] {\n font-size: 16px;\n min-height: 34px;\n}\n[data-desktop-enhance-tools-popover][data-compact=\"true\"] [data-tools-btn],\n[data-desktop-enhance-skills-popover][data-compact=\"true\"] [data-tools-btn] {\n min-height: 28px;\n padding: 4px 10px;\n font-size: 12px;\n}\n[data-desktop-enhance-tools-popover][data-compact=\"true\"] [data-tools-popover-close],\n[data-desktop-enhance-skills-popover][data-compact=\"true\"] [data-tools-popover-close] {\n width: 30px;\n height: 30px;\n display: grid;\n place-items: center;\n font-size: 14px;\n}\n[data-tools-popover-header] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-3);\n}\n[data-tools-popover-title-wrap] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n[data-tools-popover-title] {\n font: var(--dsw-font-xs-strong-13, 600 13px/18px sans-serif);\n color: var(--dsw-alias-label-primary);\n}\n[data-tools-popover-close] {\n background: transparent;\n border: none;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: var(--dsw-font-xs-13);\n padding: 4px 6px;\n border-radius: var(--dsw-radius-xs);\n}\n[data-tools-popover-close]:hover {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-primary);\n}\n[data-tools-popover-body] {\n display: flex;\n flex-direction: column;\n padding: 10px 12px;\n gap: 8px;\n}\n[data-popover-override-banner] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 6px 10px;\n border-radius: var(--dsw-radius-sm);\n background: color-mix(in srgb, var(--dsw-alias-state-business-tertiary) 45%, transparent);\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 25%, transparent);\n font-size: 11.5px;\n color: var(--dsw-alias-label-primary);\n}\n[data-tools-popover-toolbar] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n[data-tools-popover-search] {\n flex: 1 1 auto;\n min-width: 0;\n background: var(--dsw-alias-bg-layer-1);\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n padding: 5px 9px;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-primary);\n}\n[data-tools-popover-actions] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n flex: none;\n}\n[data-tools-popover-tree] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n max-height: 380px;\n overflow-y: auto;\n padding-right: 2px;\n}\n[data-tools-node-header] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 5px 8px;\n border-radius: var(--dsw-radius-xs);\n cursor: pointer;\n user-select: none;\n}\n[data-tools-node-header]:hover,\n[data-tools-leaf]:hover {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n}\n[data-tools-node-title] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 12px;\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n min-width: 0;\n}\n[data-tools-leaf] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 10px;\n padding: 5px 8px;\n border-radius: var(--dsw-radius-xs);\n}\n[data-tools-leaf-info] {\n flex: 1 1 auto;\n min-width: 0;\n}\n[data-tools-leaf-header],\n[data-skills-leaf-header] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 6px;\n}\n[data-tools-leaf-name] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 12px;\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n word-break: break-all;\n}\n[data-tools-leaf][data-disabled=\"true\"] [data-tools-leaf-name] {\n color: var(--dsw-alias-label-tertiary);\n text-decoration: line-through;\n}\n[data-tools-source-badge],\n[data-skills-source-badge],\n[data-skills-user-only] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 10px;\n padding: 0 5px;\n line-height: 15px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-secondary);\n}\n[data-tools-source-badge=\"plugin\"],\n[data-skills-source-badge=\"project\"] {\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n}\n[data-skills-preview] {\n background: transparent;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font-size: 10px;\n padding: 0 5px;\n line-height: 15px;\n}\n[data-skills-preview]:hover {\n border-color: var(--dsw-alias-state-business-primary);\n color: var(--dsw-alias-state-business-primary);\n}\n[data-tools-leaf-desc] {\n font-size: 11px;\n line-height: 16px;\n color: var(--dsw-alias-label-tertiary);\n margin-top: 2px;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n}\n[data-tools-controls] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n flex: none;\n}\n[data-tools-pill] {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 10.5px;\n padding: 1px 6px;\n line-height: 16px;\n border-radius: 999px;\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n}\n[data-tools-pill][data-disabled=\"true\"] {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-tertiary);\n}\n[data-tools-btn] {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: var(--dsw-font-xxs-12);\n font-size: 11px;\n padding: 2px 8px;\n}\n[data-tools-btn]:hover:not(:disabled) {\n border-color: var(--dsw-alias-state-business-primary);\n color: var(--dsw-alias-state-business-primary);\n}\n[data-tools-btn]:disabled {\n cursor: default;\n opacity: .5;\n}\n[data-tools-empty] {\n padding: 8px;\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n}\n\n\n[data-desktop-enhance-settings] .de-defaults-box {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n[data-desktop-enhance-settings] .de-defaults-summary {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n}\n[data-desktop-enhance-settings] .de-defaults-title-row {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n[data-desktop-enhance-settings] .de-defaults-tags {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 4px;\n margin-top: 2px;\n}\n[data-desktop-enhance-settings] .de-defaults-status,\n[data-desktop-enhance-settings] .de-defaults-muted {\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-xxs-12);\n font-size: 11px;\n}\n[data-desktop-enhance-settings] .de-defaults-tag {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 11px;\n padding: 1px 6px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-secondary);\n text-decoration: line-through;\n}\n[data-desktop-enhance-settings] .de-defaults-panel {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding-top: 8px;\n border-top: 1px solid var(--dsw-alias-border-l1);\n}\n[data-desktop-enhance-settings] .de-defaults-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n[data-desktop-enhance-settings] .de-defaults-tree {\n display: flex;\n flex-direction: column;\n gap: 2px;\n max-height: 320px;\n overflow-y: auto;\n}\n[data-desktop-enhance-settings] .de-defaults-group-head,\n[data-desktop-enhance-settings] .de-defaults-leaf {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n padding: 5px 8px;\n border-radius: var(--dsw-radius-xs);\n}\n[data-desktop-enhance-settings] .de-defaults-group-head {\n cursor: pointer;\n user-select: none;\n}\n[data-desktop-enhance-settings] .de-defaults-group-head:hover,\n[data-desktop-enhance-settings] .de-defaults-leaf:hover {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n}\n[data-desktop-enhance-settings] .de-defaults-group-title {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 12px;\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n[data-desktop-enhance-settings] .de-defaults-leaf-info {\n flex: 1 1 auto;\n min-width: 0;\n}\n[data-desktop-enhance-settings] .de-defaults-leaf-head {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 6px;\n}\n[data-desktop-enhance-settings] .de-defaults-leaf-name {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 12px;\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n[data-desktop-enhance-settings] .de-defaults-leaf[data-disabled=\"true\"] .de-defaults-leaf-name {\n color: var(--dsw-alias-label-tertiary);\n text-decoration: line-through;\n}\n[data-desktop-enhance-settings] .de-defaults-leaf-desc {\n font-size: 11px;\n line-height: 16px;\n color: var(--dsw-alias-label-tertiary);\n margin-top: 2px;\n}\n[data-desktop-enhance-settings] .de-defaults-source-badge {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 10px;\n padding: 0 5px;\n line-height: 15px;\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-secondary);\n}\n[data-desktop-enhance-settings] .de-defaults-source-badge[data-tool-scope=\"plugin\"] {\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n}\n[data-desktop-enhance-settings] .de-defaults-controls {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n flex: none;\n}\n[data-desktop-enhance-settings] .de-defaults-pill {\n font-family: var(--dsw-font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);\n font-size: 10.5px;\n padding: 1px 6px;\n line-height: 16px;\n border-radius: 999px;\n background: var(--dsw-alias-state-business-tertiary);\n color: var(--dsw-alias-label-primary-bluish);\n}\n[data-desktop-enhance-settings] .de-defaults-pill[data-disabled=\"true\"],\n[data-desktop-enhance-settings] .de-defaults-pill[data-desktop-enhance-prompt-status=\"default\"] {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n color: var(--dsw-alias-label-tertiary);\n}\n\n\n\n";
4963
5120
  //#endregion
4964
5121
  //#region src/client/index.tsx
4965
5122
  const inject = [
@@ -5154,6 +5311,8 @@ window.__ModuleLoader__.load({
5154
5311
  moveReveal,
5155
5312
  FIELDS,
5156
5313
  GATES,
5314
+ SETTINGS_GROUPS,
5315
+ FEATURE_BADGES,
5157
5316
  flagOn,
5158
5317
  applyGates,
5159
5318
  createSettingsStore,
@@ -5225,9 +5384,11 @@ window.__ModuleLoader__.load({
5225
5384
  normalizeSkillProjection,
5226
5385
  buildSessionInfoSections,
5227
5386
  SESSION_INFO_ATTR,
5387
+ POPOVER_BACKDROP_ATTR,
5228
5388
  TOOLS_POPOVER_ATTR,
5229
5389
  SKILLS_POPOVER_ATTR,
5230
5390
  SESSION_INFO_URL,
5391
+ isCompactViewport,
5231
5392
  requestSessionInfo,
5232
5393
  openSkillInHost,
5233
5394
  installSessionInfo,
package/package.json CHANGED
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "name": "dsh-desktop-enhance",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "DSH Desktop 界面增强:页内查找(Cmd+F)、轮次编号、上下文压缩行常显、建议、每步耗时、会话信息、工具管理、Skill 管理。",
5
+
6
+
7
+
5
8
  "type": "module",
6
9
  "exports": {
7
10
  ".": "./lib/index.js",
@@ -26,6 +29,18 @@
26
29
  "lib",
27
30
  "cordis.patch.yml"
28
31
  ],
32
+ "scripts": {
33
+ "build": "tsdown",
34
+ "dev": "tsdown --watch",
35
+ "typecheck": "tsc --noEmit",
36
+ "test": "node --test tests/*.test.mjs",
37
+ "test:isolation": "./tools/test-isolation.sh",
38
+ "verify": "pnpm typecheck && pnpm build && pnpm test && pnpm test:isolation",
39
+ "prepack": "pnpm build",
40
+ "prepublishOnly": "pnpm verify",
41
+ "release:patch": "npm version patch && pnpm publish",
42
+ "release:minor": "npm version minor && pnpm publish"
43
+ },
29
44
  "publishConfig": {
30
45
  "access": "public"
31
46
  },
@@ -43,15 +58,5 @@
43
58
  "@types/react": "^18.3.31",
44
59
  "tsdown": "0.23.0",
45
60
  "typescript": "5.9.3"
46
- },
47
- "scripts": {
48
- "build": "tsdown",
49
- "dev": "tsdown --watch",
50
- "typecheck": "tsc --noEmit",
51
- "test": "node --test tests/*.test.mjs",
52
- "test:isolation": "./tools/test-isolation.sh",
53
- "verify": "pnpm typecheck && pnpm build && pnpm test && pnpm test:isolation",
54
- "release:patch": "npm version patch && pnpm publish",
55
- "release:minor": "npm version minor && pnpm publish"
56
61
  }
57
- }
62
+ }