@auto-ai/agent 2.1.160 → 2.1.165

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/dist/404/index.html +1 -1
  2. package/dist/404.html +1 -1
  3. package/dist/_next/static/chunks/06b383e8ee499be7.js +1 -0
  4. package/dist/_next/static/chunks/0ce6504fc10ce408.js +1 -0
  5. package/dist/_next/static/chunks/0fa3b1f693a23b15.js +1 -0
  6. package/dist/_next/static/chunks/{b99d7c931432a00e.js → 106955e3cc6a6843.js} +1 -1
  7. package/dist/_next/static/chunks/1c9321874fea5f0d.js +1 -0
  8. package/dist/_next/static/chunks/1cb7453376657ffb.css +1 -0
  9. package/dist/_next/static/chunks/2014b101125849fd.js +1 -0
  10. package/dist/_next/static/chunks/{c5af60c028e52cf8.js → 270d7571d2eea071.js} +1 -1
  11. package/dist/_next/static/chunks/2df3e464b6247e75.js +1 -0
  12. package/dist/_next/static/chunks/32b9bdd82a961878.js +1 -0
  13. package/dist/_next/static/chunks/371449b804c846f7.js +1 -0
  14. package/dist/_next/static/chunks/38b035f49fa68570.js +1 -0
  15. package/dist/_next/static/chunks/{9aea16dd9db3a8bd.js → 3dcb1dcf23e7ab9c.js} +1 -1
  16. package/dist/_next/static/chunks/3ddf56f78e79b076.js +1 -0
  17. package/dist/_next/static/chunks/46b326fcd7b2e8ab.js +1 -0
  18. package/dist/_next/static/chunks/489266ff75dbd7fd.js +1 -0
  19. package/dist/_next/static/chunks/4b1cbde821e7ad65.js +1 -0
  20. package/dist/_next/static/chunks/{59baceab6698f9f7.js → 4d129d4e15c8c424.js} +1 -1
  21. package/dist/_next/static/chunks/{91adb7bdb9870c6a.js → 522518d740397639.js} +1 -1
  22. package/dist/_next/static/chunks/5853f68e75f5f7ab.js +1 -0
  23. package/dist/_next/static/chunks/5bad5163b6e015f5.js +1 -0
  24. package/dist/_next/static/chunks/{6c49d19eb7e88b9c.js → 5d79b7f202080232.js} +1 -1
  25. package/dist/_next/static/chunks/5f6769a92729c6c3.js +1 -0
  26. package/dist/_next/static/chunks/{cbb200599eb3e6d0.js → 63ec034afca4b5d6.js} +1 -1
  27. package/dist/_next/static/chunks/65efa67b7efe0f72.js +1 -0
  28. package/dist/_next/static/chunks/6e61f670898cb297.css +1 -0
  29. package/dist/_next/static/chunks/6f4460bd0b8a57af.js +1 -0
  30. package/dist/_next/static/chunks/73930967cfa80238.js +1 -0
  31. package/dist/_next/static/chunks/73e518d4b3543b8f.js +1 -0
  32. package/dist/_next/static/chunks/799f92e88bfeb469.js +1 -0
  33. package/dist/_next/static/chunks/{fa361913d47fdc14.css → 7bdf0e5b41aeb209.css} +0 -3
  34. package/dist/_next/static/chunks/7f52fbd725b13904.js +1 -0
  35. package/dist/_next/static/chunks/{314d4f64173e0e4f.js → 87e12ecbe9521f9b.js} +1 -1
  36. package/dist/_next/static/chunks/{93102efda2769ba5.js → 8f5be275907dd98c.js} +1 -1
  37. package/dist/_next/static/chunks/{83e39d76d6f07968.js → 94029062f236cadc.js} +1 -1
  38. package/dist/_next/static/chunks/{76a71d344cc15a9f.js → 9ccf7a8bca1730bf.js} +1 -1
  39. package/dist/_next/static/chunks/a6737fc58619eae5.js +1 -0
  40. package/dist/_next/static/chunks/a7d1ae46740fe1db.js +1 -0
  41. package/dist/_next/static/chunks/{b929fc868619ccb9.js → b30f1da4e57f459a.js} +1 -1
  42. package/dist/_next/static/chunks/b896987ddf6315c9.js +1 -0
  43. package/dist/_next/static/chunks/bbcf9daa108b22fb.js +1 -0
  44. package/dist/_next/static/chunks/bf2c1c402dbcccdf.js +1 -0
  45. package/dist/_next/static/chunks/bfc6ee42cec583d5.js +1 -0
  46. package/dist/_next/static/chunks/c79da9dd69089e4f.js +1 -0
  47. package/dist/_next/static/chunks/c933951b3113492f.js +1 -0
  48. package/dist/_next/static/chunks/{aadf128359998a2d.js → cd5eec7d305aa041.js} +1 -1
  49. package/dist/_next/static/chunks/d2d432a9facf4278.js +1 -0
  50. package/dist/_next/static/chunks/d4fd1b2f761be57f.css +7 -0
  51. package/dist/_next/static/chunks/d5e3d29f769997cc.js +1 -0
  52. package/dist/_next/static/chunks/da89e354de542422.js +1 -0
  53. package/dist/_next/static/chunks/e7bcbeb465fa49cf.js +1 -0
  54. package/dist/_next/static/chunks/ecaea9e9321ec538.js +1 -0
  55. package/dist/_next/static/chunks/{turbopack-030a42d60560a927.js → turbopack-63952675b1d69124.js} +1 -1
  56. package/dist/_next/static/media/data-loading.be8d921a.png +0 -0
  57. package/dist/_next/static/media/no-data.48c973b9.png +0 -0
  58. package/dist/agent-office.html +155 -226
  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 +23 -22
  63. package/dist/manage/env/index.html +2 -2
  64. package/dist/manage/env/index.txt +25 -24
  65. package/dist/manage/general/index.html +2 -2
  66. package/dist/manage/general/index.txt +23 -22
  67. package/dist/manage/index.html +2 -2
  68. package/dist/manage/index.txt +20 -19
  69. package/dist/manage/mcp/index.html +2 -2
  70. package/dist/manage/mcp/index.txt +22 -21
  71. package/dist/manage/permissions/index.html +2 -2
  72. package/dist/manage/permissions/index.txt +23 -22
  73. package/dist/manage/skills/index.html +2 -2
  74. package/dist/manage/skills/index.txt +22 -21
  75. package/dist/manage/task/index.html +2 -2
  76. package/dist/manage/task/index.txt +22 -21
  77. package/dist/manage/teams/index.html +2 -2
  78. package/dist/manage/teams/index.txt +22 -21
  79. package/dist/manage/tools/index.html +2 -2
  80. package/dist/manage/tools/index.txt +22 -21
  81. package/dist/ws-test.html +9740 -77
  82. package/package.json +6 -6
  83. package/skills-runtime/deploy-test-env/SKILL.md +1 -1
  84. package/skills-runtime/dev-task-flow/SKILL.md +4 -4
  85. package/skills-runtime/self-test-flow/SKILL.md +2 -2
  86. package/skills-runtime/workflow-hub/SKILL.md +1 -1
  87. package/.env.example +0 -7
  88. package/dist/_next/static/chunks/0bb72b120dc81a85.js +0 -1
  89. package/dist/_next/static/chunks/0eeaf05fe8e92617.js +0 -1
  90. package/dist/_next/static/chunks/14114800ef3e692e.js +0 -1
  91. package/dist/_next/static/chunks/1d51ed7830318474.js +0 -1
  92. package/dist/_next/static/chunks/1ffb3acecdbda566.js +0 -1
  93. package/dist/_next/static/chunks/22d483db0dece6fa.js +0 -1
  94. package/dist/_next/static/chunks/289e2d5005a099d3.js +0 -1
  95. package/dist/_next/static/chunks/292d0b687a419387.js +0 -1
  96. package/dist/_next/static/chunks/2bbdc3c6bbaac93f.js +0 -1
  97. package/dist/_next/static/chunks/376aaeae24164c1a.js +0 -1
  98. package/dist/_next/static/chunks/39fed6244d398269.js +0 -1
  99. package/dist/_next/static/chunks/48bc54794d1c3561.js +0 -1
  100. package/dist/_next/static/chunks/5534f66638e5a2e8.js +0 -1
  101. package/dist/_next/static/chunks/5817c66b26ce8538.css +0 -1
  102. package/dist/_next/static/chunks/5d5fe2c255f43fec.js +0 -1
  103. package/dist/_next/static/chunks/61676890ad8fe194.js +0 -1
  104. package/dist/_next/static/chunks/67bb401596b3c723.js +0 -1
  105. package/dist/_next/static/chunks/7de1ab3b78f48430.js +0 -1
  106. package/dist/_next/static/chunks/950875832bab2141.js +0 -1
  107. package/dist/_next/static/chunks/98a41a7efbe71682.js +0 -1
  108. package/dist/_next/static/chunks/9e2cffe3c17fd0e7.js +0 -1
  109. package/dist/_next/static/chunks/a79654d570ac30eb.js +0 -1
  110. package/dist/_next/static/chunks/a8e06ee8243e3389.js +0 -1
  111. package/dist/_next/static/chunks/ad419be63e291696.js +0 -1
  112. package/dist/_next/static/chunks/bcefc2c679f3ada6.js +0 -1
  113. package/dist/_next/static/chunks/c1cfc60c17638a73.js +0 -1
  114. package/dist/_next/static/chunks/c26f95ab8ad3dcf0.js +0 -1
  115. package/dist/_next/static/chunks/cb4dec27441d471a.js +0 -1
  116. package/dist/_next/static/chunks/d3af8988bf25a7de.js +0 -1
  117. package/dist/_next/static/chunks/d3ccfb3dcef5974f.js +0 -1
  118. package/dist/_next/static/chunks/d504c4e2ebc5319a.js +0 -1
  119. package/dist/_next/static/chunks/e2833182a81cd867.js +0 -1
  120. package/dist/_next/static/chunks/e520aa06a5014225.js +0 -1
  121. package/dist/_next/static/chunks/e7bd145455a541af.css +0 -4
  122. package/dist/_next/static/chunks/eae304701469d3a8.js +0 -1
  123. package/dist/_next/static/chunks/eba0719a42605421.js +0 -1
  124. package/dist/_next/static/chunks/f2a87f0c7c1ec9f4.js +0 -1
  125. package/dist/_next/static/chunks/faaf4e0c2d5cffda.js +0 -1
  126. package/dist/_next/static/chunks/fc4be3bcf72559a0.js +0 -1
  127. package/dist/manage/add-account/basic/index.html +0 -2
  128. package/dist/manage/add-account/basic/index.txt +0 -38
  129. package/dist/manage/add-account/index.html +0 -2
  130. package/dist/manage/add-account/index.txt +0 -36
  131. package/dist/ws-test.css +0 -2880
  132. package/dist/ws-test.js +0 -7442
  133. /package/dist/_next/static/{WYrSrJ9dye9qgdGCYVOpA → vwMrLQGLViMpdiC9eEa7U}/_buildManifest.js +0 -0
  134. /package/dist/_next/static/{WYrSrJ9dye9qgdGCYVOpA → vwMrLQGLViMpdiC9eEa7U}/_clientMiddlewareManifest.json +0 -0
  135. /package/dist/_next/static/{WYrSrJ9dye9qgdGCYVOpA → vwMrLQGLViMpdiC9eEa7U}/_ssgManifest.js +0 -0
package/dist/ws-test.css DELETED
@@ -1,2880 +0,0 @@
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
- }