openclaw-openagent 1.0.9 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/src/app/remote-agent-tool.js +110 -14
  3. package/dist/src/app/types.d.ts +2 -2
  4. package/dist/src/plugin-ui/adapters/adapters/oc-2026-04.js +103 -0
  5. package/dist/src/plugin-ui/adapters/adapters/oc-2026-05.js +125 -0
  6. package/dist/src/plugin-ui/adapters/adapters/oc-2026-06.js +125 -0
  7. package/dist/src/plugin-ui/adapters/adapters/oc-unknown.js +48 -0
  8. package/dist/src/plugin-ui/adapters/oc-2026-04.js +103 -0
  9. package/dist/src/plugin-ui/adapters/oc-2026-05.js +125 -0
  10. package/dist/src/plugin-ui/adapters/oc-2026-06.js +125 -0
  11. package/dist/src/plugin-ui/adapters/oc-unknown.js +48 -0
  12. package/dist/src/plugin-ui/assets/bg.png +0 -0
  13. package/dist/src/plugin-ui/assets/icon.png +0 -0
  14. package/dist/src/plugin-ui/assets/openagent-override.js +2480 -1004
  15. package/dist/src/plugin-ui/index.d.ts +1 -1
  16. package/dist/src/plugin-ui/index.js +2 -2
  17. package/dist/src/plugin-ui/ui-extension-loader/index.d.ts +2 -1
  18. package/dist/src/plugin-ui/ui-extension-loader/index.js +5 -5
  19. package/dist/src/plugin-ui/ui-extension-loader/registry-regex.js +128 -13
  20. package/dist/src/plugin-ui/ui-extension-loader/types.d.ts +4 -1
  21. package/dist/src/state/store.d.ts +21 -0
  22. package/dist/src/state/store.js +54 -0
  23. package/dist/src/transport/oasn/oasn-invocation.d.ts +3 -0
  24. package/dist/src/transport/oasn/oasn-invocation.js +28 -12
  25. package/dist/src/transport/oasn/oasn-types.d.ts +8 -4
  26. package/index.ts +1 -1
  27. package/openclaw.plugin.json +1 -1
  28. package/package.json +5 -4
  29. package/src/app/remote-agent-tool.ts +131 -16
  30. package/src/app/types.ts +2 -2
  31. package/src/plugin-ui/adapters/oc-2026-04.js +103 -0
  32. package/src/plugin-ui/adapters/oc-2026-05.js +125 -0
  33. package/src/plugin-ui/adapters/oc-2026-06.js +125 -0
  34. package/src/plugin-ui/adapters/oc-unknown.js +48 -0
  35. package/src/plugin-ui/assets/bg.png +0 -0
  36. package/src/plugin-ui/assets/icon.png +0 -0
  37. package/src/plugin-ui/assets/openagent-override.js +2480 -1004
  38. package/src/plugin-ui/build.cjs +309 -23
  39. package/src/plugin-ui/index.ts +2 -2
  40. package/src/plugin-ui/modules/agent-book/panel/agent-book.js +187 -14
  41. package/src/plugin-ui/modules/agent-book/panel/agent-card.js +26 -10
  42. package/src/plugin-ui/modules/agent-book/panel/agent-data.js +1 -1
  43. package/src/plugin-ui/modules/agent-book/panel/inject-ui.js +149 -1
  44. package/src/plugin-ui/modules/agent-book/panel/styles.js +352 -210
  45. package/src/plugin-ui/modules/agent-book/remote-agent-tool/components-core.js +4 -2
  46. package/src/plugin-ui/modules/agent-book/remote-agent-tool/thought-chain-card.js +4 -1
  47. package/src/plugin-ui/modules/agent-book/scanner.js +17 -5
  48. package/src/plugin-ui/modules/agent-book/travelcard/travel-styles.js +5 -0
  49. package/src/plugin-ui/modules/loader/bootstrap.js +1 -1
  50. package/src/plugin-ui/modules/loader/shared-state.js +278 -0
  51. package/src/plugin-ui/modules/remote-agent/execution-card.js +385 -124
  52. package/src/plugin-ui/modules/remote-agent/native-style-adapter.js +5 -23
  53. package/src/plugin-ui/modules/remote-agent/output-card.js +97 -31
  54. package/src/plugin-ui/modules/remote-agent/render-hooks.js +149 -58
  55. package/src/plugin-ui/modules/remote-agent/styles.js +690 -523
  56. package/src/plugin-ui/modules/remote-agent/tool-card-model.js +77 -3
  57. package/src/plugin-ui/postinstall-deploy.cjs +52 -0
  58. package/src/plugin-ui/ui-extension-loader/index.ts +6 -6
  59. package/src/plugin-ui/ui-extension-loader/registry-regex.ts +131 -14
  60. package/src/plugin-ui/ui-extension-loader/types.ts +5 -1
  61. package/src/state/store.ts +80 -0
  62. package/src/transport/oasn/oasn-invocation.ts +47 -12
  63. package/src/transport/oasn/oasn-types.ts +6 -2
  64. package/src/types/openclaw-plugin-sdk-media-store.d.ts +9 -0
@@ -6,70 +6,108 @@
6
6
  // 注意:不使用 .chat-tool-card 类名,避免 scanner.js 误匹配。
7
7
 
