loadtoagent 1.1.0 → 1.3.2

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 (86) hide show
  1. package/README.ko.md +14 -5
  2. package/README.md +7 -0
  3. package/README.zh-CN.md +7 -0
  4. package/docs/PROVIDER-CONTRACTS.md +25 -1
  5. package/docs/UI-AUDIT-100.md +118 -0
  6. package/docs/UI-AUDIT-101-200.md +120 -0
  7. package/docs/UI-AUDIT-201-300.md +120 -0
  8. package/main.js +157 -38
  9. package/package.json +13 -4
  10. package/preload.js +13 -2
  11. package/renderer/app-agent-actions.js +125 -53
  12. package/renderer/app-bootstrap.js +54 -19
  13. package/renderer/app-dashboard.js +196 -55
  14. package/renderer/app-drawer-content.js +48 -44
  15. package/renderer/app-drawer-data.js +26 -13
  16. package/renderer/app-drawer.js +72 -54
  17. package/renderer/app-events-dialogs.js +146 -37
  18. package/renderer/app-events-filters.js +172 -13
  19. package/renderer/app-events-navigation.js +77 -30
  20. package/renderer/app-events-sessions.js +156 -9
  21. package/renderer/app-events.js +2 -1
  22. package/renderer/app-graph-model.js +20 -38
  23. package/renderer/app-graph-orchestration.js +15 -13
  24. package/renderer/app-graph-view.js +228 -113
  25. package/renderer/app-management.js +257 -0
  26. package/renderer/app-provider-visibility.js +124 -0
  27. package/renderer/app-quality.js +568 -0
  28. package/renderer/app-run-modal.js +104 -34
  29. package/renderer/app-runtime-overview.js +312 -0
  30. package/renderer/app-session-render.js +94 -37
  31. package/renderer/app-tmux-render.js +52 -44
  32. package/renderer/app.js +153 -75
  33. package/renderer/i18n-messages.js +867 -37
  34. package/renderer/i18n.js +104 -0
  35. package/renderer/index.html +154 -67
  36. package/renderer/shared.js +17 -0
  37. package/renderer/styles-agent-map.css +16 -10
  38. package/renderer/styles-cards.css +44 -18
  39. package/renderer/styles-collaboration.css +23 -23
  40. package/renderer/styles-components.css +122 -45
  41. package/renderer/styles-management.css +364 -0
  42. package/renderer/styles-onboarding.css +8 -8
  43. package/renderer/styles-overlays.css +13 -7
  44. package/renderer/styles-product.css +48 -40
  45. package/renderer/styles-quality.css +312 -0
  46. package/renderer/styles-readability.css +1040 -0
  47. package/renderer/styles-responsive-product.css +84 -12
  48. package/renderer/styles-responsive-runtime.css +25 -17
  49. package/renderer/styles-responsive-shell.css +44 -48
  50. package/renderer/styles-responsive-workflows.css +39 -5
  51. package/renderer/styles-run-composer.css +28 -23
  52. package/renderer/styles-runtime-overview.css +285 -0
  53. package/renderer/styles-settings.css +176 -16
  54. package/renderer/styles-terminal.css +374 -37
  55. package/renderer/styles-tmux.css +49 -49
  56. package/renderer/styles-workflow-map.css +362 -15
  57. package/renderer/styles-workflows.css +116 -49
  58. package/renderer/styles.css +34 -19
  59. package/renderer/terminal-agent.js +17 -13
  60. package/renderer/terminal-events.js +253 -37
  61. package/renderer/terminal-workbench.js +208 -89
  62. package/renderer/terminal.js +350 -35
  63. package/src/agentMonitor/claudeParser.js +96 -7
  64. package/src/agentMonitor/codexParser.js +59 -4
  65. package/src/agentMonitor/executionActivity.js +282 -0
  66. package/src/agentMonitor/genericParser.js +56 -13
  67. package/src/agentMonitor/hierarchy.js +17 -0
  68. package/src/agentMonitor/responseIntent.js +51 -0
  69. package/src/agentMonitor.js +21 -3
  70. package/src/agentRunner.js +66 -1
  71. package/src/attentionNotifier.js +14 -10
  72. package/src/automationMonitor.js +258 -0
  73. package/src/contracts.js +10 -1
  74. package/src/ipc/registerAgentIpc.js +9 -3
  75. package/src/ipc/registerAppIpc.js +4 -1
  76. package/src/ipc/registerTerminalIpc.js +12 -14
  77. package/src/macUpdateHelper.js +210 -0
  78. package/src/monitorWorker.js +65 -6
  79. package/src/platformPath.js +80 -0
  80. package/src/processMonitor.js +80 -22
  81. package/src/providerVisibilityStore.js +45 -0
  82. package/src/sessionIntelligence.js +261 -0
  83. package/src/terminalHost.js +453 -0
  84. package/src/terminalHostDaemon.js +61 -0
  85. package/src/terminalManager.js +218 -6
  86. package/src/updateInstaller.js +175 -0
