@auto-ai/agent 2.1.157 → 2.1.160

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 (135) hide show
  1. package/.env.example +7 -0
  2. package/dist/404/index.html +1 -1
  3. package/dist/404.html +1 -1
  4. package/dist/_next/static/chunks/0bb72b120dc81a85.js +1 -0
  5. package/dist/_next/static/chunks/0eeaf05fe8e92617.js +1 -0
  6. package/dist/_next/static/chunks/14114800ef3e692e.js +1 -0
  7. package/dist/_next/static/chunks/1d51ed7830318474.js +1 -0
  8. package/dist/_next/static/chunks/1ffb3acecdbda566.js +1 -0
  9. package/dist/_next/static/chunks/22d483db0dece6fa.js +1 -0
  10. package/dist/_next/static/chunks/289e2d5005a099d3.js +1 -0
  11. package/dist/_next/static/chunks/292d0b687a419387.js +1 -0
  12. package/dist/_next/static/chunks/2bbdc3c6bbaac93f.js +1 -0
  13. package/dist/_next/static/chunks/{87e12ecbe9521f9b.js → 314d4f64173e0e4f.js} +1 -1
  14. package/dist/_next/static/chunks/376aaeae24164c1a.js +1 -0
  15. package/dist/_next/static/chunks/39fed6244d398269.js +1 -0
  16. package/dist/_next/static/chunks/48bc54794d1c3561.js +1 -0
  17. package/dist/_next/static/chunks/5534f66638e5a2e8.js +1 -0
  18. package/dist/_next/static/chunks/5817c66b26ce8538.css +1 -0
  19. package/dist/_next/static/chunks/{4d129d4e15c8c424.js → 59baceab6698f9f7.js} +1 -1
  20. package/dist/_next/static/chunks/5d5fe2c255f43fec.js +1 -0
  21. package/dist/_next/static/chunks/61676890ad8fe194.js +1 -0
  22. package/dist/_next/static/chunks/67bb401596b3c723.js +1 -0
  23. package/dist/_next/static/chunks/{5d79b7f202080232.js → 6c49d19eb7e88b9c.js} +1 -1
  24. package/dist/_next/static/chunks/{9ccf7a8bca1730bf.js → 76a71d344cc15a9f.js} +1 -1
  25. package/dist/_next/static/chunks/7de1ab3b78f48430.js +1 -0
  26. package/dist/_next/static/chunks/{94029062f236cadc.js → 83e39d76d6f07968.js} +1 -1
  27. package/dist/_next/static/chunks/{522518d740397639.js → 91adb7bdb9870c6a.js} +1 -1
  28. package/dist/_next/static/chunks/{8f5be275907dd98c.js → 93102efda2769ba5.js} +1 -1
  29. package/dist/_next/static/chunks/950875832bab2141.js +1 -0
  30. package/dist/_next/static/chunks/98a41a7efbe71682.js +1 -0
  31. package/dist/_next/static/chunks/{3dcb1dcf23e7ab9c.js → 9aea16dd9db3a8bd.js} +1 -1
  32. package/dist/_next/static/chunks/9e2cffe3c17fd0e7.js +1 -0
  33. package/dist/_next/static/chunks/a79654d570ac30eb.js +1 -0
  34. package/dist/_next/static/chunks/a8e06ee8243e3389.js +1 -0
  35. package/dist/_next/static/chunks/{cd5eec7d305aa041.js → aadf128359998a2d.js} +1 -1
  36. package/dist/_next/static/chunks/ad419be63e291696.js +1 -0
  37. package/dist/_next/static/chunks/{b30f1da4e57f459a.js → b929fc868619ccb9.js} +1 -1
  38. package/dist/_next/static/chunks/{106955e3cc6a6843.js → b99d7c931432a00e.js} +1 -1
  39. package/dist/_next/static/chunks/bcefc2c679f3ada6.js +1 -0
  40. package/dist/_next/static/chunks/c1cfc60c17638a73.js +1 -0
  41. package/dist/_next/static/chunks/c26f95ab8ad3dcf0.js +1 -0
  42. package/dist/_next/static/chunks/{270d7571d2eea071.js → c5af60c028e52cf8.js} +1 -1
  43. package/dist/_next/static/chunks/cb4dec27441d471a.js +1 -0
  44. package/dist/_next/static/chunks/{63ec034afca4b5d6.js → cbb200599eb3e6d0.js} +1 -1
  45. package/dist/_next/static/chunks/d3af8988bf25a7de.js +1 -0
  46. package/dist/_next/static/chunks/d3ccfb3dcef5974f.js +1 -0
  47. package/dist/_next/static/chunks/d504c4e2ebc5319a.js +1 -0
  48. package/dist/_next/static/chunks/e2833182a81cd867.js +1 -0
  49. package/dist/_next/static/chunks/e520aa06a5014225.js +1 -0
  50. package/dist/_next/static/chunks/e7bd145455a541af.css +4 -0
  51. package/dist/_next/static/chunks/eae304701469d3a8.js +1 -0
  52. package/dist/_next/static/chunks/eba0719a42605421.js +1 -0
  53. package/dist/_next/static/chunks/f2a87f0c7c1ec9f4.js +1 -0
  54. package/dist/_next/static/chunks/{7bdf0e5b41aeb209.css → fa361913d47fdc14.css} +3 -0
  55. package/dist/_next/static/chunks/faaf4e0c2d5cffda.js +1 -0
  56. package/dist/_next/static/chunks/fc4be3bcf72559a0.js +1 -0
  57. package/dist/_next/static/chunks/{turbopack-63952675b1d69124.js → turbopack-030a42d60560a927.js} +1 -1
  58. package/dist/agent-office.html +226 -155
  59. package/dist/index.html +2 -2
  60. package/dist/index.txt +21 -21
  61. package/dist/manage/about/index.html +2 -2
  62. package/dist/manage/about/index.txt +22 -23
  63. package/dist/manage/add-account/basic/index.html +2 -0
  64. package/dist/manage/add-account/basic/index.txt +38 -0
  65. package/dist/manage/add-account/index.html +2 -0
  66. package/dist/manage/add-account/index.txt +36 -0
  67. package/dist/manage/env/index.html +2 -2
  68. package/dist/manage/env/index.txt +24 -25
  69. package/dist/manage/general/index.html +2 -2
  70. package/dist/manage/general/index.txt +22 -23
  71. package/dist/manage/index.html +2 -2
  72. package/dist/manage/index.txt +19 -20
  73. package/dist/manage/mcp/index.html +2 -2
  74. package/dist/manage/mcp/index.txt +21 -22
  75. package/dist/manage/permissions/index.html +2 -2
  76. package/dist/manage/permissions/index.txt +22 -23
  77. package/dist/manage/skills/index.html +2 -2
  78. package/dist/manage/skills/index.txt +21 -22
  79. package/dist/manage/task/index.html +2 -2
  80. package/dist/manage/task/index.txt +21 -22
  81. package/dist/manage/teams/index.html +2 -2
  82. package/dist/manage/teams/index.txt +21 -22
  83. package/dist/manage/tools/index.html +2 -2
  84. package/dist/manage/tools/index.txt +21 -22
  85. package/dist/ws-test.css +2880 -0
  86. package/dist/ws-test.html +77 -9740
  87. package/dist/ws-test.js +7442 -0
  88. package/package.json +6 -6
  89. package/skills-runtime/deploy-test-env/SKILL.md +1 -1
  90. package/skills-runtime/dev-task-flow/SKILL.md +4 -4
  91. package/skills-runtime/self-test-flow/SKILL.md +2 -2
  92. package/skills-runtime/workflow-hub/SKILL.md +1 -1
  93. package/dist/_next/static/chunks/06b383e8ee499be7.js +0 -1
  94. package/dist/_next/static/chunks/0ce6504fc10ce408.js +0 -1
  95. package/dist/_next/static/chunks/0fa3b1f693a23b15.js +0 -1
  96. package/dist/_next/static/chunks/1c9321874fea5f0d.js +0 -1
  97. package/dist/_next/static/chunks/1cb7453376657ffb.css +0 -1
  98. package/dist/_next/static/chunks/2014b101125849fd.js +0 -1
  99. package/dist/_next/static/chunks/2df3e464b6247e75.js +0 -1
  100. package/dist/_next/static/chunks/32b9bdd82a961878.js +0 -1
  101. package/dist/_next/static/chunks/371449b804c846f7.js +0 -1
  102. package/dist/_next/static/chunks/38b035f49fa68570.js +0 -1
  103. package/dist/_next/static/chunks/3ddf56f78e79b076.js +0 -1
  104. package/dist/_next/static/chunks/46b326fcd7b2e8ab.js +0 -1
  105. package/dist/_next/static/chunks/489266ff75dbd7fd.js +0 -1
  106. package/dist/_next/static/chunks/4b1cbde821e7ad65.js +0 -1
  107. package/dist/_next/static/chunks/5853f68e75f5f7ab.js +0 -1
  108. package/dist/_next/static/chunks/5bad5163b6e015f5.js +0 -1
  109. package/dist/_next/static/chunks/5f6769a92729c6c3.js +0 -1
  110. package/dist/_next/static/chunks/65efa67b7efe0f72.js +0 -1
  111. package/dist/_next/static/chunks/6e61f670898cb297.css +0 -1
  112. package/dist/_next/static/chunks/6f4460bd0b8a57af.js +0 -1
  113. package/dist/_next/static/chunks/73930967cfa80238.js +0 -1
  114. package/dist/_next/static/chunks/73e518d4b3543b8f.js +0 -1
  115. package/dist/_next/static/chunks/799f92e88bfeb469.js +0 -1
  116. package/dist/_next/static/chunks/7f52fbd725b13904.js +0 -1
  117. package/dist/_next/static/chunks/a6737fc58619eae5.js +0 -1
  118. package/dist/_next/static/chunks/a7d1ae46740fe1db.js +0 -1
  119. package/dist/_next/static/chunks/b896987ddf6315c9.js +0 -1
  120. package/dist/_next/static/chunks/bbcf9daa108b22fb.js +0 -1
  121. package/dist/_next/static/chunks/bf2c1c402dbcccdf.js +0 -1
  122. package/dist/_next/static/chunks/bfc6ee42cec583d5.js +0 -1
  123. package/dist/_next/static/chunks/c79da9dd69089e4f.js +0 -1
  124. package/dist/_next/static/chunks/c933951b3113492f.js +0 -1
  125. package/dist/_next/static/chunks/d2d432a9facf4278.js +0 -1
  126. package/dist/_next/static/chunks/d4fd1b2f761be57f.css +0 -7
  127. package/dist/_next/static/chunks/d5e3d29f769997cc.js +0 -1
  128. package/dist/_next/static/chunks/da89e354de542422.js +0 -1
  129. package/dist/_next/static/chunks/e7bcbeb465fa49cf.js +0 -1
  130. package/dist/_next/static/chunks/ecaea9e9321ec538.js +0 -1
  131. package/dist/_next/static/media/data-loading.be8d921a.png +0 -0
  132. package/dist/_next/static/media/no-data.48c973b9.png +0 -0
  133. /package/dist/_next/static/{vjdTWbN05kyCgPusoPl-g → WYrSrJ9dye9qgdGCYVOpA}/_buildManifest.js +0 -0
  134. /package/dist/_next/static/{vjdTWbN05kyCgPusoPl-g → WYrSrJ9dye9qgdGCYVOpA}/_clientMiddlewareManifest.json +0 -0
  135. /package/dist/_next/static/{vjdTWbN05kyCgPusoPl-g → WYrSrJ9dye9qgdGCYVOpA}/_ssgManifest.js +0 -0
