loadtoagent 1.3.3 → 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/main.js +53 -8
  2. package/package.json +5 -2
  3. package/renderer/app-agent-actions.js +172 -66
  4. package/renderer/app-bootstrap.js +3 -1
  5. package/renderer/app-dashboard.js +36 -7
  6. package/renderer/app-drawer-content.js +177 -59
  7. package/renderer/app-drawer-data.js +7 -3
  8. package/renderer/app-drawer.js +72 -33
  9. package/renderer/app-events-dialogs.js +8 -1
  10. package/renderer/app-events-navigation.js +7 -0
  11. package/renderer/app-events-sessions.js +136 -13
  12. package/renderer/app-graph-model.js +2 -5
  13. package/renderer/app-graph-orchestration.js +7 -18
  14. package/renderer/app-graph-view.js +194 -48
  15. package/renderer/app-management.js +330 -35
  16. package/renderer/app-quality.js +5 -0
  17. package/renderer/app-session-render.js +20 -83
  18. package/renderer/app.js +5 -1
  19. package/renderer/i18n-messages.js +232 -21
  20. package/renderer/index.html +9 -6
  21. package/renderer/styles-components.css +140 -0
  22. package/renderer/styles-control-room.css +1439 -0
  23. package/renderer/styles-management.css +390 -3
  24. package/renderer/styles-responsive-shell.css +5 -0
  25. package/renderer/styles-runtime-overview.css +20 -0
  26. package/renderer/terminal-agent.js +31 -7
  27. package/renderer/terminal.js +4 -1
  28. package/src/agentMonitor/claudeParser.js +8 -4
  29. package/src/agentMonitor/codexParser.js +5 -4
  30. package/src/agentMonitor/genericParser.js +7 -6
  31. package/src/agentMonitor.js +44 -4
  32. package/src/attentionNotifier.js +3 -0
  33. package/src/ipc/registerTerminalIpc.js +2 -2
  34. package/src/monitorWorker.js +1 -1
  35. package/src/nodePtyRuntime.js +58 -0
  36. package/src/processMonitor.js +68 -7
  37. package/src/terminalHost.js +104 -5
  38. package/src/terminalManager.js +21 -3
