backtrace-console 0.0.3 → 0.0.4

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.
@@ -0,0 +1,569 @@
1
+ .agent-block:first-child {
2
+ margin-top: 0;
3
+ padding-top: 0;
4
+ border-top: none;
5
+ }
6
+
7
+ .agent-block h1,
8
+ .agent-block h2,
9
+ .agent-block h3 {
10
+ margin: 0 0 0.85rem;
11
+ line-height: 1.35;
12
+ color: #111827;
13
+ }
14
+
15
+ .agent-block h1 { font-size: 1.18rem; }
16
+ .agent-block h2 { font-size: 1.08rem; }
17
+ .agent-block h3 { font-size: 1rem; }
18
+
19
+ .agent-block p {
20
+ margin: 0 0 0.8rem;
21
+ }
22
+
23
+ .agent-block ul,
24
+ .agent-block ol {
25
+ margin: 0 0 0.9rem 1.25rem;
26
+ padding: 0;
27
+ }
28
+
29
+ .agent-block li {
30
+ margin-bottom: 0.42rem;
31
+ }
32
+
33
+ .agent-block pre {
34
+ margin: 0.9rem 0;
35
+ padding: 0.95rem 1rem;
36
+ border-radius: 12px;
37
+ overflow-x: auto;
38
+ background: #0f172a;
39
+ color: #e2e8f0;
40
+ font-size: 0.9rem;
41
+ line-height: 1.65;
42
+ box-shadow: inset 0 0 0 1px rgba(148,163,184,0.14);
43
+ }
44
+
45
+ .agent-block code {
46
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
47
+ }
48
+
49
+ .agent-block p code,
50
+ .agent-block li code {
51
+ background: rgba(15, 23, 42, 0.06);
52
+ color: #0f172a;
53
+ padding: 0.08rem 0.4rem;
54
+ border-radius: 6px;
55
+ font-size: 0.92em;
56
+ }
57
+
58
+ .agent-block strong {
59
+ color: #111827;
60
+ font-weight: 700;
61
+ }
62
+
63
+ .message.tool-message .message-content {
64
+ background: linear-gradient(180deg, #1f2937 0%, #111827 100%);
65
+ border-color: rgba(148,163,184,0.16);
66
+ color: #e5eefb;
67
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
68
+ font-size: 0.9rem;
69
+ box-shadow: 0 12px 28px rgba(17, 24, 39, 0.22);
70
+ }
71
+
72
+ .tool-section {
73
+ margin-top: 0.8rem;
74
+ padding-top: 0.75rem;
75
+ border-top: 1px dashed rgba(148,163,184,0.28);
76
+ }
77
+
78
+ .tool-section:first-of-type {
79
+ margin-top: 0.4rem;
80
+ padding-top: 0;
81
+ border-top: none;
82
+ }
83
+
84
+ .tool-section-title {
85
+ font-size: 0.74rem;
86
+ font-weight: 700;
87
+ letter-spacing: 0.04em;
88
+ text-transform: uppercase;
89
+ color: #93c5fd;
90
+ margin-bottom: 0.35rem;
91
+ }
92
+
93
+ .approval-card {
94
+ background: linear-gradient(180deg, #fff7ed 0%, #fffbeb 100%);
95
+ border: 1px solid rgba(249, 115, 22, 0.22);
96
+ border-radius: 16px;
97
+ padding: 1rem 1.1rem;
98
+ box-shadow: 0 12px 28px rgba(249, 115, 22, 0.08);
99
+ }
100
+
101
+ .approval-title {
102
+ font-weight: 700;
103
+ color: #9a3412;
104
+ margin-bottom: 0.8rem;
105
+ }
106
+
107
+ .approval-section {
108
+ margin-top: 0.75rem;
109
+ }
110
+
111
+ .approval-section-title {
112
+ font-size: 0.78rem;
113
+ font-weight: 700;
114
+ color: #c2410c;
115
+ margin-bottom: 0.3rem;
116
+ text-transform: uppercase;
117
+ letter-spacing: 0.04em;
118
+ }
119
+
120
+ .approval-actions {
121
+ display: flex;
122
+ gap: 0.75rem;
123
+ margin-top: 1rem;
124
+ flex-wrap: wrap;
125
+ }
126
+
127
+ .approval-btn {
128
+ border: none;
129
+ border-radius: 10px;
130
+ padding: 0.7rem 1rem;
131
+ font-weight: 700;
132
+ cursor: pointer;
133
+ transition: transform 0.2s, opacity 0.2s;
134
+ }
135
+
136
+ .approval-btn:hover {
137
+ transform: translateY(-1px);
138
+ }
139
+
140
+ .approval-btn.approve {
141
+ background: linear-gradient(135deg, #10a37f 0%, #0d8c6d 100%);
142
+ color: white;
143
+ }
144
+
145
+ .approval-btn.reject {
146
+ background: rgba(239, 68, 68, 0.12);
147
+ color: #b91c1c;
148
+ border: 1px solid rgba(239, 68, 68, 0.2);
149
+ }
150
+
151
+ .message.system-message .message-content {
152
+ background: linear-gradient(180deg, #ecfdf5 0%, #dff7ee 100%);
153
+ border-color: rgba(16,163,127,0.24);
154
+ color: #065f46;
155
+ position: relative;
156
+ padding-top: 3.15rem;
157
+ overflow: visible;
158
+ }
159
+
160
+ .system-badge {
161
+ position: absolute;
162
+ top: 0.9rem;
163
+ left: 1rem;
164
+ display: inline-flex;
165
+ align-items: center;
166
+ gap: 0.45rem;
167
+ padding: 0.28rem 0.65rem;
168
+ border-radius: 999px;
169
+ background: rgba(16,163,127,0.14);
170
+ color: #047857;
171
+ font-size: 0.78rem;
172
+ font-weight: 700;
173
+ letter-spacing: 0.02em;
174
+ }
175
+
176
+ .message.running-message .message-content {
177
+ background: linear-gradient(180deg, #f0fdf4 0%, #ecfdf5 100%);
178
+ border-color: rgba(16,163,127,0.24);
179
+ color: #065f46;
180
+ }
181
+
182
+ .running-status {
183
+ display: inline-flex;
184
+ align-items: center;
185
+ gap: 0.55rem;
186
+ font-weight: 600;
187
+ }
188
+
189
+ .running-spinner {
190
+ width: 12px;
191
+ height: 12px;
192
+ border-radius: 999px;
193
+ border: 2px solid rgba(16,163,127,0.25);
194
+ border-top-color: var(--accent-color);
195
+ animation: spin 0.9s linear infinite;
196
+ flex-shrink: 0;
197
+ }
198
+
199
+ /* 输入区域 */
200
+ .input-container {
201
+ padding: 1.25rem 2rem 1.75rem;
202
+ background: linear-gradient(180deg, rgba(243,244,246,0) 0%, rgba(243,244,246,0.94) 18%, rgba(243,244,246,1) 100%);
203
+ border-top: 1px solid rgba(15, 23, 42, 0.06);
204
+ backdrop-filter: blur(8px);
205
+ }
206
+
207
+ .input-box {
208
+ max-width: 900px;
209
+ margin: 0 auto;
210
+ position: relative;
211
+ background: rgba(255,255,255,0.98);
212
+ border: 1px solid rgba(15,23,42,0.08);
213
+ border-radius: 18px;
214
+ box-shadow: 0 16px 40px rgba(15, 23, 42, 0.1);
215
+ padding: 0.65rem;
216
+ display: flex;
217
+ align-items: flex-end;
218
+ gap: 0.5rem;
219
+ }
220
+
221
+ .input-box:focus-within {
222
+ border-color: rgba(16,163,127,0.5);
223
+ box-shadow: 0 0 0 4px rgba(16,163,127,0.12), 0 16px 40px rgba(15, 23, 42, 0.1);
224
+ }
225
+
226
+ .composer-status {
227
+ max-width: 900px;
228
+ margin: 0 auto 0.55rem;
229
+ min-height: 26px;
230
+ display: flex;
231
+ align-items: center;
232
+ color: #065f46;
233
+ font-size: 0.86rem;
234
+ }
235
+
236
+ .composer-status:empty {
237
+ display: none;
238
+ }
239
+
240
+ .composer-status .running-status {
241
+ background: rgba(236,253,245,0.94);
242
+ border: 1px solid rgba(16,163,127,0.2);
243
+ border-radius: 999px;
244
+ padding: 0.35rem 0.65rem;
245
+ box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
246
+ }
247
+
248
+ textarea {
249
+ width: 100%;
250
+ border: none;
251
+ resize: none;
252
+ padding: 0.85rem 0.95rem;
253
+ font-family: inherit;
254
+ font-size: 1rem;
255
+ max-height: 220px;
256
+ min-height: 56px;
257
+ background: transparent;
258
+ outline: none;
259
+ line-height: 1.6;
260
+ color: var(--text-main);
261
+ }
262
+
263
+ textarea::placeholder {
264
+ color: #9ca3af;
265
+ }
266
+
267
+ .send-btn {
268
+ background: linear-gradient(135deg, var(--accent-color) 0%, #0d8c6d 100%);
269
+ color: white;
270
+ border: none;
271
+ border-radius: 12px;
272
+ width: 44px;
273
+ height: 44px;
274
+ display: flex;
275
+ align-items: center;
276
+ justify-content: center;
277
+ cursor: pointer;
278
+ margin: 0.35rem;
279
+ transition: transform 0.2s, box-shadow 0.2s, opacity 0.2s;
280
+ box-shadow: 0 10px 20px rgba(16,163,127,0.24);
281
+ }
282
+
283
+ .send-btn:hover {
284
+ transform: translateY(-1px);
285
+ box-shadow: 0 14px 28px rgba(16,163,127,0.28);
286
+ }
287
+
288
+ .send-btn:disabled {
289
+ background: #cbd5e1;
290
+ cursor: not-allowed;
291
+ opacity: 0.72;
292
+ box-shadow: none;
293
+ transform: none;
294
+ }
295
+
296
+ .image-btn {
297
+ background: none;
298
+ border: none;
299
+ border-radius: 10px;
300
+ width: 36px;
301
+ height: 36px;
302
+ display: flex;
303
+ align-items: center;
304
+ justify-content: center;
305
+ cursor: pointer;
306
+ color: var(--text-muted);
307
+ flex-shrink: 0;
308
+ margin: 0.35rem 0 0.35rem 0.2rem;
309
+ transition: color 0.15s, background 0.15s;
310
+ }
311
+
312
+ .image-btn:hover {
313
+ color: var(--accent-color);
314
+ background: rgba(16,163,127,0.08);
315
+ }
316
+
317
+ .image-preview-item {
318
+ position: relative;
319
+ width: 48px;
320
+ height: 48px;
321
+ border-radius: 8px;
322
+ overflow: hidden;
323
+ border: 1px solid var(--border-color);
324
+ flex-shrink: 0;
325
+ }
326
+
327
+ .image-preview-item img {
328
+ width: 100%;
329
+ height: 100%;
330
+ object-fit: cover;
331
+ display: block;
332
+ }
333
+
334
+ .image-preview-remove {
335
+ position: absolute;
336
+ top: 1px;
337
+ right: 1px;
338
+ width: 16px;
339
+ height: 16px;
340
+ border-radius: 50%;
341
+ background: rgba(0,0,0,0.55);
342
+ color: #fff;
343
+ border: none;
344
+ cursor: pointer;
345
+ font-size: 11px;
346
+ line-height: 1;
347
+ display: flex;
348
+ align-items: center;
349
+ justify-content: center;
350
+ padding: 0;
351
+ }
352
+
353
+
354
+ .typing-indicator {
355
+ display: flex;
356
+ gap: 4px;
357
+ align-items: center;
358
+ height: 24px;
359
+ }
360
+
361
+ .dot {
362
+ width: 6px;
363
+ height: 6px;
364
+ background-color: var(--text-muted);
365
+ border-radius: 50%;
366
+ animation: bounce 1.4s infinite ease-in-out both;
367
+ }
368
+
369
+ .dot:nth-child(1) { animation-delay: -0.32s; }
370
+ .dot:nth-child(2) { animation-delay: -0.16s; }
371
+
372
+ @keyframes bounce {
373
+ 0%, 80%, 100% { transform: scale(0); }
374
+ 40% { transform: scale(1); }
375
+ }
376
+
377
+ @keyframes spin {
378
+ from { transform: rotate(0deg); }
379
+ to { transform: rotate(360deg); }
380
+ }
381
+
382
+ /* 日志模态框 */
383
+ .modal-overlay {
384
+ position: fixed;
385
+ inset: 0;
386
+ background: rgba(15,23,42,0.45);
387
+ z-index: 1000;
388
+ display: flex;
389
+ align-items: center;
390
+ justify-content: center;
391
+ }
392
+
393
+ .modal-box {
394
+ background: #fff;
395
+ border-radius: 16px;
396
+ box-shadow: 0 16px 40px rgba(15,23,42,0.15);
397
+ width: 680px;
398
+ max-width: 95vw;
399
+ max-height: 80vh;
400
+ display: flex;
401
+ flex-direction: column;
402
+ }
403
+
404
+ .modal-header {
405
+ padding: 1.1rem 1.4rem;
406
+ border-bottom: 1px solid var(--border-color);
407
+ display: flex;
408
+ justify-content: space-between;
409
+ align-items: center;
410
+ font-weight: 700;
411
+ font-size: 1rem;
412
+ flex-shrink: 0;
413
+ }
414
+
415
+ .modal-close {
416
+ background: none;
417
+ border: none;
418
+ cursor: pointer;
419
+ font-size: 1.4rem;
420
+ color: var(--text-muted);
421
+ line-height: 1;
422
+ padding: 0 0.2rem;
423
+ }
424
+
425
+ .modal-close:hover { color: var(--text-main); }
426
+
427
+ .modal-status {
428
+ padding: 0.75rem 1.4rem;
429
+ font-size: 0.9rem;
430
+ color: var(--text-muted);
431
+ flex-shrink: 0;
432
+ }
433
+
434
+ .modal-body {
435
+ overflow-y: auto;
436
+ padding: 0.75rem 1.4rem 1.2rem;
437
+ flex: 1;
438
+ }
439
+
440
+ .object-row {
441
+ border: 1px solid var(--border-color);
442
+ border-radius: 10px;
443
+ margin-bottom: 0.55rem;
444
+ overflow: hidden;
445
+ }
446
+
447
+ .object-row-header {
448
+ padding: 0.65rem 1rem;
449
+ cursor: pointer;
450
+ display: flex;
451
+ align-items: center;
452
+ gap: 0.6rem;
453
+ background: var(--bg-color);
454
+ user-select: none;
455
+ }
456
+
457
+ .object-row-header:hover { background: #f0fdf9; }
458
+
459
+ .object-arrow {
460
+ font-size: 0.7rem;
461
+ color: var(--text-muted);
462
+ transition: transform 0.15s;
463
+ flex-shrink: 0;
464
+ }
465
+
466
+ .object-row-header.expanded .object-arrow { transform: rotate(90deg); }
467
+
468
+ .object-hex {
469
+ font-family: monospace;
470
+ font-size: 0.85rem;
471
+ flex: 1;
472
+ color: var(--text-main);
473
+ overflow: hidden;
474
+ text-overflow: ellipsis;
475
+ white-space: nowrap;
476
+ }
477
+
478
+ .object-time {
479
+ font-size: 0.8rem;
480
+ color: var(--text-muted);
481
+ flex-shrink: 0;
482
+ }
483
+
484
+ .object-badge {
485
+ font-size: 0.76rem;
486
+ padding: 0.12rem 0.5rem;
487
+ border-radius: 999px;
488
+ background: #e5e7eb;
489
+ color: #6b7280;
490
+ flex-shrink: 0;
491
+ }
492
+
493
+ .object-badge.downloaded {
494
+ background: rgba(16,163,127,0.12);
495
+ color: var(--accent-color);
496
+ }
497
+
498
+ .object-files {
499
+ padding: 0.4rem 1rem 0.7rem 2.6rem;
500
+ display: none;
501
+ border-top: 1px solid var(--border-color);
502
+ }
503
+
504
+ .object-files.open { display: block; }
505
+
506
+ .file-row {
507
+ display: flex;
508
+ align-items: center;
509
+ justify-content: space-between;
510
+ padding: 0.35rem 0;
511
+ border-bottom: 1px solid #f3f4f6;
512
+ font-size: 0.87rem;
513
+ gap: 0.5rem;
514
+ }
515
+
516
+ .file-row:last-child { border-bottom: none; }
517
+
518
+ .file-name {
519
+ flex: 1;
520
+ overflow: hidden;
521
+ text-overflow: ellipsis;
522
+ white-space: nowrap;
523
+ }
524
+
525
+ .file-link {
526
+ color: var(--accent-color);
527
+ text-decoration: none;
528
+ }
529
+
530
+ .file-link:hover {
531
+ text-decoration: underline;
532
+ }
533
+
534
+ .file-size {
535
+ font-size: 0.78rem;
536
+ color: var(--text-muted);
537
+ flex-shrink: 0;
538
+ white-space: nowrap;
539
+ }
540
+
541
+ .download-btn {
542
+ font-size: 0.78rem;
543
+ padding: 0.2rem 0.65rem;
544
+ border-radius: 6px;
545
+ background: var(--accent-color);
546
+ color: white;
547
+ border: none;
548
+ cursor: pointer;
549
+ text-decoration: none;
550
+ flex-shrink: 0;
551
+ }
552
+
553
+ .download-btn:hover { background: var(--accent-hover); }
554
+
555
+ .logs-btn {
556
+ width: 100%;
557
+ padding: 0.6rem;
558
+ border-radius: 8px;
559
+ background: var(--accent-color);
560
+ color: white;
561
+ border: none;
562
+ cursor: pointer;
563
+ font-size: 0.9rem;
564
+ font-weight: 600;
565
+ margin-top: 0.25rem;
566
+ }
567
+
568
+ .logs-btn:hover { background: var(--accent-hover); }
569
+