@@ -0,0 +1,2880 @@
1
+ :root {
2
+ color-scheme: light;
3
+ --ds-page: #f6f6f8;
4
+ --ds-bg: #ffffff;
5
+ --ds-main-tint: #ffffff;
6
+ --ds-sidebar: #fafafa;
7
+ --ds-border: #e4e4e7;
8
+ --ds-separator: #ebebef;
9
+ --ds-text: #18181b;
10
+ --ds-muted: #71717a;
11
+ --ds-secondary: #52525b;
12
+ --ds-accent: #2563eb;
13
+ --ds-accent-hover: #1d4ed8;
14
+ --ds-item-hover: #f4f4f5;
15
+ --ds-item-active: #eff6ff;
16
+ --ds-item-active-border: #bfdbfe;
17
+ --ds-ok: #16a34a;
18
+ --ds-danger: #dc2626;
19
+ --ds-log-bg: #fafafa;
20
+ --ds-log-border: #e4e4e7;
21
+ --ds-shadow: none;
22
+ --ds-shadow-md: 0 4px 24px rgba(0, 0, 0, 0.08);
23
+ --ds-shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.1);
24
+ --ds-radius: 8px;
25
+ --ds-radius-sm: 6px;
26
+ --layout-card-gap: 0;
27
+ --chat-max: 768px;
28
+ --sidebar-w: 260px;
29
+ }
30
+ * { box-sizing: border-box; }
31
+ html, body { height: 100%; margin: 0; }
32
+ body {
33
+ font-family: 'PingFang SC', 'Microsoft YaHei', ui-sans-serif, system-ui, -apple-system, sans-serif;
34
+ background: var(--ds-bg);
35
+ color: var(--ds-text);
36
+ line-height: 1.5;
37
+ overflow: hidden;
38
+ }
39
+ a { color: var(--ds-accent); }
40
+
41
+ .app {
42
+ display: flex;
43
+ height: 100%;
44
+ min-height: 0;
45
+ background: var(--ds-bg);
46
+ }
47
+
48
+ .sidebar {
49
+ width: var(--sidebar-w);
50
+ flex-shrink: 0;
51
+ display: flex;
52
+ flex-direction: column;
53
+ background: #f7f7f8;
54
+ border-right: 1px solid var(--ds-border);
55
+ min-width: 0;
56
+ min-height: 0;
57
+ }
58
+ .sidebar-top {
59
+ flex-shrink: 0;
60
+ padding: 12px 12px 8px;
61
+ display: flex;
62
+ flex-direction: column;
63
+ gap: 10px;
64
+ }
65
+ .sidebar-top .sidebar-brand-title-row {
66
+ justify-content: flex-start;
67
+ padding: 0;
68
+ width: 100%;
69
+ }
70
+ .agent-switch-wrap {
71
+ position: relative;
72
+ display: flex;
73
+ width: 100%;
74
+ }
75
+ .sidebar-agent-brand {
76
+ display: flex;
77
+ align-items: center;
78
+ gap: 6px;
79
+ width: 100%;
80
+ min-width: 0;
81
+ padding: 6px 8px;
82
+ margin: 0 0 2px;
83
+ border: none;
84
+ border-radius: 10px;
85
+ background: transparent;
86
+ color: var(--ds-text);
87
+ font-family: inherit;
88
+ cursor: pointer;
89
+ text-align: left;
90
+ transition: background 120ms ease;
91
+ }
92
+ .sidebar-agent-brand:hover,
93
+ .agent-switch-wrap.open .sidebar-agent-brand {
94
+ background: rgba(0, 0, 0, 0.05);
95
+ }
96
+ .sidebar-agent-name {
97
+ flex: 1;
98
+ min-width: 0;
99
+ font-size: 15px;
100
+ font-weight: 600;
101
+ line-height: 1.35;
102
+ letter-spacing: -0.02em;
103
+ overflow: hidden;
104
+ text-overflow: ellipsis;
105
+ white-space: nowrap;
106
+ color: var(--ds-text);
107
+ }
108
+ .sidebar-agent-chevron {
109
+ flex-shrink: 0;
110
+ width: 16px;
111
+ height: 16px;
112
+ color: var(--ds-muted);
113
+ transition: transform 150ms ease, color 150ms ease;
114
+ }
115
+ .agent-switch-wrap.open .sidebar-agent-chevron {
116
+ transform: rotate(180deg);
117
+ color: var(--ds-secondary);
118
+ }
119
+ .btn-sidebar-new-chat {
120
+ display: flex;
121
+ align-items: center;
122
+ justify-content: flex-start;
123
+ gap: 10px;
124
+ width: 100%;
125
+ padding: 10px 12px;
126
+ border: 1px solid var(--ds-border);
127
+ border-radius: 999px;
128
+ background: var(--ds-bg);
129
+ color: var(--ds-text);
130
+ font-size: 14px;
131
+ font-weight: 500;
132
+ font-family: inherit;
133
+ cursor: pointer;
134
+ transition: background 120ms ease;
135
+ }
136
+ .btn-sidebar-new-chat:hover {
137
+ background: var(--ds-item-hover);
138
+ }
139
+ .btn-sidebar-new-chat svg {
140
+ flex-shrink: 0;
141
+ color: var(--ds-text);
142
+ }
143
+ .sidebar-sessions-wrap {
144
+ flex: 1;
145
+ min-height: 0;
146
+ display: flex;
147
+ flex-direction: column;
148
+ overflow: hidden;
149
+ padding: 0 8px;
150
+ }
151
+ .sidebar-session-list {
152
+ flex: 1;
153
+ min-height: 0;
154
+ overflow-y: auto;
155
+ overflow-x: hidden;
156
+ display: flex;
157
+ flex-direction: column;
158
+ gap: 2px;
159
+ padding: 4px 0 8px;
160
+ scrollbar-width: thin;
161
+ }
162
+ .sidebar-session-item {
163
+ display: flex;
164
+ align-items: center;
165
+ gap: 4px;
166
+ width: 100%;
167
+ border-radius: 10px;
168
+ border: none;
169
+ background: transparent;
170
+ color: var(--ds-text);
171
+ transition: background 120ms ease;
172
+ }
173
+ .sidebar-session-item:hover {
174
+ background: rgba(0, 0, 0, 0.05);
175
+ }
176
+ .sidebar-session-item.active {
177
+ background: var(--ds-bg);
178
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
179
+ }
180
+ .sidebar-session-main {
181
+ flex: 1;
182
+ min-width: 0;
183
+ display: block;
184
+ padding: 9px 8px 9px 12px;
185
+ border: none;
186
+ background: transparent;
187
+ color: inherit;
188
+ font: inherit;
189
+ font-size: 13px;
190
+ font-weight: 400;
191
+ text-align: left;
192
+ cursor: pointer;
193
+ line-height: 1.35;
194
+ overflow: hidden;
195
+ text-overflow: ellipsis;
196
+ white-space: nowrap;
197
+ }
198
+ .sidebar-session-close {
199
+ flex-shrink: 0;
200
+ width: 28px;
201
+ height: 28px;
202
+ margin-right: 4px;
203
+ display: inline-flex;
204
+ align-items: center;
205
+ justify-content: center;
206
+ border: none;
207
+ border-radius: 6px;
208
+ background: transparent;
209
+ color: var(--ds-muted);
210
+ cursor: pointer;
211
+ opacity: 0;
212
+ transition: opacity 120ms ease, background 120ms ease;
213
+ }
214
+ .sidebar-session-item:hover .sidebar-session-close,
215
+ .sidebar-session-item.active .sidebar-session-close {
216
+ opacity: 0.7;
217
+ }
218
+ .sidebar-session-close:hover {
219
+ opacity: 1;
220
+ background: rgba(220, 38, 38, 0.08);
221
+ color: var(--ds-danger);
222
+ }
223
+ .sidebar-session-list .session-tabs-empty {
224
+ padding: 12px;
225
+ font-size: 13px;
226
+ color: var(--ds-muted);
227
+ }
228
+ .sidebar-nav {
229
+ flex-shrink: 0;
230
+ display: flex;
231
+ flex-direction: column;
232
+ gap: 2px;
233
+ padding: 8px;
234
+ border-top: 1px solid var(--ds-border);
235
+ }
236
+ .sidebar-footer {
237
+ flex-shrink: 0;
238
+ padding: 8px 8px 12px;
239
+ border-top: 1px solid var(--ds-border);
240
+ }
241
+ .sidebar-nav-row {
242
+ display: flex;
243
+ align-items: center;
244
+ gap: 12px;
245
+ width: 100%;
246
+ padding: 10px 12px;
247
+ border: none;
248
+ border-radius: 10px;
249
+ background: transparent;
250
+ color: var(--ds-text);
251
+ font-size: 14px;
252
+ font-family: inherit;
253
+ cursor: pointer;
254
+ text-align: left;
255
+ transition: background 120ms ease;
256
+ }
257
+ .sidebar-nav-row:hover {
258
+ background: rgba(0, 0, 0, 0.05);
259
+ }
260
+ .sidebar-nav-row.is-active {
261
+ background: rgba(0, 0, 0, 0.06);
262
+ font-weight: 500;
263
+ }
264
+ .sidebar-nav-row svg {
265
+ flex-shrink: 0;
266
+ width: 18px;
267
+ height: 18px;
268
+ color: var(--ds-secondary);
269
+ }
270
+ .sidebar-brand {
271
+ padding: 0;
272
+ flex-shrink: 0;
273
+ border-bottom: none;
274
+ }
275
+ .sidebar-brand-title-row {
276
+ display: flex;
277
+ align-items: center;
278
+ gap: 0;
279
+ justify-content: center;
280
+ min-width: 0;
281
+ }
282
+ /* 浮层挂 body,fixed 定位,避免侧栏 overflow:hidden 裁剪 */
283
+ .agent-switch-dropdown {
284
+ display: none;
285
+ position: fixed;
286
+ z-index: 10050;
287
+ min-width: 168px;
288
+ width: max-content;
289
+ max-width: min(260px, calc(100vw - 24px));
290
+ max-height: min(360px, calc(100vh - 24px));
291
+ overflow: hidden;
292
+ background: var(--ds-bg);
293
+ border: 1px solid rgba(0, 0, 0, 0.08);
294
+ border-radius: 14px;
295
+ box-shadow:
296
+ 0 4px 6px rgba(15, 23, 42, 0.05),
297
+ 0 16px 40px rgba(15, 23, 42, 0.14);
298
+ flex-direction: column;
299
+ }
300
+ .agent-switch-dropdown.is-open {
301
+ display: flex;
302
+ }
303
+ .agent-switch-dropdown-head {
304
+ flex-shrink: 0;
305
+ padding: 10px 12px 8px;
306
+ font-size: 12px;
307
+ font-weight: 600;
308
+ color: var(--ds-muted);
309
+ letter-spacing: 0.02em;
310
+ border-bottom: 1px solid var(--ds-border);
311
+ background: #fafafa;
312
+ border-radius: 14px 14px 0 0;
313
+ }
314
+ .agent-switch-dropdown-list {
315
+ overflow-y: auto;
316
+ padding: 6px;
317
+ min-height: 0;
318
+ }
319
+ .agent-switch-item {
320
+ display: flex;
321
+ align-items: center;
322
+ justify-content: space-between;
323
+ gap: 10px;
324
+ width: 100%;
325
+ text-align: left;
326
+ padding: 8px 10px;
327
+ border: none;
328
+ border-radius: 10px;
329
+ background: transparent;
330
+ color: var(--ds-text);
331
+ font-size: 13px;
332
+ cursor: pointer;
333
+ }
334
+ .agent-switch-item:hover {
335
+ background: var(--ds-item-hover);
336
+ }
337
+ .agent-switch-item.is-current {
338
+ background: var(--ds-item-active);
339
+ color: var(--ds-accent);
340
+ }
341
+ .agent-switch-item-main {
342
+ min-width: 0;
343
+ display: flex;
344
+ flex-direction: column;
345
+ gap: 1px;
346
+ }
347
+ .agent-switch-item-name {
348
+ font-weight: 600;
349
+ line-height: 1.25;
350
+ overflow: hidden;
351
+ text-overflow: ellipsis;
352
+ white-space: nowrap;
353
+ }
354
+ .agent-switch-item-id {
355
+ font-size: 11px;
356
+ color: var(--ds-muted);
357
+ line-height: 1.2;
358
+ overflow: hidden;
359
+ text-overflow: ellipsis;
360
+ white-space: nowrap;
361
+ }
362
+ .agent-switch-item.is-current .agent-switch-item-id {
363
+ color: var(--ds-accent);
364
+ opacity: 0.85;
365
+ }
366
+ .agent-switch-item-check {
367
+ flex-shrink: 0;
368
+ width: 16px;
369
+ height: 16px;
370
+ color: var(--ds-accent);
371
+ opacity: 0;
372
+ }
373
+ .agent-switch-item.is-current .agent-switch-item-check {
374
+ opacity: 1;
375
+ }
376
+ .agent-switch-loading,
377
+ .agent-switch-empty {
378
+ padding: 14px 12px;
379
+ font-size: 13px;
380
+ color: var(--ds-muted);
381
+ }
382
+ .agent-switch-dropdown-foot {
383
+ flex-shrink: 0;
384
+ border-top: 1px solid var(--ds-border);
385
+ padding: 6px;
386
+ background: #fafafa;
387
+ border-radius: 0 0 14px 14px;
388
+ }
389
+ .agent-switch-manage-btn {
390
+ display: flex;
391
+ width: 100%;
392
+ align-items: center;
393
+ justify-content: center;
394
+ gap: 6px;
395
+ border: none;
396
+ border-radius: 10px;
397
+ background: transparent;
398
+ color: var(--ds-accent);
399
+ font-size: 13px;
400
+ font-weight: 600;
401
+ padding: 8px 10px;
402
+ cursor: pointer;
403
+ }
404
+ .agent-switch-manage-btn:hover {
405
+ background: var(--ds-item-hover);
406
+ }
407
+ .sidebar-brand-ws {
408
+ margin-top: 0.45rem;
409
+ padding-top: 0.45rem;
410
+ border-top: 1px solid var(--ds-border);
411
+ }
412
+ .sidebar-brand-ws-title {
413
+ font-size: 0.65rem;
414
+ font-weight: 600;
415
+ color: var(--ds-text);
416
+ margin-bottom: 0.35rem;
417
+ letter-spacing: 0.02em;
418
+ }
419
+ .sidebar-brand-ws-label {
420
+ display: block;
421
+ font-size: 0.62rem;
422
+ color: var(--ds-muted);
423
+ margin-bottom: 0.15rem;
424
+ }
425
+ .sidebar-brand-model-input {
426
+ width: 100%;
427
+ box-sizing: border-box;
428
+ margin-bottom: 0.35rem;
429
+ }
430
+ .btn-bind-save--brand {
431
+ margin-top: 0;
432
+ padding: 0.32rem 0.5rem;
433
+ font-size: 0.68rem;
434
+ }
435
+ .sidebar-icon-btn {
436
+ flex-shrink: 0;
437
+ display: inline-flex;
438
+ align-items: center;
439
+ justify-content: center;
440
+ width: 1.85rem;
441
+ height: 1.85rem;
442
+ margin: 0;
443
+ padding: 0;
444
+ border: none;
445
+ border-radius: 8px;
446
+ background: transparent;
447
+ color: var(--ds-muted);
448
+ cursor: pointer;
449
+ transition: color 0.15s ease, background 0.15s ease;
450
+ }
451
+ .sidebar-icon-btn:hover {
452
+ color: var(--ds-accent);
453
+ background: var(--ds-item-hover);
454
+ }
455
+ .sidebar-icon-btn:focus-visible {
456
+ outline: none;
457
+ box-shadow: 0 0 0 2px rgba(79, 109, 245, 0.35);
458
+ }
459
+ .sidebar-icon-btn svg {
460
+ display: block;
461
+ }
462
+ .sidebar-icon-btn .ic {
463
+ font-size: 1.05rem;
464
+ font-weight: 300;
465
+ line-height: 1;
466
+ color: currentColor;
467
+ }
468
+ .btn-primary {
469
+ margin: 0;
470
+ padding: 0.5rem 1rem;
471
+ border-radius: 10px;
472
+ border: none;
473
+ background: var(--ds-accent);
474
+ color: #fff;
475
+ font-weight: 500;
476
+ cursor: pointer;
477
+ font-size: 0.8rem;
478
+ }
479
+ .btn-primary:hover { background: var(--ds-accent-hover); }
480
+ .btn-primary:disabled { opacity: 0.45; cursor: not-allowed; }
481
+ /* 侧栏抽屉内:分组说明 / meta 行(会话统计、agent.json 区块标题) */
482
+ .sidebar-drawer-meta {
483
+ font-size: 0.7rem;
484
+ color: var(--ds-muted);
485
+ padding: 0 0.35rem 0.45rem;
486
+ line-height: 1.45;
487
+ flex-shrink: 0;
488
+ border-bottom: 1px solid var(--ds-log-border);
489
+ margin-bottom: 0.25rem;
490
+ }
491
+ #sessionList {
492
+ /* 会话列表样式见 .sidebar-session-list */
493
+ }
494
+ .pending-prompts-bar {
495
+ flex-shrink: 0;
496
+ border-bottom: 1px solid var(--ds-border);
497
+ padding: 8px 20px 10px;
498
+ background: var(--ds-log-bg);
499
+ max-width: var(--chat-max);
500
+ margin: 0 auto;
501
+ width: 100%;
502
+ }
503
+ .pending-prompts-title {
504
+ font-size: 12px;
505
+ font-weight: 600;
506
+ color: var(--ds-secondary);
507
+ margin-bottom: 6px;
508
+ }
509
+ .pending-prompts-list {
510
+ display: flex;
511
+ flex-direction: column;
512
+ gap: 6px;
513
+ max-height: 120px;
514
+ overflow-y: auto;
515
+ }
516
+ .pending-prompt-item {
517
+ display: flex;
518
+ align-items: flex-start;
519
+ gap: 8px;
520
+ padding: 6px 8px;
521
+ border-radius: 8px;
522
+ border: 1px solid var(--ds-separator);
523
+ background: #fff;
524
+ font-size: 12px;
525
+ }
526
+ .pending-prompt-item--schedule {
527
+ border-color: #fcd34d;
528
+ background: #fffbeb;
529
+ }
530
+ .pending-prompt-item--user {
531
+ border-color: #e0e7ff;
532
+ background: #f5f7ff;
533
+ }
534
+ .pending-prompt-source-tag {
535
+ display: inline-block;
536
+ font-size: 10px;
537
+ font-weight: 600;
538
+ padding: 1px 6px;
539
+ border-radius: 4px;
540
+ margin-right: 4px;
541
+ vertical-align: middle;
542
+ }
543
+ .pending-prompt-source-tag--schedule {
544
+ color: #b45309;
545
+ background: #fef3c7;
546
+ }
547
+ .pending-prompt-source-tag--user {
548
+ color: #4338ca;
549
+ background: #e0e7ff;
550
+ }
551
+ .pending-prompt-text {
552
+ flex: 1;
553
+ min-width: 0;
554
+ color: var(--ds-text);
555
+ word-break: break-word;
556
+ line-height: 1.4;
557
+ }
558
+ .pending-prompt-preview {
559
+ margin-top: 4px;
560
+ line-height: 1.4;
561
+ }
562
+ .pending-prompt-meta {
563
+ font-size: 10px;
564
+ color: var(--ds-muted);
565
+ margin-top: 2px;
566
+ }
567
+ .pending-prompts-bar--has-schedule {
568
+ background: #fffbeb;
569
+ border-bottom-color: #fcd34d;
570
+ }
571
+ .pending-prompts-bar--has-schedule .pending-prompts-title {
572
+ color: #b45309;
573
+ }
574
+ .pending-prompt-cancel {
575
+ flex-shrink: 0;
576
+ border: none;
577
+ background: transparent;
578
+ color: var(--ds-danger);
579
+ cursor: pointer;
580
+ font-size: 11px;
581
+ padding: 2px 4px;
582
+ }
583
+ .pending-prompts-empty {
584
+ font-size: 12px;
585
+ color: var(--ds-muted);
586
+ }
587
+ .session-group-label {
588
+ font-size: 0.7rem;
589
+ font-weight: 500;
590
+ color: var(--ds-muted);
591
+ padding: 0.45rem 0.35rem 0.3rem;
592
+ }
593
+ /* 会话行 / 工具·Skill·MCP 绑定行 共用 */
594
+ .sidebar-drawer-item {
595
+ display: flex;
596
+ align-items: stretch;
597
+ border-radius: var(--ds-radius-sm);
598
+ margin: 4px 0;
599
+ position: relative;
600
+ border: 1px solid transparent;
601
+ transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
602
+ }
603
+ .sidebar-drawer-item:hover {
604
+ background: var(--ds-item-hover);
605
+ }
606
+ .sidebar-drawer-list {
607
+ display: flex;
608
+ flex-direction: column;
609
+ padding: 0.05rem 0 0.2rem;
610
+ }
611
+ .sidebar-drawer-item-label {
612
+ flex: 1;
613
+ min-width: 0;
614
+ padding: 0.55rem 0.35rem 0.55rem 0.65rem;
615
+ font-size: 0.8125rem;
616
+ font-weight: 500;
617
+ color: var(--ds-text);
618
+ font-family: ui-monospace, monospace;
619
+ word-break: break-word;
620
+ display: flex;
621
+ align-items: center;
622
+ }
623
+ .sidebar-drawer-empty {
624
+ font-size: 0.7rem;
625
+ color: var(--ds-muted);
626
+ padding: 0.5rem 0.5rem 0.45rem;
627
+ line-height: 1.45;
628
+ }
629
+ .session-item.active {
630
+ background: var(--ds-item-active);
631
+ border-color: #b8cff9;
632
+ box-shadow: var(--ds-shadow);
633
+ }
634
+ .session-item-main {
635
+ flex: 1;
636
+ min-width: 0;
637
+ padding: 0.55rem 0.25rem 0.55rem 0.65rem;
638
+ cursor: pointer;
639
+ text-align: left;
640
+ border: none;
641
+ background: transparent;
642
+ color: inherit;
643
+ font: inherit;
644
+ }
645
+ .session-item-title {
646
+ font-size: 0.8125rem;
647
+ font-weight: 500;
648
+ color: var(--ds-text);
649
+ display: -webkit-box;
650
+ -webkit-line-clamp: 2;
651
+ -webkit-box-orient: vertical;
652
+ overflow: hidden;
653
+ word-break: break-word;
654
+ }
655
+ .session-item-sub {
656
+ font-size: 0.68rem;
657
+ color: var(--ds-muted);
658
+ margin-top: 0.2rem;
659
+ font-family: ui-monospace, monospace;
660
+ }
661
+ .session-menu-wrap {
662
+ position: relative;
663
+ flex-shrink: 0;
664
+ display: flex;
665
+ align-items: flex-start;
666
+ padding: 0.4rem 0.35rem 0 0;
667
+ }
668
+ .session-menu-btn {
669
+ width: 1.85rem;
670
+ height: 1.85rem;
671
+ border: none;
672
+ border-radius: 8px;
673
+ background: transparent;
674
+ color: var(--ds-muted);
675
+ cursor: pointer;
676
+ font-size: 0.85rem;
677
+ line-height: 1;
678
+ letter-spacing: 0.06em;
679
+ padding: 0;
680
+ opacity: 0.65;
681
+ }
682
+ .sidebar-drawer-item:hover .session-menu-btn,
683
+ .session-item.active .session-menu-btn,
684
+ .session-menu-btn:focus-visible,
685
+ .session-menu-wrap.open .session-menu-btn {
686
+ opacity: 1;
687
+ color: var(--ds-text);
688
+ background: rgba(255, 255, 255, 0.9);
689
+ }
690
+ .session-dropdown {
691
+ display: none;
692
+ position: absolute;
693
+ right: 0.15rem;
694
+ top: 2rem;
695
+ min-width: 9.5rem;
696
+ z-index: 80;
697
+ background: var(--ds-bg);
698
+ border: 1px solid var(--ds-border);
699
+ border-radius: 10px;
700
+ box-shadow: var(--ds-shadow-lg);
701
+ padding: 0.3rem 0;
702
+ }
703
+ .session-menu-wrap.open .session-dropdown { display: block; }
704
+ .session-dropdown button {
705
+ display: block;
706
+ width: 100%;
707
+ text-align: left;
708
+ padding: 0.5rem 0.85rem;
709
+ border: none;
710
+ background: transparent;
711
+ color: var(--ds-text);
712
+ font-size: 0.8125rem;
713
+ cursor: pointer;
714
+ }
715
+ .session-dropdown button:hover { background: var(--ds-item-hover); }
716
+ .session-dropdown button.danger { color: var(--ds-danger); }
717
+
718
+ .sidebar-drawers {
719
+ flex: 1;
720
+ min-height: 0;
721
+ display: flex;
722
+ flex-direction: column;
723
+ overflow-x: hidden;
724
+ overflow-y: auto;
725
+ scrollbar-width: thin;
726
+ }
727
+ .sidebar-icon-rail {
728
+ align-items: center;
729
+ gap: 8px;
730
+ padding: 10px 0 12px;
731
+ overflow-x: hidden;
732
+ overflow-y: auto;
733
+ flex: 1;
734
+ min-height: 0;
735
+ scrollbar-width: thin;
736
+ }
737
+ .sidebar-nav-item {
738
+ width: 34px;
739
+ height: 34px;
740
+ flex-shrink: 0;
741
+ border: none;
742
+ border-radius: 10px;
743
+ display: inline-flex;
744
+ align-items: center;
745
+ justify-content: center;
746
+ background: transparent;
747
+ color: #777a80;
748
+ cursor: pointer;
749
+ transition: background 120ms ease, color 120ms ease;
750
+ }
751
+ .sidebar-nav-item:hover {
752
+ background: rgba(120, 120, 128, 0.12);
753
+ color: #4f535b;
754
+ }
755
+ .sidebar-nav-item:focus-visible {
756
+ outline: none;
757
+ box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.2);
758
+ }
759
+ .sidebar-nav-item svg {
760
+ width: 18px;
761
+ height: 18px;
762
+ display: block;
763
+ }
764
+ .schedule-manage-table-wrap {
765
+ overflow: auto;
766
+ max-height: min(52vh, 420px);
767
+ border: 1px solid var(--ds-border);
768
+ border-radius: var(--ds-radius-sm);
769
+ background: #fff;
770
+ }
771
+ .schedule-manage-table {
772
+ width: 100%;
773
+ border-collapse: collapse;
774
+ font-size: 0.78rem;
775
+ }
776
+ .schedule-manage-table th,
777
+ .schedule-manage-table td {
778
+ padding: 0.45rem 0.55rem;
779
+ border-bottom: 1px solid var(--ds-border);
780
+ text-align: left;
781
+ vertical-align: top;
782
+ }
783
+ .schedule-manage-table th {
784
+ position: sticky;
785
+ top: 0;
786
+ background: #f8fafc;
787
+ color: var(--ds-text-soft);
788
+ font-weight: 600;
789
+ z-index: 1;
790
+ }
791
+ .schedule-manage-table tr:last-child td {
792
+ border-bottom: none;
793
+ }
794
+ .schedule-manage-prompt {
795
+ max-width: 220px;
796
+ word-break: break-word;
797
+ white-space: pre-wrap;
798
+ }
799
+ .schedule-manage-session-link {
800
+ color: var(--ds-accent);
801
+ cursor: pointer;
802
+ text-decoration: underline;
803
+ background: none;
804
+ border: none;
805
+ padding: 0;
806
+ font: inherit;
807
+ }
808
+ .schedule-create-form {
809
+ display: grid;
810
+ gap: 0.55rem;
811
+ margin-top: 0.75rem;
812
+ padding: 0.75rem;
813
+ border: 1px dashed var(--ds-border);
814
+ border-radius: var(--ds-radius-sm);
815
+ background: #fafbfc;
816
+ }
817
+ .schedule-create-form[hidden] {
818
+ display: none !important;
819
+ }
820
+ .schedule-create-row {
821
+ display: grid;
822
+ gap: 0.25rem;
823
+ }
824
+ .schedule-create-row label {
825
+ font-size: 0.75rem;
826
+ color: var(--ds-text-soft);
827
+ }
828
+ .schedule-create-row input,
829
+ .schedule-create-row select,
830
+ .schedule-create-row textarea {
831
+ width: 100%;
832
+ box-sizing: border-box;
833
+ border: 1px solid var(--ds-border);
834
+ border-radius: 6px;
835
+ padding: 0.4rem 0.5rem;
836
+ font: inherit;
837
+ background: #fff;
838
+ }
839
+ .schedule-create-row textarea {
840
+ min-height: 72px;
841
+ resize: vertical;
842
+ }
843
+ .schedule-create-actions {
844
+ display: flex;
845
+ gap: 0.5rem;
846
+ justify-content: flex-end;
847
+ margin-top: 0.25rem;
848
+ }
849
+ .schedule-manage-toolbar {
850
+ display: flex;
851
+ gap: 0.5rem;
852
+ align-items: center;
853
+ margin-bottom: 0.65rem;
854
+ }
855
+ .schedule-run-status--pending {
856
+ color: var(--ds-text-soft);
857
+ }
858
+ .schedule-run-status--running {
859
+ color: var(--ds-accent);
860
+ }
861
+ .schedule-run-status--succeeded {
862
+ color: #0d7a3a;
863
+ }
864
+ .schedule-run-status--failed {
865
+ color: #c0392b;
866
+ }
867
+ .schedule-runs-result-pre {
868
+ margin-top: 0.75rem;
869
+ padding: 0.65rem;
870
+ max-height: 200px;
871
+ overflow: auto;
872
+ border: 1px solid var(--ds-border);
873
+ border-radius: var(--ds-radius-sm);
874
+ background: #f8fafc;
875
+ font-size: 0.75rem;
876
+ white-space: pre-wrap;
877
+ word-break: break-word;
878
+ }
879
+ .schedule-runs-result-pre[hidden] {
880
+ display: none !important;
881
+ }
882
+ .schedule-manage-empty {
883
+ padding: 1rem;
884
+ text-align: center;
885
+ color: var(--ds-text-soft);
886
+ font-size: 0.82rem;
887
+ }
888
+ /* 侧栏图标悬浮说明(fixed,避免被 sidebar overflow 裁切) */
889
+ .sidebar-hover-tip {
890
+ position: fixed;
891
+ z-index: 99990;
892
+ max-width: min(280px, 46vw);
893
+ padding: 8px 11px;
894
+ border-radius: 10px;
895
+ font-size: 13px;
896
+ line-height: 1.45;
897
+ color: var(--ds-text);
898
+ background: #ffffff;
899
+ border: 1px solid var(--ds-separator);
900
+ box-shadow: var(--ds-shadow-md);
901
+ pointer-events: none;
902
+ word-break: break-word;
903
+ }
904
+ .sidebar-nav-env {
905
+ font-size: 10px;
906
+ font-weight: 700;
907
+ letter-spacing: 0.04em;
908
+ }
909
+ details.sidebar-drawer {
910
+ border-bottom: 1px solid var(--ds-border);
911
+ flex: 0 0 auto;
912
+ min-height: 0;
913
+ display: flex;
914
+ flex-direction: column;
915
+ position: relative;
916
+ z-index: 0;
917
+ background: var(--ds-sidebar);
918
+ }
919
+ details.sidebar-drawer[open] {
920
+ z-index: 1;
921
+ }
922
+ details.sidebar-drawer > summary {
923
+ list-style: none;
924
+ cursor: pointer;
925
+ user-select: none;
926
+ display: flex;
927
+ align-items: center;
928
+ justify-content: space-between;
929
+ gap: 0.5rem;
930
+ padding: 0.55rem 0.75rem;
931
+ font-size: 0.78rem;
932
+ font-weight: 600;
933
+ color: var(--ds-text);
934
+ background: #eef0f4;
935
+ position: relative;
936
+ }
937
+ details.sidebar-drawer > summary::-webkit-details-marker {
938
+ display: none;
939
+ }
940
+ details.sidebar-drawer > summary:hover {
941
+ background: #e4e8ef;
942
+ }
943
+ .drawer-summary-title {
944
+ letter-spacing: -0.01em;
945
+ }
946
+ .drawer-chevron {
947
+ font-size: 0.55rem;
948
+ color: var(--ds-muted);
949
+ transition: transform 0.2s ease;
950
+ flex-shrink: 0;
951
+ }
952
+ details.sidebar-drawer:not([open]) > summary .drawer-chevron {
953
+ transform: rotate(-90deg);
954
+ }
955
+ details.sidebar-drawer .sidebar-drawer-body {
956
+ padding: 0 0.65rem 0.65rem;
957
+ overflow: auto;
958
+ max-height: min(34vh, 280px);
959
+ }
960
+ /* 工具 / Skill / MCP:body 不裁剪 absolute/fixed 下拉,滚动交给列表区 */
961
+ details.sidebar-drawer .sidebar-drawer-body.sidebar-drawer-body--tools,
962
+ details.sidebar-drawer .sidebar-drawer-body.sidebar-drawer-body--skills,
963
+ details.sidebar-drawer .sidebar-drawer-body.sidebar-drawer-body--mcp,
964
+ details.sidebar-drawer .sidebar-drawer-body.sidebar-drawer-body--agent-teams {
965
+ overflow: visible;
966
+ max-height: none;
967
+ }
968
+ .drawer-bind-block--solo .sidebar-drawer-list.agent-bind-chips {
969
+ max-height: min(28vh, 220px);
970
+ overflow-x: hidden;
971
+ overflow-y: auto;
972
+ min-height: 0;
973
+ }
974
+ .sidebar-drawer-body--sessions {
975
+ display: flex;
976
+ flex-direction: column;
977
+ max-height: min(40vh, 360px);
978
+ overflow: hidden;
979
+ padding-bottom: 0.5rem;
980
+ }
981
+ .session-summary-actions {
982
+ display: flex;
983
+ align-items: center;
984
+ gap: 0.35rem;
985
+ flex-shrink: 0;
986
+ }
987
+ .sidebar-drawer-body--tools {
988
+ display: flex;
989
+ flex-direction: column;
990
+ }
991
+ .sidebar-drawer-body--skills {
992
+ display: flex;
993
+ flex-direction: column;
994
+ }
995
+ .sidebar-drawer-body--mcp {
996
+ display: flex;
997
+ flex-direction: column;
998
+ }
999
+ .sidebar-drawer-body--agent-teams {
1000
+ display: flex;
1001
+ flex-direction: column;
1002
+ }
1003
+ .agent-md-modal {
1004
+ position: fixed;
1005
+ inset: 0;
1006
+ z-index: 10000;
1007
+ display: none;
1008
+ align-items: center;
1009
+ justify-content: center;
1010
+ padding: 1rem;
1011
+ box-sizing: border-box;
1012
+ }
1013
+ .agent-md-modal.is-open {
1014
+ display: flex;
1015
+ }
1016
+ .agent-md-modal-backdrop {
1017
+ position: absolute;
1018
+ inset: 0;
1019
+ background: rgba(15, 23, 42, 0.45);
1020
+ }
1021
+ .agent-md-modal-card {
1022
+ position: relative;
1023
+ width: min(920px, 100%);
1024
+ height: min(82vh, 760px);
1025
+ max-height: min(82vh, 760px);
1026
+ display: flex;
1027
+ flex-direction: column;
1028
+ background: var(--ds-bg);
1029
+ border-radius: var(--ds-radius);
1030
+ box-shadow: var(--ds-shadow-lg);
1031
+ border: 1px solid var(--ds-border);
1032
+ overflow: hidden;
1033
+ }
1034
+ .agent-md-modal-head {
1035
+ display: flex;
1036
+ align-items: center;
1037
+ justify-content: space-between;
1038
+ gap: 0.75rem;
1039
+ padding: 0.85rem 1rem;
1040
+ border-bottom: 1px solid var(--ds-border);
1041
+ flex-shrink: 0;
1042
+ }
1043
+ .agent-md-modal-head h2 {
1044
+ margin: 0;
1045
+ font-size: 0.95rem;
1046
+ font-weight: 600;
1047
+ color: var(--ds-text);
1048
+ }
1049
+ /* 工具 / Skill 选择弹窗:与会话区相同的顶栏页签,无标题、无顶部筛选框 */
1050
+ .agent-md-modal-card.agent-picker--tabbed .agent-md-modal-head {
1051
+ padding: 0;
1052
+ gap: 0;
1053
+ border-bottom: none;
1054
+ align-items: stretch;
1055
+ background: var(--ds-page);
1056
+ }
1057
+ .agent-md-modal-card.agent-picker--tabbed #agentPickerModalTitle {
1058
+ display: none;
1059
+ }
1060
+ .agent-md-modal-card.agent-picker--tabbed .agent-picker-search {
1061
+ display: none;
1062
+ }
1063
+ .agent-md-modal-card.agent-picker--tabbed .agent-picker-session-tab-strip {
1064
+ flex: 1;
1065
+ min-width: 0;
1066
+ }
1067
+ .agent-md-modal-card.agent-picker--tabbed .modal-head-actions {
1068
+ flex-shrink: 0;
1069
+ align-self: center;
1070
+ padding: 0 0.65rem 0 0;
1071
+ border-left: 1px solid var(--ds-separator);
1072
+ min-height: 38px;
1073
+ display: inline-flex;
1074
+ align-items: center;
1075
+ gap: 0.45rem;
1076
+ background: var(--ds-page);
1077
+ }
1078
+ .agent-md-modal-card.agent-picker--tabbed .agent-picker-session-tab-strip {
1079
+ background: var(--ds-page);
1080
+ }
1081
+ .agent-picker-session-tab-strip .session-tabs-list {
1082
+ height: 100%;
1083
+ }
1084
+ .agent-picker-session-tab-strip button.session-tab {
1085
+ font: inherit;
1086
+ cursor: pointer;
1087
+ text-align: left;
1088
+ }
1089
+ #agentEnvModalCard .agent-env-tab-panels {
1090
+ flex: 1;
1091
+ min-height: 0;
1092
+ display: flex;
1093
+ flex-direction: column;
1094
+ overflow: hidden;
1095
+ }
1096
+ /* 设置弹窗复用「工具弹窗」tabbed 头部体系,仅补充隐藏设置标题 */
1097
+ #agentEnvModalCard.agent-picker--tabbed #agentEnvModalTitle {
1098
+ display: none;
1099
+ }
1100
+ #agentEnvModalCard .agent-env-panel.tool-files-body {
1101
+ max-height: none;
1102
+ flex: 1;
1103
+ min-height: 0;
1104
+ }
1105
+ /* 覆盖下面 .agent-env-panel--md 的 display:flex,否则 [hidden] 无法隐藏 Tab 内未选中的分栏 */
1106
+ #agentEnvModalCard .agent-env-panel[hidden] {
1107
+ display: none !important;
1108
+ }
1109
+ #agentEnvModalCard .agent-env-panel.agent-env-panel--md {
1110
+ display: flex;
1111
+ flex-direction: column;
1112
+ gap: 0.4rem;
1113
+ }
1114
+ #agentEnvModalCard .agent-env-panel--md .agent-md-editor {
1115
+ min-height: min(42vh, 360px);
1116
+ }
1117
+ .agent-env-team-block {
1118
+ margin-top: 0.35rem;
1119
+ padding-top: 0.65rem;
1120
+ border-top: 1px solid var(--ds-border, #e5e5ea);
1121
+ }
1122
+ .agent-env-team-block > label {
1123
+ font-size: 0.78rem;
1124
+ color: var(--ds-text-soft);
1125
+ display: block;
1126
+ margin-bottom: 0.35rem;
1127
+ }
1128
+ .agent-env-team-empty {
1129
+ margin: 0 0 0.45rem;
1130
+ font-size: 0.78rem;
1131
+ color: var(--ds-text-soft);
1132
+ }
1133
+ .agent-env-team-chips {
1134
+ display: flex;
1135
+ flex-wrap: wrap;
1136
+ gap: 6px;
1137
+ margin-bottom: 0.55rem;
1138
+ min-height: 24px;
1139
+ }
1140
+ .agent-env-team-chip {
1141
+ display: inline-flex;
1142
+ align-items: center;
1143
+ gap: 4px;
1144
+ padding: 0.15rem 0.4rem 0.15rem 0.5rem;
1145
+ border-radius: 999px;
1146
+ background: rgba(10, 132, 255, 0.12);
1147
+ border: 1px solid rgba(10, 132, 255, 0.28);
1148
+ font-size: 0.76rem;
1149
+ }
1150
+ .agent-env-team-chip button {
1151
+ border: none;
1152
+ background: transparent;
1153
+ color: var(--ds-text-soft);
1154
+ cursor: pointer;
1155
+ font-size: 1rem;
1156
+ line-height: 1;
1157
+ padding: 0 2px;
1158
+ }
1159
+ .agent-env-team-chip button:hover {
1160
+ color: var(--ds-danger, #ff3b30);
1161
+ }
1162
+ .agent-env-team-add {
1163
+ display: flex;
1164
+ gap: 8px;
1165
+ align-items: center;
1166
+ }
1167
+ .agent-env-team-add select {
1168
+ flex: 1;
1169
+ min-width: 0;
1170
+ border: 1px solid var(--ds-border, #e5e5ea);
1171
+ border-radius: 8px;
1172
+ padding: 0.4rem 0.5rem;
1173
+ font: inherit;
1174
+ font-size: 0.82rem;
1175
+ }
1176
+ .agent-md-modal-close {
1177
+ border: none;
1178
+ background: transparent;
1179
+ color: var(--ds-muted);
1180
+ font-size: 1.35rem;
1181
+ line-height: 1;
1182
+ cursor: pointer;
1183
+ padding: 0.15rem 0.35rem;
1184
+ border-radius: 6px;
1185
+ }
1186
+ .agent-md-modal-close:hover {
1187
+ color: var(--ds-text);
1188
+ background: var(--ds-item-hover);
1189
+ }
1190
+ .agent-md-modal-icon-btn {
1191
+ border: none;
1192
+ background: transparent;
1193
+ color: var(--ds-muted);
1194
+ cursor: pointer;
1195
+ padding: 0.15rem 0.35rem;
1196
+ border-radius: 6px;
1197
+ display: inline-flex;
1198
+ align-items: center;
1199
+ justify-content: center;
1200
+ }
1201
+ .agent-md-modal-icon-btn:hover {
1202
+ color: var(--ds-text);
1203
+ background: var(--ds-item-hover);
1204
+ }
1205
+ .agent-md-modal-icon-btn:disabled {
1206
+ opacity: 0.45;
1207
+ cursor: not-allowed;
1208
+ }
1209
+ .agent-md-modal-icon-btn svg {
1210
+ width: 16px;
1211
+ height: 16px;
1212
+ stroke: currentColor;
1213
+ fill: none;
1214
+ stroke-width: 2;
1215
+ stroke-linecap: round;
1216
+ stroke-linejoin: round;
1217
+ }
1218
+ .agent-md-editor {
1219
+ display: block;
1220
+ width: 100%;
1221
+ max-width: 100%;
1222
+ flex: 1;
1223
+ min-height: min(50vh, 420px);
1224
+ margin: 0;
1225
+ padding: 0.85rem 1rem;
1226
+ border: none;
1227
+ resize: vertical;
1228
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1229
+ font-size: 0.8rem;
1230
+ line-height: 1.5;
1231
+ color: var(--ds-text);
1232
+ background: var(--ds-log-bg);
1233
+ box-sizing: border-box;
1234
+ }
1235
+ .agent-md-editor:focus {
1236
+ outline: none;
1237
+ box-shadow: inset 0 0 0 2px rgba(79, 109, 245, 0.2);
1238
+ }
1239
+ .agent-md-modal-foot {
1240
+ display: flex;
1241
+ justify-content: flex-end;
1242
+ gap: 0.5rem;
1243
+ padding: 0.75rem 1rem;
1244
+ border-top: 1px solid var(--ds-border);
1245
+ flex-shrink: 0;
1246
+ background: var(--ds-sidebar);
1247
+ }
1248
+ .agent-md-modal-card .agent-md-modal-head {
1249
+ background: #f7f7fa;
1250
+ border-bottom-color: #d9d9e3;
1251
+ }
1252
+ .agent-md-modal-card .agent-md-modal-foot {
1253
+ background: #f7f7fa;
1254
+ border-top-color: #d9d9e3;
1255
+ margin-top: auto;
1256
+ }
1257
+ .agent-md-modal-card .agent-picker-scroll,
1258
+ .agent-md-modal-card .tool-files-body {
1259
+ flex: 1;
1260
+ min-height: 0;
1261
+ max-height: none;
1262
+ overflow: auto;
1263
+ padding: 0.9rem 1rem 1rem;
1264
+ background: #f2f2f7;
1265
+ }
1266
+ .agent-md-modal-card > .agent-md-editor {
1267
+ flex: 1;
1268
+ min-height: 0;
1269
+ margin: 0.9rem 1rem 1rem;
1270
+ border: 1px solid #d9d9e3;
1271
+ border-radius: 12px;
1272
+ background: #ffffff;
1273
+ padding: 0.85rem 0.95rem;
1274
+ box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
1275
+ resize: none;
1276
+ }
1277
+ /* 四个业务弹窗统一外观:设置、tool-results、MCP 管理、Skill 管理 */
1278
+ .agent-md-modal-card.modal-unified {
1279
+ width: min(940px, 100%);
1280
+ border-radius: 14px;
1281
+ border: 1px solid var(--ds-separator);
1282
+ box-shadow: var(--ds-shadow-lg);
1283
+ }
1284
+ .agent-md-modal-card.modal-unified .agent-md-modal-head {
1285
+ min-height: 50px;
1286
+ padding: 0.75rem 1rem;
1287
+ border-bottom: 1px solid var(--ds-separator);
1288
+ background: var(--ds-bg);
1289
+ }
1290
+ /* 设置弹窗(tabbed)覆盖 modal-unified 头部内边距,页签贴顶与工具弹窗一致 */
1291
+ #agentEnvModalCard.agent-picker--tabbed .agent-md-modal-head {
1292
+ padding: 0;
1293
+ gap: 0;
1294
+ border-bottom: none;
1295
+ align-items: stretch;
1296
+ min-height: 0;
1297
+ }
1298
+ .agent-md-modal-card.modal-unified .tool-files-body {
1299
+ flex: 1;
1300
+ min-height: 0;
1301
+ overflow: auto;
1302
+ padding: 0.9rem 1rem 1rem;
1303
+ background: #f2f2f7;
1304
+ }
1305
+ .agent-md-modal-card.modal-unified .agent-md-modal-foot {
1306
+ padding: 0.7rem 1rem 0.85rem;
1307
+ border-top: 1px solid var(--ds-separator);
1308
+ background: #f7f7fa;
1309
+ }
1310
+ .agent-md-modal-card.modal-unified .tool-files-meta {
1311
+ color: #8b8b95;
1312
+ }
1313
+ .agent-md-modal-card.modal-unified .tool-files-list {
1314
+ gap: 0.6rem;
1315
+ }
1316
+ .agent-md-modal-card.modal-unified .tool-files-item {
1317
+ border-radius: 12px;
1318
+ border: 1px solid #d9d9e3;
1319
+ background: #ffffff;
1320
+ box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
1321
+ }
1322
+ .agent-md-modal-card.modal-unified .tool-files-download {
1323
+ border-color: #d4d4dd;
1324
+ background: #ffffff;
1325
+ }
1326
+ .agent-md-modal-card.modal-unified .tool-files-download:hover {
1327
+ border-color: #bfc5ff;
1328
+ background: #eef2ff;
1329
+ }
1330
+ @media (max-height: 780px) {
1331
+ .agent-md-modal-card {
1332
+ height: min(88vh, 760px);
1333
+ max-height: min(88vh, 760px);
1334
+ }
1335
+ }
1336
+ .modal-head-actions {
1337
+ display: inline-flex;
1338
+ align-items: center;
1339
+ gap: 0.45rem;
1340
+ }
1341
+ .modal-head-actions.modal-head-actions--close-only {
1342
+ gap: 0;
1343
+ }
1344
+ .modal-body-actions {
1345
+ display: flex;
1346
+ align-items: center;
1347
+ gap: 0.5rem;
1348
+ margin-bottom: 0.65rem;
1349
+ }
1350
+ .btn-agent-md-cancel {
1351
+ padding: 0.45rem 0.9rem;
1352
+ border-radius: 8px;
1353
+ border: 1px solid var(--ds-border);
1354
+ background: var(--ds-bg);
1355
+ color: var(--ds-text);
1356
+ font-size: 0.8rem;
1357
+ cursor: pointer;
1358
+ }
1359
+ .btn-agent-md-cancel:hover {
1360
+ background: var(--ds-item-hover);
1361
+ }
1362
+ .btn-permission-deny {
1363
+ padding: 0.5rem 1.25rem;
1364
+ border-radius: 8px;
1365
+ border: 1px solid #c0392b;
1366
+ background: rgba(192, 57, 43, 0.15);
1367
+ color: #e74c3c;
1368
+ font-size: 0.85rem;
1369
+ cursor: pointer;
1370
+ }
1371
+ .btn-permission-deny:hover {
1372
+ background: rgba(192, 57, 43, 0.3);
1373
+ }
1374
+ .btn-permission-allow {
1375
+ padding: 0.5rem 1.25rem;
1376
+ border-radius: 8px;
1377
+ border: 1px solid #27ae60;
1378
+ background: rgba(39, 174, 96, 0.15);
1379
+ color: #2ecc71;
1380
+ font-size: 0.85rem;
1381
+ cursor: pointer;
1382
+ }
1383
+ .btn-permission-allow:hover {
1384
+ background: rgba(39, 174, 96, 0.3);
1385
+ }
1386
+ .agent-env-kv-row {
1387
+ display: grid;
1388
+ grid-template-columns: 1fr 1fr auto;
1389
+ gap: 0.5rem;
1390
+ margin-bottom: 0.5rem;
1391
+ }
1392
+ .agent-env-fixed-section {
1393
+ margin-bottom: 0.9rem;
1394
+ padding: 0.65rem;
1395
+ border: 1px solid var(--ds-separator);
1396
+ border-radius: 10px;
1397
+ background: var(--ds-bg-subtle);
1398
+ }
1399
+ .agent-env-fixed-section-title {
1400
+ margin: 0 0 0.55rem;
1401
+ font-size: 0.82rem;
1402
+ color: var(--ds-text-soft);
1403
+ }
1404
+ .agent-env-fixed-row {
1405
+ display: grid;
1406
+ grid-template-columns: minmax(170px, 0.9fr) 1.8fr;
1407
+ gap: 0.5rem;
1408
+ margin-bottom: 0.45rem;
1409
+ align-items: center;
1410
+ }
1411
+ .agent-env-fixed-row:last-child {
1412
+ margin-bottom: 0;
1413
+ }
1414
+ .agent-env-fixed-label {
1415
+ color: var(--ds-text-soft);
1416
+ font-size: 0.78rem;
1417
+ line-height: 1.35;
1418
+ word-break: break-all;
1419
+ }
1420
+ .agent-env-kv-input {
1421
+ width: 100%;
1422
+ box-sizing: border-box;
1423
+ border: 1px solid var(--ds-separator);
1424
+ border-radius: 10px;
1425
+ padding: 0.52rem 0.65rem;
1426
+ background: #ffffff;
1427
+ color: var(--ds-text);
1428
+ font: inherit;
1429
+ font-size: 0.86rem;
1430
+ line-height: 1.35;
1431
+ }
1432
+ .agent-env-kv-input::placeholder {
1433
+ color: var(--ds-muted);
1434
+ }
1435
+ .agent-env-kv-input:focus {
1436
+ outline: none;
1437
+ border-color: var(--ds-accent);
1438
+ box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.16);
1439
+ }
1440
+ #agentEnvModalCard .agent-env-panel--md .agent-md-editor {
1441
+ border: 1px solid var(--ds-separator);
1442
+ border-radius: 10px;
1443
+ background: #ffffff;
1444
+ }
1445
+
1446
+ .main {
1447
+ flex: 1;
1448
+ display: flex;
1449
+ flex-direction: column;
1450
+ min-width: 0;
1451
+ min-height: 0;
1452
+ background: var(--ds-bg);
1453
+ }
1454
+ .main-header {
1455
+ flex-shrink: 0;
1456
+ padding: 1rem clamp(1rem, 3vw, 1.75rem) 1rem;
1457
+ border-bottom: 1px solid var(--ds-border);
1458
+ background: var(--ds-bg);
1459
+ }
1460
+ .main-header-top {
1461
+ display: flex;
1462
+ flex-wrap: wrap;
1463
+ align-items: flex-start;
1464
+ gap: 0.5rem 0.75rem;
1465
+ }
1466
+ .main-header-trailing {
1467
+ margin-left: auto;
1468
+ display: inline-flex;
1469
+ align-items: center;
1470
+ gap: 0.5rem;
1471
+ flex-wrap: wrap;
1472
+ justify-content: flex-end;
1473
+ }
1474
+ .system-settings {
1475
+ display: inline-flex;
1476
+ align-items: center;
1477
+ gap: 0.45rem;
1478
+ padding: 0.28rem 0.42rem;
1479
+ border-radius: 10px;
1480
+ border: 1px solid var(--ds-border);
1481
+ background: var(--ds-main-tint);
1482
+ }
1483
+ .system-settings-label {
1484
+ font-size: 0.68rem;
1485
+ color: var(--ds-muted);
1486
+ white-space: nowrap;
1487
+ }
1488
+ .btn-system-settings {
1489
+ border: 1px solid var(--ds-border);
1490
+ background: var(--ds-bg);
1491
+ color: var(--ds-text);
1492
+ border-radius: 8px;
1493
+ padding: 0.3rem 0.55rem;
1494
+ font-size: 0.72rem;
1495
+ cursor: pointer;
1496
+ white-space: nowrap;
1497
+ }
1498
+ .btn-system-settings:hover {
1499
+ background: var(--ds-item-hover);
1500
+ }
1501
+ .main-header h1 {
1502
+ font-size: 1.2rem;
1503
+ font-weight: 650;
1504
+ margin: 0;
1505
+ line-height: 1.3;
1506
+ color: var(--ds-text);
1507
+ letter-spacing: -0.02em;
1508
+ }
1509
+ .main-header .mode-pill {
1510
+ display: inline-flex;
1511
+ align-items: center;
1512
+ font-size: 0.7rem;
1513
+ font-weight: 500;
1514
+ color: var(--ds-muted);
1515
+ padding: 0.2rem 0.55rem;
1516
+ border-radius: 999px;
1517
+ background: var(--ds-main-tint);
1518
+ border: 1px solid var(--ds-border);
1519
+ }
1520
+ .main-header .sub {
1521
+ font-size: 0.7rem;
1522
+ color: var(--ds-muted);
1523
+ margin-top: 0.5rem;
1524
+ word-break: break-all;
1525
+ font-family: ui-monospace, monospace;
1526
+ padding: 0.35rem 0.55rem;
1527
+ border-radius: var(--ds-radius-sm);
1528
+ background: var(--ds-log-bg);
1529
+ border: 1px solid var(--ds-log-border);
1530
+ max-width: 100%;
1531
+ }
1532
+ .main-header .sub:empty {
1533
+ display: none;
1534
+ }
1535
+ .main-scroll {
1536
+ flex: 1;
1537
+ min-height: 0;
1538
+ display: flex;
1539
+ flex-direction: column;
1540
+ overflow: hidden;
1541
+ padding: 0;
1542
+ }
1543
+ .main-body {
1544
+ flex: 1;
1545
+ min-height: 0;
1546
+ display: flex;
1547
+ flex-direction: column;
1548
+ width: 100%;
1549
+ }
1550
+ .chat-thread {
1551
+ flex: 1 1 0;
1552
+ min-height: 0;
1553
+ overflow-y: auto;
1554
+ overflow-x: hidden;
1555
+ padding: 20px 24px 28px;
1556
+ width: 100%;
1557
+ position: relative;
1558
+ }
1559
+ .chat-thread > *:not(.chat-loading) {
1560
+ max-width: var(--chat-max);
1561
+ width: 100%;
1562
+ margin-left: auto;
1563
+ margin-right: auto;
1564
+ box-sizing: border-box;
1565
+ }
1566
+ .chat-loading {
1567
+ position: absolute;
1568
+ inset: 0;
1569
+ display: flex;
1570
+ align-items: center;
1571
+ justify-content: center;
1572
+ pointer-events: none;
1573
+ background: rgba(255, 255, 255, 0.72);
1574
+ z-index: 3;
1575
+ }
1576
+ .chat-loading[hidden] {
1577
+ display: none !important;
1578
+ }
1579
+ .chat-loading-inner {
1580
+ display: inline-flex;
1581
+ align-items: center;
1582
+ gap: 8px;
1583
+ padding: 8px 12px;
1584
+ border-radius: 10px;
1585
+ border: 1px solid var(--ds-separator);
1586
+ background: var(--ds-bg);
1587
+ color: var(--ds-secondary);
1588
+ font-size: 12px;
1589
+ box-shadow: var(--ds-shadow);
1590
+ }
1591
+ .chat-loading-spinner {
1592
+ width: 12px;
1593
+ height: 12px;
1594
+ border-radius: 999px;
1595
+ border: 2px solid rgba(142, 142, 147, 0.28);
1596
+ border-top-color: var(--ds-accent);
1597
+ animation: ws-ready-spin 0.75s linear infinite;
1598
+ flex-shrink: 0;
1599
+ }
1600
+ .chat-placeholder {
1601
+ font-size: 14px;
1602
+ color: var(--ds-muted);
1603
+ text-align: center;
1604
+ padding: 48px 16px;
1605
+ }
1606
+ .chat-msg {
1607
+ max-width: 100%;
1608
+ margin: 0 0 16px;
1609
+ padding: 0;
1610
+ border-radius: 0;
1611
+ line-height: 1.65;
1612
+ font-size: 15px;
1613
+ border: none;
1614
+ box-shadow: none;
1615
+ }
1616
+ .chat-msg-user {
1617
+ align-self: flex-end;
1618
+ max-width: 75%;
1619
+ margin-left: auto;
1620
+ padding: 10px 14px;
1621
+ border-radius: 18px;
1622
+ background: #f4f4f5;
1623
+ color: var(--ds-text);
1624
+ font-size: 15px;
1625
+ }
1626
+ /* 定时任务触发的整轮会话消息(用户/助手/工具) */
1627
+ .chat-msg-scheduled-turn {
1628
+ border-left: 3px solid #d97706;
1629
+ }
1630
+ .chat-msg-user.chat-msg-scheduled-turn {
1631
+ background: #fef9c3;
1632
+ }
1633
+ .chat-msg-assistant.chat-msg-scheduled-turn,
1634
+ .chat-msg-system.chat-msg-scheduled-turn {
1635
+ border-left-color: #ca8a04;
1636
+ }
1637
+ .chat-run-group--scheduled {
1638
+ border: 1px solid var(--ds-border);
1639
+ border-radius: var(--ds-radius-sm);
1640
+ padding: 8px 10px 10px;
1641
+ background: var(--ds-log-bg);
1642
+ }
1643
+ .chat-run-group--scheduled > .chat-msg-label:first-child {
1644
+ color: #b45309;
1645
+ }
1646
+ .chat-scheduled-badge {
1647
+ display: inline-block;
1648
+ font-size: 0.7rem;
1649
+ font-weight: 600;
1650
+ color: #b45309;
1651
+ background: #fef3c7;
1652
+ border: 1px solid #fcd34d;
1653
+ border-radius: 4px;
1654
+ padding: 0 6px;
1655
+ margin-right: 6px;
1656
+ vertical-align: middle;
1657
+ }
1658
+ .chat-user-body {
1659
+ white-space: pre-wrap;
1660
+ word-break: break-word;
1661
+ }
1662
+ .chat-command-name {
1663
+ display: inline-block;
1664
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1665
+ font-size: 0.82rem;
1666
+ font-weight: 600;
1667
+ color: #1d4ed8;
1668
+ background: #eff6ff;
1669
+ border: 1px solid #bfdbfe;
1670
+ border-radius: 6px;
1671
+ padding: 0.2rem 0.55rem;
1672
+ line-height: 1.35;
1673
+ }
1674
+ .chat-local-command-stdout {
1675
+ display: block;
1676
+ margin: 0.4rem 0 0;
1677
+ padding: 0.6rem 0.75rem;
1678
+ border-radius: 8px;
1679
+ background: #f8fafc;
1680
+ border: 1px solid #e2e8f0;
1681
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1682
+ font-size: 0.78rem;
1683
+ line-height: 1.5;
1684
+ white-space: pre-wrap;
1685
+ word-break: break-all;
1686
+ color: #0f172a;
1687
+ overflow-x: auto;
1688
+ }
1689
+ .chat-local-command-stderr {
1690
+ display: block;
1691
+ margin: 0.4rem 0 0;
1692
+ padding: 0.6rem 0.75rem;
1693
+ border-radius: 8px;
1694
+ background: #fef2f2;
1695
+ border: 1px solid #fecaca;
1696
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1697
+ font-size: 0.78rem;
1698
+ line-height: 1.5;
1699
+ white-space: pre-wrap;
1700
+ word-break: break-word;
1701
+ color: #991b1b;
1702
+ }
1703
+ .chat-slash-xml-rest {
1704
+ display: block;
1705
+ margin-top: 0.25rem;
1706
+ font-size: 0.72rem;
1707
+ color: var(--ds-muted);
1708
+ white-space: pre-wrap;
1709
+ word-break: break-word;
1710
+ }
1711
+ .chat-user-body.is-collapsed {
1712
+ display: -webkit-box;
1713
+ -webkit-box-orient: vertical;
1714
+ line-clamp: 2;
1715
+ -webkit-line-clamp: 2;
1716
+ overflow: hidden;
1717
+ }
1718
+ .chat-user-toggle {
1719
+ margin-top: 0.4rem;
1720
+ padding: 0;
1721
+ border: none;
1722
+ background: transparent;
1723
+ color: var(--ds-accent);
1724
+ font-size: 0.76rem;
1725
+ line-height: 1.3;
1726
+ cursor: pointer;
1727
+ }
1728
+ .chat-user-toggle:hover {
1729
+ text-decoration: underline;
1730
+ }
1731
+ .chat-msg-assistant {
1732
+ background: transparent;
1733
+ border: none;
1734
+ box-shadow: none;
1735
+ padding: 0;
1736
+ margin-bottom: 20px;
1737
+ max-width: 100%;
1738
+ }
1739
+ .chat-msg-system {
1740
+ background: transparent;
1741
+ border: none;
1742
+ border-left: none;
1743
+ padding: 4px 0;
1744
+ margin-bottom: 8px;
1745
+ color: var(--ds-muted);
1746
+ font-size: 12px;
1747
+ }
1748
+ .chat-msg-system .chat-user-body {
1749
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
1750
+ font-size: 12px;
1751
+ line-height: 1.5;
1752
+ color: #a1a1aa;
1753
+ }
1754
+ .chat-run-group {
1755
+ margin-bottom: 4px;
1756
+ }
1757
+ .chat-msg-label {
1758
+ display: none;
1759
+ }
1760
+ .chat-msg-system .chat-msg-label,
1761
+ .chat-run-group--scheduled > .chat-msg-label:first-child,
1762
+ .chat-run-summary-card .chat-msg-label {
1763
+ display: block;
1764
+ font-size: 11px;
1765
+ font-weight: 500;
1766
+ text-transform: none;
1767
+ letter-spacing: 0;
1768
+ color: var(--ds-muted);
1769
+ margin-bottom: 6px;
1770
+ }
1771
+ /* 工具调用:单行折叠 */
1772
+ .chat-tool-row {
1773
+ margin: 0 0 6px;
1774
+ border: none;
1775
+ border-radius: 6px;
1776
+ background: #f4f4f5;
1777
+ overflow: hidden;
1778
+ }
1779
+ .chat-tool-row[open] {
1780
+ background: #f0f0f2;
1781
+ }
1782
+ .chat-tool-row--scheduled {
1783
+ border-left: 3px solid #d97706;
1784
+ padding-left: 8px;
1785
+ }
1786
+ .chat-tool-row-summary {
1787
+ display: flex;
1788
+ align-items: center;
1789
+ gap: 10px;
1790
+ padding: 7px 12px;
1791
+ cursor: pointer;
1792
+ list-style: none;
1793
+ font-size: 13px;
1794
+ line-height: 1.4;
1795
+ }
1796
+ .chat-tool-row-summary::-webkit-details-marker {
1797
+ display: none;
1798
+ }
1799
+ .chat-tool-row-summary::before {
1800
+ content: '';
1801
+ flex-shrink: 0;
1802
+ width: 14px;
1803
+ height: 14px;
1804
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
1805
+ background-repeat: no-repeat;
1806
+ background-position: center;
1807
+ background-size: 14px;
1808
+ transition: transform 120ms ease;
1809
+ }
1810
+ .chat-tool-row[open] > .chat-tool-row-summary::before {
1811
+ transform: rotate(90deg);
1812
+ }
1813
+ .chat-tool-name {
1814
+ font-weight: 500;
1815
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1816
+ flex-shrink: 0;
1817
+ max-width: 24%;
1818
+ overflow: hidden;
1819
+ text-overflow: ellipsis;
1820
+ white-space: nowrap;
1821
+ color: var(--ds-muted);
1822
+ font-size: 12px;
1823
+ }
1824
+ .chat-tool-summary {
1825
+ flex: 1;
1826
+ min-width: 0;
1827
+ overflow: hidden;
1828
+ text-overflow: ellipsis;
1829
+ white-space: nowrap;
1830
+ color: var(--ds-text);
1831
+ font-size: 13px;
1832
+ }
1833
+ .chat-tool-status {
1834
+ flex-shrink: 0;
1835
+ font-size: 11px;
1836
+ font-weight: 500;
1837
+ padding: 2px 8px;
1838
+ border-radius: 999px;
1839
+ line-height: 1.3;
1840
+ }
1841
+ .chat-tool-status.is-running {
1842
+ color: #1d4ed8;
1843
+ background: #dbeafe;
1844
+ }
1845
+ .chat-tool-status.is-ok {
1846
+ color: #15803d;
1847
+ background: #dcfce7;
1848
+ }
1849
+ .chat-tool-status.is-err {
1850
+ color: #b91c1c;
1851
+ background: #fee2e2;
1852
+ }
1853
+ .chat-tool-detail {
1854
+ padding: 4px 12px 10px 36px;
1855
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
1856
+ }
1857
+ .chat-tool-pre {
1858
+ margin: 0 0 0.35rem;
1859
+ padding: 0.5rem 0.65rem;
1860
+ border-radius: 6px;
1861
+ background: #f8fafc;
1862
+ border: 1px solid var(--ds-separator);
1863
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1864
+ font-size: 0.75rem;
1865
+ line-height: 1.45;
1866
+ white-space: pre-wrap;
1867
+ word-break: break-word;
1868
+ max-height: 240px;
1869
+ overflow: auto;
1870
+ color: var(--ds-text);
1871
+ }
1872
+ .chat-tool-pre-label {
1873
+ font-size: 11px;
1874
+ font-weight: 500;
1875
+ color: var(--ds-muted);
1876
+ margin: 6px 0 4px;
1877
+ text-transform: none;
1878
+ letter-spacing: 0;
1879
+ }
1880
+ .chat-run-summary-card {
1881
+ position: relative;
1882
+ padding: 10px 12px;
1883
+ cursor: pointer;
1884
+ border: 1px solid var(--ds-border);
1885
+ border-radius: var(--ds-radius-sm);
1886
+ background: var(--ds-log-bg);
1887
+ margin-bottom: 8px;
1888
+ }
1889
+ .chat-run-summary-card--scheduled {
1890
+ border-left: 3px solid #ca8a04;
1891
+ }
1892
+ .chat-run-summary-card::after {
1893
+ content: '详情';
1894
+ position: absolute;
1895
+ right: 10px;
1896
+ top: 10px;
1897
+ color: var(--ds-accent);
1898
+ font-size: 12px;
1899
+ }
1900
+ .chat-run-summary-preview {
1901
+ margin-top: 0.25rem;
1902
+ color: var(--ds-secondary);
1903
+ font-size: 0.8rem;
1904
+ white-space: pre-wrap;
1905
+ word-break: break-word;
1906
+ display: -webkit-box;
1907
+ -webkit-box-orient: vertical;
1908
+ line-clamp: 5;
1909
+ -webkit-line-clamp: 5;
1910
+ overflow: hidden;
1911
+ }
1912
+ .run-group-modal-body {
1913
+ flex: 1;
1914
+ min-height: 0;
1915
+ overflow: hidden;
1916
+ padding: 0;
1917
+ background: transparent;
1918
+ }
1919
+ .run-group-modal-chat-thread {
1920
+ height: 100%;
1921
+ max-height: min(70vh, 760px);
1922
+ overflow-y: auto;
1923
+ padding: 0 18px 16px;
1924
+ }
1925
+ .chat-md {
1926
+ color: var(--ds-text);
1927
+ font-size: 15px;
1928
+ }
1929
+ .chat-md :first-child {
1930
+ margin-top: 0;
1931
+ }
1932
+ .chat-md :last-child {
1933
+ margin-bottom: 0;
1934
+ }
1935
+ .chat-md h1,
1936
+ .chat-md h2,
1937
+ .chat-md h3,
1938
+ .chat-md h4 {
1939
+ margin: 1em 0 0.4em;
1940
+ font-weight: 600;
1941
+ line-height: 1.35;
1942
+ font-size: 14px;
1943
+ color: var(--ds-text);
1944
+ }
1945
+ .chat-md h1:first-child,
1946
+ .chat-md h2:first-child,
1947
+ .chat-md h3:first-child,
1948
+ .chat-md h4:first-child {
1949
+ margin-top: 0;
1950
+ }
1951
+ .chat-md p {
1952
+ margin: 0.45em 0;
1953
+ }
1954
+ .chat-md ul,
1955
+ .chat-md ol {
1956
+ margin: 0.4em 0;
1957
+ padding-left: 1.25rem;
1958
+ }
1959
+ .chat-md li {
1960
+ margin: 0.15em 0;
1961
+ }
1962
+ .chat-md li::marker {
1963
+ color: var(--ds-muted);
1964
+ }
1965
+ .chat-md hr {
1966
+ border: none;
1967
+ border-top: 1px solid var(--ds-border);
1968
+ margin: 14px 0;
1969
+ }
1970
+ .chat-md strong {
1971
+ font-weight: 600;
1972
+ color: var(--ds-text);
1973
+ }
1974
+ .chat-md pre {
1975
+ margin: 0.65em 0;
1976
+ padding: 0.65rem 0.75rem;
1977
+ border-radius: 6px;
1978
+ background: #f4f4f5;
1979
+ color: var(--ds-text);
1980
+ border: 1px solid var(--ds-border);
1981
+ overflow-x: auto;
1982
+ font-size: 13px;
1983
+ }
1984
+ .chat-md code {
1985
+ font-family: ui-monospace, monospace;
1986
+ font-size: 0.9em;
1987
+ padding: 0.1em 0.35em;
1988
+ border-radius: 4px;
1989
+ background: #f4f4f5;
1990
+ color: var(--ds-secondary);
1991
+ }
1992
+ .chat-md pre code {
1993
+ padding: 0;
1994
+ background: transparent;
1995
+ color: inherit;
1996
+ font-size: inherit;
1997
+ }
1998
+ .chat-md blockquote {
1999
+ margin: 10px 0;
2000
+ padding: 10px 12px;
2001
+ border-left: 3px solid var(--ds-accent);
2002
+ border-radius: 0 6px 6px 0;
2003
+ background: var(--ds-log-bg);
2004
+ color: var(--ds-secondary);
2005
+ font-size: 13px;
2006
+ }
2007
+ .chat-md blockquote p {
2008
+ margin: 0.2em 0;
2009
+ }
2010
+ .pdf-export-download-wrap {
2011
+ margin: 0.35rem 0 0.75rem;
2012
+ }
2013
+ .pdf-export-download-btn {
2014
+ display: inline-block;
2015
+ padding: 0.35rem 0.75rem;
2016
+ border-radius: 6px;
2017
+ font-size: 0.82rem;
2018
+ font-weight: 600;
2019
+ text-decoration: none;
2020
+ color: #fff;
2021
+ background: var(--ds-accent, #2563eb);
2022
+ }
2023
+ .pdf-export-download-btn:hover {
2024
+ filter: brightness(1.08);
2025
+ }
2026
+ .chat-streaming {
2027
+ opacity: 0.88;
2028
+ }
2029
+ .chat-streaming .stream-pulse {
2030
+ display: inline-block;
2031
+ width: 6px;
2032
+ height: 6px;
2033
+ border-radius: 50%;
2034
+ background: var(--ds-accent);
2035
+ margin-left: 0.35rem;
2036
+ vertical-align: middle;
2037
+ animation: streamDot 1s ease-in-out infinite;
2038
+ }
2039
+ @keyframes streamDot {
2040
+ 0%,
2041
+ 100% {
2042
+ opacity: 0.35;
2043
+ }
2044
+ 50% {
2045
+ opacity: 1;
2046
+ }
2047
+ }
2048
+ label.f {
2049
+ display: block;
2050
+ font-size: 0.72rem;
2051
+ color: var(--ds-muted);
2052
+ margin-bottom: 0.2rem;
2053
+ }
2054
+ .ws-config-hidden {
2055
+ position: absolute;
2056
+ width: 1px;
2057
+ height: 1px;
2058
+ padding: 0;
2059
+ margin: -1px;
2060
+ overflow: hidden;
2061
+ clip: rect(0, 0, 0, 0);
2062
+ white-space: nowrap;
2063
+ border: 0;
2064
+ }
2065
+ .composer {
2066
+ flex-shrink: 0;
2067
+ padding: 0;
2068
+ background: var(--ds-bg);
2069
+ }
2070
+ .composer-inner {
2071
+ width: 100%;
2072
+ margin: 0 auto;
2073
+ padding: 12px 24px 16px;
2074
+ max-width: calc(var(--chat-max) + 48px);
2075
+ }
2076
+ .composer-card {
2077
+ border: 1px solid var(--ds-border);
2078
+ border-radius: var(--ds-radius);
2079
+ background: var(--ds-bg);
2080
+ box-shadow: none;
2081
+ padding: 10px 12px;
2082
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
2083
+ }
2084
+ .composer-card:focus-within {
2085
+ border-color: var(--ds-accent);
2086
+ box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.12);
2087
+ }
2088
+ .composer-card label.f {
2089
+ margin-bottom: 0.45rem;
2090
+ padding-left: 0;
2091
+ font-weight: 500;
2092
+ color: #4b5563;
2093
+ }
2094
+ .prompt-label-row {
2095
+ display: flex;
2096
+ align-items: center;
2097
+ justify-content: space-between;
2098
+ gap: 0.5rem;
2099
+ margin-bottom: 0.45rem;
2100
+ }
2101
+ .prompt-label-row label.f {
2102
+ margin-bottom: 0;
2103
+ }
2104
+ .prompt-session-info {
2105
+ font-size: 0.68rem;
2106
+ color: var(--ds-muted);
2107
+ font-family: ui-monospace, monospace;
2108
+ white-space: nowrap;
2109
+ overflow: hidden;
2110
+ text-overflow: ellipsis;
2111
+ max-width: 62%;
2112
+ text-align: right;
2113
+ }
2114
+ .composer-card textarea#prompt {
2115
+ width: 100%;
2116
+ min-height: 48px;
2117
+ max-height: 28vh;
2118
+ resize: vertical;
2119
+ font: inherit;
2120
+ font-size: 15px;
2121
+ line-height: 1.55;
2122
+ padding: 2px 0;
2123
+ border: none;
2124
+ border-radius: 0;
2125
+ background: transparent;
2126
+ color: var(--ds-text);
2127
+ outline: none;
2128
+ }
2129
+ .composer-card textarea#prompt::placeholder { color: #b4b4b4; }
2130
+ .composer-card-footer {
2131
+ display: flex;
2132
+ align-items: center;
2133
+ justify-content: space-between;
2134
+ gap: 0.65rem;
2135
+ margin-top: 10px;
2136
+ padding-top: 10px;
2137
+ border-top: 1px solid var(--ds-border);
2138
+ }
2139
+ .composer-tools-left {
2140
+ display: flex;
2141
+ align-items: center;
2142
+ gap: 0.35rem;
2143
+ min-width: 0;
2144
+ }
2145
+ .composer-tools-right {
2146
+ display: flex;
2147
+ align-items: center;
2148
+ gap: 0.35rem;
2149
+ }
2150
+ .composer-model-field {
2151
+ position: relative;
2152
+ flex: 1;
2153
+ min-width: min(200px, 28vw);
2154
+ max-width: min(560px, 72vw);
2155
+ }
2156
+ .composer-mode-select {
2157
+ box-sizing: border-box;
2158
+ height: 2.2rem;
2159
+ min-width: 9.5rem;
2160
+ max-width: 11.5rem;
2161
+ padding: 0 0.5rem;
2162
+ border: 1px solid var(--ds-border);
2163
+ border-radius: 8px;
2164
+ background: var(--ds-main-tint);
2165
+ color: var(--ds-text);
2166
+ font-size: 0.72rem;
2167
+ outline: none;
2168
+ }
2169
+ .composer-mode-select:focus {
2170
+ border-color: #c7d2fe;
2171
+ box-shadow: 0 0 0 2px rgba(79, 109, 245, 0.12);
2172
+ }
2173
+ .composer-allow-ask-select {
2174
+ box-sizing: border-box;
2175
+ height: 2.2rem;
2176
+ min-width: 6.8rem;
2177
+ max-width: 8.4rem;
2178
+ padding: 0 0.45rem;
2179
+ border: 1px solid var(--ds-border);
2180
+ border-radius: 8px;
2181
+ background: var(--ds-main-tint);
2182
+ color: var(--ds-text);
2183
+ font-size: 0.72rem;
2184
+ outline: none;
2185
+ }
2186
+ .composer-allow-ask-select:focus {
2187
+ border-color: #c7d2fe;
2188
+ box-shadow: 0 0 0 2px rgba(79, 109, 245, 0.12);
2189
+ }
2190
+ .composer-model-input {
2191
+ width: 100%;
2192
+ box-sizing: border-box;
2193
+ height: 2.2rem;
2194
+ padding: 0 0.5rem;
2195
+ border: 1px solid var(--ds-border);
2196
+ border-radius: 8px;
2197
+ background: var(--ds-main-tint);
2198
+ color: var(--ds-text);
2199
+ font-size: 12px;
2200
+ font-family: inherit;
2201
+ outline: none;
2202
+ }
2203
+ .composer-model-input:focus {
2204
+ border-color: #c7d2fe;
2205
+ box-shadow: 0 0 0 2px rgba(79, 109, 245, 0.12);
2206
+ }
2207
+ .composer-model-input::placeholder {
2208
+ color: #b4b4b4;
2209
+ font-family: inherit;
2210
+ }
2211
+ .composer-model-suggestions {
2212
+ position: absolute;
2213
+ left: 0;
2214
+ right: 0;
2215
+ bottom: 100%;
2216
+ margin: 0 0 4px;
2217
+ padding: 0.25rem 0;
2218
+ list-style: none;
2219
+ max-height: min(220px, 32vh);
2220
+ overflow: auto;
2221
+ border: 1px solid var(--ds-border);
2222
+ border-radius: 10px;
2223
+ background: var(--ds-bg);
2224
+ box-shadow: var(--ds-shadow-md);
2225
+ z-index: 50;
2226
+ display: none;
2227
+ }
2228
+ .composer-model-suggestions.is-open {
2229
+ display: block;
2230
+ }
2231
+ .composer-model-suggestions li {
2232
+ padding: 0.38rem 0.55rem;
2233
+ font-size: 0.72rem;
2234
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
2235
+ cursor: pointer;
2236
+ color: var(--ds-text);
2237
+ white-space: nowrap;
2238
+ overflow: hidden;
2239
+ text-overflow: ellipsis;
2240
+ }
2241
+ .composer-model-suggestions li:hover,
2242
+ .composer-model-suggestions li.is-active {
2243
+ background: var(--ds-item-active);
2244
+ color: var(--ds-accent);
2245
+ }
2246
+ .composer-model-suggestions .composer-model-suggest-empty {
2247
+ color: var(--ds-muted);
2248
+ cursor: default;
2249
+ font-family: inherit;
2250
+ }
2251
+ .composer-model-suggestions .composer-model-suggest-empty:hover {
2252
+ background: transparent;
2253
+ color: var(--ds-muted);
2254
+ }
2255
+ .composer-action-btn {
2256
+ width: 2.2rem;
2257
+ height: 2.2rem;
2258
+ border-radius: 8px;
2259
+ flex-shrink: 0;
2260
+ }
2261
+ .composer-action-btn:disabled {
2262
+ opacity: 0.4;
2263
+ cursor: not-allowed;
2264
+ }
2265
+ .composer-action-btn svg {
2266
+ width: 17px;
2267
+ height: 17px;
2268
+ }
2269
+ .tool-files-body {
2270
+ padding: 0.75rem 1rem 0.95rem;
2271
+ max-height: min(62vh, 560px);
2272
+ overflow: auto;
2273
+ background: var(--ds-main-tint);
2274
+ }
2275
+ .tool-files-meta {
2276
+ margin: 0 0 0.55rem;
2277
+ font-size: 0.72rem;
2278
+ color: var(--ds-muted);
2279
+ word-break: break-all;
2280
+ }
2281
+ .tool-files-state {
2282
+ font-size: 0.82rem;
2283
+ color: var(--ds-muted);
2284
+ padding: 0.45rem 0.2rem;
2285
+ }
2286
+ .tool-files-list {
2287
+ display: flex;
2288
+ flex-direction: column;
2289
+ gap: 0.5rem;
2290
+ }
2291
+ .tool-files-item {
2292
+ border: 1px solid var(--ds-border);
2293
+ border-radius: 10px;
2294
+ background: var(--ds-bg);
2295
+ padding: 0.55rem 0.65rem;
2296
+ display: flex;
2297
+ align-items: center;
2298
+ justify-content: space-between;
2299
+ gap: 0.7rem;
2300
+ }
2301
+ .tool-files-main {
2302
+ min-width: 0;
2303
+ flex: 1;
2304
+ }
2305
+ .tool-files-name {
2306
+ font-size: 0.8rem;
2307
+ color: var(--ds-text);
2308
+ white-space: nowrap;
2309
+ overflow: hidden;
2310
+ text-overflow: ellipsis;
2311
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
2312
+ }
2313
+ .tool-files-sub {
2314
+ margin-top: 0.22rem;
2315
+ font-size: 0.7rem;
2316
+ color: var(--ds-muted);
2317
+ white-space: nowrap;
2318
+ overflow: hidden;
2319
+ text-overflow: ellipsis;
2320
+ }
2321
+ .tool-files-download {
2322
+ display: inline-flex;
2323
+ align-items: center;
2324
+ justify-content: center;
2325
+ height: 1.9rem;
2326
+ padding: 0 0.65rem;
2327
+ border-radius: 8px;
2328
+ border: 1px solid var(--ds-border);
2329
+ background: var(--ds-bg);
2330
+ color: var(--ds-text);
2331
+ font-size: 0.75rem;
2332
+ text-decoration: none;
2333
+ flex-shrink: 0;
2334
+ }
2335
+ .tool-files-download:hover {
2336
+ border-color: #c7d2fe;
2337
+ background: #eef2ff;
2338
+ color: var(--ds-accent);
2339
+ }
2340
+ .page-footer-note {
2341
+ text-align: center;
2342
+ font-size: 0.65rem;
2343
+ color: #9ca3af;
2344
+ padding: 0.5rem 1rem 0;
2345
+ letter-spacing: 0.02em;
2346
+ }
2347
+ .drawer-bind-block {
2348
+ margin-bottom: 0.55rem;
2349
+ padding-bottom: 0.5rem;
2350
+ border-bottom: 1px solid var(--ds-border);
2351
+ font-size: 0.72rem;
2352
+ }
2353
+ .drawer-bind-block--solo {
2354
+ margin-bottom: 0;
2355
+ padding-bottom: 0;
2356
+ border-bottom: none;
2357
+ }
2358
+ .drawer-bind-head {
2359
+ display: flex;
2360
+ align-items: center;
2361
+ justify-content: space-between;
2362
+ gap: 0.35rem;
2363
+ }
2364
+ .drawer-bind-head.sidebar-drawer-meta {
2365
+ padding-top: 0.15rem;
2366
+ font-size: 0.7rem;
2367
+ }
2368
+ .drawer-bind-head strong {
2369
+ color: var(--ds-text);
2370
+ font-weight: 600;
2371
+ }
2372
+ .agent-bind-model-input {
2373
+ width: 100%;
2374
+ box-sizing: border-box;
2375
+ padding: 0.25rem 0.35rem;
2376
+ border-radius: 6px;
2377
+ border: 1px solid var(--ds-border);
2378
+ background: var(--ds-bg);
2379
+ color: var(--ds-text);
2380
+ font-size: 0.72rem;
2381
+ }
2382
+ .btn-bind-save {
2383
+ margin-top: 0.35rem;
2384
+ width: 100%;
2385
+ padding: 0.3rem;
2386
+ border-radius: 8px;
2387
+ border: none;
2388
+ background: var(--ds-accent);
2389
+ color: #fff;
2390
+ font-size: 0.7rem;
2391
+ cursor: pointer;
2392
+ }
2393
+ .btn-bind-save:hover:not(:disabled) {
2394
+ background: var(--ds-accent-hover);
2395
+ }
2396
+ .btn-bind-save:disabled {
2397
+ opacity: 0.5;
2398
+ cursor: not-allowed;
2399
+ }
2400
+ .agent-picker-search {
2401
+ width: 100%;
2402
+ box-sizing: border-box;
2403
+ margin-bottom: 0.45rem;
2404
+ padding: 0.35rem;
2405
+ border-radius: 8px;
2406
+ border: 1px solid var(--ds-border);
2407
+ font-size: 0.78rem;
2408
+ }
2409
+ .agent-picker-scroll {
2410
+ max-height: min(42vh, 280px);
2411
+ overflow: auto;
2412
+ border: 1px solid var(--ds-border);
2413
+ border-radius: 8px;
2414
+ padding: 0.35rem;
2415
+ }
2416
+ .agent-picker-item {
2417
+ display: flex;
2418
+ align-items: center;
2419
+ gap: 0.45rem;
2420
+ padding: 0.25rem 0;
2421
+ border-bottom: 1px solid rgba(0, 0, 0, 0.06);
2422
+ }
2423
+ .agent-picker-item:last-child {
2424
+ border-bottom: none;
2425
+ }
2426
+ .agent-picker-section {
2427
+ margin-bottom: 0.8rem;
2428
+ }
2429
+ .agent-picker-section:last-child {
2430
+ margin-bottom: 0;
2431
+ }
2432
+ .agent-picker-tabs {
2433
+ display: flex;
2434
+ gap: 0.3rem;
2435
+ margin-bottom: 0.45rem;
2436
+ flex-wrap: wrap;
2437
+ }
2438
+ .btn-picker-tab {
2439
+ border: 1px solid var(--ds-border);
2440
+ background: var(--ds-bg-elev);
2441
+ color: var(--ds-text);
2442
+ border-radius: 6px;
2443
+ font-size: 0.7rem;
2444
+ line-height: 1;
2445
+ padding: 0.32rem 0.5rem;
2446
+ cursor: pointer;
2447
+ }
2448
+ .btn-picker-tab.is-on {
2449
+ color: #fff;
2450
+ border-color: var(--ds-accent);
2451
+ background: var(--ds-accent);
2452
+ }
2453
+ .agent-picker-section-title {
2454
+ font-size: 0.72rem;
2455
+ font-weight: 600;
2456
+ color: var(--ds-text-soft);
2457
+ margin-bottom: 0.3rem;
2458
+ }
2459
+ .agent-picker-empty {
2460
+ font-size: 0.72rem;
2461
+ color: var(--ds-text-soft);
2462
+ padding: 0.2rem 0.05rem 0.35rem;
2463
+ }
2464
+ .agent-picker-cloud-search {
2465
+ width: 100%;
2466
+ box-sizing: border-box;
2467
+ margin-bottom: 0.35rem;
2468
+ padding: 0.32rem 0.36rem;
2469
+ border-radius: 7px;
2470
+ border: 1px solid var(--ds-border);
2471
+ font-size: 0.74rem;
2472
+ }
2473
+ .agent-picker-cloud-meta {
2474
+ font-size: 0.68rem;
2475
+ color: var(--ds-text-soft);
2476
+ margin: 0.08rem 0 0.22rem;
2477
+ }
2478
+ .agent-picker-cloud-pager {
2479
+ display: flex;
2480
+ align-items: center;
2481
+ justify-content: flex-end;
2482
+ gap: 0.35rem;
2483
+ margin-bottom: 0.35rem;
2484
+ }
2485
+ .agent-picker-cloud-page-info {
2486
+ font-size: 0.68rem;
2487
+ color: var(--ds-text-soft);
2488
+ min-width: 4.2rem;
2489
+ text-align: center;
2490
+ }
2491
+ .agent-picker-item-label {
2492
+ flex: 1;
2493
+ font-size: 0.74rem;
2494
+ line-height: 1.35;
2495
+ }
2496
+ .agent-picker-actions {
2497
+ display: inline-flex;
2498
+ align-items: center;
2499
+ gap: 0.3rem;
2500
+ flex-shrink: 0;
2501
+ }
2502
+ .btn-picker-action {
2503
+ border: 1px solid var(--ds-border);
2504
+ background: var(--ds-bg-elev);
2505
+ color: var(--ds-text);
2506
+ border-radius: 6px;
2507
+ font-size: 0.68rem;
2508
+ line-height: 1;
2509
+ padding: 0.28rem 0.42rem;
2510
+ cursor: pointer;
2511
+ }
2512
+ .btn-picker-action:hover:not(:disabled) {
2513
+ border-color: var(--ds-accent);
2514
+ }
2515
+ .btn-picker-action.is-on {
2516
+ color: #fff;
2517
+ border-color: var(--ds-accent);
2518
+ background: var(--ds-accent);
2519
+ }
2520
+ .btn-picker-action.is-delete {
2521
+ color: #ff6a6a;
2522
+ border-color: rgba(255, 106, 106, 0.45);
2523
+ background: rgba(255, 106, 106, 0.08);
2524
+ }
2525
+ .btn-picker-action:disabled {
2526
+ opacity: 0.45;
2527
+ cursor: not-allowed;
2528
+ }
2529
+
2530
+ /* 页面级布局:ChatGPT 式侧栏 + 主区 */
2531
+ body {
2532
+ background: var(--ds-bg);
2533
+ -webkit-font-smoothing: antialiased;
2534
+ -moz-osx-font-smoothing: grayscale;
2535
+ }
2536
+ .main {
2537
+ background: var(--ds-bg);
2538
+ display: flex;
2539
+ flex-direction: column;
2540
+ min-height: 0;
2541
+ }
2542
+ .main-header {
2543
+ flex-shrink: 0;
2544
+ display: flex;
2545
+ align-items: center;
2546
+ justify-content: space-between;
2547
+ gap: 16px;
2548
+ min-height: 52px;
2549
+ padding: 0 20px;
2550
+ border-bottom: 1px solid var(--ds-border);
2551
+ background: var(--ds-bg);
2552
+ }
2553
+ .main-header-title {
2554
+ margin: 0;
2555
+ font-size: 16px;
2556
+ font-weight: 600;
2557
+ line-height: 1.3;
2558
+ color: var(--ds-text);
2559
+ overflow: hidden;
2560
+ text-overflow: ellipsis;
2561
+ white-space: nowrap;
2562
+ min-width: 0;
2563
+ flex: 1;
2564
+ }
2565
+ .main-header-sub {
2566
+ display: none;
2567
+ }
2568
+ .composer-meta {
2569
+ display: flex;
2570
+ align-items: center;
2571
+ justify-content: flex-end;
2572
+ gap: 0;
2573
+ font-size: 12px;
2574
+ color: var(--ds-muted);
2575
+ margin-bottom: 8px;
2576
+ padding: 0 4px;
2577
+ min-width: 0;
2578
+ }
2579
+ .composer-meta .conn-status {
2580
+ display: inline-flex;
2581
+ align-items: center;
2582
+ gap: 6px;
2583
+ white-space: nowrap;
2584
+ flex-shrink: 0;
2585
+ }
2586
+ .composer-meta .conn-status::before {
2587
+ content: '';
2588
+ width: 6px;
2589
+ height: 6px;
2590
+ border-radius: 50%;
2591
+ background: var(--ds-muted);
2592
+ flex-shrink: 0;
2593
+ }
2594
+ .composer-meta .conn-status.ready::before { background: var(--ds-ok); }
2595
+ .composer-meta .conn-status.err::before { background: var(--ds-danger); }
2596
+ .composer-meta .conn-status.ready { color: var(--ds-ok); font-weight: 500; }
2597
+ .composer-meta .conn-status.err { color: var(--ds-danger); font-weight: 500; }
2598
+ .composer-meta .composer-meta-sep {
2599
+ width: 1px;
2600
+ height: 14px;
2601
+ margin: 0 10px;
2602
+ background: var(--ds-border);
2603
+ flex-shrink: 0;
2604
+ }
2605
+ .composer-meta .prompt-session-info {
2606
+ font-family: ui-monospace, Menlo, monospace;
2607
+ font-size: 11px;
2608
+ min-width: 0;
2609
+ overflow: hidden;
2610
+ text-overflow: ellipsis;
2611
+ white-space: nowrap;
2612
+ max-width: min(360px, 45vw);
2613
+ }
2614
+ .main-scroll {
2615
+ flex: 1;
2616
+ min-height: 0;
2617
+ display: flex;
2618
+ flex-direction: column;
2619
+ }
2620
+ .main-body {
2621
+ flex: 1;
2622
+ min-height: 0;
2623
+ display: flex;
2624
+ flex-direction: column;
2625
+ overflow: hidden;
2626
+ }
2627
+ .chat-thread {
2628
+ display: flex;
2629
+ flex-direction: column;
2630
+ align-items: stretch;
2631
+ padding: 24px 20px 32px;
2632
+ flex: 1;
2633
+ }
2634
+ .composer {
2635
+ flex-shrink: 0;
2636
+ padding: 0 0 28px;
2637
+ background: var(--ds-bg);
2638
+ border-top: none;
2639
+ }
2640
+ .composer-inner {
2641
+ max-width: var(--chat-max);
2642
+ margin: 0 auto;
2643
+ padding: 0 20px;
2644
+ width: 100%;
2645
+ }
2646
+ .composer-card {
2647
+ border: 1px solid var(--ds-border);
2648
+ border-radius: 26px;
2649
+ background: var(--ds-bg);
2650
+ box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
2651
+ padding: 14px 16px 10px;
2652
+ }
2653
+ .composer-card:focus-within {
2654
+ border-color: #d4d4d8;
2655
+ box-shadow: 0 2px 20px rgba(0, 0, 0, 0.08);
2656
+ }
2657
+ .composer-card textarea#prompt {
2658
+ font-size: 16px;
2659
+ min-height: 28px;
2660
+ max-height: 200px;
2661
+ padding: 0;
2662
+ line-height: 1.5;
2663
+ }
2664
+ .composer-card-footer {
2665
+ border-top: none;
2666
+ margin-top: 8px;
2667
+ padding-top: 0;
2668
+ }
2669
+ .composer-model-input,
2670
+ .composer-mode-select,
2671
+ .composer-allow-ask-select {
2672
+ height: 30px;
2673
+ border-radius: 6px;
2674
+ border: 1px solid var(--ds-border);
2675
+ background: var(--ds-bg);
2676
+ font-size: 12px;
2677
+ }
2678
+ .composer-action-btn {
2679
+ width: 30px;
2680
+ height: 30px;
2681
+ border-radius: 6px;
2682
+ }
2683
+ #btnSend.composer-action-btn {
2684
+ width: 34px;
2685
+ height: 34px;
2686
+ border-radius: 999px;
2687
+ background: var(--ds-accent);
2688
+ color: #fff;
2689
+ flex-shrink: 0;
2690
+ }
2691
+ #btnSend.composer-action-btn:hover:not(:disabled) {
2692
+ background: var(--ds-accent-hover);
2693
+ }
2694
+ #btnSend.composer-action-btn:disabled {
2695
+ background: #d4d4d8;
2696
+ opacity: 1;
2697
+ }
2698
+ .composer-model-field {
2699
+ flex: 1;
2700
+ min-width: 140px;
2701
+ max-width: 280px;
2702
+ }
2703
+ .btn-primary {
2704
+ border-radius: 6px;
2705
+ font-weight: 500;
2706
+ }
2707
+ .agent-md-modal-backdrop {
2708
+ background: rgba(0, 0, 0, 0.4);
2709
+ }
2710
+ .sidebar *::-webkit-scrollbar,
2711
+ .sidebar-session-list::-webkit-scrollbar,
2712
+ .main-scroll *::-webkit-scrollbar,
2713
+ .chat-thread::-webkit-scrollbar {
2714
+ width: 5px;
2715
+ height: 5px;
2716
+ }
2717
+ .sidebar *::-webkit-scrollbar-thumb,
2718
+ .sidebar-session-list::-webkit-scrollbar-thumb,
2719
+ .main-scroll *::-webkit-scrollbar-thumb,
2720
+ .chat-thread::-webkit-scrollbar-thumb {
2721
+ background: rgba(0, 0, 0, 0.15);
2722
+ border-radius: 999px;
2723
+ }
2724
+ @keyframes ws-ready-spin {
2725
+ to { transform: rotate(360deg); }
2726
+ }
2727
+
2728
+ /* 工具 chip 视觉 */
2729
+ .agent-bind-chips .sidebar-drawer-item {
2730
+ background: var(--ds-page);
2731
+ border-color: transparent;
2732
+ }
2733
+ .agent-bind-chips .sidebar-drawer-item:hover {
2734
+ background: var(--ds-item-hover);
2735
+ }
2736
+
2737
+ /* 会话页签条 */
2738
+ .session-tabs {
2739
+ display: flex;
2740
+ align-items: stretch;
2741
+ gap: 0;
2742
+ height: 40px;
2743
+ padding: 0;
2744
+ border-bottom: none;
2745
+ background: transparent;
2746
+ flex-shrink: 0;
2747
+ }
2748
+ .session-tabs-list {
2749
+ flex: 1;
2750
+ min-width: 0;
2751
+ display: flex;
2752
+ align-items: stretch;
2753
+ gap: 0;
2754
+ overflow-x: auto;
2755
+ overflow-y: hidden;
2756
+ scrollbar-width: thin;
2757
+ }
2758
+ .session-tabs-list::-webkit-scrollbar { height: 6px; }
2759
+ .session-tabs-list::-webkit-scrollbar-thumb {
2760
+ background: rgba(60, 60, 67, 0.2);
2761
+ border-radius: 999px;
2762
+ }
2763
+ .session-tabs-empty {
2764
+ font-size: 12px;
2765
+ color: var(--ds-muted);
2766
+ padding: 8px;
2767
+ }
2768
+ .session-tab {
2769
+ position: relative;
2770
+ flex-shrink: 0;
2771
+ display: inline-flex;
2772
+ align-items: center;
2773
+ gap: 4px;
2774
+ max-width: 180px;
2775
+ min-width: 88px;
2776
+ height: 100%;
2777
+ padding: 0 8px 0 12px;
2778
+ margin-bottom: 0;
2779
+ border: none;
2780
+ border-bottom: 2px solid transparent;
2781
+ border-radius: 0;
2782
+ background: transparent;
2783
+ color: var(--ds-muted);
2784
+ transition: color 120ms ease, border-color 120ms ease, background 120ms ease;
2785
+ }
2786
+ .session-tab:hover {
2787
+ color: var(--ds-text);
2788
+ background: var(--ds-item-hover);
2789
+ }
2790
+ .session-tab.active {
2791
+ color: var(--ds-text);
2792
+ border-bottom-color: var(--ds-accent);
2793
+ background: var(--ds-bg);
2794
+ }
2795
+ .session-tab-main {
2796
+ flex: 1;
2797
+ min-width: 0;
2798
+ display: inline-flex;
2799
+ align-items: center;
2800
+ gap: 6px;
2801
+ border: none;
2802
+ background: transparent;
2803
+ color: inherit;
2804
+ font: inherit;
2805
+ font-size: 13px;
2806
+ font-weight: 500;
2807
+ text-align: left;
2808
+ padding: 0;
2809
+ cursor: pointer;
2810
+ line-height: 1;
2811
+ overflow: hidden;
2812
+ }
2813
+ .session-tab-icon {
2814
+ flex-shrink: 0;
2815
+ width: 14px;
2816
+ height: 14px;
2817
+ color: var(--ds-muted);
2818
+ display: inline-flex;
2819
+ align-items: center;
2820
+ justify-content: center;
2821
+ }
2822
+ .session-tab.active .session-tab-icon {
2823
+ color: var(--ds-secondary);
2824
+ }
2825
+ .session-tab-label {
2826
+ flex: 1;
2827
+ min-width: 0;
2828
+ white-space: nowrap;
2829
+ overflow: hidden;
2830
+ text-overflow: ellipsis;
2831
+ }
2832
+ .session-tab-close {
2833
+ flex-shrink: 0;
2834
+ width: 18px;
2835
+ height: 18px;
2836
+ display: inline-flex;
2837
+ align-items: center;
2838
+ justify-content: center;
2839
+ border: none;
2840
+ border-radius: 4px;
2841
+ background: transparent;
2842
+ color: var(--ds-muted);
2843
+ cursor: pointer;
2844
+ opacity: 0;
2845
+ transition: opacity 120ms ease, background 120ms ease, color 120ms ease;
2846
+ }
2847
+ .session-tab:hover .session-tab-close,
2848
+ .session-tab.active .session-tab-close {
2849
+ opacity: 0.55;
2850
+ }
2851
+ .session-tab-close:hover {
2852
+ opacity: 1;
2853
+ background: rgba(220, 38, 38, 0.1);
2854
+ color: var(--ds-danger);
2855
+ }
2856
+ .session-tab-new {
2857
+ flex-shrink: 0;
2858
+ width: 36px;
2859
+ height: 100%;
2860
+ margin: 0 4px 0 0;
2861
+ display: inline-flex;
2862
+ align-items: center;
2863
+ justify-content: center;
2864
+ border-radius: 6px;
2865
+ border: none;
2866
+ background: transparent;
2867
+ color: var(--ds-muted);
2868
+ cursor: pointer;
2869
+ font-size: 18px;
2870
+ line-height: 1;
2871
+ transition: background 120ms ease, color 120ms ease;
2872
+ }
2873
+ .session-tab-new:hover {
2874
+ background: var(--ds-item-hover);
2875
+ color: var(--ds-accent);
2876
+ }
2877
+ .session-tab-new:focus-visible {
2878
+ outline: none;
2879
+ box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.18);
2880
+ }