@@ -222,7 +222,7 @@
222
222
 
223
223
  .terminal-history-message header time {
224
224
  color: #536678;
225
- font-size: 8px;
225
+ font-size: 12px;
226
226
  }
227
227
 
228
228
  .terminal-history-empty {
@@ -237,13 +237,13 @@
237
237
 
238
238
  .terminal-history-empty b {
239
239
  color: #a9b8c4;
240
- font-size: 11px;
240
+ font-size: 12px;
241
241
  }
242
242
 
243
243
  .terminal-history-empty span {
244
244
  margin-top: 6px;
245
245
  color: #607183;
246
- font-size: 9px;
246
+ font-size: 12px;
247
247
  }
248
248
 
249
249
  .terminal-screen .xterm-viewport {
@@ -291,7 +291,7 @@
291
291
  color: #aebbc8;
292
292
  font-weight: 650;
293
293
  cursor: pointer;
294
- font-size: 11px;
294
+ font-size: 12px;
295
295
  }
296
296
 
297
297
  .terminal-controlbar button {
@@ -303,7 +303,7 @@
303
303
  color: #aebbc8;
304
304
  font-weight: 650;
305
305
  cursor: pointer;
306
- font-size: 11px;
306
+ font-size: 12px;
307
307
  }
308
308
 
309
309
  .terminal-resource-head button {
@@ -316,7 +316,7 @@
316
316
  color: #aebbc8;
317
317
  font-weight: 650;
318
318
  cursor: pointer;
319
- font-size: 11px;
319
+ font-size: 12px;
320
320
  }
321
321
 
322
322
  .terminal-resource-head>div b {
@@ -329,7 +329,7 @@
329
329
  display: block;
330
330
  margin-top: 3px;
331
331
  color: #667689;
332
- font-size: 11px;
332
+ font-size: 12px;
333
333
  }
334
334
 
335
335
  .terminal-tab span {
@@ -345,13 +345,13 @@
345
345
  text-overflow: ellipsis;
346
346
  white-space: nowrap;
347
347
  color: #667688;
348
- font-size: 11px;
348
+ font-size: 12px;
349
349
  }
350
350
 
351
351
  .terminal-command-form label {
352
352
  color: #70d5b1;
353
353
  font-weight: 700;
354
- font-size: 11px;
354
+ font-size: 12px;
355
355
  }
356
356
 
357
357
  .terminal-history-panel.collapsed .terminal-history-head {
@@ -396,7 +396,7 @@
396
396
  align-items: center;
397
397
  gap: 5px;
398
398
  color: #5fdcaf;
399
- font-size: 9px;
399
+ font-size: 12px;
400
400
  font-weight: 800;
401
401
  letter-spacing: .08em;
402
402
  }
@@ -478,7 +478,7 @@
478
478
  border-radius: 10px;
479
479
  background: #14232e;
480
480
  color: #75d9ee;
481
- font-size: 9px;
481
+ font-size: 12px;
482
482
  }
483
483
 
484
484
  .terminal-session-item.active .terminal-session-icon {
@@ -503,7 +503,7 @@
503
503
  white-space: nowrap;
504
504
  margin-top: 4px;
505
505
  color: #7e8ea0;
506
- font-size: 10px;
506
+ font-size: 12px;
507
507
  }
