loadtoagent 1.3.7 → 1.3.9
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.
- package/README.ko.md +13 -1
- package/README.md +13 -1
- package/README.zh-CN.md +13 -1
- package/main.js +3 -2
- package/package.json +2 -1
- package/renderer/app-agent-actions.js +73 -22
- package/renderer/app-dashboard.js +56 -13
- package/renderer/app-drawer-content.js +152 -38
- package/renderer/app-drawer.js +13 -2
- package/renderer/app-events-filters.js +19 -23
- package/renderer/app-events-sessions.js +98 -0
- package/renderer/app-graph-model.js +6 -2
- package/renderer/app-graph-orchestration.js +12 -18
- package/renderer/app-graph-view.js +49 -16
- package/renderer/app-quality.js +5 -0
- package/renderer/app.js +69 -5
- package/renderer/conversation-delivery.js +74 -0
- package/renderer/i18n-messages.js +58 -1
- package/renderer/index.html +5 -6
- package/renderer/styles-components.css +240 -62
- package/renderer/styles-control-room.css +64 -43
- package/renderer/styles-responsive-shell.css +6 -2
- package/renderer/terminal-agent.js +14 -0
- package/src/agentMonitor/claudeParser.js +85 -10
- package/src/agentMonitor/hierarchy.js +7 -2
- package/src/agentMonitor.js +70 -1
- package/src/processMonitor.js +5 -0
- package/src/terminalHost.js +1 -1
- package/src/terminalManager.js +15 -3
package/renderer/index.html
CHANGED
|
@@ -294,6 +294,7 @@
|
|
|
294
294
|
</section>
|
|
295
295
|
|
|
296
296
|
<p id="sessionReorderHelp" class="sr-only" data-i18n="session.reorder_help">세션 카드를 끌어 놓아 위치를 바꿀 수 있습니다. 키보드에서는 카드에 초점을 둔 뒤 Alt와 위아래 화살표 키를 사용하세요.</p>
|
|
297
|
+
<p id="projectReorderHelp" class="sr-only" data-i18n="project.reorder_help">프로젝트 헤더를 끌어 놓아 위치를 바꿀 수 있습니다. 프로젝트가 닫혀 있어도 이동할 수 있으며, 키보드에서는 헤더에 초점을 둔 뒤 Alt와 위아래 화살표 키를 사용하세요.</p>
|
|
297
298
|
<section id="liveSection" class="live-section hidden" aria-label="현재 진행 중인 AI 작업" data-i18n-aria-label="ui.ai_work_currently_in_progress">
|
|
298
299
|
<div class="live-section-head">
|
|
299
300
|
<div class="live-section-title"><span class="live-beacon"></span><div><p class="eyebrow" data-i18n="ui.active_now">지금 진행 중</p><h2 data-i18n="ui.work_assigned_to_ai">전체 에이전트 작동 지도</h2></div></div>
|
|
@@ -328,12 +329,9 @@
|
|
|
328
329
|
<input id="controlRoomSearchInput" type="search" maxlength="240" tabindex="-1" aria-hidden="true" aria-label="실행 세션 검색" data-i18n-aria-label="control.search_sessions" placeholder="세션 검색" data-i18n-placeholder="control.search_sessions" autocomplete="off" />
|
|
329
330
|
<button id="controlRoomSearchBtn" type="button" aria-label="실행 세션 검색 열기" data-i18n-aria-label="control.open_search" aria-controls="controlRoomSearchInput" aria-expanded="false"><span aria-hidden="true">⌕</span></button>
|
|
330
331
|
</div>
|
|
331
|
-
<div class="control-room-
|
|
332
|
-
<
|
|
333
|
-
<
|
|
334
|
-
<button id="controlRoomPagePrev" type="button" aria-label="이전 실행 세션" data-i18n-aria-label="control.previous_page">‹</button>
|
|
335
|
-
<button id="controlRoomPageNext" type="button" aria-label="다음 실행 세션" data-i18n-aria-label="control.next_page">›</button>
|
|
336
|
-
</div>
|
|
332
|
+
<div class="control-room-disclosure-actions" role="group" aria-label="프로젝트 그룹 열기와 닫기" data-i18n-aria-label="control.project_group_actions">
|
|
333
|
+
<button id="controlRoomExpandAll" type="button" aria-controls="liveSessionGrid" data-i18n="control.expand_all_projects">모두 열기</button>
|
|
334
|
+
<button id="controlRoomCollapseAll" type="button" aria-controls="liveSessionGrid" data-i18n="control.collapse_all_projects">모두 닫기</button>
|
|
337
335
|
</div>
|
|
338
336
|
</div>
|
|
339
337
|
<div id="agentMapToolbar" class="agent-map-toolbar">
|
|
@@ -470,6 +468,7 @@
|
|
|
470
468
|
<script src="../node_modules/@xterm/xterm/lib/xterm.js"></script>
|
|
471
469
|
<script src="../node_modules/@xterm/addon-fit/lib/addon-fit.js"></script>
|
|
472
470
|
<script src="i18n-messages.js"></script>
|
|
471
|
+
<script src="conversation-delivery.js"></script>
|
|
473
472
|
<script src="i18n.js"></script>
|
|
474
473
|
<script src="shared.js"></script>
|
|
475
474
|
<script src="app.js"></script>
|
|
@@ -168,6 +168,30 @@ button[aria-busy="true"] {
|
|
|
168
168
|
color: #81ddf8;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
+
.workspace-live-state {
|
|
172
|
+
display: inline-flex;
|
|
173
|
+
flex: 0 0 auto;
|
|
174
|
+
align-items: center;
|
|
175
|
+
gap: 5px;
|
|
176
|
+
color: #64dca9;
|
|
177
|
+
font-size: 10px;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.workspace-live-state i {
|
|
181
|
+
width: 7px;
|
|
182
|
+
height: 7px;
|
|
183
|
+
border-radius: 50%;
|
|
184
|
+
background: #4ce39a;
|
|
185
|
+
box-shadow: 0 0 8px rgba(76,227,154,.6);
|
|
186
|
+
animation: control-room-pulse 1.5s ease-in-out infinite;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.workspace-live-state b {
|
|
190
|
+
display: none;
|
|
191
|
+
white-space: nowrap;
|
|
192
|
+
font-size: 10px;
|
|
193
|
+
}
|
|
194
|
+
|
|
171
195
|
.workspace-item.projectless.selected small {
|
|
172
196
|
background: rgba(79,209,167,.15);
|
|
173
197
|
color: #6ee0b8;
|
|
@@ -464,6 +488,83 @@ button[aria-busy="true"] {
|
|
|
464
488
|
color: var(--drawer-provider);
|
|
465
489
|
}
|
|
466
490
|
|
|
491
|
+
.chat-row.is-optimistic .chat-bubble {
|
|
492
|
+
padding: 9px 11px;
|
|
493
|
+
border: 1px solid rgba(89,223,167,.2);
|
|
494
|
+
border-radius: 12px;
|
|
495
|
+
background: linear-gradient(135deg,rgba(35,104,78,.12),rgba(10,15,22,.72));
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
.chat-row.is-optimistic.is-new {
|
|
499
|
+
animation: chat-message-send 420ms cubic-bezier(.22,1,.36,1) both;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
.chat-row.is-failed .chat-bubble {
|
|
503
|
+
border-color: rgba(255,107,127,.36);
|
|
504
|
+
background: rgba(94,31,44,.12);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
.chat-delivery-status {
|
|
508
|
+
margin-left: auto;
|
|
509
|
+
padding: 2px 6px;
|
|
510
|
+
border-radius: 999px;
|
|
511
|
+
background: rgba(89,223,167,.08);
|
|
512
|
+
color: #79c9a8 !important;
|
|
513
|
+
font-size: 10px !important;
|
|
514
|
+
font-weight: 750;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
.chat-delivery-status.sending::before {
|
|
518
|
+
display: inline-block;
|
|
519
|
+
width: 5px;
|
|
520
|
+
height: 5px;
|
|
521
|
+
margin-right: 5px;
|
|
522
|
+
border-radius: 50%;
|
|
523
|
+
background: #59dfa7;
|
|
524
|
+
content: "";
|
|
525
|
+
animation: control-room-pulse 1s ease-in-out infinite;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
.chat-delivery-status.confirming,
|
|
529
|
+
.chat-delivery-status.received,
|
|
530
|
+
.chat-delivery-status.responding {
|
|
531
|
+
background: rgba(91,169,255,.09);
|
|
532
|
+
color: #8fc3ff !important;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
.chat-delivery-status.confirming::before,
|
|
536
|
+
.chat-delivery-status.responding::before {
|
|
537
|
+
display: inline-block;
|
|
538
|
+
width: 5px;
|
|
539
|
+
height: 5px;
|
|
540
|
+
margin-right: 5px;
|
|
541
|
+
border-radius: 50%;
|
|
542
|
+
background: #71b2ff;
|
|
543
|
+
content: "";
|
|
544
|
+
animation: control-room-pulse 1s ease-in-out infinite;
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
.chat-delivery-status.delayed {
|
|
548
|
+
background: rgba(246,190,75,.11);
|
|
549
|
+
color: #f1c66f !important;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
.chat-delivery-status.failed {
|
|
553
|
+
background: rgba(255,107,127,.1);
|
|
554
|
+
color: #ff9baa !important;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
@keyframes chat-message-send {
|
|
558
|
+
from {
|
|
559
|
+
opacity: 0;
|
|
560
|
+
transform: translateY(14px) scale(.975);
|
|
561
|
+
}
|
|
562
|
+
to {
|
|
563
|
+
opacity: 1;
|
|
564
|
+
transform: translateY(0) scale(1);
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
|
|
467
568
|
.chat-row.tool .chat-avatar {
|
|
468
569
|
color: #b19ae9;
|
|
469
570
|
}
|
|
@@ -1043,100 +1144,177 @@ button[aria-busy="true"] {
|
|
|
1043
1144
|
animation: control-room-pulse 1.35s ease-in-out infinite;
|
|
1044
1145
|
}
|
|
1045
1146
|
|
|
1046
|
-
.chat-progress
|
|
1147
|
+
.chat-delivery-progress {
|
|
1148
|
+
display: grid;
|
|
1149
|
+
gap: 11px;
|
|
1047
1150
|
margin-left: 43px;
|
|
1048
|
-
|
|
1049
|
-
border
|
|
1050
|
-
|
|
1051
|
-
|
|
1151
|
+
padding: 13px;
|
|
1152
|
+
border: 1px solid rgba(91,169,255,.24);
|
|
1153
|
+
border-radius: 12px;
|
|
1154
|
+
background: linear-gradient(145deg,rgba(35,76,125,.13),rgba(10,15,22,.76));
|
|
1155
|
+
color: #b9c7d8;
|
|
1052
1156
|
}
|
|
1053
1157
|
|
|
1054
|
-
.chat-progress
|
|
1055
|
-
display:
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
gap:
|
|
1059
|
-
padding: 11px 13px;
|
|
1060
|
-
cursor: pointer;
|
|
1061
|
-
list-style: none;
|
|
1158
|
+
.chat-delivery-progress > header {
|
|
1159
|
+
display: grid;
|
|
1160
|
+
grid-template-columns: 8px minmax(0,1fr);
|
|
1161
|
+
align-items: start;
|
|
1162
|
+
gap: 9px;
|
|
1062
1163
|
}
|
|
1063
1164
|
|
|
1064
|
-
.chat-progress
|
|
1065
|
-
|
|
1165
|
+
.chat-delivery-progress > header > span {
|
|
1166
|
+
width: 7px;
|
|
1167
|
+
height: 7px;
|
|
1168
|
+
margin-top: 5px;
|
|
1169
|
+
border-radius: 50%;
|
|
1170
|
+
background: #71b2ff;
|
|
1171
|
+
box-shadow: 0 0 0 4px rgba(91,169,255,.09);
|
|
1172
|
+
animation: control-room-pulse 1.35s ease-in-out infinite;
|
|
1066
1173
|
}
|
|
1067
1174
|
|
|
1068
|
-
.chat-progress
|
|
1069
|
-
|
|
1070
|
-
|
|
1175
|
+
.chat-delivery-progress > header > div {
|
|
1176
|
+
display: grid;
|
|
1177
|
+
gap: 3px;
|
|
1178
|
+
min-width: 0;
|
|
1071
1179
|
}
|
|
1072
1180
|
|
|
1073
|
-
.chat-progress
|
|
1074
|
-
color: #
|
|
1181
|
+
.chat-delivery-progress > header b {
|
|
1182
|
+
color: #d8e6f7;
|
|
1075
1183
|
font-size: 12px;
|
|
1076
1184
|
}
|
|
1077
1185
|
|
|
1078
|
-
.chat-progress
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1186
|
+
.chat-delivery-progress > header small,
|
|
1187
|
+
.chat-delivery-progress li small,
|
|
1188
|
+
.chat-delivery-progress footer {
|
|
1189
|
+
color: #8494a8;
|
|
1190
|
+
font-size: 10px;
|
|
1191
|
+
line-height: 1.5;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
.chat-delivery-progress ol {
|
|
1195
|
+
display: grid;
|
|
1196
|
+
grid-template-columns: repeat(3,minmax(0,1fr));
|
|
1197
|
+
gap: 7px;
|
|
1198
|
+
margin: 0;
|
|
1199
|
+
padding: 0;
|
|
1200
|
+
list-style: none;
|
|
1201
|
+
}
|
|
1202
|
+
|
|
1203
|
+
.chat-delivery-progress.phase-observed ol {
|
|
1204
|
+
grid-template-columns: repeat(2,minmax(0,1fr));
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1207
|
+
.chat-delivery-progress li {
|
|
1208
|
+
display: grid;
|
|
1209
|
+
grid-template-columns: 22px minmax(0,1fr);
|
|
1210
|
+
align-items: start;
|
|
1211
|
+
gap: 7px;
|
|
1212
|
+
min-width: 0;
|
|
1213
|
+
padding: 8px;
|
|
1214
|
+
border: 1px solid #202b38;
|
|
1215
|
+
border-radius: 9px;
|
|
1216
|
+
background: rgba(9,14,21,.62);
|
|
1082
1217
|
}
|
|
1083
1218
|
|
|
1084
|
-
.chat-progress
|
|
1219
|
+
.chat-delivery-progress li > i {
|
|
1220
|
+
width: 21px;
|
|
1221
|
+
height: 21px;
|
|
1222
|
+
display: grid;
|
|
1223
|
+
place-items: center;
|
|
1224
|
+
border: 1px solid #334154;
|
|
1225
|
+
border-radius: 50%;
|
|
1085
1226
|
color: #718196;
|
|
1086
|
-
font-size:
|
|
1227
|
+
font-size: 9px;
|
|
1087
1228
|
font-style: normal;
|
|
1088
|
-
|
|
1229
|
+
font-weight: 800;
|
|
1089
1230
|
}
|
|
1090
1231
|
|
|
1091
|
-
.chat-progress
|
|
1092
|
-
|
|
1232
|
+
.chat-delivery-progress li > span {
|
|
1233
|
+
display: grid;
|
|
1234
|
+
gap: 2px;
|
|
1235
|
+
min-width: 0;
|
|
1093
1236
|
}
|
|
1094
1237
|
|
|
1095
|
-
.chat-progress
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
padding: 0 10px 10px;
|
|
1238
|
+
.chat-delivery-progress li b {
|
|
1239
|
+
color: #aebdce;
|
|
1240
|
+
font-size: 10px;
|
|
1099
1241
|
}
|
|
1100
1242
|
|
|
1101
|
-
.chat-progress
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
border-radius: 9px;
|
|
1105
|
-
background: #0d141d;
|
|
1243
|
+
.chat-delivery-progress li.done {
|
|
1244
|
+
border-color: rgba(89,223,167,.2);
|
|
1245
|
+
background: rgba(35,104,78,.08);
|
|
1106
1246
|
}
|
|
1107
1247
|
|
|
1108
|
-
.chat-progress
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
margin-bottom: 7px;
|
|
1113
|
-
color: #7e8da0;
|
|
1114
|
-
font-size: 11px;
|
|
1248
|
+
.chat-delivery-progress li.done > i {
|
|
1249
|
+
border-color: rgba(89,223,167,.35);
|
|
1250
|
+
background: rgba(89,223,167,.1);
|
|
1251
|
+
color: #70d9ad;
|
|
1115
1252
|
}
|
|
1116
1253
|
|
|
1117
|
-
.chat-progress
|
|
1118
|
-
|
|
1254
|
+
.chat-delivery-progress li.active {
|
|
1255
|
+
border-color: rgba(91,169,255,.3);
|
|
1256
|
+
background: rgba(48,102,171,.1);
|
|
1119
1257
|
}
|
|
1120
1258
|
|
|
1121
|
-
.chat-
|
|
1259
|
+
.chat-delivery-progress li.active > i {
|
|
1260
|
+
border-color: rgba(91,169,255,.48);
|
|
1261
|
+
color: #8fc3ff;
|
|
1262
|
+
animation: control-room-pulse 1.2s ease-in-out infinite;
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
.chat-delivery-progress li.warning {
|
|
1266
|
+
border-color: rgba(246,190,75,.32);
|
|
1267
|
+
background: rgba(116,80,17,.11);
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
.chat-delivery-progress li.warning > i {
|
|
1271
|
+
border-color: rgba(246,190,75,.46);
|
|
1272
|
+
color: #f1c66f;
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
.chat-delivery-progress li.error {
|
|
1276
|
+
border-color: rgba(255,107,127,.34);
|
|
1277
|
+
background: rgba(94,31,44,.12);
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
.chat-delivery-progress li.error > i {
|
|
1281
|
+
border-color: rgba(255,107,127,.46);
|
|
1282
|
+
color: #ff9baa;
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1285
|
+
.chat-delivery-progress footer {
|
|
1122
1286
|
display: flex;
|
|
1123
1287
|
align-items: center;
|
|
1124
|
-
gap:
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
border: 1px solid rgba(71,214,153,.22);
|
|
1128
|
-
border-radius: 10px;
|
|
1129
|
-
background: rgba(34,118,83,.08);
|
|
1130
|
-
color: #91bca9;
|
|
1131
|
-
font-size: 12px;
|
|
1288
|
+
gap: 6px;
|
|
1289
|
+
padding-top: 9px;
|
|
1290
|
+
border-top: 1px solid #1f2a37;
|
|
1132
1291
|
}
|
|
1133
1292
|
|
|
1134
|
-
.chat-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1293
|
+
.chat-delivery-progress footer i {
|
|
1294
|
+
color: #6e829a;
|
|
1295
|
+
font-style: normal;
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1298
|
+
.chat-delivery-progress.phase-delayed {
|
|
1299
|
+
border-color: rgba(246,190,75,.28);
|
|
1300
|
+
background: linear-gradient(145deg,rgba(111,75,18,.13),rgba(10,15,22,.76));
|
|
1301
|
+
}
|
|
1302
|
+
|
|
1303
|
+
.chat-delivery-progress.phase-delayed > header > span {
|
|
1304
|
+
background: #efbd5d;
|
|
1305
|
+
box-shadow: 0 0 0 4px rgba(246,190,75,.09);
|
|
1306
|
+
animation: none;
|
|
1307
|
+
}
|
|
1308
|
+
|
|
1309
|
+
.chat-delivery-progress.phase-failed {
|
|
1310
|
+
border-color: rgba(255,107,127,.3);
|
|
1311
|
+
background: linear-gradient(145deg,rgba(94,31,44,.14),rgba(10,15,22,.76));
|
|
1312
|
+
}
|
|
1313
|
+
|
|
1314
|
+
.chat-delivery-progress.phase-failed > header > span {
|
|
1315
|
+
background: #ff7e91;
|
|
1316
|
+
box-shadow: 0 0 0 4px rgba(255,107,127,.08);
|
|
1317
|
+
animation: none;
|
|
1140
1318
|
}
|
|
1141
1319
|
|
|
1142
1320
|
.subagent-call-moment {
|
|
@@ -344,6 +344,14 @@
|
|
|
344
344
|
font-variant-numeric: tabular-nums;
|
|
345
345
|
}
|
|
346
346
|
|
|
347
|
+
.control-room-project-toolbar .workspace-live-state b {
|
|
348
|
+
display: inline;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.control-room-project-toolbar .workspace-item.has-live-sessions {
|
|
352
|
+
border-color: rgba(76,227,154,.28);
|
|
353
|
+
}
|
|
354
|
+
|
|
347
355
|
.control-room-project-toolbar .workspace-item:hover {
|
|
348
356
|
border-color: rgba(89,216,255,.38);
|
|
349
357
|
background: rgba(89,216,255,.065);
|
|
@@ -489,63 +497,39 @@
|
|
|
489
497
|
min-height: 40px !important;
|
|
490
498
|
}
|
|
491
499
|
|
|
492
|
-
.control-room-
|
|
500
|
+
.control-room-disclosure-actions {
|
|
493
501
|
display: flex;
|
|
494
502
|
flex: 0 0 auto;
|
|
495
503
|
align-items: center;
|
|
496
504
|
gap: 10px;
|
|
497
505
|
}
|
|
498
506
|
|
|
499
|
-
.control-room-
|
|
500
|
-
min-width: 76px;
|
|
501
|
-
color: #c3d0d8;
|
|
502
|
-
text-align: center;
|
|
503
|
-
white-space: nowrap;
|
|
504
|
-
font-size: 12px;
|
|
505
|
-
font-variant-numeric: tabular-nums;
|
|
506
|
-
}
|
|
507
|
-
|
|
508
|
-
.control-room-page-buttons {
|
|
509
|
-
display: flex;
|
|
510
|
-
flex: 0 0 auto;
|
|
511
|
-
gap: 10px;
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
.control-room-page-buttons button {
|
|
515
|
-
width: 40px;
|
|
507
|
+
.control-room-disclosure-actions button {
|
|
516
508
|
height: 40px;
|
|
517
|
-
min-width:
|
|
509
|
+
min-width: 76px;
|
|
518
510
|
min-height: 40px !important;
|
|
519
|
-
|
|
520
|
-
place-items: center;
|
|
511
|
+
padding: 0 12px;
|
|
521
512
|
border: 1px solid rgba(104,130,151,.28);
|
|
513
|
+
border-radius: 8px;
|
|
522
514
|
background: rgba(11,18,27,.88);
|
|
523
515
|
color: #a8b7c4;
|
|
516
|
+
font-size: 12px;
|
|
524
517
|
cursor: pointer;
|
|
525
518
|
}
|
|
526
519
|
|
|
527
|
-
.control-room-
|
|
528
|
-
border-radius: 8px;
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
.control-room-page-buttons button:last-child {
|
|
532
|
-
margin-left: 0;
|
|
533
|
-
border-radius: 8px;
|
|
534
|
-
}
|
|
535
|
-
|
|
536
|
-
.control-room-page-buttons button:hover:not(:disabled) {
|
|
520
|
+
.control-room-disclosure-actions button:hover:not(:disabled) {
|
|
537
521
|
border-color: rgba(89,216,255,.45);
|
|
538
522
|
color: #80e6f4;
|
|
539
523
|
}
|
|
540
524
|
|
|
541
|
-
.control-room-
|
|
525
|
+
.control-room-disclosure-actions button:disabled {
|
|
542
526
|
opacity: .36;
|
|
543
527
|
cursor: default;
|
|
544
528
|
}
|
|
545
529
|
|
|
546
|
-
#
|
|
547
|
-
#
|
|
548
|
-
min-width:
|
|
530
|
+
#controlRoomExpandAll,
|
|
531
|
+
#controlRoomCollapseAll {
|
|
532
|
+
min-width: 76px;
|
|
549
533
|
min-height: 40px !important;
|
|
550
534
|
}
|
|
551
535
|
|
|
@@ -693,6 +677,7 @@ body details.control-room-project-group > summary.control-project-header {
|
|
|
693
677
|
display: grid;
|
|
694
678
|
place-items: center;
|
|
695
679
|
color: #718597;
|
|
680
|
+
cursor: grab;
|
|
696
681
|
}
|
|
697
682
|
|
|
698
683
|
.control-project-handle::before {
|
|
@@ -803,10 +788,6 @@ body details.control-room-project-group > summary.control-project-header {
|
|
|
803
788
|
margin-top: 0;
|
|
804
789
|
}
|
|
805
790
|
|
|
806
|
-
.control-room-project-group:not([open]) .control-project-handle {
|
|
807
|
-
display: none;
|
|
808
|
-
}
|
|
809
|
-
|
|
810
791
|
.control-room-project-group:not([open]) .control-project-heading {
|
|
811
792
|
padding-left: 10px;
|
|
812
793
|
}
|
|
@@ -815,6 +796,36 @@ body details.control-room-project-group > summary.control-project-header {
|
|
|
815
796
|
display: none;
|
|
816
797
|
}
|
|
817
798
|
|
|
799
|
+
.control-room-project-group.project-sort-dragging {
|
|
800
|
+
opacity: .48;
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
.control-room-project-group[data-project-drop-edge]::after {
|
|
804
|
+
position: absolute;
|
|
805
|
+
z-index: 9;
|
|
806
|
+
right: 12px;
|
|
807
|
+
left: 12px;
|
|
808
|
+
height: 3px;
|
|
809
|
+
border-radius: 999px;
|
|
810
|
+
background: #64e2b5;
|
|
811
|
+
box-shadow: 0 0 0 3px rgba(100,226,181,.13),0 0 16px rgba(100,226,181,.55);
|
|
812
|
+
content: "";
|
|
813
|
+
pointer-events: none;
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
.control-room-project-group[data-project-drop-edge="top"]::after {
|
|
817
|
+
top: 3px;
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
.control-room-project-group[data-project-drop-edge="bottom"]::after {
|
|
821
|
+
bottom: 3px;
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
.control-project-header[draggable="true"]:active,
|
|
825
|
+
.control-room-project-group.project-sort-dragging .control-project-header {
|
|
826
|
+
cursor: grabbing;
|
|
827
|
+
}
|
|
828
|
+
|
|
818
829
|
.control-room-session {
|
|
819
830
|
--provider: #7ddcf2;
|
|
820
831
|
position: relative;
|
|
@@ -2020,7 +2031,7 @@ body details.control-room-project-group > summary.control-project-header {
|
|
|
2020
2031
|
|
|
2021
2032
|
.control-room-list-toolbar {
|
|
2022
2033
|
gap: 10px;
|
|
2023
|
-
flex-wrap:
|
|
2034
|
+
flex-wrap: wrap;
|
|
2024
2035
|
}
|
|
2025
2036
|
|
|
2026
2037
|
.control-room-toolbar-spacer,
|
|
@@ -2042,13 +2053,13 @@ body details.control-room-project-group > summary.control-project-header {
|
|
|
2042
2053
|
|
|
2043
2054
|
#controlRoomListToolbar select,
|
|
2044
2055
|
#controlRoomSearchBtn,
|
|
2045
|
-
#
|
|
2046
|
-
#
|
|
2056
|
+
#controlRoomExpandAll,
|
|
2057
|
+
#controlRoomCollapseAll {
|
|
2047
2058
|
min-height: 44px !important;
|
|
2048
2059
|
}
|
|
2049
2060
|
|
|
2050
2061
|
.control-room-search,
|
|
2051
|
-
.control-room-
|
|
2062
|
+
.control-room-disclosure-actions button {
|
|
2052
2063
|
height: 44px;
|
|
2053
2064
|
min-height: 44px !important;
|
|
2054
2065
|
}
|
|
@@ -2062,6 +2073,16 @@ body details.control-room-project-group > summary.control-project-header {
|
|
|
2062
2073
|
flex: 1 1 180px;
|
|
2063
2074
|
}
|
|
2064
2075
|
|
|
2076
|
+
.control-room-disclosure-actions {
|
|
2077
|
+
display: grid;
|
|
2078
|
+
flex: 1 1 100%;
|
|
2079
|
+
grid-template-columns: repeat(2,minmax(0,1fr));
|
|
2080
|
+
}
|
|
2081
|
+
|
|
2082
|
+
.control-room-disclosure-actions button {
|
|
2083
|
+
width: 100%;
|
|
2084
|
+
}
|
|
2085
|
+
|
|
2065
2086
|
.control-room-search button {
|
|
2066
2087
|
width: 40px;
|
|
2067
2088
|
height: 38px;
|
|
@@ -405,8 +405,7 @@
|
|
|
405
405
|
align-items: flex-start;
|
|
406
406
|
}
|
|
407
407
|
|
|
408
|
-
.chat-progress
|
|
409
|
-
.chat-turn-waiting,
|
|
408
|
+
.chat-delivery-progress,
|
|
410
409
|
.subagent-call-moment,
|
|
411
410
|
.subagent-call-event {
|
|
412
411
|
margin-left: 0;
|
|
@@ -417,6 +416,11 @@
|
|
|
417
416
|
width: 100%;
|
|
418
417
|
}
|
|
419
418
|
|
|
419
|
+
.chat-delivery-progress ol,
|
|
420
|
+
.chat-delivery-progress.phase-observed ol {
|
|
421
|
+
grid-template-columns: 1fr;
|
|
422
|
+
}
|
|
423
|
+
|
|
420
424
|
.json-object>div {
|
|
421
425
|
grid-template-columns: 1fr;
|
|
422
426
|
}
|
|
@@ -132,6 +132,19 @@ window.LoadToAgentTerminalAgentActions = function createModule(context) {
|
|
|
132
132
|
if (!support.supported) throw new Error(support.reason);
|
|
133
133
|
const cwd = String(agentSession.cwd || preferredWorkspace() || '').trim();
|
|
134
134
|
if (!cwd) throw new Error(t('terminal.agent.cwd_missing'));
|
|
135
|
+
const environment = agentSession.environment || {};
|
|
136
|
+
const tmuxPresence = (agentSession.runtimePresence || []).find(item => item.kind === 'tmux') || {};
|
|
137
|
+
const tmuxPresenceId = String(tmuxPresence.id || '');
|
|
138
|
+
const distroFromPresenceId = tmuxPresenceId.startsWith('tmux:')
|
|
139
|
+
? tmuxPresenceId.slice(5, tmuxPresenceId.lastIndexOf(':'))
|
|
140
|
+
: '';
|
|
141
|
+
const wslCwd = state.platform.id === 'win32'
|
|
142
|
+
&& (environment.kind === 'wsl' || /^\/(?:mnt|home|root|workspace)(?:\/|$)/.test(cwd));
|
|
143
|
+
const distro = wslCwd
|
|
144
|
+
? String(environment.distro || tmuxPresence.distro || distroFromPresenceId
|
|
145
|
+
|| (state.wslDistros.length === 1 ? state.wslDistros[0] : '')).trim()
|
|
146
|
+
: '';
|
|
147
|
+
if (wslCwd && !distro) throw new Error(t('terminal.agent.wsl_distro_missing'));
|
|
135
148
|
const prompt = String(draft || '').trim();
|
|
136
149
|
const title = t('terminal.agent.resume_title', {
|
|
137
150
|
provider: providerLabel(agentSession.provider),
|
|
@@ -142,6 +155,7 @@ window.LoadToAgentTerminalAgentActions = function createModule(context) {
|
|
|
142
155
|
provider: support.provider,
|
|
143
156
|
args: resumeLaunchArgs(support, sendDraft ? prompt : '', { background: options.focus === false }),
|
|
144
157
|
cwd,
|
|
158
|
+
distro,
|
|
145
159
|
bridgeId: agentSession.id,
|
|
146
160
|
title,
|
|
147
161
|
transient: options.focus === false,
|