@workflow-code/cli 0.2.4-20261012006.codex-studio-integration → 0.2.4-20261012007.codex-studio-integration

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,2172 @@
1
+ /* src/web/ui/style.css */
2
+ :root {
3
+ color-scheme: light dark;
4
+ --border: var(--vscode-panel-border, #444);
5
+ --muted: var(--vscode-descriptionForeground);
6
+ }
7
+ * {
8
+ box-sizing: border-box;
9
+ letter-spacing: 0;
10
+ }
11
+ body {
12
+ margin: 0;
13
+ padding: 0;
14
+ color: var(--vscode-editor-foreground);
15
+ background: var(--vscode-editor-background);
16
+ font: 13px var(--vscode-font-family);
17
+ }
18
+ button,
19
+ input,
20
+ textarea,
21
+ select {
22
+ font: inherit;
23
+ }
24
+ button {
25
+ cursor: pointer;
26
+ color: inherit;
27
+ }
28
+ button:disabled {
29
+ cursor: default;
30
+ opacity: .45;
31
+ }
32
+ button:focus-visible,
33
+ input:focus-visible,
34
+ select:focus-visible,
35
+ textarea:focus-visible,
36
+ a:focus-visible,
37
+ summary:focus-visible {
38
+ outline: 1px solid var(--vscode-focusBorder);
39
+ outline-offset: 2px;
40
+ }
41
+ [hidden] {
42
+ display: none !important;
43
+ }
44
+ #app {
45
+ height: 100vh;
46
+ display: grid;
47
+ grid-template-areas: "toolbar" "main";
48
+ grid-template-columns: minmax(0, 1fr);
49
+ grid-template-rows: auto minmax(0, 1fr);
50
+ overflow: hidden;
51
+ }
52
+ #app.menu-open {
53
+ grid-template-areas: "menu toolbar" "menu main";
54
+ grid-template-columns: 264px minmax(0, 1fr);
55
+ }
56
+ .toolbar {
57
+ grid-area: toolbar;
58
+ display: flex;
59
+ min-height: 52px;
60
+ align-items: center;
61
+ justify-content: space-between;
62
+ gap: 12px;
63
+ padding: 8px 16px;
64
+ }
65
+ .project-title {
66
+ display: flex;
67
+ min-width: 0;
68
+ align-items: center;
69
+ gap: 8px;
70
+ }
71
+ .project-heading {
72
+ min-width: 0;
73
+ }
74
+ #assistant-folder {
75
+ display: block;
76
+ color: var(--muted);
77
+ font-size: 11px;
78
+ overflow: hidden;
79
+ text-overflow: ellipsis;
80
+ white-space: nowrap;
81
+ margin-top: 3px;
82
+ }
83
+ .assistant-welcome {
84
+ padding: 20px 16px;
85
+ color: var(--muted);
86
+ }
87
+ body[data-surface=assistant] {
88
+ background: var(--vscode-sideBar-background, var(--vscode-editor-background));
89
+ }
90
+ .project-icon {
91
+ width: 24px;
92
+ height: 24px;
93
+ display: grid;
94
+ place-items: center;
95
+ flex-shrink: 0;
96
+ color: var(--muted);
97
+ }
98
+ h1 {
99
+ font-size: 14px;
100
+ font-weight: 500;
101
+ margin: 0;
102
+ min-width: 0;
103
+ overflow: hidden;
104
+ text-overflow: ellipsis;
105
+ white-space: nowrap;
106
+ }
107
+ .project-name {
108
+ color: var(--muted);
109
+ font-size: 10px;
110
+ white-space: nowrap;
111
+ }
112
+ .toolbar-actions {
113
+ display: flex;
114
+ gap: 4px;
115
+ align-items: center;
116
+ min-width: 0;
117
+ flex-shrink: 0;
118
+ }
119
+ .icon-button {
120
+ display: inline-flex;
121
+ flex-shrink: 0;
122
+ width: 28px;
123
+ height: 28px;
124
+ padding: 0;
125
+ border: none;
126
+ border-radius: 4px;
127
+ align-items: center;
128
+ justify-content: center;
129
+ background: transparent;
130
+ }
131
+ .icon-button:hover:not(:disabled) {
132
+ background: var(--vscode-toolbar-hoverBackground);
133
+ }
134
+ .toolbar-actions [aria-expanded=true] {
135
+ background: var(--vscode-toolbar-activeBackground, var(--vscode-toolbar-hoverBackground));
136
+ }
137
+ .project-menu {
138
+ display: none;
139
+ grid-area: menu;
140
+ min-width: 0;
141
+ min-height: 0;
142
+ overflow: hidden;
143
+ background: var(--vscode-sideBar-background);
144
+ border-right: 1px solid var(--border);
145
+ }
146
+ .menu-open .project-menu {
147
+ display: flex;
148
+ flex-direction: column;
149
+ }
150
+ .menu-heading {
151
+ display: flex;
152
+ flex-shrink: 0;
153
+ align-items: center;
154
+ justify-content: space-between;
155
+ gap: 6px;
156
+ min-height: 52px;
157
+ padding: 8px 10px 8px 16px;
158
+ font-size: 12px;
159
+ color: var(--muted);
160
+ }
161
+ .menu-heading > span {
162
+ min-width: 0;
163
+ white-space: nowrap;
164
+ }
165
+ .menu-actions {
166
+ display: flex;
167
+ align-items: center;
168
+ gap: 2px;
169
+ flex-shrink: 0;
170
+ }
171
+ .history-search {
172
+ display: flex;
173
+ align-items: center;
174
+ gap: 7px;
175
+ border-bottom: 1px solid var(--border);
176
+ margin: 12px 16px 8px;
177
+ padding: 0 0 8px;
178
+ color: var(--muted);
179
+ }
180
+ .history-search input {
181
+ flex: 1;
182
+ width: 100%;
183
+ border: none;
184
+ background: transparent;
185
+ min-height: 26px;
186
+ padding: 0;
187
+ font-size: 12px;
188
+ }
189
+ .history-search input::placeholder {
190
+ color: var(--muted);
191
+ }
192
+ #chats {
193
+ min-height: 0;
194
+ overflow: auto;
195
+ overflow-anchor: none;
196
+ }
197
+ #session-list {
198
+ padding: 0 8px;
199
+ }
200
+ .session {
201
+ display: flex;
202
+ align-items: center;
203
+ justify-content: space-between;
204
+ gap: 10px;
205
+ border: none;
206
+ background: transparent;
207
+ border-radius: 4px;
208
+ width: 100%;
209
+ min-width: 0;
210
+ height: 38px;
211
+ padding: 0 10px;
212
+ text-align: left;
213
+ }
214
+ .session > span {
215
+ min-width: 0;
216
+ white-space: nowrap;
217
+ overflow: hidden;
218
+ text-overflow: ellipsis;
219
+ }
220
+ .session time {
221
+ flex-shrink: 0;
222
+ color: var(--muted);
223
+ font-size: 10px;
224
+ }
225
+ .session > span > .codicon {
226
+ font-size: 12px;
227
+ margin-right: 6px;
228
+ }
229
+ .session:hover {
230
+ background: var(--vscode-list-hoverBackground);
231
+ }
232
+ .session.active {
233
+ background: var(--vscode-list-inactiveSelectionBackground);
234
+ }
235
+ .session.context-active {
236
+ background: var(--vscode-list-hoverBackground);
237
+ }
238
+ .session-menu {
239
+ position: fixed;
240
+ inset: auto;
241
+ margin: 0;
242
+ width: min(220px, calc(100vw - 16px));
243
+ max-height: calc(100vh - 16px);
244
+ overflow: auto;
245
+ padding: 4px;
246
+ color: var(--vscode-menu-foreground, var(--vscode-editor-foreground));
247
+ background: var(--vscode-menu-background, var(--vscode-editorWidget-background, var(--vscode-editor-background)));
248
+ border: 1px solid var(--vscode-menu-border, var(--border));
249
+ border-radius: 6px;
250
+ box-shadow: 0 4px 16px var(--vscode-widget-shadow, #0003);
251
+ }
252
+ .session-action {
253
+ display: flex;
254
+ align-items: center;
255
+ gap: 10px;
256
+ width: 100%;
257
+ min-height: 32px;
258
+ padding: 6px 10px;
259
+ border: none;
260
+ border-radius: 4px;
261
+ background: transparent;
262
+ text-align: left;
263
+ }
264
+ .session-action .codicon {
265
+ flex-shrink: 0;
266
+ }
267
+ .session-action > span:last-child {
268
+ overflow-wrap: anywhere;
269
+ }
270
+ .session-action[data-action=delete] {
271
+ color: var(--vscode-errorForeground);
272
+ }
273
+ .session-action:hover,
274
+ .session-action:focus {
275
+ color: var(--vscode-menu-selectionForeground, var(--vscode-list-activeSelectionForeground));
276
+ background: var(--vscode-menu-selectionBackground, var(--vscode-list-activeSelectionBackground));
277
+ outline: none;
278
+ }
279
+ .session-action:focus-visible {
280
+ outline: 1px solid var(--vscode-menu-selectionBorder, var(--vscode-focusBorder));
281
+ outline-offset: -1px;
282
+ }
283
+ .session-menu-separator {
284
+ height: 1px;
285
+ margin: 4px 6px;
286
+ background: var(--vscode-menu-separatorBackground, var(--border));
287
+ }
288
+ .all-history {
289
+ background: transparent;
290
+ border: none;
291
+ color: var(--muted);
292
+ font-size: 11px;
293
+ padding: 10px 18px;
294
+ text-align: left;
295
+ }
296
+ .all-history:hover {
297
+ color: var(--vscode-editor-foreground);
298
+ }
299
+ #load-more-history {
300
+ display: flex;
301
+ align-items: center;
302
+ gap: 6px;
303
+ }
304
+ .history-popover {
305
+ position: fixed;
306
+ inset: auto;
307
+ margin: 0;
308
+ width: min(520px, calc(100vw - 24px));
309
+ padding: 0;
310
+ color: inherit;
311
+ background: var(--vscode-editorWidget-background, var(--vscode-editor-background));
312
+ border: 1px solid var(--border);
313
+ border-radius: 8px;
314
+ box-shadow: 0 8px 24px #0003;
315
+ }
316
+ .history-popover:popover-open {
317
+ display: flex;
318
+ flex-direction: column;
319
+ }
320
+ .history-popover-toolbar {
321
+ display: flex;
322
+ align-items: center;
323
+ gap: 8px;
324
+ margin: 12px 12px 0;
325
+ padding-bottom: 8px;
326
+ border-bottom: 1px solid var(--border);
327
+ }
328
+ .history-popover .history-search {
329
+ flex: 1;
330
+ min-width: 0;
331
+ margin: 0;
332
+ padding: 0;
333
+ border: 0;
334
+ }
335
+ .history-popover input {
336
+ min-height: 28px;
337
+ }
338
+ #all-session-list {
339
+ overflow: auto;
340
+ min-height: 0;
341
+ padding: 6px 8px 10px;
342
+ }
343
+ .parameter-feedback {
344
+ display: flex;
345
+ flex-wrap: wrap;
346
+ align-items: center;
347
+ gap: 8px;
348
+ }
349
+ .parameter-status {
350
+ display: flex;
351
+ gap: 6px;
352
+ align-items: center;
353
+ padding-bottom: 8px;
354
+ color: var(--muted);
355
+ font-size: 11px;
356
+ }
357
+ .parameter-status .codicon,
358
+ .refreshing .codicon,
359
+ .pending .codicon {
360
+ animation: spin 1.2s linear infinite;
361
+ }
362
+ .parameter-error {
363
+ flex: 1;
364
+ min-width: 0;
365
+ font-size: 13px;
366
+ line-height: 1.6;
367
+ margin-bottom: 8px;
368
+ color: var(--vscode-errorForeground);
369
+ overflow-wrap: anywhere;
370
+ }
371
+ .no-history {
372
+ padding: 16px 18px;
373
+ color: var(--muted);
374
+ font-size: 12px;
375
+ }
376
+ summary::-webkit-details-marker {
377
+ display: none;
378
+ }
379
+ .param-field {
380
+ min-width: 0;
381
+ display: flex;
382
+ flex-direction: column;
383
+ gap: 7px;
384
+ }
385
+ .field-label {
386
+ display: flex;
387
+ align-items: center;
388
+ gap: 4px;
389
+ font-size: 12px;
390
+ min-width: 0;
391
+ color: var(--vscode-editor-foreground);
392
+ }
393
+ .field-label > span:first-child {
394
+ overflow-wrap: anywhere;
395
+ }
396
+ .field-label .codicon {
397
+ margin-left: auto;
398
+ color: var(--muted);
399
+ font-size: 12px;
400
+ }
401
+ .required {
402
+ color: var(--muted);
403
+ font-size: 10px;
404
+ }
405
+ input,
406
+ select {
407
+ min-width: 0;
408
+ min-height: 30px;
409
+ border: 1px solid var(--vscode-input-border, var(--border));
410
+ background: var(--vscode-input-background);
411
+ color: var(--vscode-input-foreground);
412
+ border-radius: 4px;
413
+ padding: 4px 8px;
414
+ }
415
+ .field-control {
416
+ width: 100%;
417
+ }
418
+ .field-control:disabled {
419
+ opacity: .55;
420
+ }
421
+ select option {
422
+ background: var(--vscode-dropdown-background);
423
+ color: var(--vscode-dropdown-foreground);
424
+ }
425
+ .boolean-field {
426
+ display: grid;
427
+ grid-template-columns: minmax(0, 1fr) 28px;
428
+ align-items: center;
429
+ gap: 7px;
430
+ }
431
+ .boolean-field .field-label {
432
+ grid-column: 1;
433
+ grid-row: 1;
434
+ }
435
+ input[role=switch] {
436
+ appearance: none;
437
+ position: relative;
438
+ width: 28px;
439
+ height: 16px;
440
+ min-height: 16px;
441
+ margin: 0;
442
+ padding: 0;
443
+ border-radius: 8px;
444
+ background: var(--vscode-input-background);
445
+ cursor: pointer;
446
+ }
447
+ input[role=switch]::before {
448
+ content: "";
449
+ position: absolute;
450
+ top: 2px;
451
+ left: 2px;
452
+ width: 10px;
453
+ height: 10px;
454
+ border-radius: 50%;
455
+ background: var(--muted);
456
+ transition: transform .15s;
457
+ }
458
+ input[role=switch]:checked {
459
+ background: var(--vscode-button-background);
460
+ border-color: var(--vscode-button-background);
461
+ }
462
+ input[role=switch]:checked::before {
463
+ transform: translateX(12px);
464
+ background: var(--vscode-button-foreground);
465
+ }
466
+ input[role=switch]:disabled {
467
+ cursor: default;
468
+ }
469
+ .option-description {
470
+ font-size: 12px;
471
+ line-height: 1.5;
472
+ color: var(--muted);
473
+ overflow-wrap: anywhere;
474
+ }
475
+ .field-choices {
476
+ display: flex;
477
+ flex-direction: column;
478
+ gap: 8px;
479
+ }
480
+ .field-choices label {
481
+ display: flex;
482
+ align-items: center;
483
+ gap: 7px;
484
+ font-size: 12px;
485
+ overflow-wrap: anywhere;
486
+ }
487
+ .field-choices input {
488
+ width: 14px;
489
+ height: 14px;
490
+ min-height: 14px;
491
+ margin: 0;
492
+ accent-color: var(--vscode-button-background);
493
+ }
494
+ .param-field textarea {
495
+ min-height: 72px;
496
+ border: 1px solid var(--border);
497
+ background: var(--vscode-input-background);
498
+ border-radius: 4px;
499
+ padding: 8px;
500
+ }
501
+ main {
502
+ grid-area: main;
503
+ min-width: 0;
504
+ min-height: 0;
505
+ display: flex;
506
+ flex-direction: column;
507
+ }
508
+ .transcript-area {
509
+ flex: 1;
510
+ min-height: 0;
511
+ position: relative;
512
+ }
513
+ .transcript {
514
+ height: 100%;
515
+ overflow: auto;
516
+ overflow-anchor: none;
517
+ scrollbar-gutter: stable;
518
+ padding: 18px max(28px, calc((100% - 820px) / 2)) 10px;
519
+ }
520
+ .empty {
521
+ min-height: 100px;
522
+ height: 100%;
523
+ display: flex;
524
+ align-items: center;
525
+ justify-content: center;
526
+ color: var(--muted);
527
+ opacity: .3;
528
+ }
529
+ .empty > .codicon {
530
+ font-size: 40px;
531
+ }
532
+ .message {
533
+ min-width: 0;
534
+ margin-bottom: 30px;
535
+ }
536
+ .message-body {
537
+ min-width: 0;
538
+ position: relative;
539
+ }
540
+ .message-date {
541
+ margin-left: auto;
542
+ flex-shrink: 0;
543
+ text-align: right;
544
+ white-space: nowrap;
545
+ font-size: 11px;
546
+ line-height: 1.6;
547
+ color: var(--muted);
548
+ opacity: 0;
549
+ }
550
+ .message:hover .message-date,
551
+ .message:has(:focus-visible) .message-date {
552
+ opacity: 1;
553
+ }
554
+ .user .message-body {
555
+ width: fit-content;
556
+ max-width: 84%;
557
+ margin-left: auto;
558
+ padding-bottom: 32px;
559
+ }
560
+ .message-header {
561
+ display: flex;
562
+ align-items: flex-start;
563
+ gap: 8px;
564
+ min-height: 26px;
565
+ padding-bottom: 8px;
566
+ margin-bottom: 12px;
567
+ border-bottom: 1px solid var(--border);
568
+ }
569
+ .user .message-header {
570
+ display: none;
571
+ }
572
+ .message-metadata {
573
+ flex: 1;
574
+ min-width: 0;
575
+ font-size: 11px;
576
+ line-height: 1.6;
577
+ color: var(--muted);
578
+ overflow-wrap: anywhere;
579
+ }
580
+ .message-actions {
581
+ display: flex;
582
+ align-items: center;
583
+ justify-content: flex-start;
584
+ gap: 4px;
585
+ min-height: 32px;
586
+ padding-top: 4px;
587
+ }
588
+ .user .message-actions {
589
+ position: absolute;
590
+ right: 0;
591
+ bottom: 0;
592
+ width: max-content;
593
+ justify-content: flex-end;
594
+ gap: 6px;
595
+ opacity: 0;
596
+ }
597
+ .user:hover .message-actions,
598
+ .user:has(:focus-visible) .message-actions {
599
+ opacity: 1;
600
+ }
601
+ .message-actions .icon-button {
602
+ width: 28px;
603
+ height: 28px;
604
+ color: var(--muted);
605
+ }
606
+ .message-content {
607
+ line-height: 1.85;
608
+ font-size: 13px;
609
+ overflow-wrap: anywhere;
610
+ min-width: 0;
611
+ }
612
+ .user .message-content {
613
+ background: var(--vscode-textCodeBlock-background);
614
+ border-radius: 8px;
615
+ padding: 14px 18px;
616
+ white-space: pre-wrap;
617
+ }
618
+ .message-content > :first-child {
619
+ margin-top: 0;
620
+ }
621
+ .message-content > :last-child {
622
+ margin-bottom: 0;
623
+ }
624
+ .message-content p {
625
+ margin: 8px 0 12px;
626
+ }
627
+ .message-content h1,
628
+ .message-content h2,
629
+ .message-content h3,
630
+ .message-content h4 {
631
+ font-size: 15px;
632
+ line-height: 1.5;
633
+ white-space: normal;
634
+ margin: 18px 0 8px;
635
+ font-weight: 600;
636
+ }
637
+ .message-content li {
638
+ padding-left: 2px;
639
+ margin: 4px 0;
640
+ }
641
+ .message-content ul,
642
+ .message-content ol {
643
+ padding-left: 22px;
644
+ margin: 10px 0;
645
+ }
646
+ .message-content li:has(> input[type=checkbox]),
647
+ .message-content li:has(> p > input[type=checkbox]) {
648
+ list-style: none;
649
+ }
650
+ .message-content input[type=checkbox] {
651
+ width: 14px;
652
+ height: 14px;
653
+ min-height: 14px;
654
+ padding: 0;
655
+ margin: 0 6px 0 -20px;
656
+ vertical-align: -2px;
657
+ accent-color: var(--vscode-button-background);
658
+ }
659
+ .message-content code {
660
+ font-family: var(--vscode-editor-font-family, monospace);
661
+ font-size: 12px;
662
+ background: var(--vscode-textCodeBlock-background);
663
+ padding: 2px 5px;
664
+ border-radius: 3px;
665
+ }
666
+ .code-block {
667
+ margin: 14px 0;
668
+ border: 1px solid var(--border);
669
+ border-radius: 6px;
670
+ overflow: hidden;
671
+ background: var(--vscode-textCodeBlock-background);
672
+ }
673
+ .code-toolbar {
674
+ display: flex;
675
+ align-items: center;
676
+ justify-content: space-between;
677
+ padding: 3px 8px 3px 12px;
678
+ min-height: 32px;
679
+ border-bottom: 1px solid var(--border);
680
+ font-size: 10px;
681
+ color: var(--muted);
682
+ }
683
+ .code-toolbar .icon-button {
684
+ width: 24px;
685
+ height: 24px;
686
+ }
687
+ .message-content pre {
688
+ overflow: auto;
689
+ max-width: 100%;
690
+ padding: 12px 14px;
691
+ margin: 0;
692
+ line-height: 1.65;
693
+ }
694
+ .message-content pre code {
695
+ padding: 0;
696
+ background: none;
697
+ }
698
+ .message-content blockquote {
699
+ border-left: 2px solid var(--vscode-textBlockQuote-border);
700
+ margin: 12px 0;
701
+ padding: 4px 14px;
702
+ background: var(--vscode-textBlockQuote-background);
703
+ color: var(--muted);
704
+ }
705
+ .message-content a {
706
+ color: var(--vscode-textLink-foreground);
707
+ text-decoration: none;
708
+ }
709
+ .message-content a:hover {
710
+ text-decoration: underline;
711
+ }
712
+ .message-content hr {
713
+ border: none;
714
+ border-top: 1px solid var(--border);
715
+ margin: 18px 0;
716
+ }
717
+ .message-content table {
718
+ display: block;
719
+ max-width: 100%;
720
+ overflow: auto;
721
+ border-collapse: collapse;
722
+ font-size: 12px;
723
+ margin: 12px 0;
724
+ }
725
+ .message-content th,
726
+ .message-content td {
727
+ border: 1px solid var(--border);
728
+ padding: 7px 12px;
729
+ text-align: left;
730
+ }
731
+ .message-content th {
732
+ background: var(--vscode-textCodeBlock-background);
733
+ }
734
+ .pending {
735
+ display: inline-flex;
736
+ gap: 8px;
737
+ align-items: center;
738
+ color: var(--muted);
739
+ font-size: 12px;
740
+ padding: 8px 0;
741
+ }
742
+ .output-detail {
743
+ margin: 12px 0 0;
744
+ color: var(--muted);
745
+ border-left: 2px solid var(--border);
746
+ padding-left: 10px;
747
+ }
748
+ .output-detail summary {
749
+ display: flex;
750
+ align-items: center;
751
+ gap: 6px;
752
+ cursor: pointer;
753
+ font-size: 12px;
754
+ padding: 4px 0;
755
+ list-style: none;
756
+ }
757
+ .output-detail[open] summary .codicon {
758
+ transform: rotate(90deg);
759
+ }
760
+ .output-detail pre {
761
+ white-space: pre-wrap;
762
+ overflow-wrap: anywhere;
763
+ font: 11px/1.6 var(--vscode-editor-font-family, monospace);
764
+ margin: 8px 0;
765
+ }
766
+ .plan-card {
767
+ border: 1px solid var(--border);
768
+ border-radius: 6px;
769
+ padding: 10px 14px;
770
+ color: inherit;
771
+ cursor: pointer;
772
+ }
773
+ .plan-card summary {
774
+ display: grid;
775
+ grid-template-columns: auto 1fr;
776
+ }
777
+ .plan-card .plan-preview {
778
+ grid-column: 1 / -1;
779
+ }
780
+ .message-output > .message-content + .message-content {
781
+ margin-top: 12px;
782
+ }
783
+ .activity-group {
784
+ margin: 16px 0;
785
+ min-width: 0;
786
+ color: var(--muted);
787
+ }
788
+ .activity-group-summary {
789
+ display: flex;
790
+ align-items: center;
791
+ gap: 8px;
792
+ min-height: 30px;
793
+ cursor: pointer;
794
+ list-style: none;
795
+ font-size: 12px;
796
+ }
797
+ .activity-group-summary > .codicon {
798
+ flex-shrink: 0;
799
+ font-size: 14px;
800
+ }
801
+ .activity-group-title {
802
+ min-width: 0;
803
+ overflow: hidden;
804
+ text-overflow: ellipsis;
805
+ white-space: nowrap;
806
+ }
807
+ .activity-group-summary > .codicon:last-child {
808
+ font-size: 12px;
809
+ }
810
+ .activity-group:not([open]) > summary > .codicon:last-child {
811
+ transform: rotate(-90deg);
812
+ }
813
+ .activity-group.single-activity > summary {
814
+ display: none;
815
+ }
816
+ .activity-list {
817
+ max-height: min(280px, 35vh);
818
+ overflow: auto;
819
+ overscroll-behavior-y: auto;
820
+ scrollbar-width: thin;
821
+ padding: 2px 8px 2px 0;
822
+ }
823
+ .agent-activity-item {
824
+ min-width: 0;
825
+ }
826
+ .agent-activity-item > summary {
827
+ display: flex;
828
+ align-items: center;
829
+ gap: 8px;
830
+ min-height: 30px;
831
+ padding: 4px 0;
832
+ cursor: pointer;
833
+ font-size: 12px;
834
+ list-style: none;
835
+ }
836
+ .activity-icon,
837
+ .activity-state,
838
+ .activity-chevron {
839
+ display: inline-flex;
840
+ align-items: center;
841
+ flex-shrink: 0;
842
+ width: 16px;
843
+ }
844
+ .activity-icon .codicon,
845
+ .activity-state .codicon {
846
+ font-size: 14px;
847
+ }
848
+ .activity-title {
849
+ min-width: 0;
850
+ overflow: hidden;
851
+ text-overflow: ellipsis;
852
+ white-space: nowrap;
853
+ }
854
+ .activity-title:has(.activity-file) {
855
+ display: flex;
856
+ align-items: center;
857
+ gap: 4px;
858
+ }
859
+ .activity-title > span {
860
+ flex-shrink: 0;
861
+ }
862
+ .activity-chevron {
863
+ opacity: 0;
864
+ }
865
+ .activity-chevron .codicon {
866
+ font-size: 12px;
867
+ }
868
+ .agent-activity-item[open] .activity-chevron {
869
+ opacity: 1;
870
+ transform: rotate(90deg);
871
+ }
872
+ .agent-activity-item > summary:hover .activity-chevron,
873
+ .agent-activity-item > summary:focus-within .activity-chevron {
874
+ opacity: 1;
875
+ }
876
+ .activity-state {
877
+ margin-left: auto;
878
+ }
879
+ .activity-state:empty {
880
+ display: none;
881
+ }
882
+ .agent-activity-item[data-state=running] .activity-state .codicon {
883
+ animation: spin 1.2s linear infinite;
884
+ }
885
+ .agent-activity-item[data-state=failed] > summary,
886
+ .activity-error {
887
+ color: var(--vscode-errorForeground);
888
+ }
889
+ .activity-file {
890
+ min-width: 0;
891
+ padding: 0;
892
+ border: 0;
893
+ border-radius: 0;
894
+ background: transparent;
895
+ color: inherit;
896
+ overflow: hidden;
897
+ text-overflow: ellipsis;
898
+ white-space: nowrap;
899
+ text-decoration: underline;
900
+ text-decoration-style: dotted;
901
+ text-underline-offset: 3px;
902
+ }
903
+ .activity-file:hover {
904
+ color: var(--vscode-textLink-foreground);
905
+ }
906
+ .activity-body {
907
+ max-height: 240px;
908
+ overflow: auto;
909
+ padding: 4px 0 10px 24px;
910
+ font-size: 12px;
911
+ scrollbar-width: thin;
912
+ }
913
+ .activity-section {
914
+ padding: 4px 0 8px;
915
+ }
916
+ .activity-section + .activity-section {
917
+ border-top: 1px solid var(--border);
918
+ }
919
+ .activity-section > header {
920
+ display: flex;
921
+ align-items: center;
922
+ justify-content: space-between;
923
+ gap: 8px;
924
+ min-height: 28px;
925
+ }
926
+ .activity-section pre {
927
+ margin: 0;
928
+ white-space: pre-wrap;
929
+ overflow-wrap: anywhere;
930
+ font: 11px/1.6 var(--vscode-editor-font-family, monospace);
931
+ color: var(--vscode-editor-foreground);
932
+ }
933
+ .activity-error pre {
934
+ color: var(--vscode-errorForeground);
935
+ }
936
+ .message-output > .pending {
937
+ display: flex;
938
+ min-width: 0;
939
+ max-width: 100%;
940
+ }
941
+ .message-output > .pending > span:last-child {
942
+ min-width: 0;
943
+ overflow: hidden;
944
+ text-overflow: ellipsis;
945
+ white-space: nowrap;
946
+ }
947
+ .timer-record .timer-duration {
948
+ margin-left: auto;
949
+ min-width: 48px;
950
+ text-align: right;
951
+ font-variant-numeric: tabular-nums;
952
+ }
953
+ .timer-details {
954
+ white-space: pre-line;
955
+ font-size: 12px;
956
+ line-height: 1.6;
957
+ }
958
+ .timer-record[open] summary .codicon {
959
+ transform: none;
960
+ }
961
+ .plain-output {
962
+ white-space: pre-wrap;
963
+ }
964
+ .preview-image {
965
+ cursor: zoom-in;
966
+ }
967
+ .image-preview {
968
+ display: block;
969
+ max-width: 100%;
970
+ max-height: calc(100vh - 148px);
971
+ margin: auto;
972
+ object-fit: contain;
973
+ }
974
+ .plan-preview {
975
+ margin: 6px 0 0;
976
+ font-size: 12px;
977
+ line-height: 1.6;
978
+ color: var(--muted);
979
+ white-space: pre-line;
980
+ overflow-wrap: anywhere;
981
+ pointer-events: none;
982
+ }
983
+ .output-detail audio,
984
+ .output-detail video {
985
+ max-width: 100%;
986
+ width: 100%;
987
+ margin: 12px 0;
988
+ }
989
+ .message-content img {
990
+ max-width: 100%;
991
+ height: auto;
992
+ border-radius: 6px;
993
+ }
994
+ .attachments {
995
+ display: flex;
996
+ flex-wrap: wrap;
997
+ gap: 8px;
998
+ margin: 12px 0;
999
+ }
1000
+ .attachment {
1001
+ display: flex;
1002
+ align-items: center;
1003
+ gap: 8px;
1004
+ max-width: min(260px, 100%);
1005
+ padding: 4px 8px 4px 4px;
1006
+ border: 1px solid var(--border);
1007
+ border-radius: 6px;
1008
+ background: var(--vscode-editor-background);
1009
+ }
1010
+ .attachment > span {
1011
+ min-width: 0;
1012
+ overflow: hidden;
1013
+ text-overflow: ellipsis;
1014
+ white-space: nowrap;
1015
+ font-size: 12px;
1016
+ }
1017
+ .attachment-preview {
1018
+ display: grid;
1019
+ place-items: center;
1020
+ width: 40px;
1021
+ height: 40px;
1022
+ flex-shrink: 0;
1023
+ border: 0;
1024
+ border-radius: 4px;
1025
+ background: var(--vscode-toolbar-hoverBackground);
1026
+ padding: 0;
1027
+ overflow: hidden;
1028
+ }
1029
+ .attachment-preview img {
1030
+ width: 100%;
1031
+ height: 100%;
1032
+ object-fit: cover;
1033
+ }
1034
+ #draft-attachments {
1035
+ padding: 0 16px;
1036
+ }
1037
+ .input-queue {
1038
+ max-height: 20vh;
1039
+ overflow: auto;
1040
+ margin-bottom: 8px;
1041
+ border-top: 1px solid var(--border);
1042
+ }
1043
+ .queue-heading,
1044
+ .queued-input,
1045
+ .editing-queue {
1046
+ display: flex;
1047
+ align-items: center;
1048
+ gap: 4px;
1049
+ min-height: 32px;
1050
+ }
1051
+ .queue-heading {
1052
+ justify-content: space-between;
1053
+ font-size: 11px;
1054
+ color: var(--muted);
1055
+ }
1056
+ .queued-input > span {
1057
+ flex: 1;
1058
+ min-width: 0;
1059
+ white-space: nowrap;
1060
+ overflow: hidden;
1061
+ text-overflow: ellipsis;
1062
+ }
1063
+ .editing-queue {
1064
+ justify-content: space-between;
1065
+ color: var(--muted);
1066
+ font-size: 11px;
1067
+ }
1068
+ .resource-cards {
1069
+ display: flex;
1070
+ flex-wrap: wrap;
1071
+ gap: 8px;
1072
+ margin-top: 12px;
1073
+ }
1074
+ .resource-card {
1075
+ display: block;
1076
+ width: 100%;
1077
+ min-width: 0;
1078
+ margin: 8px 0;
1079
+ border: 1px solid var(--border);
1080
+ border-radius: 6px;
1081
+ background: var(--vscode-editor-background);
1082
+ overflow: hidden;
1083
+ container-type: inline-size;
1084
+ }
1085
+ .resource-card-row {
1086
+ display: flex;
1087
+ align-items: center;
1088
+ gap: 4px;
1089
+ min-height: 44px;
1090
+ padding: 4px 8px;
1091
+ }
1092
+ .resource-target {
1093
+ display: flex;
1094
+ align-items: center;
1095
+ gap: 10px;
1096
+ flex: 1;
1097
+ min-width: 0;
1098
+ min-height: 36px;
1099
+ padding: 6px 4px;
1100
+ border: 0;
1101
+ background: transparent;
1102
+ text-align: left;
1103
+ }
1104
+ .resource-target > .codicon {
1105
+ flex: none;
1106
+ color: var(--muted);
1107
+ }
1108
+ .resource-title {
1109
+ min-width: 0;
1110
+ white-space: normal;
1111
+ overflow-wrap: anywhere;
1112
+ line-height: 1.5;
1113
+ }
1114
+ .resource-card-row > .icon-button {
1115
+ flex: none;
1116
+ width: 28px;
1117
+ height: 28px;
1118
+ }
1119
+ @container (max-width: 280px) {
1120
+ .resource-card-row {
1121
+ flex-wrap: wrap;
1122
+ }
1123
+ .resource-target {
1124
+ flex-basis: 100%;
1125
+ }
1126
+ }
1127
+ .resource-inline {
1128
+ height: 360px;
1129
+ max-height: 70vh;
1130
+ min-height: 160px;
1131
+ border-top: 1px solid var(--border);
1132
+ overflow: auto;
1133
+ }
1134
+ .resource-inline[role] {
1135
+ padding: 12px;
1136
+ color: var(--muted);
1137
+ }
1138
+ .resource-inline[role=alert] {
1139
+ color: var(--vscode-errorForeground);
1140
+ }
1141
+ .resource-inline iframe {
1142
+ display: block;
1143
+ width: 100%;
1144
+ height: 100%;
1145
+ border: 0;
1146
+ }
1147
+ .resource-call-details {
1148
+ padding: 8px 12px;
1149
+ border-top: 1px solid var(--border);
1150
+ max-height: 320px;
1151
+ overflow: auto;
1152
+ }
1153
+ .resource-call-details pre {
1154
+ margin: 0;
1155
+ font-size: 11px;
1156
+ white-space: pre-wrap;
1157
+ overflow-wrap: anywhere;
1158
+ }
1159
+ .input-prompt {
1160
+ margin: 16px 0;
1161
+ padding: 16px 0;
1162
+ border-top: 1px solid var(--border);
1163
+ border-bottom: 1px solid var(--border);
1164
+ }
1165
+ .input-prompt h2 {
1166
+ font-size: 14px;
1167
+ margin: 0 0 8px;
1168
+ }
1169
+ .input-prompt > header {
1170
+ display: flex;
1171
+ align-items: center;
1172
+ justify-content: space-between;
1173
+ gap: 8px;
1174
+ }
1175
+ .input-prompt pre {
1176
+ white-space: pre-wrap;
1177
+ overflow-wrap: anywhere;
1178
+ font: 12px/1.6 var(--vscode-editor-font-family);
1179
+ }
1180
+ .input-prompt details {
1181
+ margin: 8px 0;
1182
+ }
1183
+ .input-prompt summary {
1184
+ cursor: pointer;
1185
+ color: var(--muted);
1186
+ }
1187
+ .param-file-summary {
1188
+ color: var(--muted);
1189
+ font-size: 12px;
1190
+ overflow-wrap: anywhere;
1191
+ }
1192
+ .input-prompt p {
1193
+ line-height: 1.6;
1194
+ margin: 4px 0 12px;
1195
+ color: var(--muted);
1196
+ overflow-wrap: anywhere;
1197
+ }
1198
+ .input-prompt form,
1199
+ .prompt-field {
1200
+ display: grid;
1201
+ gap: 10px;
1202
+ }
1203
+ .prompt-field > label {
1204
+ font-weight: 500;
1205
+ }
1206
+ .prompt-choice {
1207
+ display: flex;
1208
+ align-items: flex-start;
1209
+ gap: 10px;
1210
+ min-height: 40px;
1211
+ padding: 10px 12px;
1212
+ border: 1px solid var(--border);
1213
+ border-radius: 4px;
1214
+ font-weight: 400 !important;
1215
+ cursor: pointer;
1216
+ }
1217
+ .prompt-choice:has(input:checked) {
1218
+ border-color: var(--vscode-focusBorder);
1219
+ background: var(--vscode-list-inactiveSelectionBackground);
1220
+ }
1221
+ .prompt-choice > span {
1222
+ display: grid;
1223
+ gap: 4px;
1224
+ }
1225
+ .prompt-choice small {
1226
+ color: var(--muted);
1227
+ font-weight: 400;
1228
+ }
1229
+ .input-prompt input:not([type=radio]):not([type=checkbox]),
1230
+ .input-prompt textarea {
1231
+ width: 100%;
1232
+ min-height: 40px;
1233
+ padding: 8px;
1234
+ color: inherit;
1235
+ background: var(--vscode-input-background);
1236
+ border: 1px solid var(--vscode-input-border, var(--border));
1237
+ border-radius: 4px;
1238
+ resize: vertical;
1239
+ }
1240
+ .prompt-navigation {
1241
+ display: flex;
1242
+ align-items: center;
1243
+ flex-wrap: wrap;
1244
+ gap: 8px;
1245
+ }
1246
+ .prompt-button {
1247
+ min-height: 36px;
1248
+ padding: 6px 12px;
1249
+ color: var(--vscode-button-secondaryForeground);
1250
+ background: var(--vscode-button-secondaryBackground);
1251
+ border: 1px solid var(--border);
1252
+ border-radius: 4px;
1253
+ }
1254
+ .plan-approve {
1255
+ width: 100%;
1256
+ text-align: left;
1257
+ }
1258
+ .resolved-inputs {
1259
+ margin: 16px 0;
1260
+ }
1261
+ .resolved-input {
1262
+ margin: 8px 0;
1263
+ padding: 12px;
1264
+ background: var(--vscode-textBlockQuote-background);
1265
+ border-radius: 6px;
1266
+ overflow-wrap: anywhere;
1267
+ }
1268
+ .resolved-input strong {
1269
+ font-size: 12px;
1270
+ font-weight: 500;
1271
+ }
1272
+ .resolved-input p {
1273
+ margin: 4px 0 12px;
1274
+ white-space: pre-wrap;
1275
+ }
1276
+ .conversation-dialog {
1277
+ width: min(640px, calc(100vw - 32px));
1278
+ max-height: calc(100vh - 40px);
1279
+ padding: 0;
1280
+ color: inherit;
1281
+ background: var(--vscode-editorWidget-background, var(--vscode-editor-background));
1282
+ border: 1px solid var(--border);
1283
+ border-radius: 8px;
1284
+ box-shadow: 0 8px 24px #0004;
1285
+ }
1286
+ .conversation-dialog::backdrop {
1287
+ background: #0005;
1288
+ }
1289
+ .conversation-dialog > header {
1290
+ display: flex;
1291
+ align-items: center;
1292
+ gap: 8px;
1293
+ padding: 10px 16px;
1294
+ border-bottom: 1px solid var(--border);
1295
+ }
1296
+ .conversation-dialog h2 {
1297
+ flex: 1;
1298
+ min-width: 0;
1299
+ margin: 0;
1300
+ font-size: 14px;
1301
+ }
1302
+ .dialog-body {
1303
+ max-height: calc(100vh - 108px);
1304
+ overflow: auto;
1305
+ padding: 16px;
1306
+ }
1307
+ .action-dialog {
1308
+ width: min(380px, calc(100vw - 32px));
1309
+ }
1310
+ .action-dialog label {
1311
+ display: grid;
1312
+ gap: 8px;
1313
+ }
1314
+ .action-dialog input {
1315
+ width: 100%;
1316
+ min-width: 0;
1317
+ padding: 8px;
1318
+ color: inherit;
1319
+ background: var(--vscode-input-background);
1320
+ border: 1px solid var(--border);
1321
+ border-radius: 4px;
1322
+ }
1323
+ .action-dialog .prompt-navigation {
1324
+ justify-content: flex-end;
1325
+ margin-top: 16px;
1326
+ }
1327
+ .action-dialog .danger {
1328
+ color: var(--vscode-errorForeground);
1329
+ }
1330
+ .permissions-table {
1331
+ width: 100%;
1332
+ border-collapse: collapse;
1333
+ text-align: left;
1334
+ }
1335
+ .permissions-table td,
1336
+ .permissions-table th {
1337
+ padding: 10px 8px;
1338
+ border-bottom: 1px solid var(--border);
1339
+ overflow-wrap: anywhere;
1340
+ }
1341
+ .permissions-table th {
1342
+ font-weight: 500;
1343
+ white-space: nowrap;
1344
+ }
1345
+ .permissions-table td:first-child {
1346
+ width: 65%;
1347
+ }
1348
+ .permissions-table td:not(:first-child) {
1349
+ text-align: center;
1350
+ }
1351
+ .usage-plan {
1352
+ padding: 12px 0;
1353
+ border-top: 1px solid var(--border);
1354
+ }
1355
+ .usage-plan h3 {
1356
+ margin: 0 0 12px;
1357
+ font-size: 13px;
1358
+ }
1359
+ .usage-plan > div {
1360
+ display: grid;
1361
+ gap: 6px;
1362
+ margin: 12px 0;
1363
+ font-size: 12px;
1364
+ }
1365
+ .usage-plan progress {
1366
+ width: 100%;
1367
+ height: 6px;
1368
+ accent-color: var(--vscode-progressBar-background);
1369
+ }
1370
+ .content-search {
1371
+ position: absolute;
1372
+ top: 4px;
1373
+ right: 16px;
1374
+ z-index: 5;
1375
+ display: flex;
1376
+ align-items: center;
1377
+ gap: 4px;
1378
+ padding: 4px;
1379
+ width: min(360px, calc(100% - 32px));
1380
+ background: var(--vscode-editorWidget-background);
1381
+ border: 1px solid var(--border);
1382
+ border-radius: 4px;
1383
+ box-shadow: 0 4px 16px #0003;
1384
+ }
1385
+ .content-search input {
1386
+ min-width: 0;
1387
+ width: 100%;
1388
+ padding: 6px;
1389
+ color: inherit;
1390
+ background: var(--vscode-input-background);
1391
+ border: 0;
1392
+ }
1393
+ .content-search > span {
1394
+ font-size: 11px;
1395
+ color: var(--muted);
1396
+ flex-shrink: 0;
1397
+ }
1398
+ .message-content mark,
1399
+ .resolved-inputs mark {
1400
+ color: inherit;
1401
+ background: var(--vscode-editor-findMatchHighlightBackground, #eab30855);
1402
+ }
1403
+ .message-content .current-match,
1404
+ .resolved-inputs .current-match {
1405
+ outline: 1px solid var(--vscode-editor-findMatchBorder, #eab308);
1406
+ }
1407
+ .message-error,
1408
+ .error {
1409
+ color: var(--vscode-errorForeground);
1410
+ white-space: pre-wrap;
1411
+ overflow-wrap: anywhere;
1412
+ font-size: 12px;
1413
+ line-height: 1.6;
1414
+ }
1415
+ .latest-button {
1416
+ position: absolute;
1417
+ right: 24px;
1418
+ bottom: 12px;
1419
+ width: 30px;
1420
+ height: 30px;
1421
+ border: 1px solid var(--border);
1422
+ background: var(--vscode-editor-background);
1423
+ box-shadow: 0 2px 6px #0002;
1424
+ }
1425
+ .composer-area {
1426
+ flex-shrink: 0;
1427
+ min-width: 0;
1428
+ padding: 8px 28px 14px;
1429
+ }
1430
+ .composer-area > * {
1431
+ width: 100%;
1432
+ max-width: 820px;
1433
+ margin-inline: auto;
1434
+ }
1435
+ .parameter-login {
1436
+ display: flex;
1437
+ align-items: center;
1438
+ gap: 6px;
1439
+ margin-bottom: 8px;
1440
+ padding: 6px 0;
1441
+ border: none;
1442
+ background: transparent;
1443
+ color: var(--vscode-textLink-foreground);
1444
+ font-size: 12px;
1445
+ }
1446
+ .composer {
1447
+ border: 1px solid var(--vscode-input-border, var(--border));
1448
+ border-radius: 24px;
1449
+ background: var(--vscode-input-background);
1450
+ overflow: hidden;
1451
+ box-shadow: 0 2px 8px #00000004;
1452
+ }
1453
+ .composer:focus-within {
1454
+ border-color: var(--vscode-focusBorder);
1455
+ }
1456
+ textarea {
1457
+ display: block;
1458
+ width: 100%;
1459
+ border: none;
1460
+ background: transparent;
1461
+ color: var(--vscode-input-foreground);
1462
+ padding: 17px 18px 6px;
1463
+ resize: none;
1464
+ min-height: 72px;
1465
+ max-height: 240px;
1466
+ line-height: 1.7;
1467
+ }
1468
+ textarea:focus-visible {
1469
+ outline: none;
1470
+ }
1471
+ textarea::placeholder {
1472
+ color: var(--vscode-input-placeholderForeground);
1473
+ }
1474
+ .composer-toolbar {
1475
+ min-height: 48px;
1476
+ display: flex;
1477
+ align-items: center;
1478
+ justify-content: space-between;
1479
+ gap: 8px;
1480
+ padding: 0 14px 12px;
1481
+ }
1482
+ .run-options,
1483
+ .composer-actions {
1484
+ min-width: 0;
1485
+ display: flex;
1486
+ gap: 10px;
1487
+ align-items: center;
1488
+ }
1489
+ .run-options {
1490
+ flex: 1;
1491
+ }
1492
+ .composer-actions {
1493
+ margin-left: auto;
1494
+ }
1495
+ .run-options select {
1496
+ max-width: 220px;
1497
+ font-size: 11px;
1498
+ }
1499
+ .composer-main-fields {
1500
+ display: grid;
1501
+ grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
1502
+ gap: 14px;
1503
+ max-height: 24vh;
1504
+ overflow: auto;
1505
+ padding: 16px 18px 8px;
1506
+ }
1507
+ .parameter-actions {
1508
+ display: flex;
1509
+ align-items: center;
1510
+ min-width: 0;
1511
+ gap: 4px;
1512
+ overflow-x: auto;
1513
+ scrollbar-width: thin;
1514
+ }
1515
+ .param-action {
1516
+ display: inline-flex;
1517
+ flex-shrink: 0;
1518
+ align-items: center;
1519
+ gap: 6px;
1520
+ max-width: 240px;
1521
+ height: 32px;
1522
+ padding: 0 7px;
1523
+ border: none;
1524
+ border-radius: 4px;
1525
+ background: transparent;
1526
+ color: var(--muted);
1527
+ font-size: 12px;
1528
+ }
1529
+ .param-action:hover:not(:disabled),
1530
+ .param-action[aria-expanded=true] {
1531
+ color: var(--vscode-editor-foreground);
1532
+ background: var(--vscode-toolbar-hoverBackground);
1533
+ }
1534
+ .param-action-label {
1535
+ min-width: 0;
1536
+ overflow: hidden;
1537
+ text-overflow: ellipsis;
1538
+ white-space: nowrap;
1539
+ }
1540
+ .param-action .codicon {
1541
+ flex-shrink: 0;
1542
+ font-size: 13px;
1543
+ }
1544
+ .param-action small {
1545
+ font-size: 10px;
1546
+ }
1547
+ .parameter-popover {
1548
+ position: fixed;
1549
+ z-index: 100;
1550
+ color: var(--vscode-editor-foreground);
1551
+ font-size: 12px;
1552
+ }
1553
+ .parameter-popover[data-kind=auxiliary],
1554
+ .quick-panel {
1555
+ border: 1px solid var(--border);
1556
+ border-radius: 8px;
1557
+ background: var(--vscode-editorWidget-background, var(--vscode-editor-background));
1558
+ box-shadow: 0 8px 24px #0003;
1559
+ overflow: auto;
1560
+ }
1561
+ .parameter-popover-heading {
1562
+ display: flex;
1563
+ align-items: center;
1564
+ justify-content: space-between;
1565
+ gap: 8px;
1566
+ min-height: 40px;
1567
+ padding: 6px 12px;
1568
+ border-bottom: 1px solid var(--border);
1569
+ font-weight: 500;
1570
+ overflow-wrap: anywhere;
1571
+ }
1572
+ .parameter-popover-heading strong {
1573
+ font-weight: 500;
1574
+ }
1575
+ .parameter-popover[data-kind=auxiliary] {
1576
+ display: flex;
1577
+ flex-direction: column;
1578
+ overflow: hidden;
1579
+ }
1580
+ .parameter-popover-heading {
1581
+ flex-shrink: 0;
1582
+ }
1583
+ .parameter-popover-fields {
1584
+ display: grid;
1585
+ gap: 18px;
1586
+ min-height: 0;
1587
+ overflow: auto;
1588
+ padding: 16px;
1589
+ }
1590
+ .parameter-popover[data-kind=quick] {
1591
+ display: grid;
1592
+ grid-template-columns: minmax(0, 1fr);
1593
+ gap: 8px;
1594
+ align-items: end;
1595
+ }
1596
+ .parameter-popover[data-kind=quick]:has(.quick-detail):not([data-compact=true]) {
1597
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
1598
+ }
1599
+ .parameter-popover[data-compact=true] .quick-menu:has(+ .quick-detail) {
1600
+ display: none;
1601
+ }
1602
+ .parameter-popover[data-detail-side=left]:not([data-compact=true]) .quick-detail {
1603
+ grid-column: 1;
1604
+ grid-row: 1;
1605
+ }
1606
+ .parameter-popover[data-detail-side=left]:not([data-compact=true]) .quick-menu {
1607
+ grid-column: 2;
1608
+ grid-row: 1;
1609
+ }
1610
+ .quick-panel {
1611
+ min-width: 0;
1612
+ max-height: inherit;
1613
+ }
1614
+ .quick-param-row,
1615
+ .quick-reset,
1616
+ .quick-detail-heading,
1617
+ .quick-option-row {
1618
+ display: flex;
1619
+ align-items: center;
1620
+ gap: 8px;
1621
+ width: 100%;
1622
+ min-width: 0;
1623
+ min-height: 38px;
1624
+ padding: 9px 12px;
1625
+ border: none;
1626
+ background: transparent;
1627
+ text-align: left;
1628
+ font-size: 12px;
1629
+ }
1630
+ .quick-param-row:hover:not(:disabled),
1631
+ .quick-reset:hover:not(:disabled),
1632
+ .quick-detail-heading:hover,
1633
+ .quick-option-row:hover:not(:disabled) {
1634
+ background: var(--vscode-list-hoverBackground);
1635
+ }
1636
+ .quick-param-row[aria-expanded=true] {
1637
+ background: var(--vscode-list-inactiveSelectionBackground);
1638
+ }
1639
+ .quick-param-row > span:first-child {
1640
+ overflow-wrap: anywhere;
1641
+ }
1642
+ .quick-param-value {
1643
+ margin-left: auto;
1644
+ color: var(--muted);
1645
+ overflow: hidden;
1646
+ white-space: nowrap;
1647
+ text-overflow: ellipsis;
1648
+ max-width: 60%;
1649
+ }
1650
+ .quick-param-row .codicon,
1651
+ .quick-reset .codicon {
1652
+ flex-shrink: 0;
1653
+ color: var(--muted);
1654
+ font-size: 13px;
1655
+ }
1656
+ .quick-reset {
1657
+ border-top: 1px solid var(--border);
1658
+ color: var(--muted);
1659
+ justify-content: space-between;
1660
+ }
1661
+ .quick-detail-heading {
1662
+ border-bottom: 1px solid var(--border);
1663
+ font-weight: 500;
1664
+ }
1665
+ .quick-detail {
1666
+ display: flex;
1667
+ flex-direction: column;
1668
+ }
1669
+ .quick-options-list {
1670
+ overflow: auto;
1671
+ min-height: 0;
1672
+ }
1673
+ .quick-option-check {
1674
+ display: inline-flex;
1675
+ flex-shrink: 0;
1676
+ width: 16px;
1677
+ }
1678
+ .quick-option-copy {
1679
+ min-width: 0;
1680
+ display: flex;
1681
+ flex-direction: column;
1682
+ gap: 4px;
1683
+ overflow-wrap: anywhere;
1684
+ }
1685
+ .quick-option-copy small {
1686
+ font-size: 12px;
1687
+ color: var(--muted);
1688
+ line-height: 1.5;
1689
+ }
1690
+ .send-button {
1691
+ width: 32px;
1692
+ height: 32px;
1693
+ display: flex;
1694
+ align-items: center;
1695
+ justify-content: center;
1696
+ border: none;
1697
+ border-radius: 50%;
1698
+ background: var(--muted, #888);
1699
+ color: var(--vscode-editor-background, #fff);
1700
+ flex-shrink: 0;
1701
+ }
1702
+ .send-button:hover:not(:disabled) {
1703
+ background: color-mix(in srgb, var(--vscode-editor-foreground) 80%, var(--vscode-editor-background));
1704
+ }
1705
+ .send-button.stop {
1706
+ background: var(--muted, #888);
1707
+ }
1708
+ .error {
1709
+ margin: 0 0 10px;
1710
+ }
1711
+ @keyframes spin {
1712
+ to {
1713
+ transform: rotate(360deg);
1714
+ }
1715
+ }
1716
+ @media (prefers-reduced-motion: reduce) {
1717
+ *,
1718
+ *::before {
1719
+ animation: none !important;
1720
+ transition: none !important;
1721
+ }
1722
+ }
1723
+ @media (max-width: 900px) {
1724
+ #app.menu-open {
1725
+ grid-template-columns: 248px minmax(0, 1fr);
1726
+ }
1727
+ .transcript {
1728
+ padding: 18px 22px 8px;
1729
+ }
1730
+ .composer-area {
1731
+ padding: 8px 22px 12px;
1732
+ }
1733
+ }
1734
+ @media (max-width: 680px) {
1735
+ #app.menu-open {
1736
+ grid-template-areas: "menu" "main";
1737
+ grid-template-columns: minmax(0, 1fr);
1738
+ grid-template-rows: auto minmax(0, 1fr);
1739
+ }
1740
+ .menu-open .toolbar {
1741
+ display: none;
1742
+ }
1743
+ .toolbar {
1744
+ padding: 8px 12px;
1745
+ gap: 6px;
1746
+ }
1747
+ .project-title {
1748
+ flex: 1;
1749
+ }
1750
+ .project-name {
1751
+ display: none;
1752
+ }
1753
+ .toolbar-actions {
1754
+ gap: 1px;
1755
+ }
1756
+ .project-menu {
1757
+ max-height: min(220px, 36vh);
1758
+ padding-bottom: 6px;
1759
+ border-right: none;
1760
+ border-bottom: 1px solid var(--border);
1761
+ background: var(--vscode-editor-background);
1762
+ }
1763
+ .menu-heading {
1764
+ min-height: 40px;
1765
+ padding: 6px 12px;
1766
+ font-size: 13px;
1767
+ }
1768
+ .project-menu .session {
1769
+ height: 34px;
1770
+ }
1771
+ .project-menu .all-history {
1772
+ padding: 6px 18px;
1773
+ }
1774
+ #hide-menu .codicon {
1775
+ transform: rotate(90deg);
1776
+ }
1777
+ .transcript {
1778
+ padding: 16px 18px 6px;
1779
+ }
1780
+ .composer-area {
1781
+ padding: 8px 18px 10px;
1782
+ }
1783
+ }
1784
+ @media (max-width: 420px) {
1785
+ .toolbar {
1786
+ padding: 8px;
1787
+ }
1788
+ .project-title {
1789
+ gap: 2px;
1790
+ }
1791
+ h1 {
1792
+ font-size: 13px;
1793
+ }
1794
+ .message {
1795
+ margin-bottom: 22px;
1796
+ }
1797
+ .user .message-body {
1798
+ max-width: 92%;
1799
+ }
1800
+ .transcript {
1801
+ padding: 14px 12px 6px;
1802
+ }
1803
+ .composer-area {
1804
+ padding: 8px 12px 10px;
1805
+ }
1806
+ .user .message-content {
1807
+ padding: 10px 12px;
1808
+ }
1809
+ .run-options select {
1810
+ max-width: 120px;
1811
+ }
1812
+ .param-action {
1813
+ max-width: 190px;
1814
+ }
1815
+ }
1816
+
1817
+ /* src/web/ui/resource-preview.css */
1818
+ html,
1819
+ body,
1820
+ #app {
1821
+ width: 100%;
1822
+ height: 100%;
1823
+ overflow: hidden;
1824
+ }
1825
+ #app.resource-preview-app {
1826
+ display: flex;
1827
+ flex-direction: column;
1828
+ }
1829
+ .resource-preview-toolbar {
1830
+ display: flex;
1831
+ align-items: center;
1832
+ gap: 8px;
1833
+ min-height: 48px;
1834
+ padding: 8px 12px;
1835
+ border-bottom: 1px solid var(--border);
1836
+ }
1837
+ .resource-preview-toolbar > div {
1838
+ min-width: 0;
1839
+ flex: 1;
1840
+ }
1841
+ .resource-preview-toolbar h1 {
1842
+ font-size: 13px;
1843
+ line-height: 1.5;
1844
+ margin: 0;
1845
+ overflow-wrap: anywhere;
1846
+ white-space: normal;
1847
+ }
1848
+ .resource-preview-toolbar span {
1849
+ font-size: 11px;
1850
+ color: var(--muted);
1851
+ overflow-wrap: anywhere;
1852
+ }
1853
+ .resource-preview-app main {
1854
+ position: relative;
1855
+ flex: 1;
1856
+ min-height: 0;
1857
+ display: flex;
1858
+ flex-direction: column;
1859
+ padding: 0;
1860
+ overflow: auto;
1861
+ }
1862
+ .resource-preview-content {
1863
+ flex: 1;
1864
+ min-height: 0;
1865
+ }
1866
+ .resource-preview-content > iframe {
1867
+ border: 0;
1868
+ width: 100%;
1869
+ height: 100%;
1870
+ min-height: 160px;
1871
+ display: block;
1872
+ background: var(--vscode-editor-background);
1873
+ }
1874
+ .resource-preview-content pre,
1875
+ .resource-preview-content article {
1876
+ padding: 16px;
1877
+ margin: 0;
1878
+ overflow-wrap: anywhere;
1879
+ white-space: pre-wrap;
1880
+ font-size: 13px;
1881
+ }
1882
+ .resource-preview-content article {
1883
+ white-space: normal;
1884
+ line-height: 1.6;
1885
+ }
1886
+ .resource-preview-content article img {
1887
+ max-width: 100%;
1888
+ }
1889
+ .resource-preview-content article table {
1890
+ display: block;
1891
+ overflow: auto;
1892
+ }
1893
+ .resource-preview-status {
1894
+ padding: 12px;
1895
+ color: var(--muted);
1896
+ }
1897
+ .resource-preview-status[role=alert] {
1898
+ color: var(--vscode-errorForeground);
1899
+ }
1900
+ .resource-preview-list {
1901
+ display: flex;
1902
+ flex-direction: column;
1903
+ padding: 8px;
1904
+ }
1905
+ .resource-preview-list button {
1906
+ min-height: 36px;
1907
+ padding: 8px;
1908
+ border: 0;
1909
+ border-bottom: 1px solid var(--border);
1910
+ text-align: left;
1911
+ overflow-wrap: anywhere;
1912
+ }
1913
+
1914
+ /* src/web/ui/account.css */
1915
+ .web-account {
1916
+ display: flex;
1917
+ align-items: center;
1918
+ gap: 10px;
1919
+ width: calc(100% - 16px);
1920
+ min-width: 0;
1921
+ flex-shrink: 0;
1922
+ margin: auto 8px 8px;
1923
+ padding: 10px;
1924
+ min-height: 44px;
1925
+ border: none;
1926
+ border-top: 1px solid var(--border);
1927
+ border-radius: 4px;
1928
+ background: transparent;
1929
+ text-align: left;
1930
+ }
1931
+ .web-account-name {
1932
+ min-width: 0;
1933
+ overflow: hidden;
1934
+ text-overflow: ellipsis;
1935
+ white-space: nowrap;
1936
+ }
1937
+ .web-account:hover {
1938
+ background: var(--vscode-toolbar-hoverBackground);
1939
+ }
1940
+ .web-avatar,
1941
+ .account-avatar {
1942
+ display: grid;
1943
+ place-items: center;
1944
+ width: 24px;
1945
+ height: 24px;
1946
+ flex-shrink: 0;
1947
+ position: relative;
1948
+ overflow: hidden;
1949
+ border-radius: 50%;
1950
+ background: var(--vscode-button-secondaryBackground);
1951
+ color: var(--vscode-button-secondaryForeground);
1952
+ }
1953
+ .web-avatar img,
1954
+ .account-avatar img {
1955
+ position: absolute;
1956
+ inset: 0;
1957
+ width: 100%;
1958
+ height: 100%;
1959
+ object-fit: cover;
1960
+ }
1961
+ .account-dialog {
1962
+ width: min(460px, calc(100vw - 32px));
1963
+ }
1964
+ .account-body {
1965
+ padding: 24px;
1966
+ font-size: 13px;
1967
+ line-height: 1.6;
1968
+ }
1969
+ .account-body #account-status {
1970
+ margin-bottom: 24px;
1971
+ color: var(--muted);
1972
+ }
1973
+ .account-body #account-status.connected {
1974
+ color: var(--vscode-testing-iconPassed, #16825d);
1975
+ }
1976
+ .account-body form {
1977
+ display: grid;
1978
+ gap: 8px;
1979
+ }
1980
+ .account-body form > label:not(:first-child) {
1981
+ margin-top: 12px;
1982
+ }
1983
+ .account-body input {
1984
+ width: 100%;
1985
+ height: 36px;
1986
+ padding: 6px 10px;
1987
+ }
1988
+ .account-password {
1989
+ position: relative;
1990
+ }
1991
+ .account-password input {
1992
+ padding-right: 40px;
1993
+ }
1994
+ .account-password .icon-button {
1995
+ position: absolute;
1996
+ right: 2px;
1997
+ top: 2px;
1998
+ width: 32px;
1999
+ height: 32px;
2000
+ }
2001
+ .account-actions {
2002
+ display: flex;
2003
+ flex-wrap: wrap;
2004
+ align-items: center;
2005
+ gap: 10px;
2006
+ margin-top: 16px;
2007
+ }
2008
+ .account-primary,
2009
+ .account-secondary {
2010
+ display: inline-flex;
2011
+ align-items: center;
2012
+ justify-content: center;
2013
+ gap: 8px;
2014
+ min-height: 34px;
2015
+ padding: 6px 12px;
2016
+ border: none;
2017
+ border-radius: 4px;
2018
+ }
2019
+ .account-primary {
2020
+ background: var(--vscode-button-background);
2021
+ color: var(--vscode-button-foreground);
2022
+ }
2023
+ .account-primary:hover:not(:disabled) {
2024
+ background: var(--vscode-button-hoverBackground, var(--vscode-button-background));
2025
+ }
2026
+ .account-secondary {
2027
+ background: var(--vscode-button-secondaryBackground);
2028
+ color: var(--vscode-button-secondaryForeground);
2029
+ }
2030
+ .account-secondary:hover:not(:disabled) {
2031
+ background: var(--vscode-button-secondaryHoverBackground, var(--vscode-toolbar-hoverBackground));
2032
+ }
2033
+ .account-identity {
2034
+ display: flex;
2035
+ align-items: center;
2036
+ gap: 16px;
2037
+ padding-bottom: 24px;
2038
+ border-bottom: 1px solid var(--border);
2039
+ }
2040
+ .account-identity > div {
2041
+ min-width: 0;
2042
+ }
2043
+ .account-avatar {
2044
+ width: 48px;
2045
+ height: 48px;
2046
+ }
2047
+ .account-avatar > .codicon {
2048
+ font-size: 28px;
2049
+ }
2050
+ .account-identity h3 {
2051
+ margin: 0;
2052
+ font-size: 15px;
2053
+ font-weight: 500;
2054
+ overflow-wrap: anywhere;
2055
+ }
2056
+ .account-muted {
2057
+ color: var(--muted);
2058
+ overflow-wrap: anywhere;
2059
+ }
2060
+ .account-body dl {
2061
+ display: grid;
2062
+ grid-template-columns: auto minmax(0, 1fr);
2063
+ gap: 12px 16px;
2064
+ margin: 24px 0;
2065
+ }
2066
+ .account-body dt {
2067
+ color: var(--muted);
2068
+ }
2069
+ .account-body dd {
2070
+ margin: 0;
2071
+ overflow-wrap: anywhere;
2072
+ }
2073
+ .account-body #account-error {
2074
+ margin-top: 18px;
2075
+ color: var(--vscode-errorForeground);
2076
+ overflow-wrap: anywhere;
2077
+ }
2078
+ @media (max-width: 680px) {
2079
+ .project-menu {
2080
+ position: relative;
2081
+ }
2082
+ .project-menu .menu-heading {
2083
+ padding-right: 52px;
2084
+ }
2085
+ .web-account {
2086
+ position: absolute;
2087
+ right: 10px;
2088
+ top: 6px;
2089
+ margin: 0;
2090
+ width: 28px;
2091
+ height: 28px;
2092
+ min-height: 28px;
2093
+ padding: 2px;
2094
+ border: 0;
2095
+ }
2096
+ .web-account-name {
2097
+ display: none;
2098
+ }
2099
+ }
2100
+ @media (max-width: 420px) {
2101
+ .account-body {
2102
+ padding: 18px;
2103
+ }
2104
+ }
2105
+
2106
+ /* src/web/ui/connection.css */
2107
+ .connection-banner {
2108
+ display: flex;
2109
+ align-items: center;
2110
+ gap: 10px;
2111
+ flex-shrink: 0;
2112
+ min-width: 0;
2113
+ padding: 12px 20px;
2114
+ border-bottom: 1px solid var(--border);
2115
+ background: var(--vscode-sideBar-background);
2116
+ color: var(--muted);
2117
+ font-size: 12px;
2118
+ line-height: 1.6;
2119
+ }
2120
+ .connection-icon {
2121
+ display: grid;
2122
+ place-items: center;
2123
+ width: 20px;
2124
+ height: 20px;
2125
+ flex-shrink: 0;
2126
+ }
2127
+ .connection-banner[data-status=connecting] .connection-icon .codicon,
2128
+ .connection-banner[data-status=reconnecting] .connection-icon .codicon {
2129
+ animation: spin 1.2s linear infinite;
2130
+ }
2131
+ .connection-copy {
2132
+ display: flex;
2133
+ flex: 1;
2134
+ flex-wrap: wrap;
2135
+ align-items: baseline;
2136
+ gap: 2px 10px;
2137
+ min-width: 0;
2138
+ overflow-wrap: anywhere;
2139
+ }
2140
+ .connection-copy strong {
2141
+ font-weight: 500;
2142
+ color: var(--vscode-editor-foreground);
2143
+ }
2144
+ .connection-retry {
2145
+ display: inline-flex;
2146
+ align-items: center;
2147
+ gap: 6px;
2148
+ flex-shrink: 0;
2149
+ min-height: 30px;
2150
+ padding: 4px 8px;
2151
+ border: none;
2152
+ border-radius: 4px;
2153
+ background: transparent;
2154
+ color: var(--vscode-editor-foreground);
2155
+ font-size: 12px;
2156
+ }
2157
+ .connection-retry:hover:not(:disabled) {
2158
+ background: var(--vscode-toolbar-hoverBackground);
2159
+ }
2160
+ @media (max-width: 680px) {
2161
+ .connection-banner {
2162
+ padding: 10px 12px;
2163
+ align-items: flex-start;
2164
+ }
2165
+ .connection-copy {
2166
+ flex-direction: column;
2167
+ align-items: flex-start;
2168
+ }
2169
+ .connection-retry {
2170
+ margin-top: -3px;
2171
+ }
2172
+ }