508
508
 
509
509
  .terminal-session-item em {
@@ -514,7 +514,7 @@
514
514
  margin-top: 4px;
515
515
  color: #506274;
516
516
  font-family: "Cascadia Code",Consolas,monospace;
517
- font-size: 9px;
517
+ font-size: 12px;
518
518
  font-style: normal;
519
519
  }
520
520
 
@@ -528,7 +528,7 @@
528
528
 
529
529
  .terminal-resource-empty {
530
530
  color: #58687a;
531
- font-size: 9px;
531
+ font-size: 12px;
532
532
  line-height: 1.5;
533
533
  margin: 4px;
534
534
  padding: 22px 12px;
@@ -567,14 +567,14 @@
567
567
  .terminal-resource-tip b {
568
568
  display: block;
569
569
  color: #afc7c3;
570
- font-size: 10px;
570
+ font-size: 12px;
571
571
  }
572
572
 
573
573
  .terminal-resource-tip small {
574
574
  display: block;
575
575
  margin-top: 4px;
576
576
  color: #647b7a;
577
- font-size: 9px;
577
+ font-size: 12px;
578
578
  line-height: 1.45;
579
579
  }
580
580
 
@@ -617,7 +617,7 @@
617
617
  background: #12272b;
618
618
  color: #70dfbd;
619
619
  font-family: "Cascadia Code",Consolas,monospace;
620
- font-size: 10px;
620
+ font-size: 12px;
621
621
  font-weight: 800;
622
622
  }
623
623
 
@@ -643,7 +643,7 @@
643
643
  max-width: 640px;
644
644
  margin-top: 5px;
645
645
  color: #708294;
646
- font-size: 10px;
646
+ font-size: 12px;
647
647
  }
648
648
 
649
649
  .terminal-workspace-actions {
@@ -665,7 +665,7 @@
665
665
  border-radius: 999px;
666
666
  background: #101922;
667
667
  color: #7e8c9b;
668
- font-size: 10px;
668
+ font-size: 12px;
669
669
  font-weight: 700;
670
670
  }
671
671
 
@@ -722,7 +722,7 @@
722
722
  padding: 0 9px;
723
723
  border-color: #2a3b48;
724
724
  background: #101922;
725
- font-size: 10px;
725
+ font-size: 12px;
726
726
  }
727
727
 
728
728
  .terminal-key-actions kbd {
@@ -732,7 +732,7 @@
732
732
  background: #0a1118;
733
733
  color: #8292a2;
734
734
  font-family: inherit;
735
- font-size: 8px;
735
+ font-size: 12px;
736
736
  font-weight: 700;
737
737
  }
738
738
 
@@ -796,7 +796,7 @@
796
796
  text-transform: uppercase;
797
797
  letter-spacing: .08em;
798
798
  color: #62dcba;
799
- font-size: 9px;
799
+ font-size: 12px;
800
800
  }
801
801
 
802
802
  .terminal-history-head b {
@@ -816,16 +816,214 @@
816
816
  white-space: nowrap;
817
817
  margin-top: 3px;
818
818
  color: #657789;
819
- font-size: 10px;
819
+ font-size: 12px;
820
820
  }
821
821
 
822
822
  .terminal-history-list {
823
823
  min-height: 0;
824
824
  overflow: auto;
825
+ overflow-anchor: none;
826
+ overscroll-behavior: contain;
825
827
  scrollbar-color: #29413c transparent;
826
828
  padding: 12px;
827
829
  }
828
830
 
