browser-debugging-daemon 1.0.0

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,774 @@
1
+ :root {
2
+ --bg: #f4efe6;
3
+ --bg-strong: #efe5d4;
4
+ --panel: rgba(255, 252, 246, 0.92);
5
+ --panel-strong: rgba(255, 248, 235, 0.96);
6
+ --line: rgba(112, 86, 52, 0.18);
7
+ --text: #2a2218;
8
+ --muted: #73614f;
9
+ --accent: #0e6b5c;
10
+ --accent-soft: rgba(14, 107, 92, 0.12);
11
+ --danger: #b4432b;
12
+ --danger-soft: rgba(180, 67, 43, 0.14);
13
+ --shadow: 0 18px 48px rgba(69, 47, 14, 0.12);
14
+ --radius-lg: 28px;
15
+ --radius-md: 20px;
16
+ --radius-sm: 14px;
17
+ }
18
+
19
+ * {
20
+ box-sizing: border-box;
21
+ }
22
+
23
+ body {
24
+ margin: 0;
25
+ min-height: 100vh;
26
+ font-family: "Space Grotesk", sans-serif;
27
+ color: var(--text);
28
+ background:
29
+ radial-gradient(circle at top left, rgba(243, 196, 117, 0.3), transparent 28%),
30
+ radial-gradient(circle at top right, rgba(14, 107, 92, 0.14), transparent 24%),
31
+ linear-gradient(160deg, #f7f2e9 0%, #efe7da 45%, #f3ecdf 100%);
32
+ }
33
+
34
+ .shell {
35
+ width: min(1500px, calc(100vw - 32px));
36
+ margin: 24px auto 48px;
37
+ }
38
+
39
+ .topbar,
40
+ .panel,
41
+ .composer-panel {
42
+ backdrop-filter: blur(18px);
43
+ }
44
+
45
+ .topbar {
46
+ display: flex;
47
+ justify-content: space-between;
48
+ align-items: center;
49
+ gap: 16px;
50
+ margin-bottom: 20px;
51
+ padding: 24px 28px;
52
+ border: 1px solid var(--line);
53
+ border-radius: var(--radius-lg);
54
+ background: linear-gradient(135deg, rgba(255, 250, 240, 0.92), rgba(252, 245, 232, 0.78));
55
+ box-shadow: var(--shadow);
56
+ }
57
+
58
+ .eyebrow,
59
+ .panel-kicker,
60
+ .meta-label {
61
+ margin: 0;
62
+ text-transform: uppercase;
63
+ letter-spacing: 0.18em;
64
+ font-size: 0.72rem;
65
+ color: var(--muted);
66
+ }
67
+
68
+ h1,
69
+ h2,
70
+ h3,
71
+ p {
72
+ margin: 0;
73
+ }
74
+
75
+ h1 {
76
+ font-size: clamp(2rem, 3vw, 3.25rem);
77
+ }
78
+
79
+ .topbar-actions {
80
+ display: flex;
81
+ gap: 10px;
82
+ }
83
+
84
+ .button {
85
+ display: inline-flex;
86
+ align-items: center;
87
+ justify-content: center;
88
+ gap: 8px;
89
+ min-height: 46px;
90
+ padding: 0 18px;
91
+ border-radius: 999px;
92
+ border: 1px solid transparent;
93
+ font: inherit;
94
+ text-decoration: none;
95
+ cursor: pointer;
96
+ transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
97
+ }
98
+
99
+ .button:hover {
100
+ transform: translateY(-1px);
101
+ }
102
+
103
+ .button.primary {
104
+ background: var(--accent);
105
+ color: #fff9f1;
106
+ box-shadow: 0 14px 22px rgba(14, 107, 92, 0.18);
107
+ }
108
+
109
+ .button.secondary {
110
+ background: rgba(255, 255, 255, 0.5);
111
+ color: var(--text);
112
+ border-color: var(--line);
113
+ }
114
+
115
+ .button.danger {
116
+ background: var(--danger);
117
+ color: #fff7f2;
118
+ box-shadow: 0 14px 22px rgba(180, 67, 43, 0.18);
119
+ }
120
+
121
+ .button.danger.ghost {
122
+ background: rgba(180, 67, 43, 0.1);
123
+ color: var(--danger);
124
+ border-color: rgba(180, 67, 43, 0.18);
125
+ box-shadow: none;
126
+ }
127
+
128
+ .layout {
129
+ display: grid;
130
+ grid-template-columns: 360px minmax(0, 1fr);
131
+ gap: 20px;
132
+ }
133
+
134
+ .panel,
135
+ .composer-panel {
136
+ border: 1px solid var(--line);
137
+ border-radius: var(--radius-lg);
138
+ background: var(--panel);
139
+ box-shadow: var(--shadow);
140
+ }
141
+
142
+ .panel {
143
+ padding: 22px;
144
+ }
145
+
146
+ .panel-header,
147
+ .detail-header,
148
+ .section-header {
149
+ display: flex;
150
+ align-items: center;
151
+ justify-content: space-between;
152
+ gap: 12px;
153
+ }
154
+
155
+ .filter-control {
156
+ display: inline-flex;
157
+ align-items: center;
158
+ gap: 8px;
159
+ color: var(--muted);
160
+ font-size: 0.82rem;
161
+ }
162
+
163
+ .filter-control select {
164
+ border: 1px solid var(--line);
165
+ border-radius: 999px;
166
+ padding: 8px 12px;
167
+ font: inherit;
168
+ background: rgba(255, 255, 255, 0.75);
169
+ color: var(--text);
170
+ }
171
+
172
+ .count-pill,
173
+ .status-chip {
174
+ display: inline-flex;
175
+ align-items: center;
176
+ gap: 8px;
177
+ min-height: 34px;
178
+ padding: 0 12px;
179
+ border-radius: 999px;
180
+ font-size: 0.82rem;
181
+ font-weight: 700;
182
+ background: var(--bg-strong);
183
+ color: var(--muted);
184
+ }
185
+
186
+ .status-chip[data-status="completed"] {
187
+ background: var(--accent-soft);
188
+ color: var(--accent);
189
+ }
190
+
191
+ .status-chip[data-status="running"],
192
+ .status-chip[data-status="queued"] {
193
+ background: rgba(200, 141, 46, 0.16);
194
+ color: #7a5111;
195
+ }
196
+
197
+ .status-chip[data-status="waiting_for_instruction"] {
198
+ background: rgba(43, 83, 180, 0.14);
199
+ color: #264a9c;
200
+ }
201
+
202
+ .status-chip[data-status="manual_control"],
203
+ .status-chip[data-status="manual_control_requested"] {
204
+ background: rgba(69, 90, 168, 0.14);
205
+ color: #30458c;
206
+ }
207
+
208
+ .status-chip[data-status="failed"] {
209
+ background: var(--danger-soft);
210
+ color: var(--danger);
211
+ }
212
+
213
+ .status-chip[data-status="aborted"],
214
+ .status-chip[data-status="aborting"] {
215
+ background: rgba(120, 95, 67, 0.14);
216
+ color: #6e5437;
217
+ }
218
+
219
+ .run-list {
220
+ display: grid;
221
+ gap: 12px;
222
+ margin-top: 18px;
223
+ }
224
+
225
+ .run-card {
226
+ padding: 16px;
227
+ border-radius: var(--radius-md);
228
+ border: 1px solid var(--line);
229
+ background: rgba(255, 249, 240, 0.7);
230
+ cursor: pointer;
231
+ transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
232
+ }
233
+
234
+ .run-card:hover,
235
+ .run-card.active {
236
+ transform: translateY(-2px);
237
+ border-color: rgba(14, 107, 92, 0.26);
238
+ background: rgba(248, 255, 252, 0.88);
239
+ }
240
+
241
+ .run-card-top,
242
+ .run-card-bottom {
243
+ display: flex;
244
+ align-items: center;
245
+ justify-content: space-between;
246
+ gap: 10px;
247
+ }
248
+
249
+ .run-card-top {
250
+ margin-bottom: 10px;
251
+ }
252
+
253
+ .run-card h3 {
254
+ font-size: 1rem;
255
+ }
256
+
257
+ .run-card p {
258
+ color: var(--muted);
259
+ font-size: 0.94rem;
260
+ line-height: 1.45;
261
+ }
262
+
263
+ .run-card time {
264
+ font-family: "IBM Plex Mono", monospace;
265
+ font-size: 0.78rem;
266
+ color: var(--muted);
267
+ }
268
+
269
+ .detail-panel {
270
+ min-height: 760px;
271
+ }
272
+
273
+ .hidden {
274
+ display: none !important;
275
+ }
276
+
277
+ .empty-state {
278
+ display: grid;
279
+ gap: 10px;
280
+ place-items: center;
281
+ min-height: 100%;
282
+ padding: 80px 24px;
283
+ text-align: center;
284
+ }
285
+
286
+ .empty-state h2 {
287
+ max-width: 18ch;
288
+ font-size: clamp(1.8rem, 3vw, 2.6rem);
289
+ }
290
+
291
+ .run-detail {
292
+ display: grid;
293
+ gap: 18px;
294
+ }
295
+
296
+ .meta-grid {
297
+ display: grid;
298
+ grid-template-columns: repeat(2, minmax(0, 1fr));
299
+ gap: 12px;
300
+ }
301
+
302
+ .meta-card,
303
+ .detail-card {
304
+ padding: 16px;
305
+ border-radius: var(--radius-md);
306
+ border: 1px solid var(--line);
307
+ background: rgba(255, 250, 241, 0.72);
308
+ }
309
+
310
+ .meta-card {
311
+ display: grid;
312
+ gap: 8px;
313
+ min-height: 128px;
314
+ }
315
+
316
+ .link-grid {
317
+ display: flex;
318
+ flex-wrap: wrap;
319
+ gap: 8px;
320
+ }
321
+
322
+ .link-grid a {
323
+ color: var(--accent);
324
+ font-weight: 600;
325
+ text-decoration: none;
326
+ }
327
+
328
+ .detail-columns {
329
+ display: grid;
330
+ grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
331
+ gap: 14px;
332
+ }
333
+
334
+ .diagnostics-columns {
335
+ grid-template-columns: repeat(3, minmax(0, 1fr));
336
+ }
337
+
338
+ .screenshot-frame {
339
+ margin-top: 14px;
340
+ min-height: 300px;
341
+ border-radius: var(--radius-sm);
342
+ border: 1px dashed rgba(42, 34, 24, 0.18);
343
+ background: linear-gradient(140deg, rgba(255, 255, 255, 0.84), rgba(243, 236, 223, 0.78));
344
+ overflow: hidden;
345
+ }
346
+
347
+ .screenshot-frame img {
348
+ display: block;
349
+ width: 100%;
350
+ height: 100%;
351
+ max-height: 520px;
352
+ object-fit: cover;
353
+ }
354
+
355
+ .video-frame {
356
+ margin-top: 12px;
357
+ border-radius: var(--radius-sm);
358
+ border: 1px solid rgba(42, 34, 24, 0.12);
359
+ background: rgba(255, 255, 255, 0.72);
360
+ overflow: hidden;
361
+ }
362
+
363
+ .video-frame video {
364
+ display: block;
365
+ width: 100%;
366
+ max-height: 320px;
367
+ background: #1f1a13;
368
+ }
369
+
370
+ .focus-pill {
371
+ display: inline-flex;
372
+ align-items: center;
373
+ min-height: 28px;
374
+ padding: 0 10px;
375
+ border-radius: 999px;
376
+ font-size: 0.75rem;
377
+ font-weight: 700;
378
+ letter-spacing: 0.04em;
379
+ background: rgba(14, 107, 92, 0.12);
380
+ color: var(--accent);
381
+ }
382
+
383
+ .walkthrough {
384
+ margin-top: 14px;
385
+ min-height: 300px;
386
+ max-height: 520px;
387
+ overflow: auto;
388
+ padding: 16px;
389
+ border-radius: var(--radius-sm);
390
+ background: rgba(37, 30, 22, 0.95);
391
+ color: #f8e8cf;
392
+ font-family: "IBM Plex Mono", monospace;
393
+ font-size: 0.82rem;
394
+ line-height: 1.6;
395
+ }
396
+
397
+ .history-list {
398
+ display: grid;
399
+ gap: 12px;
400
+ margin-top: 14px;
401
+ }
402
+
403
+ .history-item {
404
+ padding: 14px;
405
+ border-radius: var(--radius-sm);
406
+ border: 1px solid var(--line);
407
+ background: rgba(255, 252, 246, 0.7);
408
+ cursor: pointer;
409
+ transition: border-color 120ms ease, background 120ms ease, transform 120ms ease;
410
+ }
411
+
412
+ .history-item:hover {
413
+ border-color: rgba(14, 107, 92, 0.24);
414
+ background: rgba(248, 255, 252, 0.88);
415
+ }
416
+
417
+ .history-item.active {
418
+ border-color: rgba(14, 107, 92, 0.42);
419
+ background: rgba(238, 252, 248, 0.95);
420
+ transform: translateY(-1px);
421
+ }
422
+
423
+ .history-item-header {
424
+ display: flex;
425
+ justify-content: space-between;
426
+ gap: 10px;
427
+ margin-bottom: 8px;
428
+ }
429
+
430
+ .history-item p {
431
+ color: var(--muted);
432
+ line-height: 1.5;
433
+ }
434
+
435
+ .history-timing {
436
+ font-family: "IBM Plex Mono", monospace;
437
+ font-size: 0.76rem;
438
+ color: var(--muted);
439
+ margin-top: 8px;
440
+ }
441
+
442
+ .history-screenshot {
443
+ margin-top: 8px;
444
+ }
445
+
446
+ .history-screenshot a {
447
+ color: var(--accent);
448
+ text-decoration: none;
449
+ font-weight: 600;
450
+ }
451
+
452
+ .coordination-card {
453
+ display: grid;
454
+ gap: 14px;
455
+ }
456
+
457
+ .coordination-empty,
458
+ .pending-input-details,
459
+ .pending-input-suggestion {
460
+ color: var(--muted);
461
+ line-height: 1.6;
462
+ }
463
+
464
+ .pending-input {
465
+ display: grid;
466
+ gap: 10px;
467
+ padding: 14px;
468
+ border-radius: var(--radius-sm);
469
+ border: 1px solid var(--line);
470
+ background: rgba(255, 252, 246, 0.72);
471
+ }
472
+
473
+ .pending-input h4 {
474
+ font-size: 1.05rem;
475
+ }
476
+
477
+ .reply-form {
478
+ display: grid;
479
+ gap: 12px;
480
+ }
481
+
482
+ .reply-actions,
483
+ .run-control-bar {
484
+ display: flex;
485
+ flex-wrap: wrap;
486
+ gap: 10px;
487
+ }
488
+
489
+ .control-note {
490
+ color: var(--muted);
491
+ line-height: 1.6;
492
+ font-size: 0.92rem;
493
+ }
494
+
495
+ .runtime-note {
496
+ color: var(--muted);
497
+ line-height: 1.6;
498
+ font-size: 0.88rem;
499
+ }
500
+
501
+ .control-note code {
502
+ font-family: "IBM Plex Mono", monospace;
503
+ background: rgba(37, 30, 22, 0.08);
504
+ padding: 2px 6px;
505
+ border-radius: 8px;
506
+ }
507
+
508
+ .reply-form label {
509
+ display: grid;
510
+ gap: 8px;
511
+ }
512
+
513
+ .reply-form span {
514
+ font-weight: 700;
515
+ }
516
+
517
+ .reply-form textarea {
518
+ width: 100%;
519
+ border: 1px solid var(--line);
520
+ border-radius: 18px;
521
+ padding: 14px 16px;
522
+ font: inherit;
523
+ background: rgba(255, 255, 255, 0.75);
524
+ color: var(--text);
525
+ resize: vertical;
526
+ }
527
+
528
+ .message-list {
529
+ margin-top: 10px;
530
+ display: grid;
531
+ gap: 10px;
532
+ }
533
+
534
+ .message-entry {
535
+ padding: 12px;
536
+ border-radius: var(--radius-sm);
537
+ border: 1px solid var(--line);
538
+ background: rgba(255, 252, 246, 0.72);
539
+ }
540
+
541
+ .message-entry-header {
542
+ display: flex;
543
+ justify-content: space-between;
544
+ gap: 10px;
545
+ margin-bottom: 6px;
546
+ font-family: "IBM Plex Mono", monospace;
547
+ font-size: 0.78rem;
548
+ color: var(--muted);
549
+ }
550
+
551
+ .message-entry p {
552
+ color: var(--text);
553
+ line-height: 1.5;
554
+ }
555
+
556
+ .log-list {
557
+ margin-top: 14px;
558
+ display: grid;
559
+ gap: 10px;
560
+ max-height: 340px;
561
+ overflow: auto;
562
+ }
563
+
564
+ .log-entry {
565
+ padding: 12px;
566
+ border-radius: var(--radius-sm);
567
+ border: 1px solid var(--line);
568
+ background: rgba(255, 252, 246, 0.72);
569
+ font-family: "IBM Plex Mono", monospace;
570
+ font-size: 0.8rem;
571
+ line-height: 1.5;
572
+ }
573
+
574
+ .log-entry strong {
575
+ display: inline-block;
576
+ margin-bottom: 6px;
577
+ color: var(--text);
578
+ }
579
+
580
+ .log-entry pre {
581
+ margin: 8px 0 0;
582
+ white-space: pre-wrap;
583
+ word-break: break-word;
584
+ }
585
+
586
+ .event-list {
587
+ margin-top: 14px;
588
+ display: grid;
589
+ gap: 10px;
590
+ max-height: 360px;
591
+ overflow: auto;
592
+ }
593
+
594
+ .event-entry {
595
+ padding: 14px;
596
+ border-radius: var(--radius-sm);
597
+ border: 1px solid var(--line);
598
+ background: rgba(255, 252, 246, 0.72);
599
+ }
600
+
601
+ .event-entry-top {
602
+ display: flex;
603
+ justify-content: space-between;
604
+ gap: 10px;
605
+ margin-bottom: 8px;
606
+ font-family: "IBM Plex Mono", monospace;
607
+ font-size: 0.78rem;
608
+ color: var(--muted);
609
+ }
610
+
611
+ .event-type {
612
+ color: var(--text);
613
+ font-weight: 700;
614
+ }
615
+
616
+ .event-summary {
617
+ color: var(--muted);
618
+ line-height: 1.5;
619
+ font-size: 0.92rem;
620
+ }
621
+
622
+ .event-entry details {
623
+ margin-top: 10px;
624
+ }
625
+
626
+ .event-entry summary {
627
+ cursor: pointer;
628
+ color: var(--accent);
629
+ font-weight: 600;
630
+ }
631
+
632
+ .event-entry pre {
633
+ margin: 10px 0 0;
634
+ padding: 12px;
635
+ border-radius: 12px;
636
+ background: rgba(37, 30, 22, 0.95);
637
+ color: #f8e8cf;
638
+ font-family: "IBM Plex Mono", monospace;
639
+ font-size: 0.78rem;
640
+ line-height: 1.5;
641
+ white-space: pre-wrap;
642
+ word-break: break-word;
643
+ }
644
+
645
+ .composer-panel {
646
+ margin-top: 20px;
647
+ padding: 22px;
648
+ }
649
+
650
+ .run-form {
651
+ display: grid;
652
+ gap: 14px;
653
+ margin-top: 18px;
654
+ }
655
+
656
+ .template-toolbar {
657
+ display: grid;
658
+ gap: 10px;
659
+ }
660
+
661
+ .template-actions {
662
+ display: flex;
663
+ flex-wrap: wrap;
664
+ gap: 10px;
665
+ }
666
+
667
+ .template-actions .button {
668
+ min-width: 160px;
669
+ }
670
+
671
+ .run-config-grid {
672
+ display: grid;
673
+ grid-template-columns: repeat(2, minmax(0, 1fr));
674
+ gap: 14px;
675
+ }
676
+
677
+ .template-rule-grid textarea {
678
+ min-height: 92px;
679
+ font-family: "IBM Plex Mono", monospace;
680
+ font-size: 0.83rem;
681
+ }
682
+
683
+ .run-form label {
684
+ display: grid;
685
+ gap: 8px;
686
+ }
687
+
688
+ .run-form span {
689
+ font-weight: 700;
690
+ }
691
+
692
+ .run-form textarea,
693
+ .run-form input,
694
+ .run-form select {
695
+ width: 100%;
696
+ border: 1px solid var(--line);
697
+ border-radius: 18px;
698
+ padding: 14px 16px;
699
+ font: inherit;
700
+ background: rgba(255, 255, 255, 0.75);
701
+ color: var(--text);
702
+ }
703
+
704
+ .run-form textarea {
705
+ resize: vertical;
706
+ }
707
+
708
+ .max-steps {
709
+ max-width: 180px;
710
+ }
711
+
712
+ .form-message {
713
+ min-height: 24px;
714
+ margin-top: 10px;
715
+ color: var(--muted);
716
+ }
717
+
718
+ @media (max-width: 1100px) {
719
+ .layout {
720
+ grid-template-columns: 1fr;
721
+ }
722
+
723
+ .detail-columns,
724
+ .meta-grid,
725
+ .run-config-grid {
726
+ grid-template-columns: 1fr;
727
+ }
728
+
729
+ .template-actions .button {
730
+ min-width: 0;
731
+ flex: 1;
732
+ }
733
+
734
+ .diagnostics-columns {
735
+ grid-template-columns: 1fr;
736
+ }
737
+ }
738
+
739
+ @media (max-width: 720px) {
740
+ .shell {
741
+ width: min(100vw - 20px, 100%);
742
+ margin: 12px auto 28px;
743
+ }
744
+
745
+ .topbar {
746
+ flex-direction: column;
747
+ align-items: stretch;
748
+ }
749
+
750
+ .topbar-actions {
751
+ width: 100%;
752
+ }
753
+
754
+ .topbar-actions .button {
755
+ flex: 1;
756
+ }
757
+ }
758
+
759
+ .trace-button {
760
+ background: var(--accent);
761
+ color: #fff;
762
+ border: none;
763
+ border-radius: 4px;
764
+ padding: 4px 10px;
765
+ cursor: pointer;
766
+ font-size: 12px;
767
+ font-family: inherit;
768
+ margin-left: 6px;
769
+ transition: opacity 0.15s;
770
+ }
771
+
772
+ .trace-button:hover {
773
+ opacity: 0.85;
774
+ }