@hoilab/ada-cli 0.85.1 → 0.85.3

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,1150 @@
1
+ :root {
2
+ {{THEME_VARS_DARK}}
3
+ --body-bg: {{BODY_BG_DARK}};
4
+ --container-bg: {{CONTAINER_BG_DARK}};
5
+ --info-bg: {{INFO_BG_DARK}};
6
+ --ada-bg: {{ADA_BG_DARK}};
7
+ --ada-fg: {{ADA_FG_DARK}};
8
+ --ada-border: {{ADA_BORDER_DARK}};
9
+ }
10
+ [data-theme="light"] {
11
+ {{THEME_VARS_LIGHT}}
12
+ --body-bg: {{BODY_BG_LIGHT}};
13
+ --container-bg: {{CONTAINER_BG_LIGHT}};
14
+ --info-bg: {{INFO_BG_LIGHT}};
15
+ --ada-bg: {{ADA_BG_LIGHT}};
16
+ --ada-fg: {{ADA_FG_LIGHT}};
17
+ --ada-border: {{ADA_BORDER_LIGHT}};
18
+ }
19
+ @media (prefers-color-scheme: light) {
20
+ :root:not([data-theme]) {
21
+ {{THEME_VARS_LIGHT}}
22
+ --body-bg: {{BODY_BG_LIGHT}};
23
+ --container-bg: {{CONTAINER_BG_LIGHT}};
24
+ --info-bg: {{INFO_BG_LIGHT}};
25
+ --ada-bg: {{ADA_BG_LIGHT}};
26
+ --ada-fg: {{ADA_FG_LIGHT}};
27
+ --ada-border: {{ADA_BORDER_LIGHT}};
28
+ }
29
+ }
30
+
31
+ * { margin: 0; padding: 0; box-sizing: border-box; }
32
+
33
+ :root {
34
+ --line-height: 18px; /* 12px font * 1.5 */
35
+ --sidebar-width: 400px;
36
+ --sidebar-min-width: 240px;
37
+ --sidebar-max-width: 840px;
38
+ --sidebar-resizer-width: 6px;
39
+ }
40
+
41
+ body {
42
+ font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace;
43
+ font-size: 12px;
44
+ line-height: var(--line-height);
45
+ color: var(--text);
46
+ background: var(--body-bg);
47
+ }
48
+
49
+ body.sidebar-resizing {
50
+ cursor: col-resize;
51
+ user-select: none;
52
+ }
53
+
54
+ #app {
55
+ display: flex;
56
+ min-height: 100vh;
57
+ }
58
+
59
+ /* Sidebar */
60
+ #sidebar {
61
+ width: var(--sidebar-width);
62
+ min-width: var(--sidebar-width);
63
+ max-width: var(--sidebar-width);
64
+ background: var(--container-bg);
65
+ flex-shrink: 0;
66
+ display: flex;
67
+ flex-direction: column;
68
+ position: sticky;
69
+ top: 0;
70
+ height: 100vh;
71
+ border-right: 1px solid var(--dim);
72
+ }
73
+
74
+ #sidebar-resizer {
75
+ width: var(--sidebar-resizer-width);
76
+ flex-shrink: 0;
77
+ position: sticky;
78
+ top: 0;
79
+ height: 100vh;
80
+ cursor: col-resize;
81
+ touch-action: none;
82
+ background: transparent;
83
+ border-right: 1px solid transparent;
84
+ }
85
+
86
+ #sidebar-resizer:hover,
87
+ body.sidebar-resizing #sidebar-resizer {
88
+ background: var(--selectedBg);
89
+ border-right-color: var(--dim);
90
+ }
91
+
92
+ .sidebar-header {
93
+ padding: 8px 12px;
94
+ flex-shrink: 0;
95
+ }
96
+
97
+ .sidebar-controls {
98
+ padding: 8px 8px 4px 8px;
99
+ }
100
+
101
+ .sidebar-search {
102
+ width: 100%;
103
+ box-sizing: border-box;
104
+ padding: 4px 8px;
105
+ font-size: 11px;
106
+ font-family: inherit;
107
+ background: var(--body-bg);
108
+ color: var(--text);
109
+ border: 1px solid var(--dim);
110
+ border-radius: 3px;
111
+ }
112
+
113
+ .sidebar-filters {
114
+ display: flex;
115
+ padding: 4px 8px 8px 8px;
116
+ gap: 4px;
117
+ align-items: center;
118
+ flex-wrap: wrap;
119
+ }
120
+
121
+ .sidebar-search:focus {
122
+ outline: none;
123
+ border-color: var(--accent);
124
+ }
125
+
126
+ .sidebar-search::placeholder {
127
+ color: var(--muted);
128
+ }
129
+
130
+ .filter-btn {
131
+ padding: 3px 8px;
132
+ font-size: 10px;
133
+ font-family: inherit;
134
+ background: transparent;
135
+ color: var(--muted);
136
+ border: 1px solid var(--dim);
137
+ border-radius: 3px;
138
+ cursor: pointer;
139
+ }
140
+
141
+ .filter-btn:hover {
142
+ color: var(--text);
143
+ border-color: var(--text);
144
+ }
145
+
146
+ .filter-btn.active {
147
+ background: var(--accent);
148
+ color: var(--body-bg);
149
+ border-color: var(--accent);
150
+ }
151
+
152
+ .sidebar-close {
153
+ display: none;
154
+ padding: 3px 8px;
155
+ font-size: 12px;
156
+ font-family: inherit;
157
+ background: transparent;
158
+ color: var(--muted);
159
+ border: 1px solid var(--dim);
160
+ border-radius: 3px;
161
+ cursor: pointer;
162
+ margin-left: auto;
163
+ }
164
+
165
+ .sidebar-close:hover {
166
+ color: var(--text);
167
+ border-color: var(--text);
168
+ }
169
+
170
+ .tree-container {
171
+ flex: 1;
172
+ overflow: auto;
173
+ padding: 4px 0;
174
+ }
175
+
176
+ .tree-node {
177
+ padding: 0 8px;
178
+ cursor: pointer;
179
+ display: flex;
180
+ align-items: baseline;
181
+ font-size: 11px;
182
+ line-height: 13px;
183
+ white-space: nowrap;
184
+ }
185
+
186
+ .tree-node:hover {
187
+ background: var(--selectedBg);
188
+ }
189
+
190
+ .tree-node.active {
191
+ background: var(--selectedBg);
192
+ }
193
+
194
+ .tree-node.active .tree-content {
195
+ font-weight: bold;
196
+ }
197
+
198
+ .tree-node.in-path {
199
+ background: color-mix(in srgb, var(--accent) 10%, transparent);
200
+ }
201
+
202
+ .tree-node:not(.in-path) {
203
+ opacity: 0.5;
204
+ }
205
+
206
+ .tree-node:not(.in-path):hover {
207
+ opacity: 1;
208
+ }
209
+
210
+ .tree-prefix {
211
+ color: var(--muted);
212
+ flex-shrink: 0;
213
+ font-family: monospace;
214
+ white-space: pre;
215
+ }
216
+
217
+ .tree-marker {
218
+ color: var(--accent);
219
+ flex-shrink: 0;
220
+ }
221
+
222
+ .tree-content {
223
+ color: var(--text);
224
+ }
225
+
226
+ .tree-role-user {
227
+ color: var(--accent);
228
+ }
229
+
230
+ .tree-role-skill {
231
+ color: var(--customMessageLabel);
232
+ }
233
+
234
+ .tree-role-assistant {
235
+ color: var(--success);
236
+ }
237
+
238
+ .tree-role-tool {
239
+ color: var(--muted);
240
+ }
241
+
242
+ .tree-muted {
243
+ color: var(--muted);
244
+ }
245
+
246
+ .tree-error {
247
+ color: var(--error);
248
+ }
249
+
250
+ .tree-compaction {
251
+ color: var(--borderAccent);
252
+ }
253
+
254
+ .tree-branch-summary {
255
+ color: var(--warning);
256
+ }
257
+
258
+ .tree-custom-message {
259
+ color: var(--customMessageLabel);
260
+ }
261
+
262
+ .tree-status {
263
+ padding: 4px 12px;
264
+ font-size: 10px;
265
+ color: var(--muted);
266
+ flex-shrink: 0;
267
+ }
268
+
269
+ /* Main content */
270
+ #content {
271
+ flex: 1;
272
+ min-width: 0;
273
+ overflow-y: auto;
274
+ padding: var(--line-height) calc(var(--line-height) * 2);
275
+ display: flex;
276
+ flex-direction: column;
277
+ align-items: center;
278
+ }
279
+
280
+ #content > * {
281
+ width: 100%;
282
+ max-width: 800px;
283
+ }
284
+
285
+ /* Help bar */
286
+ .help-bar {
287
+ font-size: 11px;
288
+ color: var(--warning);
289
+ margin-bottom: var(--line-height);
290
+ display: flex;
291
+ align-items: center;
292
+ justify-content: space-between;
293
+ flex-wrap: wrap;
294
+ gap: 12px;
295
+ }
296
+
297
+ .help-hint {
298
+ flex: 1 1 240px;
299
+ }
300
+
301
+ .help-actions {
302
+ display: flex;
303
+ align-items: center;
304
+ flex-wrap: wrap;
305
+ gap: 8px;
306
+ }
307
+
308
+ .header-toggle-btn,
309
+ .download-json-btn {
310
+ font-size: 10px;
311
+ padding: 2px 8px;
312
+ background: var(--container-bg);
313
+ border: 1px solid var(--border);
314
+ border-radius: 3px;
315
+ color: var(--text);
316
+ cursor: pointer;
317
+ font-family: inherit;
318
+ }
319
+
320
+ .header-toggle-btn:hover,
321
+ .download-json-btn:hover {
322
+ background: var(--hover);
323
+ border-color: var(--borderAccent);
324
+ }
325
+
326
+ /* Header */
327
+ .header {
328
+ background: var(--container-bg);
329
+ border-radius: 4px;
330
+ padding: var(--line-height);
331
+ margin-bottom: var(--line-height);
332
+ }
333
+
334
+ .header h1 {
335
+ font-size: 12px;
336
+ font-weight: bold;
337
+ color: var(--borderAccent);
338
+ margin-bottom: var(--line-height);
339
+ }
340
+
341
+ .header-info {
342
+ display: flex;
343
+ flex-direction: column;
344
+ gap: 0;
345
+ font-size: 11px;
346
+ }
347
+
348
+ .info-item {
349
+ color: var(--dim);
350
+ display: flex;
351
+ align-items: baseline;
352
+ }
353
+
354
+ .info-label {
355
+ font-weight: 600;
356
+ margin-right: 8px;
357
+ min-width: 100px;
358
+ }
359
+
360
+ .info-value {
361
+ color: var(--text);
362
+ flex: 1;
363
+ }
364
+
365
+ /* Messages */
366
+ #messages {
367
+ display: flex;
368
+ flex-direction: column;
369
+ gap: var(--line-height);
370
+ }
371
+
372
+ .message-timestamp {
373
+ font-size: 10px;
374
+ color: var(--dim);
375
+ opacity: 0.8;
376
+ }
377
+
378
+ .user-message {
379
+ background: var(--userMessageBg);
380
+ color: var(--userMessageText);
381
+ padding: var(--line-height);
382
+ border-radius: 4px;
383
+ position: relative;
384
+ }
385
+
386
+ .assistant-message {
387
+ padding: 0;
388
+ position: relative;
389
+ }
390
+
391
+ /* Copy link button - appears on hover */
392
+ .copy-link-btn {
393
+ position: absolute;
394
+ top: 8px;
395
+ right: 8px;
396
+ width: 28px;
397
+ height: 28px;
398
+ padding: 6px;
399
+ background: var(--container-bg);
400
+ border: 1px solid var(--dim);
401
+ border-radius: 4px;
402
+ color: var(--muted);
403
+ cursor: pointer;
404
+ opacity: 0;
405
+ transition: opacity 0.15s, background 0.15s, color 0.15s;
406
+ display: flex;
407
+ align-items: center;
408
+ justify-content: center;
409
+ z-index: 10;
410
+ }
411
+
412
+ .user-message:hover .copy-link-btn,
413
+ .assistant-message:hover .copy-link-btn,
414
+ .skill-user-entry:hover .copy-link-btn {
415
+ opacity: 1;
416
+ }
417
+
418
+ .copy-link-btn:hover {
419
+ background: var(--accent);
420
+ color: var(--body-bg);
421
+ border-color: var(--accent);
422
+ }
423
+
424
+ .copy-link-btn.copied {
425
+ background: var(--success, #22c55e);
426
+ color: white;
427
+ border-color: var(--success, #22c55e);
428
+ }
429
+
430
+ /* Highlight effect for deep-linked messages */
431
+ .user-message.highlight,
432
+ .assistant-message.highlight {
433
+ animation: highlight-pulse 2s ease-out;
434
+ }
435
+
436
+ @keyframes highlight-pulse {
437
+ 0% {
438
+ box-shadow: 0 0 0 3px var(--accent);
439
+ }
440
+ 100% {
441
+ box-shadow: 0 0 0 0 transparent;
442
+ }
443
+ }
444
+
445
+ .assistant-message > .message-timestamp {
446
+ padding-left: var(--line-height);
447
+ }
448
+
449
+ .assistant-text {
450
+ padding: var(--line-height);
451
+ padding-bottom: 0;
452
+ }
453
+
454
+ .message-timestamp + .assistant-text,
455
+ .message-timestamp + .thinking-block {
456
+ padding-top: 0;
457
+ }
458
+
459
+ .thinking-block + .assistant-text {
460
+ padding-top: 0;
461
+ }
462
+
463
+ .thinking-text {
464
+ padding: var(--line-height);
465
+ color: var(--thinkingText);
466
+ font-style: italic;
467
+ white-space: pre-wrap;
468
+ }
469
+
470
+ .message-timestamp + .thinking-block .thinking-text,
471
+ .message-timestamp + .thinking-block .thinking-collapsed {
472
+ padding-top: 0;
473
+ }
474
+
475
+ .thinking-collapsed {
476
+ display: none;
477
+ padding: var(--line-height);
478
+ color: var(--thinkingText);
479
+ font-style: italic;
480
+ }
481
+
482
+ /* Tool execution */
483
+ .tool-execution {
484
+ padding: var(--line-height);
485
+ border-radius: 4px;
486
+ }
487
+
488
+ .tool-execution + .tool-execution {
489
+ margin-top: var(--line-height);
490
+ }
491
+
492
+ .assistant-text + .tool-execution {
493
+ margin-top: var(--line-height);
494
+ }
495
+
496
+ .tool-execution.pending { background: var(--toolPendingBg); }
497
+ .tool-execution.success { background: var(--toolSuccessBg); }
498
+ .tool-execution.error { background: var(--toolErrorBg); }
499
+
500
+ .tool-header, .tool-name {
501
+ font-weight: bold;
502
+ }
503
+
504
+ .tool-path {
505
+ color: var(--accent);
506
+ word-break: break-all;
507
+ }
508
+
509
+ .line-numbers {
510
+ color: var(--warning);
511
+ }
512
+
513
+ .line-count {
514
+ color: var(--dim);
515
+ }
516
+
517
+ .tool-command {
518
+ font-weight: bold;
519
+ white-space: pre-wrap;
520
+ word-wrap: break-word;
521
+ overflow-wrap: break-word;
522
+ word-break: break-word;
523
+ }
524
+
525
+ .tool-output {
526
+ margin-top: var(--line-height);
527
+ color: var(--toolOutput);
528
+ word-wrap: break-word;
529
+ overflow-wrap: break-word;
530
+ word-break: break-word;
531
+ font-family: inherit;
532
+ overflow-x: auto;
533
+ }
534
+
535
+ .tool-output > div,
536
+ .output-preview > div,
537
+ .output-full > div {
538
+ margin: 0;
539
+ padding: 0;
540
+ line-height: var(--line-height);
541
+ }
542
+
543
+ .tool-output > div:not(.output-preview):not(.output-full),
544
+ .output-preview > div:not(.expand-hint),
545
+ .output-full > div:not(.expand-hint) {
546
+ white-space: pre-wrap;
547
+ }
548
+
549
+ .tool-output pre {
550
+ margin: 0;
551
+ padding: 0;
552
+ font-family: inherit;
553
+ color: inherit;
554
+ white-space: pre-wrap;
555
+ word-wrap: break-word;
556
+ overflow-wrap: break-word;
557
+ }
558
+
559
+ .tool-output code {
560
+ padding: 0;
561
+ background: none;
562
+ color: var(--text);
563
+ }
564
+
565
+ .tool-output.expandable {
566
+ cursor: pointer;
567
+ }
568
+
569
+ .tool-output.expandable:hover {
570
+ opacity: 0.9;
571
+ }
572
+
573
+ .tool-output.expandable .output-full {
574
+ display: none;
575
+ }
576
+
577
+ .tool-output.expandable.expanded .output-preview {
578
+ display: none;
579
+ }
580
+
581
+ .tool-output.expandable.expanded .output-full {
582
+ display: block;
583
+ }
584
+
585
+ .ansi-line {
586
+ white-space: pre;
587
+ }
588
+
589
+ .tool-images {
590
+ }
591
+
592
+ .tool-image {
593
+ max-width: 100%;
594
+ max-height: 500px;
595
+ border-radius: 4px;
596
+ margin: var(--line-height) 0;
597
+ }
598
+
599
+ .expand-hint {
600
+ color: var(--toolOutput);
601
+ }
602
+
603
+ /* Diff */
604
+ .tool-diff {
605
+ font-size: 11px;
606
+ overflow-x: auto;
607
+ white-space: pre;
608
+ }
609
+
610
+ .diff-added { color: var(--toolDiffAdded); }
611
+ .diff-removed { color: var(--toolDiffRemoved); }
612
+ .diff-context { color: var(--toolDiffContext); }
613
+
614
+ /* Model change */
615
+ .model-change {
616
+ padding: 0 var(--line-height);
617
+ color: var(--dim);
618
+ font-size: 11px;
619
+ }
620
+
621
+ .model-name {
622
+ color: var(--borderAccent);
623
+ font-weight: bold;
624
+ }
625
+
626
+ /* Compaction / Branch Summary - matches customMessage colors from TUI */
627
+ .compaction {
628
+ background: var(--customMessageBg);
629
+ border-radius: 4px;
630
+ padding: var(--line-height);
631
+ cursor: pointer;
632
+ }
633
+
634
+ .compaction-label {
635
+ color: var(--customMessageLabel);
636
+ font-weight: bold;
637
+ }
638
+
639
+ .compaction-collapsed {
640
+ color: var(--customMessageText);
641
+ }
642
+
643
+ .compaction-content {
644
+ display: none;
645
+ color: var(--customMessageText);
646
+ white-space: pre-wrap;
647
+ margin-top: var(--line-height);
648
+ }
649
+
650
+ .compaction.expanded .compaction-collapsed {
651
+ display: none;
652
+ }
653
+
654
+ .compaction.expanded .compaction-content {
655
+ display: block;
656
+ }
657
+
658
+ /* System prompt */
659
+ .system-prompt {
660
+ background: var(--customMessageBg);
661
+ padding: var(--line-height);
662
+ border-radius: 4px;
663
+ margin-bottom: var(--line-height);
664
+ }
665
+
666
+ .system-prompt.expandable {
667
+ cursor: pointer;
668
+ }
669
+
670
+ .system-prompt-header {
671
+ font-weight: bold;
672
+ color: var(--customMessageLabel);
673
+ }
674
+
675
+ .system-prompt-preview {
676
+ color: var(--customMessageText);
677
+ white-space: pre-wrap;
678
+ word-wrap: break-word;
679
+ font-size: 11px;
680
+ margin-top: var(--line-height);
681
+ }
682
+
683
+ .system-prompt-expand-hint {
684
+ color: var(--muted);
685
+ font-style: italic;
686
+ margin-top: 4px;
687
+ }
688
+
689
+ .system-prompt-full {
690
+ display: none;
691
+ color: var(--customMessageText);
692
+ white-space: pre-wrap;
693
+ word-wrap: break-word;
694
+ font-size: 11px;
695
+ margin-top: var(--line-height);
696
+ }
697
+
698
+ .system-prompt.expanded .system-prompt-preview,
699
+ .system-prompt.expanded .system-prompt-expand-hint {
700
+ display: none;
701
+ }
702
+
703
+ .system-prompt.expanded .system-prompt-full {
704
+ display: block;
705
+ }
706
+
707
+ .system-prompt.provider-prompt {
708
+ border-left: 3px solid var(--warning);
709
+ }
710
+
711
+ .system-prompt-note {
712
+ font-size: 10px;
713
+ font-style: italic;
714
+ color: var(--muted);
715
+ margin-top: 4px;
716
+ }
717
+
718
+ /* Tools list */
719
+ .tools-list {
720
+ background: var(--customMessageBg);
721
+ padding: var(--line-height);
722
+ border-radius: 4px;
723
+ margin-bottom: var(--line-height);
724
+ }
725
+
726
+ .tools-header {
727
+ font-weight: bold;
728
+ color: var(--customMessageLabel);
729
+ margin-bottom: var(--line-height);
730
+ }
731
+
732
+ .tool-item {
733
+ font-size: 11px;
734
+ }
735
+
736
+ .tool-item-name {
737
+ font-weight: bold;
738
+ color: var(--text);
739
+ }
740
+
741
+ .tool-item-desc {
742
+ color: var(--dim);
743
+ }
744
+
745
+ .tool-params-hint {
746
+ color: var(--muted);
747
+ font-style: italic;
748
+ }
749
+
750
+ .tool-item:has(.tool-params-hint) {
751
+ cursor: pointer;
752
+ }
753
+
754
+ .tool-params-hint::after {
755
+ content: '[click to show parameters]';
756
+ }
757
+
758
+ .tool-item.params-expanded .tool-params-hint::after {
759
+ content: '[hide parameters]';
760
+ }
761
+
762
+ .tool-params-content {
763
+ display: none;
764
+ margin-top: 4px;
765
+ margin-left: 12px;
766
+ padding-left: 8px;
767
+ border-left: 1px solid var(--dim);
768
+ }
769
+
770
+ .tool-item.params-expanded .tool-params-content {
771
+ display: block;
772
+ }
773
+
774
+ .tool-param {
775
+ margin-bottom: 4px;
776
+ font-size: 11px;
777
+ }
778
+
779
+ .tool-param-name {
780
+ font-weight: bold;
781
+ color: var(--text);
782
+ }
783
+
784
+ .tool-param-type {
785
+ color: var(--dim);
786
+ font-style: italic;
787
+ }
788
+
789
+ .tool-param-required {
790
+ color: var(--warning, #e8a838);
791
+ font-size: 10px;
792
+ }
793
+
794
+ .tool-param-optional {
795
+ color: var(--dim);
796
+ font-size: 10px;
797
+ }
798
+
799
+ .tool-param-desc {
800
+ color: var(--dim);
801
+ margin-left: 8px;
802
+ }
803
+
804
+ /* Hook/custom messages */
805
+ .hook-message {
806
+ background: var(--customMessageBg);
807
+ color: var(--customMessageText);
808
+ padding: var(--line-height);
809
+ border-radius: 4px;
810
+ }
811
+
812
+ .hook-type {
813
+ color: var(--customMessageLabel);
814
+ font-weight: bold;
815
+ }
816
+
817
+ /* Skill invocation - matches compaction style (clickable, collapsed by default) */
818
+ .skill-invocation {
819
+ background: var(--customMessageBg);
820
+ border-radius: 4px;
821
+ padding: var(--line-height);
822
+ cursor: pointer;
823
+ }
824
+
825
+ .skill-invocation-label {
826
+ color: var(--customMessageLabel);
827
+ font-weight: bold;
828
+ }
829
+
830
+ .skill-invocation-collapsed {
831
+ color: var(--customMessageText);
832
+ }
833
+
834
+ .skill-invocation-content {
835
+ display: none;
836
+ color: var(--customMessageText);
837
+ margin-top: var(--line-height);
838
+ }
839
+
840
+ .skill-invocation.expanded .skill-invocation-collapsed {
841
+ display: none;
842
+ }
843
+
844
+ .skill-invocation.expanded .skill-invocation-content {
845
+ display: block;
846
+ }
847
+
848
+ .skill-invocation + .user-message {
849
+ margin-top: var(--line-height);
850
+ }
851
+
852
+ .skill-user-entry {
853
+ position: relative;
854
+ }
855
+
856
+ /* Branch summary */
857
+ .branch-summary {
858
+ background: var(--customMessageBg);
859
+ padding: var(--line-height);
860
+ border-radius: 4px;
861
+ }
862
+
863
+ .branch-summary-header {
864
+ font-weight: bold;
865
+ color: var(--borderAccent);
866
+ }
867
+
868
+ /* Error */
869
+ .error-text {
870
+ color: var(--error);
871
+ padding: 0 var(--line-height);
872
+ }
873
+ .tool-error {
874
+ color: var(--error);
875
+ }
876
+
877
+ /* Images */
878
+ .message-images {
879
+ margin-bottom: 12px;
880
+ }
881
+
882
+ .message-image {
883
+ max-width: 100%;
884
+ max-height: 400px;
885
+ border-radius: 4px;
886
+ margin: var(--line-height) 0;
887
+ }
888
+
889
+ /* Markdown content */
890
+ .markdown-content h1,
891
+ .markdown-content h2,
892
+ .markdown-content h3,
893
+ .markdown-content h4,
894
+ .markdown-content h5,
895
+ .markdown-content h6 {
896
+ color: var(--mdHeading);
897
+ margin: var(--line-height) 0 0 0;
898
+ font-weight: bold;
899
+ }
900
+
901
+ .markdown-content h1 { font-size: 1em; }
902
+ .markdown-content h2 { font-size: 1em; }
903
+ .markdown-content h3 { font-size: 1em; }
904
+ .markdown-content h4 { font-size: 1em; }
905
+ .markdown-content h5 { font-size: 1em; }
906
+ .markdown-content h6 { font-size: 1em; }
907
+ .markdown-content p { margin: 0; }
908
+ .markdown-content p + p { margin-top: var(--line-height); }
909
+
910
+ .markdown-content a {
911
+ color: var(--mdLink);
912
+ text-decoration: underline;
913
+ }
914
+
915
+ .markdown-content code {
916
+ background: rgba(128, 128, 128, 0.2);
917
+ color: var(--mdCode);
918
+ padding: 0 4px;
919
+ border-radius: 3px;
920
+ font-family: inherit;
921
+ }
922
+
923
+ .markdown-content pre {
924
+ background: transparent;
925
+ margin: var(--line-height) 0;
926
+ overflow-x: auto;
927
+ }
928
+
929
+ .markdown-content pre code {
930
+ display: block;
931
+ background: none;
932
+ color: var(--text);
933
+ }
934
+
935
+ .markdown-content blockquote {
936
+ border-left: 3px solid var(--mdQuoteBorder);
937
+ padding-left: var(--line-height);
938
+ margin: var(--line-height) 0;
939
+ color: var(--mdQuote);
940
+ font-style: italic;
941
+ }
942
+
943
+ .markdown-content ul,
944
+ .markdown-content ol {
945
+ margin: var(--line-height) 0;
946
+ padding-left: calc(var(--line-height) * 2);
947
+ }
948
+
949
+ .markdown-content li { margin: 0; }
950
+ .markdown-content li::marker { color: var(--mdListBullet); }
951
+
952
+ .markdown-content hr {
953
+ border: none;
954
+ border-top: 1px solid var(--mdHr);
955
+ margin: var(--line-height) 0;
956
+ }
957
+
958
+ .markdown-content table {
959
+ border-collapse: collapse;
960
+ margin: 0.5em 0;
961
+ width: 100%;
962
+ }
963
+
964
+ .markdown-content th,
965
+ .markdown-content td {
966
+ border: 1px solid var(--mdCodeBlockBorder);
967
+ padding: 6px 10px;
968
+ text-align: left;
969
+ }
970
+
971
+ .markdown-content th {
972
+ background: rgba(128, 128, 128, 0.1);
973
+ font-weight: bold;
974
+ }
975
+
976
+ .markdown-content img {
977
+ max-width: 100%;
978
+ border-radius: 4px;
979
+ }
980
+
981
+ /* Syntax highlighting */
982
+ .hljs { background: transparent; color: var(--text); }
983
+ .hljs-comment, .hljs-quote { color: var(--syntaxComment); }
984
+ .hljs-keyword, .hljs-selector-tag { color: var(--syntaxKeyword); }
985
+ .hljs-number, .hljs-literal { color: var(--syntaxNumber); }
986
+ .hljs-string, .hljs-doctag { color: var(--syntaxString); }
987
+ /* Function names: hljs v11 uses .hljs-title.function_ compound class */
988
+ .hljs-function, .hljs-title, .hljs-title.function_, .hljs-section, .hljs-name { color: var(--syntaxFunction); }
989
+ /* Types: hljs v11 uses .hljs-title.class_ for class names */
990
+ .hljs-type, .hljs-class, .hljs-title.class_, .hljs-built_in { color: var(--syntaxType); }
991
+ .hljs-attr, .hljs-variable, .hljs-variable.language_, .hljs-params, .hljs-property { color: var(--syntaxVariable); }
992
+ .hljs-meta, .hljs-meta .hljs-keyword, .hljs-meta .hljs-string { color: var(--syntaxKeyword); }
993
+ .hljs-operator { color: var(--syntaxOperator); }
994
+ .hljs-punctuation { color: var(--syntaxPunctuation); }
995
+ .hljs-subst { color: var(--text); }
996
+
997
+ /* Footer */
998
+ .footer {
999
+ margin-top: 48px;
1000
+ padding: 20px;
1001
+ text-align: center;
1002
+ color: var(--dim);
1003
+ font-size: 10px;
1004
+ }
1005
+
1006
+ /* Mobile */
1007
+ #hamburger {
1008
+ display: none;
1009
+ position: fixed;
1010
+ top: 10px;
1011
+ left: 10px;
1012
+ z-index: 100;
1013
+ padding: 3px 8px;
1014
+ font-size: 12px;
1015
+ font-family: inherit;
1016
+ background: transparent;
1017
+ color: var(--muted);
1018
+ border: 1px solid var(--dim);
1019
+ border-radius: 3px;
1020
+ cursor: pointer;
1021
+ }
1022
+
1023
+ #hamburger:hover {
1024
+ color: var(--text);
1025
+ border-color: var(--text);
1026
+ }
1027
+
1028
+
1029
+
1030
+ #sidebar-overlay {
1031
+ display: none;
1032
+ position: fixed;
1033
+ top: 0;
1034
+ left: 0;
1035
+ right: 0;
1036
+ bottom: 0;
1037
+ background: rgba(0, 0, 0, 0.5);
1038
+ z-index: 98;
1039
+ }
1040
+
1041
+ @media (max-width: 900px) {
1042
+ #sidebar {
1043
+ position: fixed;
1044
+ left: 0;
1045
+ width: min(var(--sidebar-width), 100vw);
1046
+ min-width: min(var(--sidebar-width), 100vw);
1047
+ max-width: min(var(--sidebar-width), 100vw);
1048
+ top: 0;
1049
+ bottom: 0;
1050
+ height: 100vh;
1051
+ z-index: 99;
1052
+ transform: translateX(-100%);
1053
+ transition: transform 0.3s;
1054
+ }
1055
+
1056
+ #sidebar.open {
1057
+ transform: translateX(0);
1058
+ }
1059
+
1060
+ #sidebar-resizer {
1061
+ display: none;
1062
+ }
1063
+
1064
+ #sidebar-overlay.open {
1065
+ display: block;
1066
+ }
1067
+
1068
+ #hamburger {
1069
+ display: block;
1070
+ }
1071
+
1072
+ .sidebar-close {
1073
+ display: block;
1074
+ }
1075
+
1076
+ #content {
1077
+ padding: var(--line-height) 16px;
1078
+ }
1079
+
1080
+ #content > * {
1081
+ max-width: 100%;
1082
+ }
1083
+ }
1084
+
1085
+
1086
+ /* Subsession nested transcript (agent subagents) */
1087
+ .subsession {
1088
+ border: 1px solid var(--ada-border);
1089
+ border-radius: 4px;
1090
+ margin: var(--line-height) 0;
1091
+ background: var(--container-bg);
1092
+ overflow: hidden;
1093
+ }
1094
+ .subsession summary.subsession-summary {
1095
+ cursor: pointer;
1096
+ padding: 6px 10px;
1097
+ background: color-mix(in srgb, var(--ada-bg) 80%, var(--container-bg));
1098
+ color: var(--ada-fg);
1099
+ font-weight: bold;
1100
+ font-size: 11px;
1101
+ border-bottom: 1px solid var(--ada-border);
1102
+ list-style: none;
1103
+ }
1104
+ .subsession summary.subsession-summary::-webkit-details-marker { display: none; }
1105
+ .subsession summary.subsession-summary::before {
1106
+ content: "▸ ";
1107
+ display: inline-block;
1108
+ transition: transform 0.15s;
1109
+ }
1110
+ .subsession[open] summary.subsession-summary::before { transform: rotate(90deg); }
1111
+ .subsession-content {
1112
+ padding: var(--line-height);
1113
+ display: flex;
1114
+ flex-direction: column;
1115
+ gap: var(--line-height);
1116
+ }
1117
+ .subsession[data-depth="1"] { margin-left: 12px; }
1118
+ .subsession[data-depth="2"] { margin-left: 24px; }
1119
+ .subsession-prompt {
1120
+ padding: 6px 10px;
1121
+ color: var(--muted);
1122
+ font-style: italic;
1123
+ border-left: 2px solid var(--ada-border);
1124
+ margin-bottom: 6px;
1125
+ }
1126
+ /* Theme toggle button */
1127
+ #theme-toggle {
1128
+ position: fixed;
1129
+ top: 10px;
1130
+ right: 14px;
1131
+ z-index: 101;
1132
+ padding: 4px 8px;
1133
+ font-size: 12px;
1134
+ font-family: inherit;
1135
+ background: var(--container-bg);
1136
+ color: var(--text);
1137
+ border: 1px solid var(--ada-border);
1138
+ border-radius: 4px;
1139
+ cursor: pointer;
1140
+ }
1141
+ #theme-toggle:hover {
1142
+ background: var(--hover, var(--selectedBg));
1143
+ border-color: var(--borderAccent);
1144
+ }
1145
+
1146
+ @media print {
1147
+ #sidebar, #sidebar-resizer, #sidebar-toggle { display: none !important; }
1148
+ body { background: white; color: black; }
1149
+ #content { max-width: none; }
1150
+ }