831
+ .terminal-subagent-progress {
832
+ margin: 0 0 14px;
833
+ padding: 11px;
834
+ border: 1px solid #285044;
835
+ border-radius: 13px;
836
+ background: linear-gradient(180deg,rgba(34,91,73,.2),rgba(12,25,28,.55));
837
+ }
838
+
839
+ .terminal-subagent-progress>header {
840
+ display: flex;
841
+ align-items: flex-start;
842
+ justify-content: space-between;
843
+ gap: 10px;
844
+ margin-bottom: 10px;
845
+ }
846
+
847
+ .terminal-subagent-progress>header div {
848
+ min-width: 0;
849
+ }
850
+
851
+ .terminal-subagent-progress>header b,
852
+ .terminal-subagent-progress>header span {
853
+ display: block;
854
+ }
855
+
856
+ .terminal-subagent-progress>header b {
857
+ color: #92ecd0;
858
+ font-size: 12px;
859
+ }
860
+
861
+ .terminal-subagent-progress>header span {
862
+ margin-top: 3px;
863
+ color: #718b89;
864
+ font-size: 12px;
865
+ line-height: 1.4;
866
+ }
867
+
868
+ .terminal-subagent-progress>header small {
869
+ flex: 0 0 auto;
870
+ max-width: 48%;
871
+ color: #7e9d98;
872
+ font-size: 12px;
873
+ line-height: 1.4;
874
+ text-align: right;
875
+ }
876
+
877
+ .terminal-subagent-cards {
878
+ display: grid;
879
+ gap: 8px;
880
+ }
881
+
882
+ .terminal-subagent-card {
883
+ position: relative;
884
+ margin-left: calc(var(--terminal-subagent-depth,0) * 10px);
885
+ padding: 9px 9px 8px 11px;
886
+ border: 1px solid #253a40;
887
+ border-left: 3px solid #71808c;
888
+ border-radius: 10px;
889
+ background: rgba(8,17,22,.74);
890
+ }
891
+
892
+ .terminal-subagent-card.working {
893
+ border-left-color: #5ce2a9;
894
+ }
895
+
896
+ .terminal-subagent-card.attention {
897
+ border-left-color: #ed9b67;
898
+ }
899
+
900
+ .terminal-subagent-card>header {
901
+ display: flex;
902
+ align-items: flex-start;
903
+ justify-content: space-between;
904
+ gap: 8px;
905
+ }
906
+
907
+ .terminal-subagent-card>header div {
908
+ min-width: 0;
909
+ }
910
+
911
+ .terminal-subagent-card>header span,
912
+ .terminal-subagent-card>header small {
913
+ display: block;
914
+ overflow-wrap: anywhere;
915
+ }
916
+
917
+ .terminal-subagent-card>header span {
918
+ color: #d8e8e4;
919
+ font-size: 12px;
920
+ font-weight: 750;
921
+ }
922
+
923
+ .terminal-subagent-card>header small {
924
+ margin-top: 2px;
925
+ color: #687d84;
926
+ font-size: 12px;
927
+ }
928
+
929
+ .terminal-subagent-card>header>b {
930
+ flex: 0 0 auto;
931
+ padding: 3px 6px;
932
+ border: 1px solid #3b4c52;
933
+ border-radius: 999px;
934
+ color: #94a3aa;
935
+ font-size: 12px;
936
+ font-weight: 700;
937
+ }
938
+
939
+ .terminal-subagent-card.working>header>b {
940
+ border-color: #2e6c59;
941
+ background: rgba(56,155,119,.14);
942
+ color: #75e6ba;
943
+ }
944
+
945
+ .terminal-subagent-card.attention>header>b {
946
+ border-color: #704c37;
947
+ background: rgba(181,103,54,.13);
948
+ color: #f2b185;
949
+ }
950
+
951
+ .terminal-subagent-assignment,
952
+ .terminal-subagent-current {
953
+ display: grid;
954
+ grid-template-columns: auto minmax(0,1fr);
955
+ gap: 7px;
956
+ margin-top: 7px;
957
+ color: #a8b9bd;
958
+ font-size: 12px;
959
+ line-height: 1.45;
960
+ }
961
+
962
+ .terminal-subagent-assignment em,
963
+ .terminal-subagent-current em {
964
+ color: #66877f;
965
+ font-style: normal;
966
+ font-weight: 700;
967
+ }
968
+
969
+ .terminal-subagent-assignment span,
970
+ .terminal-subagent-current span {
971
+ min-width: 0;
972
+ overflow-wrap: anywhere;
973
+ }
974
+
975
+ .terminal-subagent-card>ol {
976
+ display: grid;
977
+ gap: 6px;
978
+ margin: 9px 0 0;
979
+ padding: 8px 0 0;
980
+ border-top: 1px solid #1d3035;
981
+ list-style: none;
982
+ }
983
+
984
+ .terminal-subagent-card>ol li {
985
+ display: grid;
986
+ grid-template-columns: 6px minmax(0,1fr) auto;
987
+ align-items: start;
988
+ gap: 6px;
989
+ }
990
+
991
+ .terminal-subagent-card>ol li>i {
992
+ width: 5px;
993
+ height: 5px;
994
+ margin-top: 4px;
995
+ border-radius: 50%;
996
+ background: #477268;
997
+ }
998
+
999
+ .terminal-subagent-card>ol li b,
1000
+ .terminal-subagent-card>ol li span {
1001
+ display: block;
1002
+ overflow-wrap: anywhere;
1003
+ }
1004
+
1005
+ .terminal-subagent-card>ol li b {
1006
+ color: #90aba7;
1007
+ font-size: 12px;
1008
+ }
1009
+
1010
+ .terminal-subagent-card>ol li span {
1011
+ margin-top: 2px;
1012
+ color: #829399;
1013
+ font-size: 12px;
1014
+ line-height: 1.4;
1015
+ }
1016
+
1017
+ .terminal-subagent-card>ol li time {
1018
+ color: #536a70;
1019
+ font-size: 12px;
1020
+ }
1021
+
1022
+ .terminal-history-empty.with-subagents {
1023
+ height: auto;
1024
+ min-height: 100px;
1025
+ }
1026
+
829
1027
  .terminal-history-message {
830
1028
  margin: 0 0 9px;
831
1029
  border: 1px solid #1c2b35;
@@ -837,7 +1035,7 @@
837
1035
 
838
1036
  .terminal-history-message header b {
839
1037
  color: #75dfba;
840
- font-size: 10px;
1038
+ font-size: 12px;
841
1039
  }
842
1040
 
843
1041
  .terminal-history-message p {
@@ -846,7 +1044,7 @@
846
1044
  white-space: pre-wrap;
847
1045
  overflow: auto;
848
1046
  max-height: 180px;
849
- font-size: 11px;
1047
+ font-size: 12px;
850
1048
  line-height: 1.58;
851
1049
  }
852
1050
 
@@ -858,7 +1056,7 @@
858
1056
  min-height: 40px;
859
1057
  padding: 0 13px;
860
1058
  color: #79cdb4;
861
- font-size: 9px;
1059
+ font-size: 12px;
862
1060
  line-height: 1.3;
863
1061
  }
