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 +881 -101
- package/lib/index.d.ts +12 -1
- package/lib/index.js +777 -10
- package/package.json +1 -1
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
|
|
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
|
-
|
|
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) =>
|
|
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
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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
|
|
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)
|
|
907
|
-
const desc =
|
|
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:
|
|
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.
|
|
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
|
|
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:
|
|
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
|
|
3259
|
-
if (
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3477
|
-
|
|
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",
|
|
4220
|
+
closeBtn.addEventListener("click", () => {
|
|
4221
|
+
popoverLiveHandlers.get(newPop)?.onClose();
|
|
4222
|
+
});
|
|
3497
4223
|
head.appendChild(closeBtn);
|
|
3498
|
-
|
|
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",
|
|
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",
|
|
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
|
-
|
|
3538
|
-
root.appendChild(
|
|
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
|
|
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
|
|
3860
|
-
for (const
|
|
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) =>
|
|
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
|
-
|
|
3979
|
-
if (
|
|
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
|
-
|
|
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:
|
|
4162
|
-
|
|
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,
|