8
8
  (function _clInjectRemoteAgentStyles() {
9
- if (document.getElementById('cl-remote-agent-styles')) return;
9
+ var oldStyle = document.getElementById('cl-remote-agent-styles');
10
+ if (oldStyle) oldStyle.remove();
10
11
  var style = document.createElement('style');
11
12
  style.id = 'cl-remote-agent-styles';
13
+ style.setAttribute('data-openagent-style', 'remote-agent');
14
+ style.setAttribute('data-openagent-host-version', CL.hostVersion || 'unknown');
15
+ style.setAttribute('data-openagent-host-adapter', (CL.hostAdapter && CL.hostAdapter.id) || 'oc-unknown');
16
+ var hostCss = (CL.hostAdapter && CL.hostAdapter.css) || {};
17
+ function _clSelectorList(selectors) {
18
+ if (!selectors) return '';
19
+ if (Array.isArray(selectors)) return selectors.filter(Boolean).join(',\n');
20
+ return String(selectors || '');
21
+ }
22
+ function _clRule(selectors, declarations) {
23
+ var selectorText = _clSelectorList(selectors);
24
+ if (!selectorText) return '';
25
+ return selectorText + ' {\n' + declarations.join('\n') + '\n}';
26
+ }
12
27
  style.textContent = [
13
- // ── RenderHook 远端 Agent 卡片接管 native tool header ──
14
- 'details.chat-tools-collapse:has(.cl-remote-agent-card),',
15
- 'details.chat-tool-msg-collapse:has(.cl-remote-agent-card),',
16
- '.chat-tools-collapse:has(.cl-remote-agent-card),',
17
- '.chat-tool-msg-collapse:has(.cl-remote-agent-card) {',
18
- ' width: 100% !important;',
19
- ' max-width: none !important;',
20
- ' box-sizing: border-box !important;',
21
- ' border: 0 !important;',
22
- ' background: transparent !important;',
23
- ' box-shadow: none !important;',
24
- '}',
25
- '/* Align output host shells with execution shells. 3.28 renders output as',
26
- ' chat-tools-collapse + .cl-output-card; some versions use chat-tool-msg-collapse.',
27
- ' Move the host shell, not the inner OpenAgent card. */',
28
- 'details.chat-tools-collapse:has(.cl-output-card),',
29
- '.chat-tools-collapse:has(.cl-output-card),',
30
- 'details.chat-tool-msg-collapse:has(.cl-remote-agent-card),',
31
- '.chat-tool-msg-collapse:has(.cl-remote-agent-card) {',
32
- ' margin-left: 12px !important;',
33
- '}',
34
- 'details.chat-tools-collapse:has(.cl-remote-agent-card) > summary.chat-tools-summary,',
35
- 'details.chat-tool-msg-collapse:has(.cl-remote-agent-card) > summary.chat-tool-msg-summary,',
36
- '.chat-tools-collapse:has(.cl-remote-agent-card) > .chat-tools-summary,',
37
- '.chat-tool-msg-collapse:has(.cl-remote-agent-card) > .chat-tool-msg-summary {',
38
- ' display: none !important;',
39
- '}',
40
- '.chat-tools-collapse__body.cl-remote-agent-host-shell > .chat-text,',
41
- '.chat-tool-msg-body.cl-remote-agent-host-shell > .chat-text {',
28
+ // ── 隐藏宿主上下文用量提示 ──
29
+ '.context-notice.context-notice--usage,',
30
+ '.context-notice .context-notice--usage {',
42
31
  ' display: none !important;',
43
32
  '}',
33
+
34
+ // ── RenderHook 远端 Agent 卡片接管 native tool header ──
35
+ _clRule(hostCss.remoteShell, [
36
+ ' width: 100% !important;',
37
+ ' max-width: 100% !important;',
38
+ ' min-width: 0 !important;',
39
+ ' box-sizing: border-box !important;',
40
+ ' border: 0 !important;',
41
+ ' background: transparent !important;',
42
+ ' box-shadow: none !important;',
43
+ ]),
44
+ '/* Align output host shells with execution shells. Keep v4 msg-collapse',
45
+ ' separate from newer tools-collapse so modern spacing never leaks into',
46
+ ' the 2026.4 DOM. Move the host shell, not the inner OpenAgent card. */',
47
+ _clRule(hostCss.outputHostMargin, [
48
+ ' margin-left: 12px !important;',
49
+ ]),
50
+ _clRule(hostCss.outputHostMarginReset, [
51
+ ' margin-left: 0 !important;',
52
+ ]),
53
+ _clRule(hostCss.summaryHidden, [
54
+ ' display: none !important;',
55
+ ]),
56
+ _clRule(hostCss.hostShellRawText, [
57
+ ' display: none !important;',
58
+ ]),
44
59
  '.cl-remote-agent-raw-hidden > .chat-text,',
45
60
  '.cl-remote-agent-raw-hidden.chat-bubble > .chat-text {',
46
61
  ' display: none !important;',
47
62
  '}',
48
63
  '/* Phase A: 不依赖 host-shell class,用 :has() 直接隐藏宿主 raw text */',
49
- '.chat-tools-collapse__body:has(.cl-remote-agent-card) > .chat-text,',
50
- '.chat-tool-msg-body:has(.cl-remote-agent-card) > .chat-text,',
51
- '.chat-tool-card__detail:has(.cl-remote-agent-card) > .chat-text,',
52
- '.chat-tools-collapse__body:has(.cl-remote-agent-output-placeholder) > .chat-text,',
53
- '.chat-tool-msg-body:has(.cl-remote-agent-output-placeholder) > .chat-text,',
54
- '.chat-tool-card__detail:has(.cl-remote-agent-output-placeholder) > .chat-text {',
55
- ' display: none !important;',
56
- '}',
57
- 'details.chat-tools-collapse:has(.cl-remote-agent-card) > .chat-tools-collapse__body,',
58
- 'details.chat-tool-msg-collapse:has(.cl-remote-agent-card) > .chat-tool-msg-body,',
59
- '.chat-tools-collapse:has(.cl-remote-agent-card) > .chat-tools-collapse__body,',
60
- '.chat-tool-msg-collapse:has(.cl-remote-agent-card) > .chat-tool-msg-body {',
61
- ' border: 0 !important;',
62
- ' outline: 0 !important;',
63
- ' background: transparent !important;',
64
- ' box-shadow: none !important;',
65
- ' padding: 0 !important;',
66
- ' margin: 0 !important;',
67
- '}',
64
+ _clRule(hostCss.rawTextCardHosts, [
65
+ ' display: none !important;',
66
+ ]),
67
+ _clRule(hostCss.rawTextPlaceholderHosts, [
68
+ ' display: none !important;',
69
+ ]),
70
+ _clRule(hostCss.hostBody, [
71
+ ' border: 0 !important;',
72
+ ' outline: 0 !important;',
73
+ ' background: transparent !important;',
74
+ ' box-shadow: none !important;',
75
+ ' padding: 0 !important;',
76
+ ' margin: 0 !important;',
77
+ ' width: 100% !important;',
78
+ ' max-width: 100% !important;',
79
+ ' min-width: 0 !important;',
80
+ ' box-sizing: border-box !important;',
81
+ ]),
68
82
  '.chat-bubble:has(.cl-remote-agent-card) {',
69
83
  ' border: 0 !important;',
70
84
  ' background: transparent !important;',
71
85
  ' box-shadow: none !important;',
72
- ' padding-top: 0 !important;',
86
+ ' padding: 10px 0 !important;',
87
+ ' width: 100%;',
88
+ ' max-width: 100% !important;',
89
+ ' min-width: 0 !important;',
90
+ ' overflow: hidden !important;',
91
+ ' box-sizing: border-box !important;',
92
+ '}',
93
+ '.chat-split-container:has(.cl-output-card),',
94
+ '.chat-main:has(.cl-output-card),',
95
+ '.chat-sidebar:has(.cl-output-card),',
96
+ '.chat-side-result:has(.cl-output-card),',
97
+ '.chat-side-result__body:has(.cl-output-card) {',
98
+ ' min-width: 0 !important;',
99
+ ' max-width: 100% !important;',
100
+ ' box-sizing: border-box !important;',
101
+ '}',
102
+ _clRule(hostCss.manualOpenReset, [
103
+ ' margin-left: 0 !important;',
104
+ ]),
105
+ // ── 外层活动组容器 ──
106
+ '.chat-activity-group__body:has(.cl-remote-agent-card) {',
107
+ ' border-radius: 14px;',
108
+ ' border: 1px solid #E5E5EA;',
109
+ ' background: #F8F9FA;',
110
+ ' margin: 8px;',
73
111
  ' padding-bottom: 0 !important;',
74
112
  '}',
75
113
  '.chat-bubble:has(.cl-remote-agent-card) > .chat-text,',
@@ -79,588 +117,725 @@
79
117
  '.cl-remote-agent-host-shell {',
80
118
  ' width: min(100%, 912px) !important;',
81
119
  ' max-width: 100% !important;',
120
+ ' min-width: 0 !important;',
82
121
  ' box-sizing: border-box !important;',
83
122
  '}',
84
- '.cl-remote-agent-host-shell.chat-tool-card,',
85
- '.cl-remote-agent-host-shell.chat-tool-card__detail,',
86
- '.cl-remote-agent-host-shell.chat-tools-collapse__body,',
87
- '.cl-remote-agent-host-shell.chat-tool-msg-body,',
88
- 'details.cl-remote-agent-host-shell {',
89
- ' border: 0 !important;',
90
- ' outline: 0 !important;',
91
- ' background: transparent !important;',
92
- ' box-shadow: none !important;',
93
- '}',
94
- '.cl-remote-agent-host-shell > summary.chat-tools-summary,',
95
- '.cl-remote-agent-host-shell > summary.chat-tool-msg-summary {',
96
- ' display: none !important;',
97
- '}',
123
+ _clRule(hostCss.hostShellReset, [
124
+ ' border: 0 !important;',
125
+ ' outline: 0 !important;',
126
+ ' background: transparent !important;',
127
+ ' box-shadow: none !important;',
128
+ ]),
129
+ _clRule(hostCss.hostShellSummary, [
130
+ ' display: none !important;',
131
+ ]),
98
132
  // ── 新卡片容器 ──
99
133
  // 覆盖 OpenClaw .chat-tool-card 的 max-height: 120px 限制
100
134
  '.cl-remote-agent-card {',
101
135
  ' max-height: none;',
102
136
  ' overflow: visible;',
103
- ' width: fit-content;',
137
+ ' width: 100%;',
104
138
  ' max-width: 100%;',
105
- ' border: 1px solid color-mix(in srgb, var(--border, rgba(47,47,51,0.10)) 85%, transparent);',
106
- ' border-radius: var(--cl-native-shell-radius, 14px);',
107
- ' padding: var(--cl-native-shell-padding, 8px);',
108
- ' background: var(--card, #fff);',
139
+ ' border: 1px solid rgba(0,0,0,0.05);',
140
+ ' border-radius: 14px;',
141
+ ' background: #fff;',
109
142
  ' display: flex;',
110
143
  ' flex-direction: column;',
111
- ' gap: var(--cl-native-shell-gap, 4px);',
112
144
  ' box-sizing: border-box;',
113
145
  '}',
146
+ _clRule(hostCss.modernCardLayout ? ['.cl-remote-agent-card'] : [], [
147
+ ' overflow: hidden;',
148
+ ' min-width: 0;',
149
+ ' gap: 0;',
150
+ ' padding: 15px;',
151
+ ]),
114
152
 
115
153
  // ── 顶部 OpenAgent 标题条 ──
116
154
  '.cl-openagent-header {',
117
- ' width: fit-content;',
118
155
  ' max-width: 100%;',
119
- ' min-height: var(--cl-native-summary-min-height, 34px);',
120
156
  ' display: flex;',
121
157
  ' align-items: center;',
122
- ' gap: var(--cl-native-summary-gap, 6px);',
123
- ' padding: var(--cl-native-summary-padding, 6px 10px);',
158
+ ' gap: 6px;',
159
+ ' height: 34px;',
160
+ ' padding: 6px 0;',
161
+ ' border-radius: 10px;',
124
162
  ' box-sizing: border-box;',
125
- ' border: 1px solid color-mix(in srgb, var(--border, rgba(47,47,51,0.10)) 85%, transparent);',
126
- ' border-radius: var(--cl-native-summary-radius, 10px);',
127
- ' background: color-mix(in srgb, var(--bg-hover, #F4F5F7) 50%, transparent);',
128
- ' color: var(--text, #2F2F33);',
163
+ ' border: none;',
164
+ ' background: transparent;',
129
165
  ' font-family: "PingFang SC", sans-serif;',
130
- ' font-size: var(--cl-native-summary-font-size, 13px);',
131
- ' line-height: var(--cl-native-summary-line-height, 1.2);',
132
166
  '}',
133
- '.cl-openagent-header-caret {',
134
- ' width: 6px;',
135
- ' color: var(--muted, rgba(47,47,51,0.45));',
136
- ' font-size: 8px;',
137
- ' line-height: 1;',
138
- ' flex: 0 0 auto;',
167
+ '.cl-openagent-header:hover {',
139
168
  '}',
140
- '.cl-openagent-header-icon {',
141
- ' position: relative;',
169
+ _clRule(!hostCss.modernCardLayout ? ['.cl-openagent-header'] : [], [
170
+ ' height: auto;',
171
+ ' padding: 16px 25px;',
172
+ ]),
173
+ _clRule(hostCss.modernCardLayout ? ['.cl-openagent-header'] : [], [
174
+ ' gap: 0;',
175
+ ' height: auto;',
176
+ ' padding: 15px;',
177
+ ]),
178
+ '/* Output mode (Figma 373:12082) */',
179
+ '.cl-exec-v2 .cl-openagent-header--output {',
180
+ ' border-radius: 10px 10px 0 0 !important;',
181
+ ' border: 1px solid rgba(229, 229, 234, 0.75) !important;',
182
+ ' background: linear-gradient(90deg, rgba(220, 38, 38, 0.09) 0%, rgba(220, 38, 38, 0) 34%),',
183
+ ' linear-gradient(90deg, rgb(253, 253, 254) 0%, rgb(253, 253, 254) 100%) !important;',
184
+ ' box-shadow: 0px 8px 11px rgba(0, 0, 0, 0.12);',
185
+ ' padding: 8px 6px !important;',
186
+ '}',
187
+ '.cl-exec-v2 .cl-openagent-header--output .cl-openagent-agent {',
188
+ ' display: none;',
189
+ '}',
190
+ '.cl-exec-v2 .cl-openagent-header--output:hover {',
191
+ ' border-color: rgba(0,0,0,0.1);',
192
+ '}',
193
+ '.cl-openagent-expand-icon {',
194
+ ' display: flex;',
195
+ ' align-items: center;',
196
+ ' justify-content: center;',
142
197
  ' width: 15px;',
143
- ' height: 14px;',
144
- ' flex: 0 0 15px;',
198
+ ' height: 15px;',
199
+ ' flex-shrink: 0;',
200
+ ' transition: transform 0.2s ease;',
145
201
  '}',
146
- '.cl-openagent-header-icon::before,',
147
- '.cl-openagent-header-icon::after {',
148
- ' content: "";',
149
- ' position: absolute;',
150
- ' width: 8px;',
151
- ' height: 8px;',
152
- ' border: 1.5px solid #10BDEB;',
153
- ' border-radius: 2px;',
154
- ' box-sizing: border-box;',
202
+ '.cl-openagent-expand-icon.cl-openagent-expanded {',
203
+ ' transform: rotate(180deg);',
155
204
  '}',
156
- '.cl-openagent-header-icon::before { left: 2px; top: 5px; }',
157
- '.cl-openagent-header-icon::after { left: 5px; top: 2px; }',
158
- '.cl-openagent-header-title {',
205
+ '.cl-openagent-badge {',
206
+ ' width: 14px;',
207
+ ' height: 14px;',
208
+ ' border-radius: 14px;',
209
+ ' background: url(./icon.png) center / contain no-repeat;',
210
+ ' flex-shrink: 0;',
211
+ ' overflow: hidden;',
212
+ '}',
213
+ _clRule(hostCss.modernCardLayout ? ['.cl-openagent-badge'] : [], [
214
+ ' background: url(./icon.png) center/cover no-repeat;',
215
+ ' margin: 0 6px;',
216
+ ]),
217
+ '.cl-openagent-text-row {',
159
218
  ' display: flex;',
160
219
  ' align-items: center;',
161
- ' gap: 3px;',
220
+ ' gap: 6px;',
162
221
  ' min-width: 0;',
222
+ ' line-height: 1.32;',
223
+ '}',
224
+ '.cl-openagent-label {',
225
+ ' font-size: 12px;',
226
+ ' font-weight: 500;',
227
+ ' color: #333;',
163
228
  ' white-space: nowrap;',
164
229
  '}',
165
- '.cl-openagent-header-primary {',
166
- ' color: var(--text, #2F2F33);',
167
- ' font-weight: 600;',
168
- ' overflow: hidden;',
169
- ' text-overflow: ellipsis;',
230
+ '.cl-openagent-agent {',
231
+ ' font-size: 12px;',
232
+ ' font-weight: 500;',
233
+ ' color: #333;',
234
+ ' white-space: nowrap;',
170
235
  '}',
171
- '.cl-openagent-header-secondary {',
172
- ' color: var(--muted, rgba(47,47,51,0.40));',
236
+ '.cl-openagent-status {',
237
+ ' font-size: 11px;',
173
238
  ' font-weight: 400;',
239
+ ' color: #666;',
240
+ ' white-space: nowrap;',
174
241
  '}',
175
- // ── Figma 内容框 ──
242
+ // ── Execution detail card (Figma 346:181) ──
176
243
  '.cl-thought-chain-content {',
177
- ' width: 100%;',
178
- ' min-height: 0;',
179
- ' box-sizing: border-box;',
180
- ' border: 1px solid color-mix(in srgb, var(--border, rgba(0,0,0,0.04)) 60%, transparent);',
181
- ' border-radius: 8px;',
182
- ' background: var(--card, #fff);',
183
- ' padding: 8px;',
184
244
  ' display: flex;',
185
245
  ' flex-direction: column;',
186
- ' align-items: flex-start;',
187
- ' gap: 12px;',
188
- '}',
189
- // ── 共享展开态宿主清理 ──
190
- 'details.chat-tools-collapse:has(.cl-thought-chain-content--execution),',
191
- 'details.chat-tools-collapse:has(.cl-output-result),',
192
- 'details.chat-tool-msg-collapse:has(.cl-thought-chain-content--execution),',
193
- 'details.chat-tool-msg-collapse:has(.cl-output-result),',
194
- '.chat-tools-collapse:has(.cl-thought-chain-content--execution),',
195
- '.chat-tools-collapse:has(.cl-output-result),',
196
- '.chat-tool-msg-collapse:has(.cl-thought-chain-content--execution),',
197
- '.chat-tool-msg-collapse:has(.cl-output-result) {',
198
- ' max-width: 100% !important;',
199
- ' display: block !important;',
200
- ' box-sizing: border-box !important;',
201
- '}',
202
- // ── 共享展开态 card 基础 ──
203
- '.cl-remote-agent-card:has(.cl-thought-chain-content--execution),',
204
- '.cl-remote-agent-card:has(.cl-output-result) {',
205
- ' /* padding/radius/gap 继承 base card,不覆盖 */',
246
+ ' gap: 16px;',
247
+ ' min-width: 0;',
248
+ ' max-width: 100%;',
206
249
  ' box-sizing: border-box;',
207
250
  '}',
208
- '.cl-remote-agent-card:has(.cl-thought-chain-content--execution:not(.cl-content-collapsed)) {',
209
- ' width: 514px !important;',
251
+ _clRule(!hostCss.modernCardLayout ? ['.cl-thought-chain-content.cl-thought-chain-content--execution'] : [], [
252
+ ' padding: 0 15px 15px;',
253
+ ]),
254
+ _clRule(hostCss.modernCardLayout ? ['.cl-thought-chain-content'] : [], [
255
+ ' margin-left: 0;',
256
+ ' width: 100%;',
257
+ ' min-width: 0;',
258
+ ' box-sizing: border-box;',
259
+ ' overflow: hidden;',
260
+ ]),
261
+ '.cl-exec-detail-card {',
262
+ ' padding: 8px 16px 8px 12px;',
263
+ ' border-radius: 8px;',
264
+ ' background: #f8f8f8 url(./bg.png) no-repeat;',
265
+ ' background-size: 100% 100%;',
266
+ ' background-position: center;',
267
+ ' width: 460px;',
210
268
  ' max-width: 100%;',
269
+ ' box-sizing: border-box;',
211
270
  '}',
212
- '.cl-remote-agent-card:has(.cl-thought-chain-content:not(.cl-content-collapsed)) .cl-openagent-header {',
213
- ' width: 100%;',
271
+ '.cl-exec-detail-row {',
272
+ ' display: flex;',
273
+ ' align-items: center;',
274
+ ' gap: 16px;',
214
275
  '}',
215
- // ── 展开内容宽度:外层 card 保持 fit-content,content 出现时自然撑开 ──
216
- '.cl-thought-chain-content--execution {',
217
- ' width: 100%;',
276
+ '.cl-exec-agent-avatar {',
277
+ ' width: 68px;',
278
+ ' height: 68px;',
279
+ ' object-fit: contain;',
280
+ ' flex-shrink: 0;',
218
281
  '}',
219
- '.cl-remote-agent-card:has(.cl-output-result) .cl-thought-chain-content {',
220
- ' width: min(900px, 100%);',
282
+ '.cl-exec-detail-info {',
283
+ ' display: flex;',
284
+ ' flex-direction: column;',
285
+ ' gap: 6px;',
286
+ ' flex: 1;',
287
+ ' min-width: 0;',
221
288
  '}',
222
- // ── output 专用 content 样式 ──
223
- '.cl-remote-agent-card:has(.cl-output-result) .cl-thought-chain-content {',
224
- ' border: 1.5px solid color-mix(in srgb, var(--border, rgba(0,0,0,0.06)) 60%, transparent);',
225
- ' border-radius: 12px;',
226
- ' padding: 12px;',
227
- ' gap: 12px;',
289
+ '.cl-exec-name-row {',
290
+ ' display: flex;',
291
+ ' align-items: center;',
292
+ ' justify-content: space-between;',
293
+ ' gap: 8px;',
294
+ ' margin-bottom: 6px;',
228
295
  '}',
229
- // ── Figma Agent pill(297:696)──
230
- '.cl-agent-pill {',
231
- ' display: inline-flex;',
296
+ '.cl-exec-agent-name {',
297
+ ' font-family: "PingFang SC", sans-serif;',
298
+ ' font-size: 17px;',
299
+ ' font-weight: 500;',
300
+ ' color: #000;',
301
+ ' margin: 0;',
302
+ ' line-height: 1;',
303
+ '}',
304
+ '.cl-exec-star-badge {',
305
+ ' display: flex;',
232
306
  ' align-items: center;',
233
- ' justify-content: center;',
234
- ' gap: 9px;',
235
- ' height: 42px;',
236
- ' min-height: 42px;',
237
- ' padding: 0 15px;',
238
- ' border: 0;',
239
- ' border-radius: 9px;',
240
- ' background: #FBFBFB;',
241
- ' box-shadow: inset 0 0 0 1.2px rgba(47,47,51,0.06);',
242
- ' width: fit-content;',
243
- ' box-sizing: border-box;',
307
+ ' gap: 2px;',
308
+ ' padding: 2px 10px 2px 8px;',
309
+ ' border-radius: 30px;',
310
+ ' background: #ebebeb;',
311
+ ' flex-shrink: 0;',
312
+ '}',
313
+ ,
314
+ ,
315
+ ,
316
+ '.cl-exec-star-count {',
317
+ ' font-family: "PingFang SC", sans-serif;',
318
+ ' font-size: 11px;',
319
+ ' font-weight: 500;',
320
+ ' color: #555;',
321
+ ' white-space: nowrap;',
322
+ '}',
323
+ '.cl-exec-agent-bio {',
324
+ ' font-family: "PingFang SC", sans-serif;',
325
+ ' font-size: 14px;',
326
+ ' font-weight: 400;',
327
+ ' color: #555;',
244
328
  ' margin: 0;',
329
+ ' line-height: 1;',
245
330
  '}',
246
- '.cl-agent-pill-avatar {',
247
- ' width: 24px;',
248
- ' height: 24px;',
249
- ' border-radius: 50%;',
250
- ' object-fit: cover;',
251
- ' flex: 0 0 24px;',
252
- ' border: 0.6px solid rgba(47,47,51,0.20);',
253
- ' box-sizing: border-box;',
331
+ _clRule(!hostCss.modernCardLayout ? ['.cl-exec-agent-bio'] : [], [
332
+ ' width: 250px;',
333
+ ' max-width: 100%;',
334
+ ' min-width: 0;',
335
+ ' box-sizing: border-box;',
336
+ ' overflow: hidden;',
337
+ ' text-overflow: ellipsis;',
338
+ ' display: -webkit-box;',
339
+ ' -webkit-line-clamp: 2;',
340
+ ' -webkit-box-orient: vertical;',
341
+ ]),
342
+
343
+ // ── Progress text (Figma 346:253) ──
344
+ '.cl-thought-chain-content.cl-content-collapsed {',
345
+ ' display: none;',
254
346
  '}',
255
- '.cl-agent-pill-name {',
256
- ' display: inline-flex;',
347
+ ,
348
+ '.cl-exec-progress-row {',
349
+ ' display: flex;',
257
350
  ' align-items: center;',
351
+ ' gap: 2px;',
352
+ '}',
353
+ '.cl-exec-progress-text {',
258
354
  ' font-family: "PingFang SC", sans-serif;',
259
- ' font-size: 15px;',
260
- ' color: rgba(47,47,51,0.90);',
355
+ ' font-size: 14px;',
356
+ ' font-weight: 400;',
261
357
  ' line-height: 1.2;',
262
- ' letter-spacing: 0;',
358
+ ' margin: 0;',
263
359
  ' white-space: nowrap;',
264
- '}',
265
- '.cl-agent-pill-at { font-weight: 600; }',
266
- '.cl-agent-pill-label { font-weight: 400; }',
267
- '.cl-thought-chain-pill-slot {',
360
+ ' background-image: linear-gradient(90deg, #555 0%, #555 36%, #eee 55%, #555 77%, #555 100%);',
361
+ ' background-size: 200% 100%;',
362
+ ' -webkit-background-clip: text;',
363
+ ' background-clip: text;',
364
+ ' -webkit-text-fill-color: transparent;',
365
+ ' animation: cl-progress-shimmer 2.5s ease-in-out infinite;',
366
+ '}',
367
+ '.cl-exec-progress-arrow {',
268
368
  ' display: flex;',
269
369
  ' align-items: center;',
270
- ' width: 100%;',
370
+ ' flex-shrink: 0;',
271
371
  '}',
272
- '.cl-thought-chain-divider {',
273
- ' display: none;',
372
+
373
+
374
+ // ── Progress shimmer keyframes ──
375
+ '@keyframes cl-progress-shimmer {',
376
+ ' 0% { background-position: 200% 0; }',
377
+ ' 100% { background-position: -200% 0; }',
378
+ '}',
379
+
380
+ // ── Output card(Figma 160:6681) ──
381
+ '.cl-output-card {',
382
+ ' background: #fff !important;',
383
+ ' border: 1.2px solid rgba(47,47,51,0.1) !important;',
384
+ ' border-radius: 24px !important;',
385
+ ' padding: 10px 15px !important;',
386
+ ' width: 100% !important;',
387
+ ' max-width: 100% !important;',
388
+ ' min-width: 0 !important;',
389
+ ' box-sizing: border-box !important;',
390
+ ' overflow: hidden;',
274
391
  '}',
275
- '.cl-thought-chain-content--execution {',
276
- ' border: 1.5px solid rgba(0,0,0,0.04);',
392
+ _clRule(hostCss.modernCardLayout ? ['.cl-output-card'] : [], [
393
+ ' gap: 10px !important;',
394
+ ]),
395
+ _clRule(!hostCss.modernCardLayout ? ['.cl-output-card'] : [], [
396
+ ' border-radius: 14px !important;',
397
+ ]),
398
+ _clRule(!hostCss.modernCardLayout ? ['.cl-remote-agent-card.cl-thought-chain.cl-output-card'] : [], [
399
+ ' padding: 0 !important;',
400
+ ]),
401
+ '.cl-output-card > .cl-thought-chain-content {',
402
+ ' background: #fff;',
403
+ ' border: 1px solid #f4f4f4;',
277
404
  ' border-radius: 12px;',
278
- ' padding: 12px;',
279
- ' gap: 18px;',
405
+ ' padding: 20px 30px;',
406
+ ' overflow: hidden;',
407
+ ' width: 100%;',
408
+ ' max-width: 100%;',
409
+ ' min-width: 0;',
410
+ ' box-sizing: border-box;',
280
411
  '}',
281
- '.cl-thought-chain-content--execution .cl-agent-pill {',
282
- ' gap: 9px;',
283
- ' height: 42px;',
284
- ' min-height: 42px;',
285
- ' padding: 0 15px;',
286
- ' border: 0;',
287
- ' border-radius: 9px;',
288
- ' box-shadow: inset 0 0 0 1.2px rgba(47,47,51,0.06);',
412
+ _clRule(!hostCss.modernCardLayout ? ['.cl-output-card > .cl-thought-chain-content'] : [], [
413
+ ' margin: 10px 15px;',
414
+ ' width: calc(100% - 30px);',
415
+ ]),
416
+ '.cl-output-card .cl-output-result {',
417
+ ' width: 100%;',
418
+ ' max-width: 100%;',
419
+ ' min-width: 0;',
420
+ ' box-sizing: border-box;',
421
+ ' overflow-wrap: anywhere;',
422
+ ' word-break: break-word;',
289
423
  '}',
290
- '.cl-thought-chain-content--execution .cl-agent-pill-avatar {',
291
- ' width: 24px;',
292
- ' height: 24px;',
293
- ' flex-basis: 24px;',
424
+ '.cl-output-card > .cl-thought-chain-content * {',
425
+ ' max-width: 100%;',
426
+ ' min-width: 0;',
427
+ ' box-sizing: border-box;',
294
428
  '}',
295
- '.cl-thought-chain-content--execution .cl-agent-pill-name {',
296
- ' font-size: 15px;',
297
- ' line-height: 1.2;',
429
+ '.cl-output-card > .cl-thought-chain-content p,',
430
+ '.cl-output-card > .cl-thought-chain-content li,',
431
+ '.cl-output-card > .cl-thought-chain-content a {',
432
+ ' overflow-wrap: anywhere;',
433
+ ' word-break: break-word;',
298
434
  '}',
299
- '.cl-remote-agent-card:has(.cl-output-result) .cl-agent-pill {',
300
- ' gap: 9px;',
301
- ' height: 42px;',
302
- ' min-height: 42px;',
303
- ' padding: 0 15px;',
435
+ '.cl-output-card > .cl-thought-chain-content hr {',
304
436
  ' border: 0;',
305
- ' border-radius: 9px;',
306
- ' box-shadow: inset 0 0 0 1.2px rgba(47,47,51,0.06);',
307
- '}',
308
- '.cl-remote-agent-card:has(.cl-output-result) .cl-agent-pill-avatar {',
309
- ' width: 24px;',
310
- ' height: 24px;',
311
- ' flex-basis: 24px;',
437
+ ' border-top: 1px solid #bdbdbd;',
438
+ '}',
439
+ '.cl-output-card > .cl-thought-chain-content pre,',
440
+ '.cl-output-card > .cl-thought-chain-content code {',
441
+ ' overflow-x: auto;',
442
+ ' white-space: pre-wrap;',
443
+ ' word-break: break-all;',
444
+ '}',
445
+ // V2 output card:统一 border/padding 与 execution card 一致
446
+ '.cl-exec-v2.cl-output-card {',
447
+ ' border: 1px solid rgba(0,0,0,0.05) !important;',
448
+ ' border-radius: 14px !important;',
449
+ ' padding: 0 !important;',
312
450
  '}',
313
- '.cl-remote-agent-card:has(.cl-output-result) .cl-agent-pill-name {',
314
- ' font-size: 15px;',
315
- ' line-height: 1.2;',
451
+ // V2 output card:去掉 content 区多余的内边距,detail card 自带动间距
452
+ '.cl-exec-v2.cl-output-card > .cl-thought-chain-content {',
453
+ ' background: transparent;',
454
+ ' border: none;',
455
+ ' border-radius: 0;',
456
+ ' padding: 0 14px !important;',
316
457
  '}',
317
458
 
318
- // ── Figma 思考步骤(297:716)──
319
- '.cl-thought-chain-steps-section {',
320
- ' width: 100%;',
459
+ // ── Collapsed state(Figma 145:3466) ──
460
+ '.cl-remote-agent-card:has(.cl-content-collapsed) {',
461
+ ' padding: 0 !important;',
462
+ '}',
463
+ // ── Output card Footer(Figma 131:2091) ──
464
+ '.cl-output-footer {',
321
465
  ' display: flex;',
322
- ' flex-direction: column;',
323
- ' align-items: flex-start;',
466
+ ' align-items: center;',
324
467
  ' gap: 4px;',
325
- ' padding: 4px 0;',
326
- ' box-sizing: border-box;',
468
+ ' font-family: "PingFang SC", sans-serif;',
469
+ ' font-size: 14px;',
470
+ ' color: #999;',
471
+ '}',
472
+ _clRule(!hostCss.modernCardLayout ? ['.cl-output-footer'] : [], [
473
+ ' padding: 10px 15px;',
474
+ ' line-height: 22px;',
475
+ ]),
476
+ '.cl-output-footer-text {',
477
+ ' white-space: nowrap;',
327
478
  '}',
328
- '.cl-tools-collapse-header {',
479
+ '.cl-output-footer-star {',
329
480
  ' display: flex;',
330
481
  ' align-items: center;',
331
- ' gap: 0;',
332
- ' padding: 0;',
333
- ' cursor: default;',
334
- ' user-select: none;',
482
+ ' flex-shrink: 0;',
335
483
  '}',
336
- '.cl-tools-collapse-header:hover { opacity: 1; }',
337
- '.cl-tools-collapse-header-icon { display: none; }',
338
- '.cl-tools-collapse-header-title {',
339
- ' font-family: "PingFang SC", sans-serif;',
340
- ' font-size: 10px;',
341
- ' font-weight: 600;',
342
- ' line-height: 1.2;',
343
- ' color: rgba(47,47,51,0.90);',
484
+ '.cl-output-footer-count {',
485
+ ' font-weight: 500;',
486
+ ' white-space: nowrap;',
344
487
  '}',
345
- '.cl-tools-collapse-body {',
346
- ' position: relative;',
347
- ' display: flex;',
348
- ' flex-direction: column;',
349
- ' gap: 4px;',
350
- ' width: 100%;',
351
- ' overflow: hidden;',
352
- ' padding: 0;',
353
- ' transition: max-height 0.25s ease, opacity 0.2s ease;',
488
+
489
+ /* ── Sidebar 面板(Figma 145:5712) ── */
490
+ '.chat-sidebar {',
491
+ ' background: #fff !important;',
492
+ ' border: 1px solid rgba(0,0,0,0.05) !important;',
493
+ ' border-radius: 14px !important;',
494
+ ' padding: 16px 20px !important;',
495
+ ' box-sizing: border-box !important;',
496
+ ' min-width: 0 !important;',
497
+ ' max-width: 100% !important;',
498
+ ' overflow-x: hidden !important;',
499
+ ' display: flex !important;',
500
+ ' flex-direction: column !important;',
501
+ ' gap: 16px !important;',
502
+ '}',
503
+ '.chat-sidebar > .sidebar-panel {',
504
+ ' display: flex !important;',
505
+ ' flex-direction: column !important;',
506
+ ' gap: 16px !important;',
507
+ ' width: 100% !important;',
508
+ ' min-width: 0 !important;',
509
+ ' max-width: 100% !important;',
510
+ ' overflow-x: hidden !important;',
511
+ ' box-sizing: border-box !important;',
512
+ ' background: transparent !important;',
354
513
  '}',
355
- '.cl-tools-collapse-body::before {',
356
- ' content: "";',
357
- ' position: absolute;',
358
- ' left: 7px;',
359
- ' top: 14px;',
360
- ' bottom: 14px;',
361
- ' width: 1px;',
362
- ' background: rgba(47,47,51,0.10);',
363
- '}',
364
- '.cl-tools-collapse-body.cl-expanded { max-height: 2000px; opacity: 1; }',
365
- '.cl-tools-collapse-body.cl-collapsed { max-height: 0; opacity: 0; }',
366
- '.cl-tools-collapse-step {',
514
+ '.chat-sidebar .sidebar-header {',
515
+ ' display: flex !important;',
516
+ ' align-items: center !important;',
517
+ ' justify-content: space-between !important;',
518
+ ' padding: 6px 0 !important;',
519
+ ' border-radius: 10px !important;',
520
+ ' width: 100% !important;',
521
+ ' border: none !important;',
522
+ ' background: transparent !important;',
523
+ '}',
524
+ '.chat-sidebar .sidebar-title {',
525
+ ' font-family: "PingFang SC", sans-serif !important;',
526
+ ' font-weight: 500 !important;',
527
+ ' font-size: 18px !important;',
528
+ ' color: #333 !important;',
529
+ ' line-height: 1.32 !important;',
530
+ '}',
531
+ '.chat-sidebar .sidebar-header button {',
532
+ ' width: 16px !important;',
533
+ ' height: 16px !important;',
534
+ ' padding: 0 !important;',
535
+ ' border: none !important;',
536
+ ' background: transparent !important;',
537
+ ' cursor: pointer !important;',
538
+ ' flex-shrink: 0 !important;',
539
+ '}',
540
+ '.chat-sidebar .sidebar-content {',
541
+ ' font-family: "PingFang SC", sans-serif !important;',
542
+ ' font-size: 14px !important;',
543
+ ' font-weight: 400 !important;',
544
+ ' line-height: 1.8 !important;',
545
+ ' color: #333 !important;',
546
+ ' width: 100% !important;',
547
+ ' min-width: 0 !important;',
548
+ ' max-width: 100% !important;',
549
+ ' padding: 0 !important;',
550
+ ' overflow-x: hidden !important;',
551
+ ' box-sizing: border-box !important;',
552
+ ' overflow-wrap: anywhere !important;',
553
+ '}',
554
+ '.chat-sidebar .sidebar-markdown {',
555
+ ' font-family: "PingFang SC", sans-serif !important;',
556
+ ' font-size: 14px !important;',
557
+ ' font-weight: 400 !important;',
558
+ ' line-height: 1.8 !important;',
559
+ ' color: #333 !important;',
560
+ ' background: transparent !important;',
561
+ ' border: none !important;',
562
+ ' padding: 0 !important;',
563
+ ' min-width: 0 !important;',
564
+ ' max-width: 100% !important;',
565
+ ' overflow-x: hidden !important;',
566
+ ' box-sizing: border-box !important;',
567
+ ' overflow-wrap: anywhere !important;',
568
+ '}',
569
+ '.chat-sidebar .sidebar-markdown * {',
570
+ ' max-width: 100% !important;',
571
+ ' min-width: 0 !important;',
572
+ ' box-sizing: border-box !important;',
573
+ '}',
574
+ '.chat-sidebar .sidebar-markdown pre,',
575
+ '.chat-sidebar .sidebar-markdown code {',
576
+ ' white-space: pre-wrap !important;',
577
+ ' word-break: break-word !important;',
578
+ '}',
579
+ // 隐藏宿主 sidebar 自带的 "Rendered Markdown / View Raw Text" 工具栏
580
+ '.chat-sidebar .sidebar-markdown-shell__toolbar {',
581
+ ' display: none !important;',
582
+ '}',
583
+ // ═══════════════════════════════════════════════════════════════
584
+ // V2 执行卡片样式(2026.6.9+ 新版 UI)
585
+ // 所有 V2 样式在 .cl-exec-v2 下隔离,不影响旧版
586
+ // ═══════════════════════════════════════════════════════════════
587
+
588
+ // ── V2 容器 ──
589
+ '.cl-exec-v2 {',
367
590
  ' position: relative;',
368
- ' display: block;',
369
- ' width: 100%;',
591
+ ' gap: 10px;',
370
592
  ' padding: 0;',
371
- ' z-index: 1;',
372
593
  '}',
373
- '.cl-tools-collapse-step-row {',
374
- ' display: flex;',
375
- ' align-items: center;',
376
- ' gap: 8px;',
377
- ' min-height: 14px;',
594
+
595
+ // ── V2 Header(Figma 371:6987 — 红晕渐变背景 + 独立边框)──
596
+ '.cl-exec-v2 .cl-openagent-header-v2 {',
597
+ ' background: linear-gradient(90deg, rgba(220, 38, 38, 0.09) 0%, rgba(220, 38, 38, 0) 34%),',
598
+ ' linear-gradient(90deg, rgb(253, 253, 254) 0%, rgb(253, 253, 254) 100%) !important;',
599
+ ' border-bottom: 1px solid rgba(229, 229, 234, 0.75) !important;',
600
+ ' padding: 8px 6px !important;',
601
+ ' margin: 0 !important;',
602
+ ' border-radius: 10px 10px 0 0;',
603
+ ' height: auto !important;',
604
+ ' min-height: auto !important;',
605
+ ' gap: 6px;',
606
+ ' box-sizing: border-box;',
378
607
  '}',
379
- '.cl-tools-collapse-step-icon {',
380
- ' width: 14px;',
381
- ' height: 14px;',
382
- ' flex: 0 0 14px;',
383
- ' display: flex;',
384
- ' align-items: center;',
385
- ' justify-content: center;',
386
- ' background: #fff;',
608
+ '.cl-exec-v2 .cl-openagent-header-v2:hover {',
609
+ ' background: linear-gradient(90deg, rgba(220, 38, 38, 0.12) 0%, rgba(220, 38, 38, 0) 34%),',
610
+ ' linear-gradient(90deg, rgb(250, 250, 251) 0%, rgb(250, 250, 251) 100%) !important;',
387
611
  '}',
388
- '.cl-tools-collapse-step-dot {',
389
- ' width: 5px;',
390
- ' height: 5px;',
612
+
613
+ // ── V2 圆形灰色头像(替代小徽章)──
614
+ '.cl-exec-v2 .cl-openagent-avatar-v2 {',
615
+ ' display: inline-block;',
616
+ ' width: 24px;',
617
+ ' height: 24px;',
391
618
  ' border-radius: 50%;',
392
- ' background: #D9D9D9;',
393
- ' animation: none;',
619
+ ' background: #d0d0d0;',
620
+ ' flex-shrink: 0;',
621
+ ' margin-right: 4px;',
394
622
  '}',
395
- '.cl-tools-collapse-step-dot::before,',
396
- '.cl-tools-collapse-step-dot::after,',
397
- '.cl-tools-collapse-step-dot span {',
398
- ' content: none;',
399
- ' display: none;',
623
+
624
+ // ── V2 隐藏旧版 OASN 小徽章和 @agentName ──
625
+ '.cl-exec-v2 .cl-openagent-badge,',
626
+ '.cl-exec-v2 .cl-openagent-agent {',
627
+ ' display: none !important;',
628
+ '}',
629
+ // ── V2 隐藏步骤标题栏(▼ + "思考中..."),保留进度文字行 ──
630
+ '.cl-exec-v2 .cl-tools-collapse-header-v2 {',
631
+ ' display: none !important;',
400
632
  '}',
401
- '.cl-tools-collapse-step-check {',
633
+
634
+ // ── V2 Detail Card(大头像 + 右置星级 + 网格点背景)──
635
+ '.cl-exec-v2 .cl-exec-detail-card-v2 {',
636
+ ' max-width: 488px !important;',
637
+ ' width: 100% !important;',
638
+ ' padding: 8px 16px 8px 12px !important;',
639
+ ' padding-right: 90px !important;',
640
+ ' border-radius: 12px !important;',
641
+ ' background: #f7f7f8 !important;',
642
+ ' margin: 12px 14px 14px 14px !important;',
643
+ ' margin-top: 0 !important;',
644
+ ' margin-left: 0 !important;',
402
645
  ' position: relative;',
403
- ' width: 14px;',
404
- ' height: 14px;',
405
- ' border-radius: 50%;',
406
- ' background: #D9D9D9;',
646
+ ' overflow: hidden;',
647
+ ' box-sizing: border-box;',
407
648
  '}',
408
- '.cl-tools-collapse-step-check::after {',
649
+ /* 四角网格点装饰 */
650
+ '.cl-exec-v2 .cl-exec-detail-card-v2::before,',
651
+ '.cl-exec-v2 .cl-exec-detail-card-v2::after {',
409
652
  ' content: "";',
410
653
  ' position: absolute;',
411
- ' left: 4px;',
412
- ' top: 3px;',
413
- ' width: 4px;',
414
- ' height: 7px;',
415
- ' border: solid #fff;',
416
- ' border-width: 0 1.3px 1.3px 0;',
417
- ' transform: rotate(45deg);',
418
- '}',
419
- '.cl-tools-collapse-step-title {',
420
- ' font-family: "PingFang SC", sans-serif;',
421
- ' font-size: 9.5px;',
422
- ' font-weight: 400;',
423
- ' line-height: 1.32;',
424
- ' color: rgba(47,47,51,0.40);',
425
- ' white-space: nowrap;',
426
- ' overflow: hidden;',
427
- ' text-overflow: ellipsis;',
654
+ ' width: 40px;',
655
+ ' height: 40px;',
656
+ ' background-image: radial-gradient(circle, #ddd 1px, transparent 1px);',
657
+ ' background-size: 8px 8px;',
658
+ ' opacity: 0.5;',
428
659
  '}',
429
- '.cl-tools-collapse-step-detail {',
430
- ' margin: 2px 0 0 22px;',
431
- ' font-family: "PingFang SC", sans-serif;',
432
- ' font-size: 9px;',
433
- ' line-height: 1.32;',
434
- ' color: rgba(47,47,51,0.40);',
660
+ '.cl-exec-v2 .cl-exec-detail-card-v2::before {',
661
+ ' top: 8px;',
662
+ ' left: 8px;',
435
663
  '}',
436
- '.cl-thought-chain-content--execution .cl-thought-chain-steps-section {',
437
- ' gap: 6px;',
438
- ' padding: 6px 0;',
664
+ '.cl-exec-v2 .cl-exec-detail-card-v2::after {',
665
+ ' bottom: 8px;',
666
+ ' right: 8px;',
439
667
  '}',
440
- '.cl-thought-chain-content--execution .cl-tools-collapse-header-title {',
441
- ' font-size: 15px;',
442
- ' line-height: 1.2;',
668
+
669
+ '.cl-exec-v2 .cl-exec-detail-row-v2 {',
670
+ ' display: flex;',
671
+ ' gap: 16px;',
443
672
  '}',
444
- '.cl-thought-chain-content--execution .cl-tools-collapse-body {',
673
+
674
+ '.cl-exec-v2 .cl-exec-detail-info-v2 {',
675
+ ' display: flex;',
676
+ ' flex-direction: column;',
445
677
  ' gap: 6px;',
678
+ ' flex: 1;',
679
+ ' min-width: 0;',
446
680
  '}',
447
- '.cl-thought-chain-content--execution .cl-tools-collapse-body::before {',
448
- ' left: 10px;',
449
- ' top: 21px;',
450
- ' bottom: 21px;',
451
- ' width: 1px;',
452
- ' background: #DBDBDB;',
453
- ' transform: scaleX(0.3);',
454
- ' transform-origin: left center;',
455
- '}',
456
- '.cl-thought-chain-content--execution .cl-tools-collapse-step-row {',
457
- ' gap: 12px;',
458
- ' min-height: 21px;',
459
- '}',
460
- '.cl-thought-chain-content--execution .cl-tools-collapse-step-icon {',
461
- ' width: 21px;',
462
- ' height: 21px;',
463
- ' flex-basis: 21px;',
464
- '}',
465
- '.cl-thought-chain-content--execution .cl-tools-collapse-step-dot {',
466
- ' width: 6px;',
467
- ' height: 6px;',
468
- ' background: #DCDCDC;',
469
- '}',
470
- '.cl-thought-chain-content--execution .cl-tools-collapse-step-check {',
471
- ' width: 15px;',
472
- ' height: 15px;',
473
- ' background: #DCDCDC;',
474
- '}',
475
- '.cl-thought-chain-content--execution .cl-tools-collapse-step-check::after {',
476
- ' left: 4px;',
477
- ' top: 2px;',
478
- ' width: 5px;',
479
- ' height: 8px;',
480
- ' border-width: 0 1.4px 1.4px 0;',
681
+
682
+ // ── V2 大头像 68×68 ──
683
+ '.cl-exec-v2 .cl-exec-agent-avatar-v2 {',
684
+ ' width: 68px !important;',
685
+ ' height: 68px !important;',
686
+ ' border-radius: 50% !important;',
687
+ ' object-fit: cover;',
688
+ ' flex-shrink: 0;',
481
689
  '}',
482
- '.cl-thought-chain-content--execution .cl-tools-collapse-step-title {',
483
- ' font-size: 14px;',
484
- ' line-height: 1.32;',
690
+
691
+ // ── V2 名称 ~20px/600/黑色 ──
692
+ '.cl-exec-v2 .cl-exec-agent-name-v2 {',
693
+ ' font-family: "PingFang SC", sans-serif;',
694
+ ' font-size: 20px !important;',
695
+ ' font-weight: 600 !important;',
696
+ ' color: #000 !important;',
697
+ ' margin: 0;',
698
+ ' line-height: 1.3;',
485
699
  '}',
486
- '.cl-thought-chain-content--execution .cl-tools-collapse-step-detail {',
487
- ' display: none;',
700
+
701
+ // ── V2 描述 ~14px/400/灰色 ──
702
+ '.cl-exec-v2 .cl-exec-agent-bio-v2 {',
703
+ ' font-family: "PingFang SC", sans-serif;',
704
+ ' font-size: 14px !important;',
705
+ ' font-weight: 400;',
706
+ ' color: #888 !important;',
707
+ ' margin: 0;',
708
+ ' line-height: 1.4;',
488
709
  '}',
489
710
 
490
- // ── output 等待渲染完成前,隐藏整张 result card 和宿主 shell ──
491
- 'details.chat-tools-collapse:has(.cl-output-card--pending),',
492
- 'details.chat-tool-msg-collapse:has(.cl-output-card--pending),',
493
- '.chat-tools-collapse:has(.cl-output-card--pending),',
494
- '.chat-tool-msg-collapse:has(.cl-output-card--pending) {',
495
- ' display: none !important;',
711
+ // ── V2 星级右置到卡片右上角 ──
712
+ '.cl-exec-v2 .cl-exec-star-badge-v2 {',
713
+ ' position: absolute;',
714
+ ' right: 24px;',
715
+ ' top: 20px;',
716
+ ' display: flex;',
717
+ ' align-items: center;',
718
+ ' gap: 4px;',
719
+ ' padding: 4px 12px;',
720
+ ' border-radius: 30px;',
721
+ ' background: #ebebeb;',
722
+ ' z-index: 1;',
496
723
  '}',
497
- '.cl-output-card--pending {',
498
- ' display: none !important;',
724
+ '.cl-exec-v2 .cl-exec-star-count-v2 {',
725
+ ' font-family: "PingFang SC", sans-serif;',
726
+ ' font-size: 13px;',
727
+ ' font-weight: 500;',
728
+ ' color: #555;',
729
+ ' white-space: nowrap;',
499
730
  '}',
500
731
 
501
- // ── 结果展示区 ──
502
- '.cl-output-result {',
503
- ' margin-top: 4px;',
732
+ // ── V2 Progress Row(Figma 373:9765 — shimmer 渐变文字 + 箭头)──
733
+ '.cl-exec-v2 .cl-exec-progress-row-v2 {',
734
+ ' display: flex;',
735
+ ' align-items: center;',
736
+ ' gap: 2px;',
737
+ ' margin-top: 16px;',
738
+ ' padding: 0 4px;',
739
+ '}',
740
+ '.cl-exec-v2 .cl-exec-progress-row-v2 .cl-exec-progress-text {',
504
741
  ' font-family: "PingFang SC", sans-serif;',
505
- ' font-size: 13px;',
506
- ' line-height: 1.6;',
507
- ' color: #2F2F33;',
508
- ' word-break: break-word;',
742
+ ' font-size: 14px;',
743
+ ' font-weight: 400;',
744
+ ' line-height: 1.2;',
745
+ ' margin: 0;',
746
+ ' white-space: nowrap;',
747
+ ' background-image: linear-gradient(90deg, #555 0%, #555 36%, #eee 55%, #555 77%, #555 100%);',
748
+ ' background-size: 200% 100%;',
749
+ ' -webkit-background-clip: text;',
750
+ ' background-clip: text;',
751
+ ' -webkit-text-fill-color: transparent;',
752
+ ' animation: cl-progress-shimmer 2.5s ease-in-out infinite;',
753
+ '}',
754
+ '.cl-exec-v2 .cl-exec-progress-row-v2 .cl-exec-progress-arrow {',
755
+ ' display: flex;',
756
+ ' align-items: center;',
757
+ ' flex-shrink: 0;',
758
+ ' opacity: 1;',
509
759
  '}',
510
- '.cl-output-result--pending {',
760
+
761
+ // ── V2 隐藏旧版 name-row(星级原来在名称旁边)──
762
+ '.cl-exec-v2 .cl-exec-name-row,',
763
+ '.cl-exec-v2 .cl-exec-star-badge:not(.cl-exec-star-badge-v2) {',
511
764
  ' display: none !important;',
512
765
  '}',
513
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result {',
514
- ' width: 100%;',
515
- ' max-height: 600px;',
516
- ' overflow-y: auto;',
517
- ' overflow-x: hidden;',
518
- ' box-sizing: border-box;',
519
- ' margin-top: 0;',
520
- ' padding: 6px 30px 24px 18px;',
521
- ' border: 0;',
522
- ' border-radius: 0;',
523
- ' background: transparent;',
524
- ' font-size: 14.25px;',
525
- ' line-height: 1.42;',
526
- ' color: rgba(47,47,51,0.50);',
527
- ' scrollbar-width: thin;',
528
- ' scrollbar-color: #ECECEC transparent;',
529
- '}',
530
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result::-webkit-scrollbar {',
531
- ' width: 4.5px;',
766
+
767
+ // ─ V2 步骤列表样式(覆盖 thought-chain-card.js 默认值)──
768
+ '.cl-exec-v2 .cl-tools-collapse-body-v2 {',
769
+ ' padding: 4px 0 8px;',
532
770
  '}',
533
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result::-webkit-scrollbar-track {',
534
- ' background: transparent;',
771
+ '.cl-exec-v2 .cl-tools-collapse-step {',
772
+ ' padding: 5px 0;',
773
+ ' gap: 10px;',
535
774
  '}',
536
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result::-webkit-scrollbar-thumb {',
537
- ' background: #ECECEC;',
538
- ' border-radius: 150px;',
775
+ '.cl-exec-v2 .cl-tools-collapse-step-title {',
776
+ ' font-size: 13px;',
777
+ ' color: #555;',
539
778
  '}',
540
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result h1,',
541
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result h2 {',
542
- ' margin: 18px 0 9px;',
543
- ' font-size: 20px;',
544
- ' font-weight: 600;',
545
- ' line-height: 1.2;',
546
- ' color: rgba(47,47,51,0.90);',
779
+ '.cl-exec-v2 .cl-tools-collapse-step-check {',
780
+ ' width: 12px;',
781
+ ' height: 12px;',
782
+ ' background: #ccc;',
547
783
  '}',
548
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result h1:first-child,',
549
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result h2:first-child {',
550
- ' margin-top: 6px;',
784
+ '.cl-exec-v2 .cl-tools-collapse-step-dot {',
785
+ ' width: 14px;',
786
+ ' height: 14px;',
551
787
  '}',
552
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result h3 {',
553
- ' margin: 18px 0 9px;',
554
- ' font-size: 15px;',
555
- ' font-weight: 600;',
556
- ' line-height: 1.2;',
557
- ' color: rgba(47,47,51,0.90);',
558
- '}',
559
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result p,',
560
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result li {',
561
- ' font-size: 14.25px;',
562
- ' line-height: 1.42;',
563
- ' color: rgba(47,47,51,0.50);',
564
- '}',
565
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result strong,',
566
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result b,',
567
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result a {',
568
- ' color: rgba(47,47,51,0.90) !important;',
569
- ' font-weight: 600;',
570
- '}',
571
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result ul,',
572
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result ol {',
573
- ' padding-left: 20px;',
574
- ' margin: 6px 0;',
575
- '}',
576
- '.cl-remote-agent-card:has(.cl-output-result) .cl-output-result hr {',
577
- ' border: 0;',
578
- ' border-top: 1px solid rgba(47,47,51,0.12);',
579
- ' margin: 15px 0;',
580
- '}',
581
- '.cl-output-result p { margin: 4px 0; }',
582
- '.cl-output-result ul, .cl-output-result ol { padding-left: 20px; margin: 4px 0; }',
583
- '.cl-output-result code {',
584
- ' background: rgba(0,0,0,0.05);',
585
- ' padding: 1px 4px;',
586
- ' border-radius: 3px;',
587
- ' font-size: 12px;',
788
+ '.cl-exec-v2 .cl-tools-collapse-step-dot::before,',
789
+ '.cl-exec-v2 .cl-tools-collapse-step-dot::after,',
790
+ '.cl-exec-v2 .cl-tools-collapse-step-dot span {',
791
+ ' width: 3px;',
792
+ ' height: 3px;',
793
+ ' background: #bbb;',
588
794
  '}',
589
795
 
590
- // ── 附件下载区 ──
591
- '.cl-openagent-media-links {',
796
+ // ── V2 Footer(-由xxx完成 + 星级)──
797
+ '.cl-exec-v2 .cl-output-footer-v2 {',
592
798
  ' display: flex;',
593
- ' flex-wrap: wrap;',
594
- ' gap: 8px;',
595
- ' width: 100%;',
596
- ' box-sizing: border-box;',
597
- ' padding: 6px 18px 12px;',
598
- '}',
599
- '.cl-openagent-media-link {',
600
- ' display: inline-grid;',
601
- ' grid-template-columns: auto auto;',
602
- ' grid-template-areas: "icon action" "icon file";',
603
799
  ' align-items: center;',
604
- ' column-gap: 8px;',
605
- ' row-gap: 1px;',
606
- ' max-width: min(100%, 360px);',
607
- ' box-sizing: border-box;',
608
- ' padding: 8px 10px;',
609
- ' border: 1px solid rgba(47,47,51,0.12);',
610
- ' border-radius: 8px;',
611
- ' background: rgba(47,47,51,0.03);',
612
- ' color: rgba(47,47,51,0.90) !important;',
613
- ' text-decoration: none !important;',
800
+ ' gap: 4px;',
614
801
  ' font-family: "PingFang SC", sans-serif;',
802
+ ' font-size: 13px;',
803
+ ' color: #999;',
804
+ ' padding: 12px;',
805
+ ' margin-top: 8px;',
615
806
  '}',
616
- '.cl-openagent-media-link:hover {',
617
- ' background: rgba(16,189,235,0.08);',
618
- ' border-color: rgba(16,189,235,0.35);',
619
- '}',
620
- '.cl-openagent-media-link-icon {',
621
- ' grid-area: icon;',
622
- ' width: 28px;',
623
- ' height: 28px;',
624
- ' border-radius: 6px;',
625
- ' background: rgba(16,189,235,0.12);',
626
- ' color: #088BAE;',
627
- ' display: inline-flex;',
628
- ' align-items: center;',
629
- ' justify-content: center;',
630
- ' font-size: 11px;',
631
- ' font-weight: 700;',
807
+ '.cl-exec-v2 .cl-output-footer-v2 .cl-output-footer-text {',
808
+ ' white-space: nowrap;',
632
809
  '}',
633
- '.cl-openagent-media-link-text {',
634
- ' grid-area: action;',
635
- ' min-width: 0;',
636
- ' font-size: 13px;',
637
- ' font-weight: 600;',
638
- ' line-height: 1.2;',
810
+ '.cl-exec-v2 .cl-output-footer-v2 .cl-output-footer-star {',
811
+ ' display: flex;',
812
+ ' align-items: center;',
813
+ ' flex-shrink: 0;',
814
+ ' margin-left: 2px;',
639
815
  '}',
640
- '.cl-openagent-media-link-file {',
641
- ' grid-area: file;',
642
- ' min-width: 0;',
643
- ' overflow: hidden;',
644
- ' text-overflow: ellipsis;',
816
+ '.cl-exec-v2 .cl-output-footer-v2 .cl-output-footer-count {',
817
+ ' font-weight: 500;',
645
818
  ' white-space: nowrap;',
646
- ' font-size: 11px;',
647
- ' line-height: 1.2;',
648
- ' color: rgba(47,47,51,0.50);',
649
819
  '}',
650
820
 
651
- // ── 错误状态 ──
652
- '.cl-remote-agent-card--error {',
653
- ' border-color: rgba(220, 38, 38, 0.3);',
654
- ' background: rgba(254, 242, 242, 0.5);',
821
+ // ── chat-text 下 p 标签样式 ──
822
+ '.cl-remote-agent-card .chat-text p {',
823
+ ' color: #2F2F33 !important;',
824
+ ' text-align: justify;',
825
+ ' font-family: "PingFang SC" !important;',
826
+ ' font-size: 14px !important;',
827
+ ' font-style: normal !important;',
828
+ ' font-weight: 400 !important;',
829
+ ' line-height: 132% !important;',
655
830
  '}',
656
831
 
657
- // ── Header 折叠/展开 ──
658
- '.cl-openagent-header:hover {',
659
- ' background: color-mix(in srgb, var(--bg-hover, #ECEDF0) 75%, transparent);',
660
- ' transition: background 0.15s ease;',
661
- '}',
662
- '.cl-content-collapsed {',
663
- ' display: none !important;',
832
+ // ── chat-text code 标签样式(去背景、去边框、加粗)──
833
+ '.chat-text code,',
834
+ '.cl-remote-agent-card .chat-text code,',
835
+ '.cl-remote-agent-card .chat-text p code {',
836
+ ' background: transparent !important;',
837
+ ' border: none !important;',
838
+ ' font-weight: 700 !important;',
664
839
  '}',
665
840
  ].join('\n');
666
841
  document.head.appendChild(style);
@@ -668,6 +843,7 @@
668
843
  // 只处理当前 cardNode 的祖先链路,不 querySelectorAll 全局
669
844
  window._clMarkRemoteAgentHostShell = function _clMarkRemoteAgentHostShell(cardNode) {
670
845
  try {
846
+ var hostAdapter = CL.hostAdapter || {};
671
847
  var node = cardNode && cardNode.parentElement;
672
848
  var hops = 0;
673
849
  while (node && node !== document.body && hops < 10) {
@@ -680,17 +856,8 @@
680
856
 
681
857
  var shouldMark = false;
682
858
  var tag = (node.tagName || '').toLowerCase();
683
- if (tag === 'details') {
684
- shouldMark = node.matches && node.matches(
685
- 'details.chat-tools-collapse, details.chat-tool-msg-collapse'
686
- );
687
- } else if (node.matches) {
688
- shouldMark = node.matches(
689
- '.chat-tool-card,' +
690
- '.chat-tool-card__detail,' +
691
- '.chat-tools-collapse__body,' +
692
- '.chat-tool-msg-body'
693
- );
859
+ if (typeof hostAdapter.isMarkableHost === 'function') {
860
+ shouldMark = hostAdapter.isMarkableHost(node);
694
861
  }
695
862
 
696
863
  if (shouldMark && node.classList) {