864
1062
 
@@ -895,7 +1093,7 @@
895
1093
  text-overflow: ellipsis;
896
1094
  white-space: nowrap;
897
1095
  color: #d6e1e8;
898
- font-size: 11px;
1096
+ font-size: 12px;
899
1097
  }
900
1098
 
901
1099
  .terminal-console-head small {
@@ -905,7 +1103,7 @@
905
1103
  white-space: nowrap;
906
1104
  margin-top: 3px;
907
1105
  color: #607485;
908
- font-size: 9px;
1106
+ font-size: 12px;
909
1107
  }
910
1108
 
911
1109
  .terminal-console-pulse {
@@ -923,7 +1121,7 @@
923
1121
  border-radius: 7px;
924
1122
  background: #121c25;
925
1123
  color: #718394;
926
- font-size: 9px;
1124
+ font-size: 12px;
927
1125
  font-weight: 700;
928
1126
  }
929
1127
 
@@ -987,7 +1185,7 @@
987
1185
 
988
1186
  .terminal-empty p {
989
1187
  margin: 8px 20px 0;
990
- font-size: 11px;
1188
+ font-size: 12px;
991
1189
  line-height: 1.55;
992
1190
  max-width: 420px;
993
1191
  color: #718294;
@@ -1013,12 +1211,12 @@
1013
1211
 
1014
1212
  .terminal-command-form .terminal-command-label label {
1015
1213
  color: #8adfc3;
1016
- font-size: 10px;
1214
+ font-size: 12px;
1017
1215
  }
1018
1216
 
1019
1217
  .terminal-command-label>span {
1020
1218
  color: #576a7b;
1021
- font-size: 9px;
1219
+ font-size: 12px;
1022
1220
  }
1023
1221
 
1024
1222
  .terminal-command-composer {
@@ -1038,6 +1236,15 @@
1038
1236
  box-shadow: 0 0 0 3px rgba(85,214,168,.07);
1039
1237
  }
1040
1238
 
1239
+ .terminal-command-count {
1240
+ grid-column: 1 / -1;
1241
+ justify-self: end;
1242
+ padding: 0 5px 2px;
1243
+ color: #607487;
1244
+ font-size: 12px;
1245
+ font-variant-numeric: tabular-nums;
1246
+ }
1247
+
1041
1248
  .terminal-command-form textarea {
1042
1249
  border-radius: 9px;
1043
1250
  color: #dce6ee;
@@ -1059,7 +1266,7 @@
1059
1266
 
1060
1267
  .terminal-command-form button {
1061
1268
  border: 1px solid #36775f;
1062
- font-size: 11px;
1269
+ font-size: 12px;
1063
1270
  font-weight: 700;
1064
1271
  cursor: pointer;
1065
1272
  height: 38px;
@@ -1090,7 +1297,7 @@
1090
1297
  padding: 0 13px;
1091
1298
  border-top-color: #14222a;
1092
1299
  background: #081017;
1093
- font-size: 9px;
1300
+ font-size: 12px;
1094
1301
  }
1095
1302
 
1096
1303
  .terminal-notice-dot {
@@ -1111,11 +1318,11 @@
1111
1318
  }
1112
1319
 
1113
1320
  .terminal-history-copy {
1114
- max-height: 190px;
1321
+ max-height: none;
1115
1322
  margin-top: 6px;
1116
- overflow: auto;
1323
+ overflow: visible;
1117
1324
  color: #b8c5cf;
1118
- font-size: 10px;
1325
+ font-size: 12px;
1119
1326
  line-height: 1.55;
1120
1327
  }
1121
1328
 
@@ -1239,3 +1446,133 @@ body[data-current-view="terminal"] .top-actions {
1239
1446
  body[data-current-view="terminal"] .topbar h1 {
1240
1447
  font-size: 22px;
1241
1448
  }
1449
+
1450
+ /* Mission-control terminal readability */
1451
+ #terminalSection .terminal-layout {
1452
+ height: clamp(620px,calc(100vh - 196px),900px);
1453
+ min-height: 620px;
1454
+ grid-template-columns: 310px minmax(0,1fr);
1455
+ border-color: #304653;
1456
+ border-radius: 15px;
1457
+ background: #070c11;
1458
+ box-shadow: 0 20px 60px rgba(0,0,0,.34);
1459
+ }
1460
+
1461
+ .terminal-resource-head {
1462
+ min-height: 76px;
1463
+ padding: 14px 16px;
1464
+ border-bottom-color: #293c47;
1465
+ }
1466
+
1467
+ .terminal-resource-head>div b { color: #eef5f7; font-size: 14px; }
1468
+ .terminal-resource-head>div span { margin-top: 5px; color: #93a6b2; font-size: 12px; }
1469
+ .terminal-resource-live { font-size: 12px; }
1470
+ .terminal-session-list { gap: 9px; padding: 12px; }
1471
+ .terminal-session-row { grid-template-columns: minmax(0,1fr) 28px; gap: 5px; }
1472
+
1473
+ .terminal-session-item {
1474
+ grid-template-columns: 42px minmax(0,1fr) auto;
1475
+ gap: 11px;
1476
+ min-height: 86px;
1477
+ padding: 11px 10px;
1478
+ border-color: #1e303b;
1479
+ border-left: 3px solid #536370;
1480
+ border-radius: 11px;
1481
+ background: #0c151d;
1482
+ }
1483
+
1484
+ .terminal-session-item[data-status="running"] { border-left-color: #51dbae; }
1485
+ .terminal-session-item[data-status="attention"] { border-color: #60482f; border-left-color: #f0ad62; background: linear-gradient(100deg,rgba(133,83,31,.18),#0d171e 58%); }
1486
+ .terminal-session-item[data-status="failed"] { border-color: #58323c; border-left-color: #ef7d8e; }
1487
+ .terminal-session-item[data-status="completed"] { border-left-color: #6cbdd1; }
1488
+ .terminal-session-item.active { border-color: #438d77; border-left-color: #62e1b7; box-shadow: inset 2px 0 #62e1b7,0 9px 24px rgba(0,0,0,.2); }
1489
+ .terminal-session-icon { width: 42px; height: 42px; font-size: 12px; }
1490
+ .terminal-session-item b { color: #edf4f6; font-size: 13px; }
1491
+ .terminal-session-item small { color: #9aaab5; font-size: 12px; }
1492
+ .terminal-session-item em { color: #718391; font-size: 12px; }
1493
+
1494
+ .terminal-session-status {
1495
+ display: inline-flex;
1496
+ align-items: center;
1497
+ align-self: start;
1498
+ gap: 5px;
1499
+ min-height: 24px;
1500
+ padding: 0 7px;
1501
+ border: 1px solid #334550;
1502
+ border-radius: 999px;
1503
+ color: #a7b6bf;
1504
+ background: #111c24;
1505
+ font-size: 12px;
1506
+ font-weight: 750;
1507
+ white-space: nowrap;
1508
+ }
1509
+
1510
+ .terminal-session-status i { width: 6px; height: 6px; border-radius: 50%; background: #657581; }
1511
+ .terminal-session-status[data-status="running"] { border-color: #2e6958; color: #86e8c5; background: #102921; }
1512
+ .terminal-session-status[data-status="running"] i { background: #55e2ad; box-shadow: 0 0 8px rgba(85,226,173,.65); }
1513
+ .terminal-session-status[data-status="attention"] { border-color: #725432; color: #f3bb77; background: #2a2014; }
1514
+ .terminal-session-status[data-status="attention"] i { background: #ffbd66; box-shadow: 0 0 8px rgba(255,189,102,.5); }
1515
+ .terminal-session-status[data-status="failed"] { border-color: #6f3b47; color: #f3a0ad; background: #29161d; }
1516
+ .terminal-session-status[data-status="failed"] i { background: #f07f90; }
1517
+ .terminal-session-status[data-status="completed"] { border-color: #355d67; color: #8bd4e3; background: #11242a; }
1518
+ .terminal-session-status[data-status="completed"] i { background: #72c9dc; }
1519
+
1520
+ .terminal-controlbar { min-height: 72px; padding: 11px 16px; }
1521
+ .terminal-target-icon { width: 44px; height: 44px; font-size: 12px; }
1522
+ .terminal-target-meta b { color: #eef5f7; font-size: 15px; }
1523
+ .terminal-target-meta span { margin-top: 6px; color: #8fa1af; font-size: 12px; }
1524
+ .terminal-connection-state { min-height: 32px; font-size: 12px; }
1525
+ .terminal-connection-state[data-status="attention"] { border-color: #6f5133; color: #f2b66e; background: #291f14; }
1526
+ .terminal-connection-state[data-status="attention"] i { background: #ffbb62; box-shadow: 0 0 9px rgba(255,187,98,.52); }
1527
+ .terminal-connection-state[data-status="completed"] { border-color: #355f69; color: #8bd3e2; background: #10242a; }
1528
+ .terminal-connection-state[data-status="completed"] i { background: #70cadd; }
1529
+ .terminal-controlbar .terminal-key-actions button { height: 34px; font-size: 12px; }
1530
+
1531
+ .terminal-stage { grid-template-columns: minmax(330px,40%) minmax(0,1fr); }
1532
+ .terminal-history-head { min-height: 76px; padding: 12px 13px 12px 16px; }
1533
+ .terminal-history-head span { font-size: 12px; }
1534
+ .terminal-history-head b { font-size: 14px; }
1535
+ .terminal-history-head small { color: #8294a2; font-size: 12px; }
1536
+ .terminal-history-list { padding: 14px; }
1537
+ .terminal-history-message { padding: 12px 13px; border-color: #263944; }
1538
+ .terminal-history-message header b { font-size: 12px; }
1539
+ .terminal-history-message p,.terminal-history-copy { color: #cad5dc; font-size: 12px; line-height: 1.66; }
1540
+ .terminal-history-panel footer { min-height: 42px; color: #8dd9c1; font-size: 12px; }
1541
+
1542
+ .terminal-console-head { min-height: 58px; padding: 9px 14px; border-bottom-color: #263844; background: #0b141b; }
1543
+ .terminal-console-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
1544
+ .terminal-console-head b { color: #edf4f6; font-size: 13px; }
1545
+ .terminal-console-head small { color: #8496a4; font-size: 12px; }
1546
+ .terminal-console-tools { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; }
1547
+ .terminal-console-state { padding: 6px 9px; font-size: 12px; }
1548
+ .terminal-console-state[data-status="attention"] { color: #f2b56f; background: #2b2014; }
1549
+ .terminal-console-state[data-status="completed"] { color: #8bd4e3; background: #11262c; }
1550
+
1551
+ .terminal-font-controls { display: grid; grid-template-columns: 30px 48px 30px; align-items: center; min-height: 32px; overflow: hidden; border: 1px solid #30424e; border-radius: 8px; background: #0c161e; }
1552
+ .terminal-font-controls button { height: 30px; padding: 0; border: 0; color: #b8c6ce; background: transparent; font-size: 15px; cursor: pointer; }
1553
+ .terminal-font-controls button:hover:not(:disabled),.terminal-font-controls button:focus-visible { color: #8aefd0; background: #14252a; outline: none; }
1554
+ .terminal-font-controls button:disabled { opacity: .32; cursor: default; }
1555
+ .terminal-font-controls output { color: #8fa2ae; font: 750 10px/1 var(--font-mono,"Cascadia Code",monospace); text-align: center; }
1556
+ .terminal-focus-button { display: inline-flex; min-height: 32px; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid #335248; border-radius: 8px; color: #9bdcc8; background: #10231f; font-size: 12px; font-weight: 750; cursor: pointer; }
1557
+ .terminal-focus-button b { color: inherit; font-size: 13px; }
1558
+ .terminal-focus-button:hover,.terminal-focus-button:focus-visible,.terminal-focus-button[aria-pressed="true"] { border-color: #4c9c83; color: #96f0d1; background: #16342b; outline: none; }
1559
+
1560
+ .terminal-viewport { padding: 16px; background-color: #05090d; background-image: none; }
1561
+ .terminal-screen { inset: 15px; }
1562
+ .terminal-screen .xterm { padding: 5px; }
1563
+ .terminal-command-form { gap: 8px; padding: 11px 14px 12px; }
1564
+ .terminal-command-form .terminal-command-label label { font-size: 12px; }
1565
+ .terminal-command-label>span { color: #718391; font-size: 12px; }
1566
+ .terminal-command-composer { padding: 6px; border-color: #38505c; }
1567
+ .terminal-command-form textarea { min-height: 48px; color: #edf3f7; font-size: 13px; line-height: 1.55; }
1568
+ .terminal-command-form button { height: 40px; font-size: 12px; }
1569
+ .terminal-notice { min-height: 30px; color: #8293a0; font-size: 12px; }
1570
+
1571
+ #terminalSection.terminal-focus-mode .terminal-layout { display: grid!important; grid-template-columns: minmax(0,1fr)!important; }
1572
+ #terminalSection.terminal-focus-mode .terminal-resource-panel,
1573
+ #terminalSection.terminal-focus-mode .terminal-history-panel { display: none!important; }
1574
+ #terminalSection.terminal-focus-mode .terminal-stage { grid-template-columns: minmax(0,1fr)!important; grid-template-rows: minmax(0,1fr)!important; }
1575
+ #terminalSection.terminal-focus-mode .terminal-workbench { height: 100%!important; min-height: 0!important; }
1576
+
1577
+ body[data-current-view="terminal"] .main-stage { padding-top: 20px; padding-bottom: 28px; }
1578
+ body[data-current-view="terminal"] .terminal-section { margin-top: 14px; }