@@ -0,0 +1,1439 @@
1
+ /*
2
+ * Session control room
3
+ * --------------------
4
+ * The home screen keeps attention, live topology, and conversation entry in one scan path.
5
+ */
6
+
7
+ .operations-overview {
8
+ max-width: 1640px;
9
+ margin: 18px auto 0;
10
+ padding: 0;
11
+ border: 0;
12
+ background: transparent;
13
+ box-shadow: none;
14
+ }
15
+
16
+ .home-attention-strip {
17
+ min-height: 72px;
18
+ display: grid;
19
+ grid-template-columns: minmax(190px,240px) minmax(0,1fr) auto;
20
+ align-items: stretch;
21
+ overflow: hidden;
22
+ border: 1px solid rgba(118,139,165,.24);
23
+ border-radius: 15px;
24
+ background: linear-gradient(135deg,rgba(17,24,35,.98),rgba(9,14,22,.94));
25
+ box-shadow: 0 12px 34px rgba(0,0,0,.14),inset 0 1px rgba(255,255,255,.025);
26
+ }
27
+
28
+ .home-attention-title,
29
+ .home-attention-item,
30
+ .home-attention-more {
31
+ border: 0;
32
+ background: transparent;
33
+ color: inherit;
34
+ font: inherit;
35
+ cursor: pointer;
36
+ }
37
+
38
+ .home-attention-title {
39
+ min-width: 0;
40
+ display: grid;
41
+ grid-template-columns: 24px minmax(0,1fr) auto;
42
+ align-items: center;
43
+ gap: 10px;
44
+ padding: 14px 16px;
45
+ text-align: left;
46
+ }
47
+
48
+ .home-attention-title:hover,
49
+ .home-attention-item:hover,
50
+ .home-attention-more:hover {
51
+ background: rgba(255,255,255,.035);
52
+ }
53
+
54
+ .home-attention-signal {
55
+ width: 22px;
56
+ height: 22px;
57
+ display: grid;
58
+ place-items: center;
59
+ border-radius: 50%;
60
+ background: rgba(255,190,73,.1);
61
+ }
62
+
63
+ .home-attention-signal i {
64
+ color: #ffc866;
65
+ font-size: 13px;
66
+ font-style: normal;
67
+ font-weight: 900;
68
+ line-height: 1;
69
+ text-shadow: 0 0 12px rgba(255,193,91,.58);
70
+ }
71
+
72
+ .home-attention-strip.is-clear .home-attention-signal {
73
+ background: rgba(76,227,154,.1);
74
+ }
75
+
76
+ .home-attention-strip.is-clear .home-attention-signal i {
77
+ background: #57dfaa;
78
+ box-shadow: 0 0 10px rgba(87,223,170,.52);
79
+ }
80
+
81
+ .home-attention-title span:nth-child(2) {
82
+ min-width: 0;
83
+ }
84
+
85
+ .home-attention-title small,
86
+ .home-attention-title b {
87
+ display: block;
88
+ }
89
+
90
+ .home-attention-title small {
91
+ margin-bottom: 3px;
92
+ color: #738298;
93
+ font-size: 12px;
94
+ font-weight: 750;
95
+ letter-spacing: .08em;
96
+ }
97
+
98
+ .home-attention-title b {
99
+ overflow: hidden;
100
+ color: #e7edf4;
101
+ text-overflow: ellipsis;
102
+ white-space: nowrap;
103
+ font-size: 14px;
104
+ }
105
+
106
+ .home-attention-title strong {
107
+ min-width: 28px;
108
+ height: 28px;
109
+ display: grid;
110
+ place-items: center;
111
+ border-radius: 9px;
112
+ background: rgba(255,190,73,.1);
113
+ color: #ffc866;
114
+ font-size: 14px;
115
+ }
116
+
117
+ .home-attention-list {
118
+ min-width: 0;
119
+ display: grid;
120
+ grid-template-columns: repeat(3,minmax(0,1fr));
121
+ border-left: 1px solid rgba(118,139,165,.16);
122
+ }
123
+
124
+ .home-attention-item {
125
+ min-width: 0;
126
+ display: grid;
127
+ grid-template-columns: 8px minmax(0,1fr) auto 14px;
128
+ align-items: center;
129
+ gap: 9px;
130
+ padding: 11px 13px;
131
+ border-right: 1px solid rgba(118,139,165,.14);
132
+ text-align: left;
133
+ }
134
+
135
+ .home-attention-item:last-child {
136
+ border-right: 0;
137
+ }
138
+
139
+ .home-attention-item.attention {
140
+ background: linear-gradient(90deg,rgba(89,216,255,.025),transparent 62%);
141
+ }
142
+
143
+ .home-attention-item.critical {
144
+ background: linear-gradient(90deg,rgba(255,115,136,.035),transparent 62%);
145
+ }
146
+
147
+ .home-attention-dot {
148
+ width: 7px;
149
+ height: 7px;
150
+ border-radius: 50%;
151
+ background: #ffc15b;
152
+ box-shadow: 0 0 9px rgba(255,193,91,.45);
153
+ }
154
+
155
+ .home-attention-item.critical .home-attention-dot {
156
+ background: #ff7388;
157
+ box-shadow: 0 0 9px rgba(255,115,136,.52);
158
+ }
159
+
160
+ .home-attention-item > span:nth-child(2) {
161
+ min-width: 0;
162
+ }
163
+
164
+ .home-attention-item small,
165
+ .home-attention-item b,
166
+ .home-attention-item em {
167
+ display: block;
168
+ overflow: hidden;
169
+ text-overflow: ellipsis;
170
+ white-space: nowrap;
171
+ }
172
+
173
+ .home-attention-item small {
174
+ color: #78879a;
175
+ font-size: 12px;
176
+ }
177
+
178
+ .home-attention-item b {
179
+ margin-top: 2px;
180
+ color: #dfe7ef;
181
+ font-size: 12px;
182
+ }
183
+
184
+ .home-attention-item em {
185
+ margin-top: 2px;
186
+ color: #8d9bad;
187
+ font-size: 12px;
188
+ font-style: normal;
189
+ }
190
+
191
+ .home-attention-item time {
192
+ color: #68768a;
193
+ white-space: nowrap;
194
+ font-size: 12px;
195
+ }
196
+
197
+ .home-attention-item > i {
198
+ color: #8494a8;
199
+ font-style: normal;
200
+ }
201
+
202
+ .home-attention-strip > p {
203
+ align-self: center;
204
+ margin: 0;
205
+ padding: 0 16px;
206
+ color: #718096;
207
+ font-size: 12px;
208
+ }
209
+
210
+ .home-attention-more {
211
+ min-width: 116px;
212
+ padding: 0 15px;
213
+ border-left: 1px solid rgba(118,139,165,.16);
214
+ color: #9eacbd;
215
+ font-size: 12px;
216
+ font-weight: 700;
217
+ }
218
+
219
+ .home-attention-more.compact-only {
220
+ display: none;
221
+ }
222
+
223
+ .live-section {
224
+ margin-top: 16px;
225
+ padding: 20px;
226
+ background: radial-gradient(circle at 18% 0,rgba(76,227,154,.065),transparent 28%),linear-gradient(145deg,rgba(13,22,25,.98),rgba(8,13,20,.96) 48%);
227
+ }
228
+
229
+ .live-section-head {
230
+ margin-bottom: 10px;
231
+ }
232
+
233
+ .live-section-description {
234
+ max-width: 520px;
235
+ }
236
+
237
+ .agent-map-toolbar {
238
+ min-height: 32px;
239
+ margin-bottom: 10px;
240
+ }
241
+
242
+ .control-room-legend {
243
+ display: flex;
244
+ align-items: center;
245
+ gap: 12px;
246
+ color: #77869a;
247
+ font-size: 12px;
248
+ }
249
+
250
+ .control-room-legend > span {
251
+ display: inline-flex;
252
+ align-items: center;
253
+ gap: 5px;
254
+ }
255
+
256
+ .control-room-legend > span > i {
257
+ width: 7px;
258
+ height: 7px;
259
+ border-radius: 50%;
260
+ background: #536376;
261
+ }
262
+
263
+ .control-room-legend .spawn {
264
+ border: 1px solid #58d7ef;
265
+ background: transparent;
266
+ box-shadow: 0 0 0 3px rgba(88,215,239,.08);
267
+ }
268
+
269
+ .control-room-legend .running {
270
+ background: #54dfa8;
271
+ box-shadow: 0 0 8px rgba(84,223,168,.5);
272
+ }
273
+
274
+ .control-room-legend .done {
275
+ background: #607083;
276
+ }
277
+
278
+ .control-room-legend > b {
279
+ margin-left: 4px;
280
+ color: #9aa8b8;
281
+ font-weight: 650;
282
+ }
283
+
284
+ .control-room-overview {
285
+ display: grid;
286
+ gap: 13px;
287
+ }
288
+
289
+ .control-room-session {
290
+ --provider: #7ddcf2;
291
+ min-width: 0;
292
+ overflow: hidden;
293
+ border: 1px solid color-mix(in srgb,var(--provider) 22%,#263442);
294
+ border-radius: 16px;
295
+ background: linear-gradient(135deg,color-mix(in srgb,var(--provider) 3%,#0d141d),#080d14 58%);
296
+ box-shadow: 0 16px 38px rgba(0,0,0,.17),inset 0 1px rgba(255,255,255,.025);
297
+ }
298
+
299
+ .control-room-session > header {
300
+ min-height: 48px;
301
+ display: flex;
302
+ align-items: center;
303
+ justify-content: space-between;
304
+ gap: 14px;
305
+ padding: 9px 13px 9px 15px;
306
+ border-bottom: 1px solid rgba(111,135,157,.14);
307
+ }
308
+
309
+ .control-room-session > header > div {
310
+ flex: 1;
311
+ min-width: 0;
312
+ display: flex;
313
+ align-items: center;
314
+ gap: 10px;
315
+ }
316
+
317
+ .control-room-session > header > div > b {
318
+ overflow: hidden;
319
+ color: #d7e1e9;
320
+ text-overflow: ellipsis;
321
+ white-space: nowrap;
322
+ font-size: 12px;
323
+ }
324
+
325
+ .control-session-live {
326
+ display: inline-flex;
327
+ align-items: center;
328
+ gap: 6px;
329
+ color: #64dfad;
330
+ white-space: nowrap;
331
+ font-size: 12px;
332
+ font-weight: 750;
333
+ letter-spacing: .04em;
334
+ }
335
+
336
+ .control-session-live i {
337
+ width: 7px;
338
+ height: 7px;
339
+ border-radius: 50%;
340
+ background: #55dfa9;
341
+ box-shadow: 0 0 10px rgba(85,223,169,.55);
342
+ animation: control-room-pulse 1.8s ease-in-out infinite;
343
+ }
344
+
345
+ .control-room-session > header > button {
346
+ min-height: 30px;
347
+ padding: 0 9px;
348
+ border: 1px solid rgba(101,138,159,.25);
349
+ border-radius: 8px;
350
+ background: rgba(16,25,35,.72);
351
+ color: #8da1b2;
352
+ font: inherit;
353
+ font-size: 12px;
354
+ cursor: pointer;
355
+ }
356
+
357
+ .control-room-session > header > button:hover {
358
+ border-color: color-mix(in srgb,var(--provider) 46%,#3c4d5b);
359
+ color: #d8e4eb;
360
+ }
361
+
362
+ .session-order-actions {
363
+ display: inline-flex;
364
+ flex: 0 0 auto;
365
+ align-items: center;
366
+ gap: 3px;
367
+ margin-left: auto;
368
+ }
369
+
370
+ .session-order-actions button {
371
+ width: 26px;
372
+ height: 26px;
373
+ display: grid;
374
+ place-items: center;
375
+ padding: 0;
376
+ border: 1px solid rgba(101,138,159,.2);
377
+ border-radius: 7px;
378
+ background: rgba(13,21,30,.72);
379
+ color: #7f91a3;
380
+ font: inherit;
381
+ font-size: 12px;
382
+ cursor: pointer;
383
+ }
384
+
385
+ .session-order-actions button:hover,
386
+ .session-order-actions button:focus-visible {
387
+ border-color: color-mix(in srgb,var(--provider) 46%,#3c4d5b);
388
+ color: #dce8ef;
389
+ outline: none;
390
+ }
391
+
392
+ .control-room-flow {
393
+ min-width: 0;
394
+ display: grid;
395
+ grid-template-columns: minmax(230px,.82fr) 38px minmax(350px,1.35fr) 38px minmax(235px,.82fr);
396
+ align-items: center;
397
+ gap: 0;
398
+ padding: 14px;
399
+ background-image: radial-gradient(circle,rgba(82,120,139,.15) 1px,transparent 1px);
400
+ background-size: 18px 18px;
401
+ }
402
+
403
+ .control-room-column {
404
+ min-width: 0;
405
+ }
406
+
407
+ .control-column-label {
408
+ min-height: 24px;
409
+ display: flex;
410
+ align-items: center;
411
+ gap: 7px;
412
+ padding: 0 3px;
413
+ color: #718197;
414
+ font-size: 12px;
415
+ font-weight: 720;
416
+ letter-spacing: .05em;
417
+ }
418
+
419
+ .control-column-label b {
420
+ min-width: 20px;
421
+ height: 18px;
422
+ display: grid;
423
+ place-items: center;
424
+ border-radius: 6px;
425
+ background: rgba(88,215,239,.08);
426
+ color: #7ed9eb;
427
+ font-size: 12px;
428
+ }
429
+
430
+ .control-flow-link {
431
+ position: relative;
432
+ height: 2px;
433
+ margin: 24px 6px 0;
434
+ overflow: visible;
435
+ background: linear-gradient(90deg,rgba(92,220,237,.22),rgba(80,226,166,.62));
436
+ }
437
+
438
+ .control-flow-link:after {
439
+ content: "";
440
+ position: absolute;
441
+ right: -1px;
442
+ top: 50%;
443
+ width: 7px;
444
+ height: 7px;
445
+ border-top: 1px solid #5cdfad;
446
+ border-right: 1px solid #5cdfad;
447
+ transform: translateY(-50%) rotate(45deg);
448
+ }
449
+
450
+ .control-flow-link > i {
451
+ position: absolute;
452
+ top: -2px;
453
+ left: 0;
454
+ width: 6px;
455
+ height: 6px;
456
+ border-radius: 50%;
457
+ background: #67dfec;
458
+ box-shadow: 0 0 9px rgba(103,223,236,.58);
459
+ animation: control-room-travel 2.4s linear infinite;
460
+ }
461
+
462
+ .control-flow-link.complete {
463
+ opacity: .42;
464
+ filter: saturate(.62);
465
+ }
466
+
467
+ .control-room-main,
468
+ .control-room-node {
469
+ width: 100%;
470
+ min-width: 0;
471
+ border: 1px solid rgba(87,113,133,.3);
472
+ background: rgba(12,18,27,.94);
473
+ color: inherit;
474
+ font: inherit;
475
+ text-align: left;
476
+ cursor: pointer;
477
+ transition: transform 160ms ease,border-color 160ms ease,background-color 160ms ease,box-shadow 220ms ease;
478
+ }
479
+
480
+ .control-room-main:hover,
481
+ .control-room-node:hover {
482
+ transform: translateY(-1px);
483
+ border-color: color-mix(in srgb,var(--provider) 52%,#435767);
484
+ background: color-mix(in srgb,var(--provider) 5%,#111a24);
485
+ }
486
+
487
+ .control-room-main:focus-visible,
488
+ .control-room-node:focus-visible,
489
+ .home-attention-title:focus-visible,
490
+ .home-attention-item:focus-visible,
491
+ .home-attention-more:focus-visible {
492
+ outline: 2px solid #65dff1;
493
+ outline-offset: -2px;
494
+ }
495
+
496
+ .control-room-main {
497
+ display: grid;
498
+ gap: 10px;
499
+ padding: 14px;
500
+ border-color: color-mix(in srgb,var(--provider) 44%,#314351);
501
+ border-radius: 13px;
502
+ background: linear-gradient(150deg,color-mix(in srgb,var(--provider) 8%,#121b25),#0a1018 72%);
503
+ box-shadow: 0 12px 28px rgba(0,0,0,.22),inset 3px 0 color-mix(in srgb,var(--provider) 72%,#55dca9);
504
+ }
505
+
506
+ .control-main-top {
507
+ display: grid;
508
+ grid-template-columns: 34px minmax(0,1fr) auto;
509
+ align-items: center;
510
+ gap: 9px;
511
+ }
512
+
513
+ .control-main-top .provider-mark {
514
+ width: 34px;
515
+ height: 34px;
516
+ font-size: 12px;
517
+ }
518
+
519
+ .control-main-top > span:nth-child(2) {
520
+ min-width: 0;
521
+ }
522
+
523
+ .control-main-top small,
524
+ .control-main-top b {
525
+ display: block;
526
+ overflow: hidden;
527
+ text-overflow: ellipsis;
528
+ white-space: nowrap;
529
+ }
530
+
531
+ .control-main-top small {
532
+ color: #72d9e8;
533
+ font-size: 12px;
534
+ font-weight: 750;
535
+ }
536
+
537
+ .control-main-top b {
538
+ margin-top: 2px;
539
+ color: #93a4b5;
540
+ font-size: 12px;
541
+ }
542
+
543
+ .control-main-top em {
544
+ display: inline-flex;
545
+ align-items: center;
546
+ gap: 5px;
547
+ color: #65dfad;
548
+ white-space: nowrap;
549
+ font-size: 12px;
550
+ font-style: normal;
551
+ font-weight: 700;
552
+ }
553
+
554
+ .control-main-top em i,
555
+ .control-node-state i {
556
+ width: 6px;
557
+ height: 6px;
558
+ border-radius: 50%;
559
+ background: currentColor;
560
+ box-shadow: 0 0 8px currentColor;
561
+ }
562
+
563
+ .control-room-main > strong {
564
+ overflow: hidden;
565
+ color: #edf3f7;
566
+ text-overflow: ellipsis;
567
+ white-space: nowrap;
568
+ font-size: 15px;
569
+ letter-spacing: -.02em;
570
+ }
571
+
572
+ .control-main-now {
573
+ min-width: 0;
574
+ padding: 9px 10px;
575
+ border: 1px solid rgba(76,227,154,.14);
576
+ border-radius: 9px;
577
+ background: rgba(76,227,154,.045);
578
+ }
579
+
580
+ .control-main-now small,
581
+ .control-main-now b {
582
+ display: block;
583
+ overflow: hidden;
584
+ text-overflow: ellipsis;
585
+ white-space: nowrap;
586
+ }
587
+
588
+ .control-main-now small {
589
+ margin-bottom: 3px;
590
+ color: #5ddda9;
591
+ font-size: 12px;
592
+ font-weight: 750;
593
+ }
594
+
595
+ .control-main-now b {
596
+ color: #b8c5cf;
597
+ font-size: 12px;
598
+ }
599
+
600
+ .control-main-meta {
601
+ display: flex;
602
+ align-items: center;
603
+ justify-content: space-between;
604
+ gap: 8px;
605
+ color: #718194;
606
+ font-size: 12px;
607
+ }
608
+
609
+ .control-main-meta b {
610
+ color: #7bd8e9;
611
+ font-size: 12px;
612
+ }
613
+
614
+ .control-room-node-list {
615
+ display: grid;
616
+ grid-template-columns: repeat(2,minmax(0,1fr));
617
+ gap: 8px;
618
+ }
619
+
620
+ .control-room-node {
621
+ --provider: #7ddcf2;
622
+ position: relative;
623
+ min-height: 70px;
624
+ display: grid;
625
+ grid-template-columns: 32px minmax(0,1fr) auto;
626
+ align-items: center;
627
+ gap: 9px;
628
+ padding: 10px;
629
+ border-radius: 11px;
630
+ }
631
+
632
+ .control-node-icon {
633
+ width: 32px;
634
+ height: 32px;
635
+ display: grid;
636
+ place-items: center;
637
+ border: 1px solid color-mix(in srgb,var(--provider) 28%,#354555);
638
+ border-radius: 8px;
639
+ background: color-mix(in srgb,var(--provider) 9%,#17212c);
640
+ color: var(--provider);
641
+ font-size: 12px;
642
+ font-weight: 800;
643
+ }
644
+
645
+ .control-node-copy {
646
+ min-width: 0;
647
+ }
648
+
649
+ .control-node-copy small,
650
+ .control-node-copy b,
651
+ .control-node-copy em {
652
+ display: block;
653
+ overflow: hidden;
654
+ text-overflow: ellipsis;
655
+ white-space: nowrap;
656
+ }
657
+
658
+ .control-node-copy small {
659
+ color: #76869a;
660
+ font-size: 12px;
661
+ font-style: normal;
662
+ }
663
+
664
+ .control-node-copy b {
665
+ margin-top: 3px;
666
+ color: #d6e0e8;
667
+ font-size: 13px;
668
+ line-height: 1.35;
669
+ }
670
+
671
+ .control-node-copy em {
672
+ margin-top: 3px;
673
+ color: #78889b;
674
+ font-size: 12px;
675
+ font-style: normal;
676
+ }
677
+
678
+ .control-node-state {
679
+ align-self: start;
680
+ display: inline-flex;
681
+ align-items: center;
682
+ gap: 5px;
683
+ color: #58dda8;
684
+ white-space: nowrap;
685
+ font-size: 12px;
686
+ }
687
+
688
+ .control-room-node.is-spawning {
689
+ border-color: rgba(89,216,255,.42);
690
+ animation: control-room-spawn 1.35s ease-in-out infinite;
691
+ }
692
+
693
+ .control-room-node.is-working,
694
+ .control-room-node.is-running,
695
+ .control-room-node.direct-work {
696
+ border-color: rgba(76,227,154,.3);
697
+ box-shadow: 0 0 0 1px rgba(76,227,154,.035),0 9px 22px rgba(0,0,0,.18);
698
+ }
699
+
700
+ .control-room-node.is-complete,
701
+ .completed-list .control-room-node {
702
+ min-height: 58px;
703
+ opacity: .68;
704
+ filter: saturate(.6);
705
+ box-shadow: none;
706
+ }
707
+
708
+ .control-room-node.overflow-node {
709
+ border-style: dashed;
710
+ border-color: rgba(89,216,255,.25);
711
+ background: rgba(89,216,255,.035);
712
+ }
713
+
714
+ .control-room-node.overflow-node .control-node-icon {
715
+ color: #72dced;
716
+ font-size: 12px;
717
+ }
718
+
719
+ .completed-list {
720
+ grid-template-columns: 1fr;
721
+ gap: 6px;
722
+ }
723
+
724
+ .completed-list .control-room-node {
725
+ grid-template-columns: 27px minmax(0,1fr) auto;
726
+ padding: 8px;
727
+ }
728
+
729
+ .completed-list .control-node-icon {
730
+ width: 27px;
731
+ height: 27px;
732
+ }
733
+
734
+ .completed-list .control-node-copy em {
735
+ display: none;
736
+ }
737
+
738
+ .completed-list .control-node-state {
739
+ color: #8291a3;
740
+ }
741
+
742
+ .control-room-running-empty,
743
+ .control-room-complete-empty {
744
+ min-height: 58px;
745
+ display: flex;
746
+ align-items: center;
747
+ justify-content: center;
748
+ gap: 8px;
749
+ padding: 10px;
750
+ border: 1px dashed rgba(98,119,140,.2);
751
+ border-radius: 10px;
752
+ color: #5f6e81;
753
+ text-align: center;
754
+ }
755
+
756
+ .control-room-running-empty span,
757
+ .control-room-complete-empty span {
758
+ width: 23px;
759
+ height: 23px;
760
+ display: grid;
761
+ place-items: center;
762
+ border: 1px solid rgba(98,119,140,.26);
763
+ border-radius: 50%;
764
+ }
765
+
766
+ .control-room-running-empty small,
767
+ .control-room-complete-empty small {
768
+ font-size: 12px;
769
+ }
770
+
771
+ .sessions-section {
772
+ margin-top: 18px;
773
+ }
774
+
775
+ .session-grid {
776
+ grid-template-columns: repeat(3,minmax(0,1fr));
777
+ }
778
+
779
+ .session-card.session-record {
780
+ min-height: 0;
781
+ padding: 0;
782
+ border-color: rgba(91,111,132,.2);
783
+ background: rgba(10,15,23,.7);
784
+ box-shadow: none;
785
+ }
786
+
787
+ .session-card.session-record .card-title {
788
+ margin: 13px 0 7px;
789
+ font-size: 14px;
790
+ }
791
+
792
+ .session-card.session-record .card-subtitle {
793
+ min-height: 20px;
794
+ }
795
+
796
+ .session-card.session-record .now-strip {
797
+ margin-top: 11px;
798
+ min-height: 58px;
799
+ }
800
+
801
+ .session-card.session-record .card-footer {
802
+ margin-top: 12px;
803
+ border-top-color: rgba(83,102,122,.16);
804
+ }
805
+
806
+ .session-card.session-record .card-footer strong {
807
+ display: inline-flex;
808
+ align-items: center;
809
+ gap: 5px;
810
+ color: #82d8e8;
811
+ font-size: 12px;
812
+ }
813
+
814
+ .session-card.session-record .card-footer strong i {
815
+ font-style: normal;
816
+ }
817
+
818
+ .session-card.session-record .card-footer .session-order-actions {
819
+ margin-right: 2px;
820
+ }
821
+
822
+ .drawer-backdrop {
823
+ background: rgba(2,4,8,.3);
824
+ backdrop-filter: blur(1px);
825
+ }
826
+
827
+ .detail-drawer {
828
+ width: min(640px,92vw);
829
+ }
830
+
831
+ .drawer-content {
832
+ padding-bottom: 20px;
833
+ }
834
+
835
+ .drawer-composer {
836
+ flex: 0 0 auto;
837
+ padding: 12px 18px 16px;
838
+ border-top: 1px solid #263242;
839
+ background: linear-gradient(180deg,rgba(12,18,27,.96),#090e16);
840
+ box-shadow: 0 -16px 32px rgba(4,7,12,.24);
841
+ }
842
+
843
+ .drawer-composer .agent-command-panel {
844
+ padding: 11px;
845
+ gap: 8px;
846
+ border-radius: 12px;
847
+ }
848
+
849
+ .drawer-composer .agent-command-panel > header {
850
+ grid-template-columns: 30px minmax(0,1fr) 8px;
851
+ }
852
+
853
+ .drawer-composer .agent-command-icon {
854
+ width: 30px;
855
+ height: 30px;
856
+ }
857
+
858
+ .drawer-composer .agent-command-panel > header b {
859
+ font-size: 12px;
860
+ }
861
+
862
+ .drawer-composer .agent-command-panel > header small {
863
+ margin-top: 2px;
864
+ font-size: 12px;
865
+ }
866
+
867
+ .drawer-composer textarea {
868
+ min-height: 48px;
869
+ max-height: 110px;
870
+ }
871
+
872
+ .drawer-composer .agent-command-actions button {
873
+ min-width: 96px;
874
+ white-space: nowrap;
875
+ }
876
+
877
+ .agent-command-route {
878
+ display: grid;
879
+ grid-template-columns: auto minmax(0,1fr);
880
+ align-items: center;
881
+ gap: 7px 10px;
882
+ }
883
+
884
+ .agent-command-route > span {
885
+ color: #8594a6;
886
+ font-size: 12px;
887
+ font-weight: 700;
888
+ }
889
+
890
+ .agent-command-route > div {
891
+ min-width: 0;
892
+ display: grid;
893
+ grid-template-columns: repeat(2,minmax(0,1fr));
894
+ overflow: hidden;
895
+ border: 1px solid #314050;
896
+ border-radius: 9px;
897
+ background: rgba(5,10,16,.66);
898
+ }
899
+
900
+ .agent-command-route button {
901
+ min-height: 32px;
902
+ padding: 0 10px;
903
+ border: 0;
904
+ border-right: 1px solid #314050;
905
+ background: transparent;
906
+ color: #8796a8;
907
+ font: inherit;
908
+ font-size: 12px;
909
+ font-weight: 700;
910
+ cursor: pointer;
911
+ }
912
+
913
+ .agent-command-route button:last-child {
914
+ border-right: 0;
915
+ }
916
+
917
+ .agent-command-route button[aria-pressed="true"] {
918
+ background: rgba(77,213,237,.12);
919
+ color: #77deef;
920
+ box-shadow: inset 0 0 0 1px rgba(77,213,237,.34);
921
+ }
922
+
923
+ .agent-command-route button:disabled {
924
+ opacity: .34;
925
+ cursor: not-allowed;
926
+ }
927
+
928
+ .agent-command-route > small {
929
+ grid-column: 2;
930
+ color: #708094;
931
+ font-size: 12px;
932
+ }
933
+
934
+ .agent-command-route > small.available:before {
935
+ content: "";
936
+ width: 5px;
937
+ height: 5px;
938
+ display: inline-block;
939
+ margin-right: 5px;
940
+ border-radius: 50%;
941
+ background: #53dda7;
942
+ box-shadow: 0 0 7px rgba(83,221,167,.5);
943
+ }
944
+
945
+ .subagent-assignment-card {
946
+ display: grid;
947
+ grid-template-columns: 34px minmax(0,1fr);
948
+ gap: 10px;
949
+ margin-bottom: 14px;
950
+ padding: 13px;
951
+ border: 1px solid rgba(89,216,255,.2);
952
+ border-radius: 12px;
953
+ background: linear-gradient(135deg,rgba(89,216,255,.07),rgba(13,20,29,.78));
954
+ }
955
+
956
+ .subagent-assignment-card > span {
957
+ width: 34px;
958
+ height: 34px;
959
+ display: grid;
960
+ place-items: center;
961
+ border: 1px solid rgba(89,216,255,.25);
962
+ border-radius: 9px;
963
+ color: #72dced;
964
+ font-size: 16px;
965
+ }
966
+
967
+ .subagent-assignment-card b {
968
+ display: block;
969
+ color: #79deee;
970
+ font-size: 12px;
971
+ letter-spacing: .04em;
972
+ }
973
+
974
+ .subagent-assignment-card small {
975
+ display: block;
976
+ margin-top: 4px;
977
+ overflow: hidden;
978
+ color: #8596a7;
979
+ font-size: 12px;
980
+ text-overflow: ellipsis;
981
+ white-space: nowrap;
982
+ }
983
+
984
+ .subagent-assignment-card p {
985
+ margin: 6px 0 0;
986
+ color: #d7e1e9;
987
+ line-height: 1.55;
988
+ font-size: 12px;
989
+ }
990
+
991
+ .subagent-work-source {
992
+ margin-bottom: 12px;
993
+ padding: 0 2px;
994
+ border: 0;
995
+ background: transparent;
996
+ }
997
+
998
+ .subagent-work-source + .chat-history-head {
999
+ top: -18px;
1000
+ margin: 0 -2px 16px;
1001
+ padding-top: 10px;
1002
+ }
1003
+
1004
+ .execution-drawer {
1005
+ display: grid;
1006
+ gap: 13px;
1007
+ }
1008
+
1009
+ .execution-purpose-card,
1010
+ .execution-process-card,
1011
+ .execution-code-card,
1012
+ .execution-timeline {
1013
+ min-width: 0;
1014
+ border: 1px solid #263947;
1015
+ border-radius: 13px;
1016
+ background: rgba(8,15,23,.82);
1017
+ overflow: hidden;
1018
+ }
1019
+
1020
+ .execution-purpose-card {
1021
+ display: grid;
1022
+ grid-template-columns: 42px minmax(0,1fr);
1023
+ gap: 12px;
1024
+ padding: 15px;
1025
+ border-color: rgba(89,216,255,.24);
1026
+ background: linear-gradient(135deg,rgba(89,216,255,.08),rgba(8,15,23,.86));
1027
+ }
1028
+
1029
+ .execution-purpose-icon {
1030
+ width: 42px;
1031
+ height: 42px;
1032
+ display: grid;
1033
+ place-items: center;
1034
+ border: 1px solid rgba(89,216,255,.28);
1035
+ border-radius: 10px;
1036
+ color: #73deef;
1037
+ font: 700 14px/1 ui-monospace,SFMono-Regular,Consolas,monospace;
1038
+ }
1039
+
1040
+ .execution-purpose-card small,
1041
+ .execution-code-card small,
1042
+ .execution-process-card header small {
1043
+ display: block;
1044
+ color: #7f91a3;
1045
+ font-size: 11px;
1046
+ }
1047
+
1048
+ .execution-purpose-card b {
1049
+ display: block;
1050
+ margin-top: 3px;
1051
+ color: #e1e9ef;
1052
+ font-size: 15px;
1053
+ line-height: 1.4;
1054
+ }
1055
+
1056
+ .execution-purpose-card p {
1057
+ margin: 7px 0 0;
1058
+ color: #93a5b5;
1059
+ font-size: 12px;
1060
+ line-height: 1.5;
1061
+ }
1062
+
1063
+ .execution-process-card > header,
1064
+ .execution-code-card > header {
1065
+ display: flex;
1066
+ align-items: center;
1067
+ justify-content: space-between;
1068
+ gap: 12px;
1069
+ padding: 12px 14px;
1070
+ border-bottom: 1px solid #22333f;
1071
+ }
1072
+
1073
+ .execution-process-card header b,
1074
+ .execution-code-card header b {
1075
+ display: block;
1076
+ margin-top: 3px;
1077
+ color: #dbe6ed;
1078
+ font-size: 13px;
1079
+ }
1080
+
1081
+ .execution-process-card header em {
1082
+ display: inline-flex;
1083
+ align-items: center;
1084
+ gap: 6px;
1085
+ max-width: 55%;
1086
+ color: #9aabba;
1087
+ font-size: 11px;
1088
+ font-style: normal;
1089
+ text-align: right;
1090
+ }
1091
+
1092
+ .execution-process-card header em i {
1093
+ width: 6px;
1094
+ height: 6px;
1095
+ flex: 0 0 auto;
1096
+ border-radius: 50%;
1097
+ background: #6e8293;
1098
+ }
1099
+
1100
+ .execution-process-card header em.is-running { color: #82dfba; }
1101
+ .execution-process-card header em.is-running i { background: #54dca2; box-shadow: 0 0 8px rgba(84,220,162,.65); }
1102
+
1103
+ .execution-process-card dl {
1104
+ display: grid;
1105
+ grid-template-columns: repeat(2,minmax(0,1fr));
1106
+ gap: 1px;
1107
+ margin: 0;
1108
+ background: #22333f;
1109
+ }
1110
+
1111
+ .execution-process-card dl div { min-width: 0; padding: 11px 13px; background: #0b141d; }
1112
+ .execution-process-card dl div:last-child:nth-child(odd) { grid-column: 1 / -1; }
1113
+ .execution-process-card dt { color: #778b9c; font-size: 11px; }
1114
+ .execution-process-card dd { margin: 4px 0 0; color: #c9d5dd; font-size: 12px; overflow-wrap: anywhere; }
1115
+
1116
+ .execution-code-card > header button {
1117
+ min-height: 34px;
1118
+ padding: 0 11px;
1119
+ border: 1px solid #355264;
1120
+ border-radius: 8px;
1121
+ background: #11232e;
1122
+ color: #8ed9e7;
1123
+ font-size: 11px;
1124
+ cursor: pointer;
1125
+ }
1126
+
1127
+ .execution-code-card pre,
1128
+ .execution-code-card > p {
1129
+ max-height: 300px;
1130
+ margin: 0;
1131
+ padding: 14px;
1132
+ overflow: auto;
1133
+ background: #070e15;
1134
+ color: #cad7df;
1135
+ font: 12px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;
1136
+ white-space: pre-wrap;
1137
+ overflow-wrap: anywhere;
1138
+ }
1139
+
1140
+ .execution-code-card > p { color: #8295a5; font-family: inherit; }
1141
+ .execution-code-card.output-card pre { color: #b9dbc9; }
1142
+
1143
+ .execution-timeline { padding: 7px 14px; }
1144
+ .execution-timeline > div { display: grid; grid-template-columns: 9px minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 48px; border-bottom: 1px solid #1f2e39; }
1145
+ .execution-timeline > div:last-child { border-bottom: 0; }
1146
+ .execution-timeline > div > i { width: 7px; height: 7px; border-radius: 50%; background: #5bcfe3; box-shadow: 0 0 0 4px rgba(91,207,227,.08); }
1147
+ .execution-timeline span b { display: block; color: #c7d4dd; font-size: 12px; }
1148
+ .execution-timeline time { display: block; margin-top: 3px; color: #768a9b; font-size: 11px; }
1149
+ .execution-timeline em { color: #6ddcaf; font-size: 11px; font-style: normal; }
1150
+
1151
+ @media (max-width:540px) {
1152
+ .execution-process-card dl { grid-template-columns: 1fr; }
1153
+ .execution-process-card dl div:last-child:nth-child(odd) { grid-column: auto; }
1154
+ .execution-process-card > header { align-items: flex-start; }
1155
+ }
1156
+
1157
+ @keyframes control-room-pulse {
1158
+ 50% { opacity: .42; transform: scale(.78); }
1159
+ }
1160
+
1161
+ @keyframes control-room-travel {
1162
+ from { left: 0; opacity: 0; }
1163
+ 15% { opacity: 1; }
1164
+ 85% { opacity: 1; }
1165
+ to { left: calc(100% - 5px); opacity: 0; }
1166
+ }
1167
+
1168
+ @keyframes control-room-spawn {
1169
+ 0%,100% { box-shadow: 0 0 0 0 rgba(89,216,255,0); }
1170
+ 50% { box-shadow: 0 0 0 5px rgba(89,216,255,.07),0 0 22px rgba(89,216,255,.08); }
1171
+ }
1172
+
1173
+ @media (max-width:1450px) {
1174
+ .home-attention-list {
1175
+ grid-template-columns: repeat(2,minmax(0,1fr));
1176
+ }
1177
+
1178
+ .home-attention-item:nth-child(n+3) {
1179
+ display: none;
1180
+ }
1181
+
1182
+ .control-room-flow {
1183
+ grid-template-columns: minmax(220px,.8fr) 34px minmax(330px,1.2fr);
1184
+ }
1185
+
1186
+ .control-flow-link.complete {
1187
+ display: none;
1188
+ }
1189
+
1190
+ .completed-column {
1191
+ grid-column: 1/-1;
1192
+ margin-top: 10px;
1193
+ padding-top: 10px;
1194
+ border-top: 1px solid rgba(91,112,132,.16);
1195
+ }
1196
+
1197
+ .completed-list {
1198
+ grid-template-columns: repeat(3,minmax(0,1fr));
1199
+ }
1200
+ }
1201
+
1202
+ @media (max-width:1120px) {
1203
+ .home-attention-strip {
1204
+ grid-template-columns: 210px minmax(0,1fr);
1205
+ }
1206
+
1207
+ .home-attention-list {
1208
+ grid-template-columns: 1fr;
1209
+ }
1210
+
1211
+ .home-attention-item:nth-child(n+2) {
1212
+ display: none;
1213
+ }
1214
+
1215
+ .home-attention-more,
1216
+ .home-attention-more.compact-only {
1217
+ display: none;
1218
+ }
1219
+
1220
+ .control-room-flow {
1221
+ grid-template-columns: 1fr;
1222
+ gap: 10px;
1223
+ }
1224
+
1225
+ .control-flow-link {
1226
+ display: none;
1227
+ }
1228
+
1229
+ .completed-column {
1230
+ grid-column: auto;
1231
+ }
1232
+
1233
+ .control-room-node-list,
1234
+ .completed-list {
1235
+ grid-template-columns: repeat(2,minmax(0,1fr));
1236
+ }
1237
+
1238
+ .session-grid {
1239
+ grid-template-columns: repeat(2,minmax(0,1fr));
1240
+ }
1241
+ }
1242
+
1243
+ @media (max-width:700px) {
1244
+ body[data-current-view="all"] .topbar .eyebrow,
1245
+ body[data-current-view="all"] .topbar .subtitle,
1246
+ body[data-current-view="all"] #shortcutHelpBtn,
1247
+ body[data-current-view="all"] #guideBtn {
1248
+ display: none;
1249
+ }
1250
+
1251
+ body[data-current-view="all"] .topbar h1 {
1252
+ font-size: 23px;
1253
+ line-height: 1.12;
1254
+ }
1255
+
1256
+ body[data-current-view="all"] .top-actions {
1257
+ grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr);
1258
+ gap: 8px;
1259
+ margin-top: 10px;
1260
+ }
1261
+
1262
+ body[data-current-view="all"] .sync-state,
1263
+ body[data-current-view="all"] .new-run-cta {
1264
+ min-height: 42px;
1265
+ height: 42px;
1266
+ }
1267
+
1268
+ .operations-overview {
1269
+ margin-top: 10px;
1270
+ }
1271
+
1272
+ .home-attention-strip {
1273
+ min-height: 0;
1274
+ grid-template-columns: 126px minmax(0,1fr);
1275
+ }
1276
+
1277
+ .home-attention-title {
1278
+ grid-template-columns: minmax(0,1fr) auto;
1279
+ gap: 6px;
1280
+ padding: 10px;
1281
+ border-right: 1px solid rgba(118,139,165,.14);
1282
+ border-bottom: 0;
1283
+ }
1284
+
1285
+ .home-attention-signal {
1286
+ display: none;
1287
+ }
1288
+
1289
+ .home-attention-title small {
1290
+ margin-bottom: 2px;
1291
+ }
1292
+
1293
+ .home-attention-title b {
1294
+ font-size: 13px;
1295
+ }
1296
+
1297
+ .home-attention-list {
1298
+ border-left: 0;
1299
+ }
1300
+
1301
+ .home-attention-item {
1302
+ grid-template-columns: 7px minmax(0,1fr);
1303
+ gap: 7px;
1304
+ padding: 9px 10px;
1305
+ }
1306
+
1307
+ .home-attention-item em,
1308
+ .home-attention-item time,
1309
+ .home-attention-item > i {
1310
+ display: none;
1311
+ }
1312
+
1313
+ .home-attention-more {
1314
+ min-height: 32px;
1315
+ display: block;
1316
+ grid-column: 1/-1;
1317
+ padding: 5px 10px;
1318
+ border-top: 1px solid rgba(118,139,165,.14);
1319
+ border-left: 0;
1320
+ }
1321
+
1322
+ .home-attention-more.compact-only {
1323
+ display: block;
1324
+ }
1325
+
1326
+ .live-section {
1327
+ margin-top: 10px;
1328
+ padding: 10px;
1329
+ }
1330
+
1331
+ .live-section-description,
1332
+ .live-tmux-shortcut {
1333
+ display: none;
1334
+ }
1335
+
1336
+ .control-room-legend > span,
1337
+ .control-room-legend > b {
1338
+ font-size: 12px;
1339
+ }
1340
+
1341
+ .control-room-session > header > button {
1342
+ display: none;
1343
+ }
1344
+
1345
+ .session-grid {
1346
+ grid-template-columns: 1fr;
1347
+ }
1348
+
1349
+ .control-room-session {
1350
+ padding: 9px;
1351
+ }
1352
+
1353
+ .control-room-flow {
1354
+ gap: 8px;
1355
+ }
1356
+
1357
+ .control-room-main {
1358
+ gap: 7px;
1359
+ padding: 10px;
1360
+ }
1361
+
1362
+ .control-main-meta,
1363
+ .completed-column {
1364
+ display: none;
1365
+ }
1366
+
1367
+ .control-room-node-list {
1368
+ grid-template-columns: repeat(2,minmax(0,1fr));
1369
+ gap: 7px;
1370
+ }
1371
+
1372
+ .control-room-node {
1373
+ min-height: 82px;
1374
+ grid-template-columns: 28px minmax(0,1fr);
1375
+ align-items: start;
1376
+ gap: 7px;
1377
+ padding: 8px;
1378
+ }
1379
+
1380
+ .control-node-icon {
1381
+ width: 28px;
1382
+ height: 28px;
1383
+ }
1384
+
1385
+ .control-node-copy b {
1386
+ display: -webkit-box;
1387
+ overflow: hidden;
1388
+ white-space: normal;
1389
+ -webkit-box-orient: vertical;
1390
+ -webkit-line-clamp: 2;
1391
+ }
1392
+
1393
+ .control-node-copy em {
1394
+ margin-top: 2px;
1395
+ }
1396
+
1397
+ .control-node-state {
1398
+ position: absolute;
1399
+ top: 8px;
1400
+ right: 8px;
1401
+ }
1402
+
1403
+ .control-node-state b {
1404
+ display: none;
1405
+ }
1406
+
1407
+ .detail-drawer {
1408
+ width: 100vw;
1409
+ }
1410
+
1411
+ .drawer-meta {
1412
+ flex-wrap: nowrap;
1413
+ overflow-x: auto;
1414
+ }
1415
+
1416
+ .drawer-composer {
1417
+ padding: 9px 10px max(10px,env(safe-area-inset-bottom));
1418
+ }
1419
+
1420
+ .drawer-composer .agent-command-actions button {
1421
+ min-width: 102px;
1422
+ }
1423
+
1424
+ .agent-command-route {
1425
+ grid-template-columns: 1fr;
1426
+ }
1427
+
1428
+ .agent-command-route > small {
1429
+ grid-column: 1;
1430
+ }
1431
+ }
1432
+
1433
+ @media (prefers-reduced-motion:reduce) {
1434
+ .control-session-live i,
1435
+ .control-flow-link > i,
1436
+ .control-room-node.is-spawning {
1437
+ animation: none!important;
1438
+ }
1439
+ }