dsh-desktop-enhance 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/client.js CHANGED
@@ -69,7 +69,7 @@ window.__ModuleLoader__.load({
69
69
  "settings.defaults.close": "收起面板 ✕",
70
70
  "settings.defaults.allEnabled": "默认全部启用",
71
71
  "settings.defaults.enabledPrefix": "默认启用 ",
72
- "settings.tools.search": "搜索工具名或描述…",
72
+ "settings.tools.search": "搜索工具名、描述或插件来源…",
73
73
  "settings.tools.refresh": "刷新列表",
74
74
  "settings.tools.enableAll": "全部启用",
75
75
  "settings.tools.disableAll": "全部禁用",
@@ -79,6 +79,8 @@ window.__ModuleLoader__.load({
79
79
  "settings.tools.disabled": "已禁用",
80
80
  "settings.tools.allDisabled": "全部已禁用",
81
81
  "settings.tools.empty": "没有匹配的工具。",
82
+ "settings.tools.scope.builtin": "内置工具",
83
+ "settings.tools.scope.plugin": "插件与 MCP 工具",
82
84
  "settings.skills.search": "搜索 Skill 名称、描述或来源…",
83
85
  "settings.skills.empty": "没有匹配的 Skill。",
84
86
  "settings.skills.scope.project": "项目级 Skill",
@@ -170,7 +172,7 @@ window.__ModuleLoader__.load({
170
172
  "settings.defaults.close": "Close panel ✕",
171
173
  "settings.defaults.allEnabled": "All enabled by default",
172
174
  "settings.defaults.enabledPrefix": "Enabled ",
173
- "settings.tools.search": "Search tool name or description…",
175
+ "settings.tools.search": "Search tool name, description, or plugin…",
174
176
  "settings.tools.refresh": "Refresh",
175
177
  "settings.tools.enableAll": "Enable all",
176
178
  "settings.tools.disableAll": "Disable all",
@@ -180,6 +182,8 @@ window.__ModuleLoader__.load({
180
182
  "settings.tools.disabled": "Disabled",
181
183
  "settings.tools.allDisabled": "All disabled",
182
184
  "settings.tools.empty": "No matching tools.",
185
+ "settings.tools.scope.builtin": "Built-in tools",
186
+ "settings.tools.scope.plugin": "Plugin & MCP tools",
183
187
  "settings.skills.search": "Search skill name, description, or source…",
184
188
  "settings.skills.empty": "No matching skills.",
185
189
  "settings.skills.scope.project": "Project skills",
@@ -736,6 +740,7 @@ window.__ModuleLoader__.load({
736
740
  }
737
741
  //#endregion
738
742
  //#region src/shared/tools-manager.ts
743
+ const TOOL_SCOPE_ORDER = ["builtin", "plugin"];
739
744
  const DISABLED_TOOL_PREFIX = "tool is disabled by desktop-enhance:";
740
745
  function compareCodeUnits(a, b) {
741
746
  return a < b ? -1 : a > b ? 1 : 0;
@@ -757,6 +762,492 @@ window.__ModuleLoader__.load({
757
762
  }
758
763
  return [...unique].sort(compareCodeUnits).join(",");
759
764
  }
765
+ const ACTION_VERB_PREFIXES = new Set([
766
+ "add",
767
+ "call",
768
+ "check",
769
+ "clear",
770
+ "close",
771
+ "create",
772
+ "delete",
773
+ "edit",
774
+ "enable",
775
+ "disable",
776
+ "enter",
777
+ "exit",
778
+ "fetch",
779
+ "find",
780
+ "generate",
781
+ "get",
782
+ "interrupt",
783
+ "kill",
784
+ "list",
785
+ "load",
786
+ "open",
787
+ "query",
788
+ "remove",
789
+ "reset",
790
+ "resolve",
791
+ "run",
792
+ "save",
793
+ "search",
794
+ "select",
795
+ "send",
796
+ "set",
797
+ "show",
798
+ "spawn",
799
+ "start",
800
+ "stop",
801
+ "trigger",
802
+ "update",
803
+ "verify",
804
+ "view",
805
+ "wait",
806
+ "write"
807
+ ]);
808
+ const OPTIONAL_OFFICIAL_TOOL_PACKAGES = new Set([
809
+ "@deepseek-ai/dsh-tool-terminal",
810
+ "@deepseek-ai/dsh-tool-session-query",
811
+ "@deepseek-ai/dsh-tool-ralph",
812
+ "@deepseek-ai/dsh-mcp-resources",
813
+ "@deepseek-ai/dsh-mcp-client"
814
+ ]);
815
+ function isPluginToolPackage(pkg) {
816
+ if (pkg.startsWith("mcp:")) return true;
817
+ if (!pkg.startsWith("@deepseek-ai/")) return true;
818
+ if (pkg.startsWith("@deepseek-ai/dsh-experimental-")) return true;
819
+ return OPTIONAL_OFFICIAL_TOOL_PACKAGES.has(pkg);
820
+ }
821
+ const BUILTIN_TOOL_PACKAGES = new Map([
822
+ ["@deepseek-ai/dsh-tool-bash", "bash"],
823
+ ["@deepseek-ai/dsh-tool-bash-persistent", "bash"],
824
+ ["@deepseek-ai/dsh-tool-pwsh", "pwsh"],
825
+ ["@deepseek-ai/dsh-tool-pwsh-persistent", "pwsh"],
826
+ ["@deepseek-ai/dsh-tool-fs", "fs"],
827
+ ["@deepseek-ai/dsh-tool-fs-search", "fs_search"],
828
+ ["@deepseek-ai/dsh-tool-str-replace-editor", "str_replace_editor"],
829
+ ["@deepseek-ai/dsh-tool-working-directory", "working_directory"],
830
+ ["@deepseek-ai/dsh-tool-workspace-dependencies", "workspace_dependencies"],
831
+ ["@deepseek-ai/dsh-tool-jobs", "job"],
832
+ ["@deepseek-ai/dsh-tool-schedule", "schedule"],
833
+ ["@deepseek-ai/dsh-schedule", "schedule"],
834
+ ["@deepseek-ai/dsh-tool-goal", "goal"],
835
+ ["@deepseek-ai/dsh-plan-mode", "plan"],
836
+ ["@deepseek-ai/dsh-tool-todo", "todo"],
837
+ ["@deepseek-ai/dsh-tool-ask-user", "ask_user"],
838
+ ["@deepseek-ai/dsh-tool-skill", "skill"],
839
+ ["@deepseek-ai/dsh-tool-present", "present"],
840
+ ["@deepseek-ai/dsh-tool-web", "web"],
841
+ ["@deepseek-ai/dsh-tool-subagent", "subagent"],
842
+ ["@deepseek-ai/dsh-tool-subagent-control", "subagent"],
843
+ ["@deepseek-ai/dsh-subagent", "subagent"],
844
+ ["@deepseek-ai/dsh-tool-workflow", "workflow"],
845
+ ["@deepseek-ai/dsh-tool-cordis", "cordis_inspect"],
846
+ ["@deepseek-ai/dsh-cordis-host-runner", "cordis_inspect"],
847
+ ["@deepseek-ai/dsh-plugin-manager", "plugin_manager"],
848
+ ["@deepseek-ai/dsh-plugin-market", "plugin_manager"],
849
+ ["@deepseek-ai/dsh-tools", "builtin"]
850
+ ]);
851
+ const KNOWN_TOOL_SPECS = {
852
+ bash: {
853
+ scope: "builtin",
854
+ pluginName: "@deepseek-ai/dsh-tool-bash",
855
+ groupKey: "bash"
856
+ },
857
+ pwsh: {
858
+ scope: "builtin",
859
+ pluginName: "@deepseek-ai/dsh-tool-pwsh",
860
+ groupKey: "pwsh"
861
+ },
862
+ read: {
863
+ scope: "builtin",
864
+ pluginName: "@deepseek-ai/dsh-tool-fs",
865
+ groupKey: "read"
866
+ },
867
+ read_image: {
868
+ scope: "builtin",
869
+ pluginName: "@deepseek-ai/dsh-tool-fs",
870
+ groupKey: "read"
871
+ },
872
+ write: {
873
+ scope: "builtin",
874
+ pluginName: "@deepseek-ai/dsh-tool-fs",
875
+ groupKey: "write"
876
+ },
877
+ edit: {
878
+ scope: "builtin",
879
+ pluginName: "@deepseek-ai/dsh-tool-fs",
880
+ groupKey: "edit"
881
+ },
882
+ str_replace_editor: {
883
+ scope: "builtin",
884
+ pluginName: "@deepseek-ai/dsh-tool-str-replace-editor",
885
+ groupKey: "str_replace_editor"
886
+ },
887
+ glob: {
888
+ scope: "builtin",
889
+ pluginName: "@deepseek-ai/dsh-tool-fs-search",
890
+ groupKey: "glob"
891
+ },
892
+ grep: {
893
+ scope: "builtin",
894
+ pluginName: "@deepseek-ai/dsh-tool-fs-search",
895
+ groupKey: "grep"
896
+ },
897
+ working_directory: {
898
+ scope: "builtin",
899
+ pluginName: "@deepseek-ai/dsh-tool-working-directory",
900
+ groupKey: "working_directory"
901
+ },
902
+ load_workspace_dependencies: {
903
+ scope: "builtin",
904
+ pluginName: "@deepseek-ai/dsh-tool-workspace-dependencies",
905
+ groupKey: "load_workspace_dependencies"
906
+ },
907
+ job_output: {
908
+ scope: "builtin",
909
+ pluginName: "@deepseek-ai/dsh-tool-jobs",
910
+ groupKey: "job"
911
+ },
912
+ job_list: {
913
+ scope: "builtin",
914
+ pluginName: "@deepseek-ai/dsh-tool-jobs",
915
+ groupKey: "job"
916
+ },
917
+ job_kill: {
918
+ scope: "builtin",
919
+ pluginName: "@deepseek-ai/dsh-tool-jobs",
920
+ groupKey: "job"
921
+ },
922
+ schedule_create: {
923
+ scope: "builtin",
924
+ pluginName: "@deepseek-ai/dsh-tool-schedule",
925
+ groupKey: "schedule"
926
+ },
927
+ schedule_list: {
928
+ scope: "builtin",
929
+ pluginName: "@deepseek-ai/dsh-tool-schedule",
930
+ groupKey: "schedule"
931
+ },
932
+ schedule_update: {
933
+ scope: "builtin",
934
+ pluginName: "@deepseek-ai/dsh-tool-schedule",
935
+ groupKey: "schedule"
936
+ },
937
+ schedule_delete: {
938
+ scope: "builtin",
939
+ pluginName: "@deepseek-ai/dsh-tool-schedule",
940
+ groupKey: "schedule"
941
+ },
942
+ create_goal: {
943
+ scope: "builtin",
944
+ pluginName: "@deepseek-ai/dsh-tool-goal",
945
+ groupKey: "goal"
946
+ },
947
+ get_goal: {
948
+ scope: "builtin",
949
+ pluginName: "@deepseek-ai/dsh-tool-goal",
950
+ groupKey: "goal"
951
+ },
952
+ update_goal: {
953
+ scope: "builtin",
954
+ pluginName: "@deepseek-ai/dsh-tool-goal",
955
+ groupKey: "goal"
956
+ },
957
+ plan: {
958
+ scope: "builtin",
959
+ pluginName: "@deepseek-ai/dsh-plan-mode",
960
+ groupKey: "plan"
961
+ },
962
+ exit_plan_mode: {
963
+ scope: "builtin",
964
+ pluginName: "@deepseek-ai/dsh-plan-mode",
965
+ groupKey: "plan"
966
+ },
967
+ todo_write: {
968
+ scope: "builtin",
969
+ pluginName: "@deepseek-ai/dsh-tool-todo",
970
+ groupKey: "todo_write"
971
+ },
972
+ ask_user_question: {
973
+ scope: "builtin",
974
+ pluginName: "@deepseek-ai/dsh-tool-ask-user",
975
+ groupKey: "ask_user_question"
976
+ },
977
+ skill: {
978
+ scope: "builtin",
979
+ pluginName: "@deepseek-ai/dsh-tool-skill",
980
+ groupKey: "skill"
981
+ },
982
+ present: {
983
+ scope: "builtin",
984
+ pluginName: "@deepseek-ai/dsh-tool-present",
985
+ groupKey: "present"
986
+ },
987
+ web_search: {
988
+ scope: "builtin",
989
+ pluginName: "@deepseek-ai/dsh-tool-web",
990
+ groupKey: "web"
991
+ },
992
+ web_fetch: {
993
+ scope: "builtin",
994
+ pluginName: "@deepseek-ai/dsh-tool-web",
995
+ groupKey: "web"
996
+ },
997
+ subagent: {
998
+ scope: "builtin",
999
+ pluginName: "@deepseek-ai/dsh-tool-subagent",
1000
+ groupKey: "subagent"
1001
+ },
1002
+ subagent_fork: {
1003
+ scope: "builtin",
1004
+ pluginName: "@deepseek-ai/dsh-tool-subagent",
1005
+ groupKey: "subagent"
1006
+ },
1007
+ list_subagent_models: {
1008
+ scope: "builtin",
1009
+ pluginName: "@deepseek-ai/dsh-tool-subagent",
1010
+ groupKey: "subagent"
1011
+ },
1012
+ send_message: {
1013
+ scope: "builtin",
1014
+ pluginName: "@deepseek-ai/dsh-tool-subagent-control",
1015
+ groupKey: "subagent"
1016
+ },
1017
+ interrupt_agent: {
1018
+ scope: "builtin",
1019
+ pluginName: "@deepseek-ai/dsh-tool-subagent-control",
1020
+ groupKey: "subagent"
1021
+ },
1022
+ list_agents: {
1023
+ scope: "builtin",
1024
+ pluginName: "@deepseek-ai/dsh-tool-subagent-control",
1025
+ groupKey: "subagent"
1026
+ },
1027
+ workflow: {
1028
+ scope: "builtin",
1029
+ pluginName: "@deepseek-ai/dsh-tool-workflow",
1030
+ groupKey: "workflow"
1031
+ },
1032
+ cordis_inspect_list: {
1033
+ scope: "builtin",
1034
+ pluginName: "@deepseek-ai/dsh-tool-cordis",
1035
+ groupKey: "cordis_inspect"
1036
+ },
1037
+ cordis_inspect_query: {
1038
+ scope: "builtin",
1039
+ pluginName: "@deepseek-ai/dsh-tool-cordis",
1040
+ groupKey: "cordis_inspect"
1041
+ },
1042
+ cordis_dynamic: {
1043
+ scope: "builtin",
1044
+ pluginName: "@deepseek-ai/dsh-cordis-host-runner",
1045
+ groupKey: "cordis_inspect"
1046
+ },
1047
+ plugin_manager: {
1048
+ scope: "builtin",
1049
+ pluginName: "@deepseek-ai/dsh-plugin-manager",
1050
+ groupKey: "plugin_manager"
1051
+ },
1052
+ plugin_market: {
1053
+ scope: "builtin",
1054
+ pluginName: "@deepseek-ai/dsh-plugin-market",
1055
+ groupKey: "plugin_manager"
1056
+ },
1057
+ create_worktree: {
1058
+ scope: "plugin",
1059
+ pluginName: "@deepseek-ai/dsh-experimental-tool-worktree",
1060
+ groupKey: "dsh-experimental-tool-worktree"
1061
+ },
1062
+ spawn_teammate: {
1063
+ scope: "plugin",
1064
+ pluginName: "@deepseek-ai/dsh-experimental-tool-agent-team",
1065
+ groupKey: "dsh-experimental-tool-agent-team"
1066
+ },
1067
+ wait_agent: {
1068
+ scope: "plugin",
1069
+ pluginName: "@deepseek-ai/dsh-experimental-tool-agent-team",
1070
+ groupKey: "dsh-experimental-tool-agent-team"
1071
+ },
1072
+ team_task_create: {
1073
+ scope: "plugin",
1074
+ pluginName: "@deepseek-ai/dsh-experimental-tool-agent-team",
1075
+ groupKey: "dsh-experimental-tool-agent-team"
1076
+ },
1077
+ team_task_list: {
1078
+ scope: "plugin",
1079
+ pluginName: "@deepseek-ai/dsh-experimental-tool-agent-team",
1080
+ groupKey: "dsh-experimental-tool-agent-team"
1081
+ },
1082
+ team_task_get: {
1083
+ scope: "plugin",
1084
+ pluginName: "@deepseek-ai/dsh-experimental-tool-agent-team",
1085
+ groupKey: "dsh-experimental-tool-agent-team"
1086
+ },
1087
+ team_task_update: {
1088
+ scope: "plugin",
1089
+ pluginName: "@deepseek-ai/dsh-experimental-tool-agent-team",
1090
+ groupKey: "dsh-experimental-tool-agent-team"
1091
+ },
1092
+ terminal_open: {
1093
+ scope: "plugin",
1094
+ pluginName: "@deepseek-ai/dsh-tool-terminal",
1095
+ groupKey: "dsh-tool-terminal"
1096
+ },
1097
+ terminal_send: {
1098
+ scope: "plugin",
1099
+ pluginName: "@deepseek-ai/dsh-tool-terminal",
1100
+ groupKey: "dsh-tool-terminal"
1101
+ },
1102
+ terminal_read: {
1103
+ scope: "plugin",
1104
+ pluginName: "@deepseek-ai/dsh-tool-terminal",
1105
+ groupKey: "dsh-tool-terminal"
1106
+ },
1107
+ terminal_signal: {
1108
+ scope: "plugin",
1109
+ pluginName: "@deepseek-ai/dsh-tool-terminal",
1110
+ groupKey: "dsh-tool-terminal"
1111
+ },
1112
+ terminal_close: {
1113
+ scope: "plugin",
1114
+ pluginName: "@deepseek-ai/dsh-tool-terminal",
1115
+ groupKey: "dsh-tool-terminal"
1116
+ },
1117
+ terminal_list: {
1118
+ scope: "plugin",
1119
+ pluginName: "@deepseek-ai/dsh-tool-terminal",
1120
+ groupKey: "dsh-tool-terminal"
1121
+ },
1122
+ session_search: {
1123
+ scope: "plugin",
1124
+ pluginName: "@deepseek-ai/dsh-tool-session-query",
1125
+ groupKey: "dsh-tool-session-query"
1126
+ },
1127
+ session_event_search: {
1128
+ scope: "plugin",
1129
+ pluginName: "@deepseek-ai/dsh-tool-session-query",
1130
+ groupKey: "dsh-tool-session-query"
1131
+ },
1132
+ session_trace: {
1133
+ scope: "plugin",
1134
+ pluginName: "@deepseek-ai/dsh-tool-session-query",
1135
+ groupKey: "dsh-tool-session-query"
1136
+ },
1137
+ session_event_trace: {
1138
+ scope: "plugin",
1139
+ pluginName: "@deepseek-ai/dsh-tool-session-query",
1140
+ groupKey: "dsh-tool-session-query"
1141
+ },
1142
+ session_event_read: {
1143
+ scope: "plugin",
1144
+ pluginName: "@deepseek-ai/dsh-tool-session-query",
1145
+ groupKey: "dsh-tool-session-query"
1146
+ },
1147
+ ralph: {
1148
+ scope: "plugin",
1149
+ pluginName: "@deepseek-ai/dsh-tool-ralph",
1150
+ groupKey: "dsh-tool-ralph"
1151
+ },
1152
+ list_mcp_resources: {
1153
+ scope: "plugin",
1154
+ pluginName: "@deepseek-ai/dsh-mcp-resources",
1155
+ groupKey: "dsh-mcp-resources"
1156
+ },
1157
+ list_mcp_resource_templates: {
1158
+ scope: "plugin",
1159
+ pluginName: "@deepseek-ai/dsh-mcp-resources",
1160
+ groupKey: "dsh-mcp-resources"
1161
+ },
1162
+ read_mcp_resource: {
1163
+ scope: "plugin",
1164
+ pluginName: "@deepseek-ai/dsh-mcp-resources",
1165
+ groupKey: "dsh-mcp-resources"
1166
+ },
1167
+ sidebar_open: {
1168
+ scope: "plugin",
1169
+ pluginName: "dsh-better-sidebar",
1170
+ groupKey: "dsh-better-sidebar"
1171
+ },
1172
+ task_memory_write: {
1173
+ scope: "plugin",
1174
+ pluginName: "dsh-expedition-memory",
1175
+ groupKey: "dsh-expedition-memory"
1176
+ },
1177
+ task_memory_write_document: {
1178
+ scope: "plugin",
1179
+ pluginName: "dsh-expedition-memory",
1180
+ groupKey: "dsh-expedition-memory"
1181
+ },
1182
+ task_memory_update: {
1183
+ scope: "plugin",
1184
+ pluginName: "dsh-expedition-memory",
1185
+ groupKey: "dsh-expedition-memory"
1186
+ },
1187
+ task_memory_retire: {
1188
+ scope: "plugin",
1189
+ pluginName: "dsh-expedition-memory",
1190
+ groupKey: "dsh-expedition-memory"
1191
+ },
1192
+ canvas_state: {
1193
+ scope: "plugin",
1194
+ pluginName: "dsh-image-gen",
1195
+ groupKey: "dsh-image-gen"
1196
+ },
1197
+ view_canvas: {
1198
+ scope: "plugin",
1199
+ pluginName: "dsh-image-gen",
1200
+ groupKey: "dsh-image-gen"
1201
+ },
1202
+ generate_image: {
1203
+ scope: "plugin",
1204
+ pluginName: "dsh-image-gen",
1205
+ groupKey: "dsh-image-gen"
1206
+ },
1207
+ generate_images: {
1208
+ scope: "plugin",
1209
+ pluginName: "dsh-image-gen",
1210
+ groupKey: "dsh-image-gen"
1211
+ },
1212
+ edit_image: {
1213
+ scope: "plugin",
1214
+ pluginName: "dsh-image-gen",
1215
+ groupKey: "dsh-image-gen"
1216
+ },
1217
+ find_inspiration: {
1218
+ scope: "plugin",
1219
+ pluginName: "dsh-image-gen",
1220
+ groupKey: "dsh-image-gen"
1221
+ }
1222
+ };
1223
+ function normalizeBarePackageName(raw) {
1224
+ const trimmed = raw.trim();
1225
+ if (trimmed === "" || trimmed.startsWith("mcp:")) return trimmed;
1226
+ const parts = trimmed.split("/");
1227
+ if (trimmed.startsWith("@") && parts.length >= 2) return `${parts[0]}/${parts[1]}`;
1228
+ return parts[0] ?? trimmed;
1229
+ }
1230
+ function shortBadgeOfPackage(pkgName) {
1231
+ return pkgName.startsWith("@deepseek-ai/") ? pkgName.slice(13) : pkgName;
1232
+ }
1233
+ function makeMcpOrigin(rawServer) {
1234
+ const server = rawServer.trim() || "mcp";
1235
+ return {
1236
+ scope: "plugin",
1237
+ pluginName: `mcp:${server}`,
1238
+ sourceBadge: `mcp:${server}`,
1239
+ groupKey: `mcp__${server}`
1240
+ };
1241
+ }
1242
+ function makeKnownOrigin(spec) {
1243
+ const badge = shortBadgeOfPackage(spec.pluginName);
1244
+ return {
1245
+ scope: spec.scope,
1246
+ pluginName: spec.pluginName,
1247
+ sourceBadge: badge,
1248
+ groupKey: spec.groupKey ?? badge
1249
+ };
1250
+ }
760
1251
  function splitToolName(name) {
761
1252
  const parts = name.split("__");
762
1253
  if (parts.length > 1) {
@@ -773,7 +1264,62 @@ window.__ModuleLoader__.load({
773
1264
  return result.length > 0 ? result : [name];
774
1265
  }
775
1266
  const sub = name.split("_").filter((s) => s !== "");
776
- return sub.length > 0 ? sub : [name];
1267
+ if (sub.length <= 1) return [name];
1268
+ const firstWord = sub[0]?.toLowerCase() ?? "";
1269
+ if (ACTION_VERB_PREFIXES.has(firstWord)) return [name];
1270
+ return sub;
1271
+ }
1272
+ function classifyToolOrigin(toolName, rawPluginName) {
1273
+ const name = typeof toolName === "string" ? toolName.trim() : "";
1274
+ if (name.startsWith("mcp__")) return makeMcpOrigin(name.split("__").filter((s) => s !== "")[1] ?? "mcp");
1275
+ const explicitPkg = typeof rawPluginName === "string" ? normalizeBarePackageName(rawPluginName) : "";
1276
+ const known = KNOWN_TOOL_SPECS[name];
1277
+ if (explicitPkg !== "" && explicitPkg !== "root" && explicitPkg !== "builtin") {
1278
+ if (explicitPkg.startsWith("mcp:")) return makeMcpOrigin(explicitPkg.slice(4));
1279
+ if (isPluginToolPackage(explicitPkg)) {
1280
+ const badge = shortBadgeOfPackage(explicitPkg);
1281
+ return {
1282
+ scope: "plugin",
1283
+ pluginName: explicitPkg,
1284
+ sourceBadge: badge,
1285
+ groupKey: badge
1286
+ };
1287
+ }
1288
+ if (known !== void 0 && known.scope === "builtin") return makeKnownOrigin(known);
1289
+ const builtinGroup = BUILTIN_TOOL_PACKAGES.get(explicitPkg);
1290
+ const groupKey = builtinGroup === void 0 || builtinGroup === "builtin" ? splitToolName(name)[0] ?? name : builtinGroup === "fs" ? name === "read" || name === "read_image" ? "read" : name : builtinGroup === "fs_search" ? name : builtinGroup;
1291
+ return {
1292
+ scope: "builtin",
1293
+ pluginName: explicitPkg,
1294
+ sourceBadge: shortBadgeOfPackage(explicitPkg),
1295
+ groupKey
1296
+ };
1297
+ }
1298
+ if (known !== void 0) return makeKnownOrigin(known);
1299
+ const segments = splitToolName(name);
1300
+ return {
1301
+ scope: "builtin",
1302
+ pluginName: "builtin",
1303
+ sourceBadge: "builtin",
1304
+ groupKey: segments.length > 1 ? segments[0] ?? name : name
1305
+ };
1306
+ }
1307
+ function resolveToolMeta(tool) {
1308
+ if ((tool.scope === "builtin" || tool.scope === "plugin") && typeof tool.pluginName === "string" && tool.pluginName !== "" && typeof tool.sourceBadge === "string" && tool.sourceBadge !== "" && typeof tool.groupKey === "string" && tool.groupKey !== "") return {
1309
+ scope: tool.scope,
1310
+ pluginName: tool.pluginName,
1311
+ sourceBadge: tool.sourceBadge,
1312
+ groupKey: tool.groupKey
1313
+ };
1314
+ return classifyToolOrigin(tool.name, tool.pluginName);
1315
+ }
1316
+ function segmentsForTool(tool, meta) {
1317
+ if (tool.name.startsWith("mcp__")) {
1318
+ const leafLabel = splitToolName(tool.name).at(-1) ?? tool.name;
1319
+ return [meta.groupKey, leafLabel];
1320
+ }
1321
+ if (meta.groupKey !== "" && meta.groupKey !== tool.name) return [meta.groupKey, tool.name];
1322
+ return splitToolName(tool.name);
777
1323
  }
778
1324
  function finalizeBranch(branch) {
779
1325
  const nodes = [];
@@ -793,7 +1339,9 @@ window.__ModuleLoader__.load({
793
1339
  label: `${child.label}${sep}${firstChild.label}`,
794
1340
  children: firstChild.children,
795
1341
  total: firstChild.total,
796
- disabled: firstChild.disabled
1342
+ disabled: firstChild.disabled,
1343
+ ...firstChild.scope !== void 0 ? { scope: firstChild.scope } : {},
1344
+ ...firstChild.sourceBadge !== void 0 ? { sourceBadge: firstChild.sourceBadge } : {}
797
1345
  });
798
1346
  continue;
799
1347
  }
@@ -809,7 +1357,9 @@ window.__ModuleLoader__.load({
809
1357
  label: child.label,
810
1358
  children,
811
1359
  total,
812
- disabled
1360
+ disabled,
1361
+ ...child.scope !== void 0 ? { scope: child.scope } : {},
1362
+ ...child.sourceBadge !== void 0 ? { sourceBadge: child.sourceBadge } : {}
813
1363
  });
814
1364
  }
815
1365
  nodes.sort((a, b) => {
@@ -820,10 +1370,14 @@ window.__ModuleLoader__.load({
820
1370
  }
821
1371
  function buildToolPrefixTree(tools, disabled, query = "") {
822
1372
  const needle = typeof query === "string" ? query.trim().toLowerCase() : "";
823
- const filtered = needle === "" ? tools : tools.filter((t) => t.name.toLowerCase().includes(needle) || t.description.toLowerCase().includes(needle));
1373
+ const filtered = needle === "" ? tools : tools.filter((t) => {
1374
+ const meta = resolveToolMeta(t);
1375
+ return t.name.toLowerCase().includes(needle) || t.description.toLowerCase().includes(needle) || meta.sourceBadge.toLowerCase().includes(needle) || meta.pluginName.toLowerCase().includes(needle) || meta.groupKey.toLowerCase().includes(needle);
1376
+ });
824
1377
  const root = { children: new Map() };
825
1378
  for (const tool of filtered) {
826
- const segments = splitToolName(tool.name);
1379
+ const meta = resolveToolMeta(tool);
1380
+ const segments = segmentsForTool(tool, meta);
827
1381
  let current = root;
828
1382
  for (let i = 0; i < segments.length; i++) {
829
1383
  const seg = segments[i];
@@ -837,18 +1391,24 @@ window.__ModuleLoader__.load({
837
1391
  description: tool.description,
838
1392
  disabled: isOff,
839
1393
  total: 1,
840
- disabledCount: isOff ? 1 : 0
1394
+ disabledCount: isOff ? 1 : 0,
1395
+ scope: meta.scope,
1396
+ pluginName: meta.pluginName,
1397
+ sourceBadge: meta.sourceBadge
841
1398
  };
842
1399
  const existing = current.children.get(seg);
843
1400
  if (existing !== void 0 && existing.kind === "branch") existing.branch.children.set(`__self__:${tool.name}`, leaf);
844
1401
  else current.children.set(seg, leaf);
845
1402
  } else {
846
1403
  let next = current.children.get(seg);
1404
+ const prefixKey = segments[0] === "mcp" ? segments.slice(0, i + 1).join("__") : segments.slice(0, i + 1).join("_");
847
1405
  if (next === void 0) {
848
1406
  next = {
849
1407
  kind: "branch",
850
- prefix: segments.slice(0, i + 1).join("_"),
1408
+ prefix: prefixKey,
851
1409
  label: seg,
1410
+ scope: meta.scope,
1411
+ sourceBadge: meta.sourceBadge,
852
1412
  branch: { children: new Map() }
853
1413
  };
854
1414
  current.children.set(seg, next);
@@ -857,8 +1417,10 @@ window.__ModuleLoader__.load({
857
1417
  branch.children.set(`__self__:${next.name}`, next);
858
1418
  next = {
859
1419
  kind: "branch",
860
- prefix: segments.slice(0, i + 1).join("_"),
1420
+ prefix: prefixKey,
861
1421
  label: seg,
1422
+ scope: meta.scope,
1423
+ sourceBadge: meta.sourceBadge,
862
1424
  branch
863
1425
  };
864
1426
  current.children.set(seg, next);
@@ -869,6 +1431,52 @@ window.__ModuleLoader__.load({
869
1431
  }
870
1432
  return finalizeBranch(root);
871
1433
  }
1434
+ function buildToolScopeGroups(tools, disabled, query = "") {
1435
+ const buckets = new Map();
1436
+ for (const scope of TOOL_SCOPE_ORDER) buckets.set(scope, []);
1437
+ for (const tool of tools) {
1438
+ const meta = resolveToolMeta(tool);
1439
+ const bucket = buckets.get(meta.scope);
1440
+ if (bucket !== void 0) bucket.push({
1441
+ ...tool,
1442
+ scope: meta.scope,
1443
+ pluginName: meta.pluginName,
1444
+ sourceBadge: meta.sourceBadge,
1445
+ groupKey: meta.groupKey
1446
+ });
1447
+ }
1448
+ const groups = [];
1449
+ for (const scope of TOOL_SCOPE_ORDER) {
1450
+ const bucketTools = buckets.get(scope) ?? [];
1451
+ if (bucketTools.length === 0) continue;
1452
+ const children = buildToolPrefixTree(bucketTools, disabled, query);
1453
+ if (children.length === 0) continue;
1454
+ let total = 0;
1455
+ let disabledCount = 0;
1456
+ for (const child of children) {
1457
+ total += child.total;
1458
+ disabledCount += child.kind === "leaf" ? child.disabledCount : child.disabled;
1459
+ }
1460
+ groups.push({
1461
+ scope,
1462
+ children,
1463
+ total,
1464
+ disabled: disabledCount
1465
+ });
1466
+ }
1467
+ return groups;
1468
+ }
1469
+ function toggleNamesInSet(current, names) {
1470
+ const next = new Set(current);
1471
+ if (names.some((name) => !current.has(name))) for (const name of names) next.add(name);
1472
+ else for (const name of names) next.delete(name);
1473
+ return next;
1474
+ }
1475
+ function toggleToolScopeGroupInSet(current, group) {
1476
+ const names = [];
1477
+ for (const child of group.children) names.push(...collectNodeLeafNames(child));
1478
+ return toggleNamesInSet(current, names);
1479
+ }
872
1480
  function collectNodeLeafNames(node) {
873
1481
  if (node.kind === "leaf") return [node.name];
874
1482
  const out = [];
@@ -882,11 +1490,7 @@ window.__ModuleLoader__.load({
882
1490
  return next;
883
1491
  }
884
1492
  function toggleNodeInSet(current, node) {
885
- const names = collectNodeLeafNames(node);
886
- const next = new Set(current);
887
- if (names.some((name) => !current.has(name))) for (const name of names) next.add(name);
888
- else for (const name of names) next.delete(name);
889
- return next;
1493
+ return toggleNamesInSet(current, collectNodeLeafNames(node));
890
1494
  }
891
1495
  function disabledToolReason(toolName, enabled, disabled) {
892
1496
  if (!enabled || disabled.size === 0) return void 0;
@@ -900,14 +1504,32 @@ window.__ModuleLoader__.load({
900
1504
  const byName = new Map();
901
1505
  for (const item of list) {
902
1506
  if (item === null || item === void 0 || typeof item !== "object") continue;
903
- const name = item.name;
1507
+ const rec = item;
1508
+ const name = rec.name;
904
1509
  if (typeof name !== "string" || name.trim() === "") continue;
905
1510
  const trimmed = name.trim();
906
- if (excludedNames?.has(trimmed) || byName.has(trimmed)) continue;
907
- const desc = item.description;
1511
+ if (excludedNames?.has(trimmed)) continue;
1512
+ const desc = typeof rec.description === "string" ? rec.description.trim() : "";
1513
+ const origin = classifyToolOrigin(trimmed, rec.pluginName);
1514
+ const existing = byName.get(trimmed);
1515
+ if (existing !== void 0) {
1516
+ if (typeof rec.pluginName === "string" && rec.pluginName.trim() !== "" && existing.pluginName !== origin.pluginName) byName.set(trimmed, {
1517
+ name: trimmed,
1518
+ description: existing.description !== "" ? existing.description : desc,
1519
+ scope: origin.scope,
1520
+ pluginName: origin.pluginName,
1521
+ sourceBadge: origin.sourceBadge,
1522
+ groupKey: origin.groupKey
1523
+ });
1524
+ continue;
1525
+ }
908
1526
  byName.set(trimmed, {
909
1527
  name: trimmed,
910
- description: typeof desc === "string" ? desc.trim() : ""
1528
+ description: desc,
1529
+ scope: origin.scope,
1530
+ pluginName: origin.pluginName,
1531
+ sourceBadge: origin.sourceBadge,
1532
+ groupKey: origin.groupKey
911
1533
  });
912
1534
  }
913
1535
  return [...byName.values()].sort((a, b) => compareCodeUnits(a.name, b.name));
@@ -1802,15 +2424,23 @@ window.__ModuleLoader__.load({
1802
2424
  key: `leaf:${node.name}`,
1803
2425
  className: "de-defaults-leaf",
1804
2426
  "data-default-tool-leaf": node.name,
2427
+ "data-tool-scope": node.scope,
1805
2428
  "data-disabled": node.disabled ? "true" : "false",
1806
2429
  style: depth > 0 ? { paddingLeft: `${String(depth * 16 + 8)}px` } : void 0
1807
2430
  }, [h("div", {
1808
2431
  key: "info",
1809
2432
  className: "de-defaults-leaf-info"
1810
2433
  }, [h("div", {
2434
+ key: "head",
2435
+ className: "de-defaults-leaf-head"
2436
+ }, [h("span", {
1811
2437
  key: "name",
1812
2438
  className: "de-defaults-leaf-name"
1813
- }, node.name), node.description !== "" ? h("div", {
2439
+ }, node.name), node.scope === "plugin" && node.sourceBadge !== "" ? h("span", {
2440
+ key: "badge",
2441
+ className: "de-defaults-source-badge",
2442
+ "data-tool-scope": node.scope
2443
+ }, node.sourceBadge) : null]), node.description !== "" ? h("div", {
1814
2444
  key: "desc",
1815
2445
  className: "de-defaults-leaf-desc"
1816
2446
  }, node.description) : null]), renderDefaultLeafControls({
@@ -1846,7 +2476,7 @@ window.__ModuleLoader__.load({
1846
2476
  className: "de-defaults-group-children"
1847
2477
  }, node.children.map((child) => renderTreeNode(child, depth + 1))) : null]);
1848
2478
  };
1849
- const treeNodes = open ? buildToolPrefixTree(tools, disabledSet, query) : [];
2479
+ const scopeGroups = open ? buildToolScopeGroups(tools, disabledSet, query) : [];
1850
2480
  return renderDefaultsManagerBox({
1851
2481
  kind: "tools",
1852
2482
  t,
@@ -1868,7 +2498,33 @@ window.__ModuleLoader__.load({
1868
2498
  onQueryChange: setQuery,
1869
2499
  onEnableAll: () => commitSet(new Set()),
1870
2500
  onRefresh: refreshCatalog,
1871
- treeElements: treeNodes.map((n) => renderTreeNode(n, 0))
2501
+ treeElements: scopeGroups.map((group) => {
2502
+ const scopeKey = `scope:${group.scope}`;
2503
+ const isOpen = query.trim() !== "" || !collapsedNodes.includes(scopeKey);
2504
+ return h("div", {
2505
+ key: `scope:${group.scope}`,
2506
+ className: "de-defaults-group",
2507
+ "data-default-tool-scope": group.scope
2508
+ }, [renderDefaultGroupHeader({
2509
+ t,
2510
+ headerAttr: "data-default-tool-scope-header",
2511
+ batchAttr: "data-default-tool-scope-batch",
2512
+ groupKey: group.scope,
2513
+ label: t("settings.tools.scope." + group.scope),
2514
+ isOpen,
2515
+ total: group.total,
2516
+ disabledCount: group.disabled,
2517
+ controlDisabled: disabled,
2518
+ depth: 0,
2519
+ onToggleOpen: () => {
2520
+ setCollapsedNodes((curr) => curr.includes(scopeKey) ? curr.filter((p) => p !== scopeKey) : [...curr, scopeKey]);
2521
+ },
2522
+ onBatchToggle: () => commitSet(toggleToolScopeGroupInSet(disabledSet, group))
2523
+ }), isOpen ? h("div", {
2524
+ key: "children",
2525
+ className: "de-defaults-group-children"
2526
+ }, group.children.map((n) => renderTreeNode(n, 1))) : null]);
2527
+ })
1872
2528
  });
1873
2529
  }
1874
2530
  function DefaultSkillsManager({ t, disabledRaw, disabled, onSave }) {
@@ -3133,6 +3789,13 @@ window.__ModuleLoader__.load({
3133
3789
  //#region src/client/session-info/tools-popover.ts
3134
3790
  const TOOLS_POPOVER_ATTR = "data-desktop-enhance-tools-popover";
3135
3791
  const SKILLS_POPOVER_ATTR = "data-desktop-enhance-skills-popover";
3792
+ const POPOVER_BACKDROP_ATTR = "data-desktop-enhance-popover-backdrop";
3793
+ function removePopoverBackdrop(root) {
3794
+ if (root === null || root === void 0 || typeof root.querySelector !== "function") return;
3795
+ const existing = root.querySelector(`[${POPOVER_BACKDROP_ATTR}]`);
3796
+ if (existing !== null) existing.remove();
3797
+ }
3798
+ const popoverLiveHandlers = new WeakMap();
3136
3799
  function populateSummaryContainer(container, opts) {
3137
3800
  const { kind, t, titleKey, manageKey, closeKey, disabledPrefixKey, enabledCount, totalCount, disabledInCatalog, customized, popoverOpen, onTogglePopover } = opts;
3138
3801
  const row = globalThis.document.createElement("div");
@@ -3253,10 +3916,49 @@ window.__ModuleLoader__.load({
3253
3916
  banner.appendChild(resetBtn);
3254
3917
  slot.replaceChildren(banner);
3255
3918
  }
3919
+ function buildCollapsibleGroupHeaderDom(opts) {
3920
+ const { t, headerAttr, headerValue, extraHeaderAttr, batchAttr, batchValue, labelText, isOpen, total, disabledCount, writable, depth = 0, onToggleOpen, onBatchToggle } = opts;
3921
+ const head = globalThis.document.createElement("div");
3922
+ head.setAttribute(headerAttr, headerValue);
3923
+ if (extraHeaderAttr !== void 0) head.setAttribute(extraHeaderAttr.name, extraHeaderAttr.value);
3924
+ if (depth > 0) head.setAttribute("style", `padding-left: ${String(depth * 18 + 8)}px;`);
3925
+ const title = globalThis.document.createElement("span");
3926
+ title.setAttribute("data-tools-node-title", "");
3927
+ const arrow = globalThis.document.createElement("span");
3928
+ arrow.setAttribute("data-session-info-arrow", "");
3929
+ arrow.textContent = isOpen ? "▾" : "▸";
3930
+ const label = globalThis.document.createElement("span");
3931
+ label.textContent = labelText;
3932
+ title.appendChild(arrow);
3933
+ title.appendChild(label);
3934
+ head.appendChild(title);
3935
+ const ctrls = globalThis.document.createElement("div");
3936
+ ctrls.setAttribute("data-tools-controls", "");
3937
+ const enabledInGroup = total - disabledCount;
3938
+ const pill = globalThis.document.createElement("span");
3939
+ pill.setAttribute("data-tools-pill", "");
3940
+ pill.setAttribute("data-disabled", enabledInGroup === 0 ? "true" : "false");
3941
+ pill.textContent = enabledInGroup === 0 ? t("settings.tools.allDisabled") : `${String(enabledInGroup)}/${String(total)}`;
3942
+ ctrls.appendChild(pill);
3943
+ const batchBtn = globalThis.document.createElement("button");
3944
+ batchBtn.setAttribute("type", "button");
3945
+ batchBtn.setAttribute("data-tools-btn", "");
3946
+ batchBtn.setAttribute(batchAttr, batchValue);
3947
+ batchBtn.textContent = enabledInGroup > 0 ? t("settings.tools.disableAll") : t("settings.tools.enableAll");
3948
+ if (!writable) batchBtn.setAttribute("disabled", "");
3949
+ batchBtn.addEventListener("click", (e) => {
3950
+ e?.stopPropagation?.();
3951
+ onBatchToggle();
3952
+ });
3953
+ ctrls.appendChild(batchBtn);
3954
+ head.appendChild(ctrls);
3955
+ head.addEventListener("click", onToggleOpen);
3956
+ return head;
3957
+ }
3256
3958
  function buildToolTreeDomNodes(opts) {
3257
3959
  const { t, toolsCatalog, disabledSet, searchQuery, expandedToolNodes, writable, onToggleNodeExpand, onCommitSet } = opts;
3258
- const treeNodes = buildToolPrefixTree(toolsCatalog, disabledSet, searchQuery);
3259
- if (treeNodes.length === 0) {
3960
+ const scopeGroups = buildToolScopeGroups(toolsCatalog, disabledSet, searchQuery);
3961
+ if (scopeGroups.length === 0) {
3260
3962
  const empty = globalThis.document.createElement("div");
3261
3963
  empty.setAttribute("data-tools-empty", "");
3262
3964
  empty.textContent = t("settings.tools.empty");
@@ -3266,14 +3968,24 @@ window.__ModuleLoader__.load({
3266
3968
  if (node.kind === "leaf") {
3267
3969
  const row = globalThis.document.createElement("div");
3268
3970
  row.setAttribute("data-tools-leaf", node.name);
3971
+ row.setAttribute("data-tool-scope", node.scope);
3269
3972
  row.setAttribute("data-disabled", node.disabled ? "true" : "false");
3270
3973
  if (depth > 0) row.setAttribute("style", `padding-left: ${String(depth * 18 + 8)}px;`);
3271
3974
  const info = globalThis.document.createElement("div");
3272
3975
  info.setAttribute("data-tools-leaf-info", "");
3273
- const nameEl = globalThis.document.createElement("div");
3976
+ const nameRow = globalThis.document.createElement("div");
3977
+ nameRow.setAttribute("data-tools-leaf-header", "");
3978
+ const nameEl = globalThis.document.createElement("span");
3274
3979
  nameEl.setAttribute("data-tools-leaf-name", "");
3275
3980
  nameEl.textContent = node.name;
3276
- info.appendChild(nameEl);
3981
+ nameRow.appendChild(nameEl);
3982
+ if (node.scope === "plugin" && node.sourceBadge !== "") {
3983
+ const badgeEl = globalThis.document.createElement("span");
3984
+ badgeEl.setAttribute("data-tools-source-badge", node.scope);
3985
+ badgeEl.textContent = node.sourceBadge;
3986
+ nameRow.appendChild(badgeEl);
3987
+ }
3988
+ info.appendChild(nameRow);
3277
3989
  if (node.description !== "") {
3278
3990
  const descEl = globalThis.document.createElement("div");
3279
3991
  descEl.setAttribute("data-tools-leaf-desc", "");
@@ -3304,47 +4016,52 @@ window.__ModuleLoader__.load({
3304
4016
  const isOpen = searchQuery.trim() !== "" || expandedToolNodes.has(node.prefix);
3305
4017
  const groupEl = globalThis.document.createElement("div");
3306
4018
  groupEl.setAttribute("data-tools-node", node.prefix);
3307
- const head = globalThis.document.createElement("div");
3308
- head.setAttribute("data-tools-node-header", node.prefix);
3309
- if (depth > 0) head.setAttribute("style", `padding-left: ${String(depth * 18 + 8)}px;`);
3310
- const title = globalThis.document.createElement("span");
3311
- title.setAttribute("data-tools-node-title", "");
3312
- const arrow = globalThis.document.createElement("span");
3313
- arrow.setAttribute("data-session-info-arrow", "");
3314
- arrow.textContent = isOpen ? "▾" : "▸";
3315
- const label = globalThis.document.createElement("span");
3316
- label.textContent = node.label;
3317
- title.appendChild(arrow);
3318
- title.appendChild(label);
3319
- head.appendChild(title);
3320
- const ctrls = globalThis.document.createElement("div");
3321
- ctrls.setAttribute("data-tools-controls", "");
3322
- const enabledInNode = node.total - node.disabled;
3323
- const pill = globalThis.document.createElement("span");
3324
- pill.setAttribute("data-tools-pill", "");
3325
- pill.setAttribute("data-disabled", enabledInNode === 0 ? "true" : "false");
3326
- pill.textContent = enabledInNode === 0 ? t("settings.tools.allDisabled") : `${String(enabledInNode)}/${String(node.total)}`;
3327
- ctrls.appendChild(pill);
3328
- const batchBtn = globalThis.document.createElement("button");
3329
- batchBtn.setAttribute("type", "button");
3330
- batchBtn.setAttribute("data-tools-btn", "");
3331
- batchBtn.setAttribute("data-tools-batch", node.prefix);
3332
- batchBtn.textContent = enabledInNode > 0 ? t("settings.tools.disableAll") : t("settings.tools.enableAll");
3333
- if (!writable) batchBtn.setAttribute("disabled", "");
3334
- batchBtn.addEventListener("click", (e) => {
3335
- e?.stopPropagation?.();
3336
- onCommitSet(toggleNodeInSet(disabledSet, node));
3337
- });
3338
- ctrls.appendChild(batchBtn);
3339
- head.appendChild(ctrls);
3340
- head.addEventListener("click", () => {
3341
- onToggleNodeExpand(node.prefix);
3342
- });
3343
- groupEl.appendChild(head);
4019
+ groupEl.appendChild(buildCollapsibleGroupHeaderDom({
4020
+ t,
4021
+ headerAttr: "data-tools-node-header",
4022
+ headerValue: node.prefix,
4023
+ batchAttr: "data-tools-batch",
4024
+ batchValue: node.prefix,
4025
+ labelText: node.label,
4026
+ isOpen,
4027
+ total: node.total,
4028
+ disabledCount: node.disabled,
4029
+ writable,
4030
+ depth,
4031
+ onToggleOpen: () => onToggleNodeExpand(node.prefix),
4032
+ onBatchToggle: () => onCommitSet(toggleNodeInSet(disabledSet, node))
4033
+ }));
3344
4034
  if (isOpen) for (const child of node.children) groupEl.appendChild(buildNodeDom(child, depth + 1));
3345
4035
  return groupEl;
3346
4036
  };
3347
- return treeNodes.map((n) => buildNodeDom(n, 0));
4037
+ const buildScopeGroupDom = (group) => {
4038
+ const scopeNodeKey = `scope:${group.scope}`;
4039
+ const isOpen = searchQuery.trim() !== "" || expandedToolNodes.has(scopeNodeKey);
4040
+ const groupEl = globalThis.document.createElement("div");
4041
+ groupEl.setAttribute("data-tools-scope-group", group.scope);
4042
+ groupEl.appendChild(buildCollapsibleGroupHeaderDom({
4043
+ t,
4044
+ headerAttr: "data-tools-node-header",
4045
+ headerValue: scopeNodeKey,
4046
+ extraHeaderAttr: {
4047
+ name: "data-tools-scope-header",
4048
+ value: group.scope
4049
+ },
4050
+ batchAttr: "data-tools-scope-batch",
4051
+ batchValue: group.scope,
4052
+ labelText: t(`settings.tools.scope.${group.scope}`),
4053
+ isOpen,
4054
+ total: group.total,
4055
+ disabledCount: group.disabled,
4056
+ writable,
4057
+ depth: 0,
4058
+ onToggleOpen: () => onToggleNodeExpand(scopeNodeKey),
4059
+ onBatchToggle: () => onCommitSet(toggleToolScopeGroupInSet(disabledSet, group))
4060
+ }));
4061
+ if (isOpen) for (const child of group.children) groupEl.appendChild(buildNodeDom(child, 1));
4062
+ return groupEl;
4063
+ };
4064
+ return scopeGroups.map(buildScopeGroupDom);
3348
4065
  }
3349
4066
  function buildSkillGroupDomNodes(opts) {
3350
4067
  const { t, skillsCatalog, disabledSet, searchQuery, expandedSkillScopes, includeProject, writable, onToggleScopeExpand, onCommitSet, onPreviewSkill } = opts;
@@ -3468,13 +4185,20 @@ window.__ModuleLoader__.load({
3468
4185
  return groups.map(buildGroupDom);
3469
4186
  }
3470
4187
  function syncAnchoredPopoverShell(opts) {
3471
- const { root, popoverAttr, kind, t, titleKey, hintKey, searchPlaceholderKey, searchQuery, totalCount, disabledInCatalogCount, hasAnyDisabled, customized, writable, onSearchChange, onEnableAll, onResetOverride, onRefreshCatalog, onClose, renderTreeNodes } = opts;
4188
+ const { root, popoverAttr, kind, t, titleKey, hintKey, searchPlaceholderKey, searchQuery, totalCount, disabledInCatalogCount, hasAnyDisabled, customized, writable, compact = false, onSearchChange, onEnableAll, onResetOverride, onRefreshCatalog, onClose, renderTreeNodes } = opts;
4189
+ removePopoverBackdrop(root);
4190
+ if (compact) {
4191
+ const backdrop = globalThis.document.createElement("div");
4192
+ backdrop.setAttribute(POPOVER_BACKDROP_ATTR, kind);
4193
+ backdrop.addEventListener("click", onClose);
4194
+ root.appendChild(backdrop);
4195
+ }
3472
4196
  const enableAllAttr = `data-${kind}-popover-enable-all`;
3473
4197
  const refreshAttr = `data-${kind}-popover-refresh`;
3474
4198
  let pop = root.querySelector(`[${popoverAttr}]`);
3475
4199
  if (pop === null) {
3476
- pop = globalThis.document.createElement("aside");
3477
- pop.setAttribute(popoverAttr, "");
4200
+ const newPop = globalThis.document.createElement("aside");
4201
+ newPop.setAttribute(popoverAttr, "");
3478
4202
  const head = globalThis.document.createElement("div");
3479
4203
  head.setAttribute("data-tools-popover-header", "");
3480
4204
  const titleWrap = globalThis.document.createElement("div");
@@ -3493,9 +4217,11 @@ window.__ModuleLoader__.load({
3493
4217
  closeBtn.setAttribute("data-tools-popover-close", "");
3494
4218
  if (kind === "skills") closeBtn.setAttribute("data-skills-popover-close", "");
3495
4219
  closeBtn.textContent = "✕";
3496
- closeBtn.addEventListener("click", onClose);
4220
+ closeBtn.addEventListener("click", () => {
4221
+ popoverLiveHandlers.get(newPop)?.onClose();
4222
+ });
3497
4223
  head.appendChild(closeBtn);
3498
- pop.appendChild(head);
4224
+ newPop.appendChild(head);
3499
4225
  const body = globalThis.document.createElement("div");
3500
4226
  body.setAttribute("data-tools-popover-body", "");
3501
4227
  const overrideSlot = globalThis.document.createElement("div");
@@ -3510,7 +4236,7 @@ window.__ModuleLoader__.load({
3510
4236
  searchInput.setAttribute("placeholder", t(searchPlaceholderKey));
3511
4237
  searchInput.value = searchQuery;
3512
4238
  searchInput.addEventListener("input", () => {
3513
- onSearchChange(searchInput.value);
4239
+ popoverLiveHandlers.get(newPop)?.onSearchChange(searchInput.value);
3514
4240
  });
3515
4241
  toolbar.appendChild(searchInput);
3516
4242
  const actions = globalThis.document.createElement("div");
@@ -3519,14 +4245,18 @@ window.__ModuleLoader__.load({
3519
4245
  enableAllBtn.setAttribute("type", "button");
3520
4246
  enableAllBtn.setAttribute("data-tools-btn", "");
3521
4247
  enableAllBtn.setAttribute(enableAllAttr, "");
3522
- enableAllBtn.addEventListener("click", onEnableAll);
4248
+ enableAllBtn.addEventListener("click", () => {
4249
+ popoverLiveHandlers.get(newPop)?.onEnableAll();
4250
+ });
3523
4251
  actions.appendChild(enableAllBtn);
3524
4252
  const refreshBtn = globalThis.document.createElement("button");
3525
4253
  refreshBtn.setAttribute("type", "button");
3526
4254
  refreshBtn.setAttribute("data-tools-btn", "");
3527
4255
  refreshBtn.setAttribute(refreshAttr, "");
3528
4256
  refreshBtn.textContent = t("settings.tools.refresh");
3529
- refreshBtn.addEventListener("click", onRefreshCatalog);
4257
+ refreshBtn.addEventListener("click", () => {
4258
+ popoverLiveHandlers.get(newPop)?.onRefreshCatalog();
4259
+ });
3530
4260
  actions.appendChild(refreshBtn);
3531
4261
  toolbar.appendChild(actions);
3532
4262
  body.appendChild(toolbar);
@@ -3534,9 +4264,17 @@ window.__ModuleLoader__.load({
3534
4264
  treeContainer.setAttribute("data-tools-popover-tree", "");
3535
4265
  if (kind === "skills") treeContainer.setAttribute("data-skills-popover-tree", "");
3536
4266
  body.appendChild(treeContainer);
3537
- pop.appendChild(body);
3538
- root.appendChild(pop);
4267
+ newPop.appendChild(body);
4268
+ root.appendChild(newPop);
4269
+ pop = newPop;
3539
4270
  }
4271
+ popoverLiveHandlers.set(pop, {
4272
+ onSearchChange,
4273
+ onEnableAll,
4274
+ onRefreshCatalog,
4275
+ onClose
4276
+ });
4277
+ pop.setAttribute("data-compact", compact ? "true" : "false");
3540
4278
  syncOverrideBanner(pop, t, customized, writable, onResetOverride);
3541
4279
  const enableAllBtn = pop.querySelector(`[${enableAllAttr}]`);
3542
4280
  if (enableAllBtn !== null) {
@@ -3550,7 +4288,7 @@ window.__ModuleLoader__.load({
3550
4288
  return pop;
3551
4289
  }
3552
4290
  function syncToolsPopover(props) {
3553
- const { root, t, toolsCatalog, disabledSet, disabledInCatalog, customized = false, searchQuery, expandedToolNodes, writable, onSearchChange, onToggleNodeExpand, onCommitSet, onResetOverride, onRefreshCatalog, onClose } = props;
4291
+ const { root, t, toolsCatalog, disabledSet, disabledInCatalog, customized = false, searchQuery, expandedToolNodes, writable, compact = false, onSearchChange, onToggleNodeExpand, onCommitSet, onResetOverride, onRefreshCatalog, onClose } = props;
3554
4292
  return syncAnchoredPopoverShell({
3555
4293
  root,
3556
4294
  popoverAttr: TOOLS_POPOVER_ATTR,
@@ -3565,6 +4303,7 @@ window.__ModuleLoader__.load({
3565
4303
  hasAnyDisabled: disabledSet.size > 0,
3566
4304
  customized,
3567
4305
  writable,
4306
+ compact,
3568
4307
  onSearchChange,
3569
4308
  onEnableAll: () => onCommitSet(new Set()),
3570
4309
  onResetOverride,
@@ -3583,7 +4322,7 @@ window.__ModuleLoader__.load({
3583
4322
  });
3584
4323
  }
3585
4324
  function syncSkillsPopover(props) {
3586
- const { root, t, skillsCatalog, disabledSet, disabledInCatalog, customized = false, searchQuery, expandedSkillScopes, writable, onSearchChange, onToggleScopeExpand, onCommitSet, onResetOverride, onRefreshCatalog, onPreviewSkill, onClose } = props;
4325
+ const { root, t, skillsCatalog, disabledSet, disabledInCatalog, customized = false, searchQuery, expandedSkillScopes, writable, compact = false, onSearchChange, onToggleScopeExpand, onCommitSet, onResetOverride, onRefreshCatalog, onPreviewSkill, onClose } = props;
3587
4326
  return syncAnchoredPopoverShell({
3588
4327
  root,
3589
4328
  popoverAttr: SKILLS_POPOVER_ATTR,
@@ -3598,6 +4337,7 @@ window.__ModuleLoader__.load({
3598
4337
  hasAnyDisabled: disabledSet.size > 0,
3599
4338
  customized,
3600
4339
  writable,
4340
+ compact,
3601
4341
  onSearchChange,
3602
4342
  onEnableAll: () => onCommitSet(new Set()),
3603
4343
  onResetOverride,
@@ -3622,6 +4362,12 @@ window.__ModuleLoader__.load({
3622
4362
  const SESSION_INFO_ATTR = "data-desktop-enhance-session-info";
3623
4363
  const SESSION_INFO_URL = SESSION_INFO_ROUTE;
3624
4364
  const RECONCILE_MS = 700;
4365
+ function isCompactViewport() {
4366
+ const cls = globalThis.document?.body?.getAttribute?.("class") ?? "";
4367
+ if (cls !== "" && cls.split(/\s+/).includes("dsh-remote-portrait")) return true;
4368
+ const width = globalThis.innerWidth;
4369
+ return typeof width === "number" && width > 0 && width <= 768;
4370
+ }
3625
4371
  function openSkillInHost(ctx, sessionId, name) {
3626
4372
  if (sessionId === "" || name === "") return false;
3627
4373
  const sessions = ctx.get("sessions");
@@ -3671,6 +4417,7 @@ window.__ModuleLoader__.load({
3671
4417
  function renderSignature(state) {
3672
4418
  return JSON.stringify({
3673
4419
  minimized: state.minimized,
4420
+ compact: state.compact,
3674
4421
  collapsed: [...state.collapsedSections].sort(),
3675
4422
  sections: state.sections,
3676
4423
  toolsEnabled: state.toolsEnabled,
@@ -3780,7 +4527,7 @@ window.__ModuleLoader__.load({
3780
4527
  let unsubscribeSource = null;
3781
4528
  let hostProjection = null;
3782
4529
  let fetchToken = 0;
3783
- let minimized = false;
4530
+ let userMinimized = null;
3784
4531
  const collapsedSections = new Set();
3785
4532
  let mountedPanel = null;
3786
4533
  let mountedToolsPopover = null;
@@ -3793,7 +4540,7 @@ window.__ModuleLoader__.load({
3793
4540
  let toolsCatalogAttempted = false;
3794
4541
  let toolsLoading = false;
3795
4542
  let toolsSearchQuery = "";
3796
- const expandedToolNodes = new Set();
4543
+ const expandedToolNodes = new Set(TOOL_SCOPE_ORDER.map((s) => `scope:${s}`));
3797
4544
  let defaultExpandedToolsSeeded = false;
3798
4545
  const skillsChannel = createPolicyChannel(skillsBridge);
3799
4546
  let skillsCatalog = [];
@@ -3814,13 +4561,16 @@ window.__ModuleLoader__.load({
3814
4561
  mountedSkillsPopover = null;
3815
4562
  }
3816
4563
  }
3817
- function removePanel() {
4564
+ function removePanel(root) {
4565
+ const fallbackParent = mountedPanel?.parentElement ?? mountedPanel?.parentNode ?? null;
4566
+ const hostRoot = root ?? fallbackParent;
3818
4567
  if (mountedPanel !== null) {
3819
4568
  mountedPanel.remove();
3820
4569
  mountedPanel = null;
3821
4570
  }
3822
4571
  removeToolsPopover();
3823
4572
  removeSkillsPopover();
4573
+ removePopoverBackdrop(hostRoot);
3824
4574
  lastSignature = "";
3825
4575
  }
3826
4576
  function detach() {
@@ -3838,6 +4588,7 @@ window.__ModuleLoader__.load({
3838
4588
  activeSessionId = null;
3839
4589
  hostProjection = null;
3840
4590
  activePopover = null;
4591
+ userMinimized = null;
3841
4592
  removePanel();
3842
4593
  }
3843
4594
  function ensureToolsCatalog(root, sessionId, force = false) {
@@ -3856,8 +4607,11 @@ window.__ModuleLoader__.load({
3856
4607
  toolsCatalogLoaded = true;
3857
4608
  if (!defaultExpandedToolsSeeded) {
3858
4609
  defaultExpandedToolsSeeded = true;
3859
- const initialTree = buildToolPrefixTree(toolsCatalog, toolsChannel.effectiveSet(sessionId), "");
3860
- for (const node of initialTree) if (node.kind === "node") expandedToolNodes.add(node.prefix);
4610
+ const initialGroups = buildToolScopeGroups(toolsCatalog, toolsChannel.effectiveSet(sessionId), "");
4611
+ for (const group of initialGroups) {
4612
+ expandedToolNodes.add(`scope:${group.scope}`);
4613
+ for (const node of group.children) if (node.kind === "node") expandedToolNodes.add(node.prefix);
4614
+ }
3861
4615
  }
3862
4616
  lastSignature = "";
3863
4617
  const current = findActiveChatConversation();
@@ -3920,9 +4674,12 @@ window.__ModuleLoader__.load({
3920
4674
  const clientProjection = currentClientProjection();
3921
4675
  const sections = buildSessionInfoSections(mergeSkillProjections(hostProjection, clientProjection), t);
3922
4676
  const totalItems = sections.reduce((sum, sec) => sum + sec.items.length, 0);
4677
+ const compact = isCompactViewport();
4678
+ const minimized = userMinimized ?? compact;
3923
4679
  const sig = renderSignature({
3924
4680
  sections,
3925
4681
  minimized,
4682
+ compact,
3926
4683
  collapsedSections,
3927
4684
  toolsEnabled,
3928
4685
  toolsWritable,
@@ -3942,6 +4699,7 @@ window.__ModuleLoader__.load({
3942
4699
  });
3943
4700
  let panel = root.querySelector(`[${SESSION_INFO_ATTR}]`);
3944
4701
  if (panel === null) {
4702
+ if (mountedPanel !== null) removePanel();
3945
4703
  panel = globalThis.document.createElement("aside");
3946
4704
  panel.setAttribute(SESSION_INFO_ATTR, "");
3947
4705
  root.appendChild(panel);
@@ -3951,6 +4709,7 @@ window.__ModuleLoader__.load({
3951
4709
  if (sig === lastSignature) return;
3952
4710
  lastSignature = sig;
3953
4711
  panel.setAttribute("data-minimized", minimized ? "true" : "false");
4712
+ panel.setAttribute("data-compact", compact ? "true" : "false");
3954
4713
  panel.setAttribute("data-empty", totalItems === 0 ? "true" : "false");
3955
4714
  const header = globalThis.document.createElement("button");
3956
4715
  header.setAttribute("type", "button");
@@ -3964,9 +4723,12 @@ window.__ModuleLoader__.load({
3964
4723
  titleWrap.appendChild(dot);
3965
4724
  const titleText = globalThis.document.createElement("span");
3966
4725
  if (minimized) {
3967
- 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)}`);
4726
+ const parts = sections.map((sec) => {
4727
+ 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)}`;
4728
+ return `${sec.shortLabel} ${String(sec.items.length)}`;
4729
+ });
3968
4730
  if (toolsEnabled && toolsCatalog.length > 0) parts.push(`${t("sessionInfo.tools.short")} ${String(enabledToolsCount)}/${String(toolsCatalog.length)}`);
3969
- titleText.textContent = `${t("sessionInfo.title")} · ${parts.join(" · ")}`;
4731
+ titleText.textContent = compact ? parts.join(" · ") : `${t("sessionInfo.title")} · ${parts.join(" · ")}`;
3970
4732
  } else titleText.textContent = t("sessionInfo.title");
3971
4733
  titleWrap.appendChild(titleText);
3972
4734
  header.appendChild(titleWrap);
@@ -3975,11 +4737,23 @@ window.__ModuleLoader__.load({
3975
4737
  toggleIcon.textContent = minimized ? "▾" : "−";
3976
4738
  header.appendChild(toggleIcon);
3977
4739
  header.addEventListener("click", () => {
3978
- minimized = !minimized;
3979
- if (minimized) activePopover = null;
4740
+ userMinimized = !(userMinimized ?? isCompactViewport());
4741
+ if (userMinimized) activePopover = null;
3980
4742
  paint(root, sessionId);
3981
4743
  });
3982
4744
  const children = [header];
4745
+ const closePopover = () => {
4746
+ activePopover = null;
4747
+ lastSignature = "";
4748
+ paint(root, sessionId);
4749
+ };
4750
+ const openSkillPreview = (skillName) => {
4751
+ openSkillInHost(ctx, sessionId, skillName);
4752
+ if (compact) {
4753
+ userMinimized = true;
4754
+ closePopover();
4755
+ }
4756
+ };
3983
4757
  if (!minimized) {
3984
4758
  for (const sec of sections) {
3985
4759
  const secCollapsed = collapsedSections.has(sec.id);
@@ -4040,7 +4814,7 @@ window.__ModuleLoader__.load({
4040
4814
  }
4041
4815
  row.appendChild(metaSpan);
4042
4816
  row.addEventListener("click", () => {
4043
- openSkillInHost(ctx, sessionId, item.name);
4817
+ openSkillPreview(item.name);
4044
4818
  });
4045
4819
  body.appendChild(row);
4046
4820
  }
@@ -4088,6 +4862,7 @@ window.__ModuleLoader__.load({
4088
4862
  searchQuery: toolsSearchQuery,
4089
4863
  expandedToolNodes,
4090
4864
  writable: toolsWritable,
4865
+ compact,
4091
4866
  onSearchChange: (nextQuery) => {
4092
4867
  toolsSearchQuery = nextQuery;
4093
4868
  lastSignature = "";
@@ -4114,11 +4889,7 @@ window.__ModuleLoader__.load({
4114
4889
  onRefreshCatalog: () => {
4115
4890
  ensureToolsCatalog(root, sessionId, true);
4116
4891
  },
4117
- onClose: () => {
4118
- activePopover = null;
4119
- lastSignature = "";
4120
- paint(root, sessionId);
4121
- }
4892
+ onClose: closePopover
4122
4893
  });
4123
4894
  } else if (activePopover === "skills" && !minimized) {
4124
4895
  removeToolsPopover();
@@ -4132,6 +4903,7 @@ window.__ModuleLoader__.load({
4132
4903
  searchQuery: skillsSearchQuery,
4133
4904
  expandedSkillScopes,
4134
4905
  writable: skillsWritable,
4906
+ compact,
4135
4907
  onSearchChange: (nextQuery) => {
4136
4908
  skillsSearchQuery = nextQuery;
4137
4909
  lastSignature = "";
@@ -4158,18 +4930,13 @@ window.__ModuleLoader__.load({
4158
4930
  onRefreshCatalog: () => {
4159
4931
  ensureSkillsCatalog(root, sessionId, true);
4160
4932
  },
4161
- onPreviewSkill: (skillName) => {
4162
- openSkillInHost(ctx, sessionId, skillName);
4163
- },
4164
- onClose: () => {
4165
- activePopover = null;
4166
- lastSignature = "";
4167
- paint(root, sessionId);
4168
- }
4933
+ onPreviewSkill: openSkillPreview,
4934
+ onClose: closePopover
4169
4935
  });
4170
4936
  } else {
4171
4937
  removeToolsPopover();
4172
4938
  removeSkillsPopover();
4939
+ removePopoverBackdrop(root);
4173
4940
  }
4174
4941
  }
4175
4942
  function triggerHostRefresh(sessionId, root) {
@@ -4234,9 +5001,16 @@ window.__ModuleLoader__.load({
4234
5001
  });
4235
5002
  observer.observe(globalThis.document.documentElement, {
4236
5003
  childList: true,
4237
- subtree: true
5004
+ subtree: true,
5005
+ attributes: true,
5006
+ attributeFilter: ["class"]
4238
5007
  });
5008
+ const onResize = () => {
5009
+ sync();
5010
+ };
5011
+ globalThis.addEventListener?.("resize", onResize);
4239
5012
  return () => {
5013
+ globalThis.removeEventListener?.("resize", onResize);
4240
5014
  observer.disconnect();
4241
5015
  detach();
4242
5016
  };
@@ -4246,7 +5020,7 @@ window.__ModuleLoader__.load({
4246
5020
  }
4247
5021
  //#endregion
4248
5022
  //#region \0dsh-desktop-enhance-css:/Users/lijiechengbj/projects/AI-agents/dsh-desktop-enhance/src/client/styles/enhance.css.mjs
4249
- 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-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-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-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-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";
5023
+ 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: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 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";
4250
5024
  //#endregion
4251
5025
  //#region src/client/index.tsx
4252
5026
  const inject = [
@@ -4512,15 +5286,20 @@ window.__ModuleLoader__.load({
4512
5286
  normalizeSkillProjection,
4513
5287
  buildSessionInfoSections,
4514
5288
  SESSION_INFO_ATTR,
5289
+ POPOVER_BACKDROP_ATTR,
4515
5290
  TOOLS_POPOVER_ATTR,
4516
5291
  SKILLS_POPOVER_ATTR,
4517
5292
  SESSION_INFO_URL,
5293
+ isCompactViewport,
4518
5294
  requestSessionInfo,
4519
5295
  openSkillInHost,
4520
5296
  installSessionInfo,
4521
5297
  DISABLED_TOOL_PREFIX,
4522
5298
  MAX_SESSION_OVERRIDES: 32,
5299
+ TOOL_SCOPE_ORDER,
4523
5300
  buildToolPrefixTree,
5301
+ buildToolScopeGroups,
5302
+ classifyToolOrigin,
4524
5303
  clearSessionOverride,
4525
5304
  collectNodeLeafNames,
4526
5305
  disabledToolReason,
@@ -4535,6 +5314,7 @@ window.__ModuleLoader__.load({
4535
5314
  splitToolName,
4536
5315
  toggleNodeInSet,
4537
5316
  toggleToolInSet,
5317
+ toggleToolScopeGroupInSet,
4538
5318
  updateSessionOverride,
4539
5319
  SKILL_SCOPE_ORDER,
4540
5320
  buildSkillScopeGroups,