clay-server 2.26.0-beta.8 → 2.26.0
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/lib/browser-mcp-server.js +4 -4
- package/lib/daemon.js +1 -1
- package/lib/debate-mcp-server.js +94 -0
- package/lib/mates.js +12 -24
- package/lib/project-debate.js +304 -166
- package/lib/project-mate-interaction.js +10 -5
- package/lib/project.js +128 -39
- package/lib/public/app.js +452 -127
- package/lib/public/css/debate.css +230 -2
- package/lib/public/css/filebrowser.css +41 -4
- package/lib/public/css/icon-strip.css +10 -10
- package/lib/public/css/input.css +107 -19
- package/lib/public/css/mates.css +56 -57
- package/lib/public/css/mention.css +7 -4
- package/lib/public/css/messages.css +17 -0
- package/lib/public/css/mobile-nav.css +3 -1
- package/lib/public/css/rewind.css +17 -4
- package/lib/public/index.html +23 -15
- package/lib/public/modules/context-sources.js +21 -6
- package/lib/public/modules/debate.js +298 -97
- package/lib/public/modules/input.js +18 -1
- package/lib/public/modules/mate-knowledge.js +11 -11
- package/lib/public/modules/mate-memory.js +5 -5
- package/lib/public/modules/mate-sidebar.js +13 -9
- package/lib/public/modules/mention.js +40 -2
- package/lib/public/modules/sidebar.js +105 -26
- package/lib/public/modules/terminal.js +62 -6
- package/lib/public/modules/theme.js +2 -1
- package/lib/public/modules/tools.js +47 -23
- package/lib/sdk-bridge.js +134 -21
- package/lib/sessions.js +2 -2
- package/package.json +1 -1
package/lib/public/css/mates.css
CHANGED
|
@@ -487,24 +487,24 @@
|
|
|
487
487
|
background: var(--border, #333);
|
|
488
488
|
}
|
|
489
489
|
|
|
490
|
-
/* === Mate
|
|
491
|
-
.icon-strip-user-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
right: 0;
|
|
495
|
-
width: 14px;
|
|
496
|
-
height: 14px;
|
|
497
|
-
background: var(--accent, #6c5ce7);
|
|
498
|
-
border-radius: 50%;
|
|
499
|
-
border: 2px solid var(--bg, #282a36);
|
|
500
|
-
display: flex;
|
|
501
|
-
align-items: center;
|
|
502
|
-
justify-content: center;
|
|
490
|
+
/* === Mate avatar in user strip: squircle + desaturate === */
|
|
491
|
+
.icon-strip-mate .icon-strip-user-avatar {
|
|
492
|
+
border-radius: 8px;
|
|
493
|
+
filter: saturate(0.65);
|
|
503
494
|
}
|
|
504
|
-
.icon-strip-user-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
495
|
+
.icon-strip-mate:hover .icon-strip-user-avatar,
|
|
496
|
+
.icon-strip-mate.mention-active .icon-strip-user-avatar {
|
|
497
|
+
filter: saturate(1);
|
|
498
|
+
}
|
|
499
|
+
.icon-strip-mate.active .icon-strip-user-avatar {
|
|
500
|
+
filter: saturate(1);
|
|
501
|
+
box-shadow: 0 0 0 2px var(--accent);
|
|
502
|
+
border-radius: 8px;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
/* Hide legacy bot badge (replaced by squircle shape) */
|
|
506
|
+
.icon-strip-user-mate-badge {
|
|
507
|
+
display: none;
|
|
508
508
|
}
|
|
509
509
|
|
|
510
510
|
/* Mate item in DM picker */
|
|
@@ -2342,7 +2342,9 @@ body.mate-dm-active .turn-meta {
|
|
|
2342
2342
|
========================================================================== */
|
|
2343
2343
|
|
|
2344
2344
|
/* --- Mate Thinking: flex layout matching msg-assistant --- */
|
|
2345
|
-
|
|
2345
|
+
/* Applies in both Mate DM and channel project chat */
|
|
2346
|
+
body.mate-dm-active .mate-thinking,
|
|
2347
|
+
body.wide-view .mate-thinking {
|
|
2346
2348
|
display: flex;
|
|
2347
2349
|
flex-direction: row;
|
|
2348
2350
|
align-items: flex-start;
|
|
@@ -2351,10 +2353,12 @@ body.mate-dm-active .mate-thinking {
|
|
|
2351
2353
|
margin: 0;
|
|
2352
2354
|
max-width: 100%;
|
|
2353
2355
|
}
|
|
2354
|
-
body.mate-dm-active .mate-thinking:hover
|
|
2356
|
+
body.mate-dm-active .mate-thinking:hover,
|
|
2357
|
+
body.wide-view .mate-thinking:hover {
|
|
2355
2358
|
background: var(--bg-alt);
|
|
2356
2359
|
}
|
|
2357
|
-
body.mate-dm-active .mate-thinking > .dm-bubble-avatar
|
|
2360
|
+
body.mate-dm-active .mate-thinking > .dm-bubble-avatar,
|
|
2361
|
+
body.wide-view .mate-thinking > .dm-bubble-avatar {
|
|
2358
2362
|
display: block;
|
|
2359
2363
|
width: 36px;
|
|
2360
2364
|
height: 36px;
|
|
@@ -2362,7 +2366,8 @@ body.mate-dm-active .mate-thinking > .dm-bubble-avatar {
|
|
|
2362
2366
|
flex-shrink: 0;
|
|
2363
2367
|
margin-top: 2px;
|
|
2364
2368
|
}
|
|
2365
|
-
body.mate-dm-active .mate-thinking > .dm-bubble-content
|
|
2369
|
+
body.mate-dm-active .mate-thinking > .dm-bubble-content,
|
|
2370
|
+
body.wide-view .mate-thinking > .dm-bubble-content {
|
|
2366
2371
|
flex: 1;
|
|
2367
2372
|
min-width: 0;
|
|
2368
2373
|
}
|
|
@@ -2373,7 +2378,8 @@ body.mate-dm-active .mate-thinking > .dm-bubble-content {
|
|
|
2373
2378
|
gap: 4px;
|
|
2374
2379
|
padding: 4px 0;
|
|
2375
2380
|
}
|
|
2376
|
-
body.mate-dm-active .mate-thinking:not(.done) .mate-thinking-row
|
|
2381
|
+
body.mate-dm-active .mate-thinking:not(.done) .mate-thinking-row,
|
|
2382
|
+
body.wide-view .mate-thinking:not(.done) .mate-thinking-row {
|
|
2377
2383
|
display: flex;
|
|
2378
2384
|
}
|
|
2379
2385
|
.mate-thinking-dots {
|
|
@@ -2400,10 +2406,16 @@ body.mate-dm-active .mate-thinking:not(.done) .mate-thinking-row {
|
|
|
2400
2406
|
}
|
|
2401
2407
|
|
|
2402
2408
|
/* When done, hide mate row (JS does this too), show compact expandable header */
|
|
2403
|
-
body.mate-dm-active .mate-thinking.done .mate-thinking-row
|
|
2409
|
+
body.mate-dm-active .mate-thinking.done .mate-thinking-row,
|
|
2410
|
+
body.wide-view .mate-thinking.done .mate-thinking-row {
|
|
2404
2411
|
display: none;
|
|
2405
2412
|
}
|
|
2406
|
-
body.mate-dm-active .mate-thinking.done .thinking-
|
|
2413
|
+
body.mate-dm-active .mate-thinking.done .mate-thinking-activity,
|
|
2414
|
+
body.wide-view .mate-thinking.done .mate-thinking-activity {
|
|
2415
|
+
display: none;
|
|
2416
|
+
}
|
|
2417
|
+
body.mate-dm-active .mate-thinking.done .thinking-header,
|
|
2418
|
+
body.wide-view .mate-thinking.done .thinking-header {
|
|
2407
2419
|
display: inline-flex !important;
|
|
2408
2420
|
font-size: 12px;
|
|
2409
2421
|
padding: 4px 10px;
|
|
@@ -2412,16 +2424,19 @@ body.mate-dm-active .mate-thinking.done .thinking-header {
|
|
|
2412
2424
|
opacity: 0.7;
|
|
2413
2425
|
transition: opacity 0.15s;
|
|
2414
2426
|
}
|
|
2415
|
-
body.mate-dm-active .mate-thinking.done .thinking-header:hover
|
|
2427
|
+
body.mate-dm-active .mate-thinking.done .thinking-header:hover,
|
|
2428
|
+
body.wide-view .mate-thinking.done .thinking-header:hover {
|
|
2416
2429
|
opacity: 1;
|
|
2417
2430
|
background: rgba(var(--overlay-rgb), 0.08);
|
|
2418
2431
|
}
|
|
2419
|
-
body.mate-dm-active .mate-thinking .thinking-content
|
|
2432
|
+
body.mate-dm-active .mate-thinking .thinking-content,
|
|
2433
|
+
body.wide-view .mate-thinking .thinking-content {
|
|
2420
2434
|
max-height: 0;
|
|
2421
2435
|
overflow: hidden;
|
|
2422
2436
|
transition: max-height 0.25s ease;
|
|
2423
2437
|
}
|
|
2424
|
-
body.mate-dm-active .mate-thinking.expanded .thinking-content
|
|
2438
|
+
body.mate-dm-active .mate-thinking.expanded .thinking-content,
|
|
2439
|
+
body.wide-view .mate-thinking.expanded .thinking-content {
|
|
2425
2440
|
max-height: 2000px;
|
|
2426
2441
|
}
|
|
2427
2442
|
|
|
@@ -2476,8 +2491,10 @@ body.mate-dm-active .mate-tool-group .tool-name {
|
|
|
2476
2491
|
color: var(--text-muted);
|
|
2477
2492
|
}
|
|
2478
2493
|
|
|
2479
|
-
/* ---
|
|
2480
|
-
|
|
2494
|
+
/* --- Conversational Permission: flex layout matching msg-assistant --- */
|
|
2495
|
+
/* Applies in both Mate DM and channel project chat */
|
|
2496
|
+
body.mate-dm-active .mate-permission,
|
|
2497
|
+
body.wide-view .mate-permission {
|
|
2481
2498
|
display: flex;
|
|
2482
2499
|
flex-direction: row;
|
|
2483
2500
|
align-items: flex-start;
|
|
@@ -2490,10 +2507,12 @@ body.mate-dm-active .mate-permission {
|
|
|
2490
2507
|
margin: 0;
|
|
2491
2508
|
max-width: 100%;
|
|
2492
2509
|
}
|
|
2493
|
-
body.mate-dm-active .mate-permission:hover
|
|
2510
|
+
body.mate-dm-active .mate-permission:hover,
|
|
2511
|
+
body.wide-view .mate-permission:hover {
|
|
2494
2512
|
background: var(--bg-alt);
|
|
2495
2513
|
}
|
|
2496
|
-
body.mate-dm-active .mate-permission > .dm-bubble-avatar
|
|
2514
|
+
body.mate-dm-active .mate-permission > .dm-bubble-avatar,
|
|
2515
|
+
body.wide-view .mate-permission > .dm-bubble-avatar {
|
|
2497
2516
|
display: block;
|
|
2498
2517
|
width: 36px;
|
|
2499
2518
|
height: 36px;
|
|
@@ -2501,7 +2520,8 @@ body.mate-dm-active .mate-permission > .dm-bubble-avatar {
|
|
|
2501
2520
|
flex-shrink: 0;
|
|
2502
2521
|
margin-top: 2px;
|
|
2503
2522
|
}
|
|
2504
|
-
body.mate-dm-active .mate-permission > .dm-bubble-content
|
|
2523
|
+
body.mate-dm-active .mate-permission > .dm-bubble-content,
|
|
2524
|
+
body.wide-view .mate-permission > .dm-bubble-content {
|
|
2505
2525
|
flex: 1;
|
|
2506
2526
|
min-width: 0;
|
|
2507
2527
|
}
|
|
@@ -2569,14 +2589,14 @@ body.mate-dm-active .mate-permission > .dm-bubble-content {
|
|
|
2569
2589
|
.mate-permission-deny {
|
|
2570
2590
|
color: var(--text-muted);
|
|
2571
2591
|
}
|
|
2572
|
-
/* Resolved state */
|
|
2573
|
-
|
|
2592
|
+
/* Resolved state (works in both Mate DM and channel project chat) */
|
|
2593
|
+
.mate-permission.resolved .mate-permission-actions {
|
|
2574
2594
|
pointer-events: none;
|
|
2575
2595
|
}
|
|
2576
|
-
|
|
2596
|
+
.mate-permission.resolved .mate-permission-reply {
|
|
2577
2597
|
display: none;
|
|
2578
2598
|
}
|
|
2579
|
-
|
|
2599
|
+
.mate-permission.resolved .permission-decision-label {
|
|
2580
2600
|
font-size: 12px;
|
|
2581
2601
|
color: var(--text-dimmer);
|
|
2582
2602
|
}
|
|
@@ -2732,27 +2752,6 @@ body.mate-dm-active .activity-inline:not(.mention-activity-bar):not(.mate-pre-ac
|
|
|
2732
2752
|
-webkit-tap-highlight-color: transparent;
|
|
2733
2753
|
}
|
|
2734
2754
|
|
|
2735
|
-
.mate-mobile-back {
|
|
2736
|
-
display: flex;
|
|
2737
|
-
align-items: center;
|
|
2738
|
-
justify-content: center;
|
|
2739
|
-
width: 44px;
|
|
2740
|
-
height: 44px;
|
|
2741
|
-
flex-shrink: 0;
|
|
2742
|
-
background: none;
|
|
2743
|
-
border: none;
|
|
2744
|
-
color: #fff;
|
|
2745
|
-
cursor: pointer;
|
|
2746
|
-
padding: 0;
|
|
2747
|
-
touch-action: manipulation;
|
|
2748
|
-
-webkit-tap-highlight-color: transparent;
|
|
2749
|
-
}
|
|
2750
|
-
|
|
2751
|
-
.mate-mobile-back svg {
|
|
2752
|
-
width: 22px;
|
|
2753
|
-
height: 22px;
|
|
2754
|
-
}
|
|
2755
|
-
|
|
2756
2755
|
.mate-mobile-avatar {
|
|
2757
2756
|
width: 32px;
|
|
2758
2757
|
height: 32px;
|
|
@@ -107,8 +107,8 @@
|
|
|
107
107
|
padding: 3px 6px 3px 4px;
|
|
108
108
|
margin: 0 0 4px 0;
|
|
109
109
|
border-radius: 6px;
|
|
110
|
-
background: color-mix(in srgb, var(--chip-color, #6c5ce7)
|
|
111
|
-
border: 1px solid color-mix(in srgb, var(--chip-color, #6c5ce7)
|
|
110
|
+
background: color-mix(in srgb, var(--chip-color, #6c5ce7) 15%, var(--bg-alt));
|
|
111
|
+
border: 1px solid color-mix(in srgb, var(--chip-color, #6c5ce7) 30%, var(--border));
|
|
112
112
|
cursor: default;
|
|
113
113
|
flex-shrink: 0;
|
|
114
114
|
width: fit-content;
|
|
@@ -131,19 +131,22 @@
|
|
|
131
131
|
font-size: 13px;
|
|
132
132
|
font-weight: 600;
|
|
133
133
|
white-space: nowrap;
|
|
134
|
+
line-height: 18px;
|
|
134
135
|
}
|
|
135
136
|
|
|
136
137
|
.input-mention-chip-remove {
|
|
137
138
|
background: none;
|
|
138
139
|
border: none;
|
|
139
|
-
padding: 0
|
|
140
|
+
padding: 0;
|
|
140
141
|
margin: 0;
|
|
141
142
|
cursor: pointer;
|
|
142
143
|
font-size: 15px;
|
|
143
|
-
line-height:
|
|
144
|
+
line-height: 18px;
|
|
144
145
|
color: var(--text-dimmer);
|
|
145
146
|
opacity: 0.6;
|
|
146
147
|
transition: opacity 0.1s;
|
|
148
|
+
display: flex;
|
|
149
|
+
align-items: center;
|
|
147
150
|
}
|
|
148
151
|
|
|
149
152
|
.input-mention-chip-remove:hover {
|
|
@@ -1798,6 +1798,23 @@ body.wide-view .msg-assistant:hover {
|
|
|
1798
1798
|
background: var(--bg-alt);
|
|
1799
1799
|
}
|
|
1800
1800
|
|
|
1801
|
+
/* Grouped messages: same sender within same minute, hide avatar + header */
|
|
1802
|
+
body.wide-view .msg-user.grouped > .dm-bubble-avatar,
|
|
1803
|
+
body.wide-view .msg-assistant.grouped > .dm-bubble-avatar,
|
|
1804
|
+
body.mate-dm-active .msg-assistant.grouped > .dm-bubble-avatar {
|
|
1805
|
+
visibility: hidden;
|
|
1806
|
+
}
|
|
1807
|
+
body.wide-view .msg-user.grouped .dm-bubble-header,
|
|
1808
|
+
body.wide-view .msg-assistant.grouped .dm-bubble-header,
|
|
1809
|
+
body.mate-dm-active .msg-assistant.grouped .dm-bubble-header {
|
|
1810
|
+
display: none;
|
|
1811
|
+
}
|
|
1812
|
+
body.wide-view .msg-user.grouped,
|
|
1813
|
+
body.wide-view .msg-assistant.grouped,
|
|
1814
|
+
body.mate-dm-active .msg-assistant.grouped {
|
|
1815
|
+
padding-top: 1px;
|
|
1816
|
+
}
|
|
1817
|
+
|
|
1801
1818
|
body.wide-view .msg-user {
|
|
1802
1819
|
justify-content: flex-start;
|
|
1803
1820
|
}
|
|
@@ -342,7 +342,6 @@
|
|
|
342
342
|
margin-bottom: 4px;
|
|
343
343
|
background: none;
|
|
344
344
|
border: none;
|
|
345
|
-
border-bottom: 1px solid var(--border-subtle);
|
|
346
345
|
color: var(--accent);
|
|
347
346
|
font-family: "Pretendard", system-ui, sans-serif;
|
|
348
347
|
font-size: 15px;
|
|
@@ -351,6 +350,9 @@
|
|
|
351
350
|
text-align: left;
|
|
352
351
|
-webkit-tap-highlight-color: transparent;
|
|
353
352
|
}
|
|
353
|
+
.mobile-session-new:last-of-type {
|
|
354
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
355
|
+
}
|
|
354
356
|
|
|
355
357
|
.mobile-session-new:active {
|
|
356
358
|
background: rgba(var(--overlay-rgb), 0.06);
|
|
@@ -197,8 +197,13 @@
|
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
.context-card-header .context-card-icon {
|
|
200
|
-
font-size: 13px;
|
|
201
200
|
opacity: 0.7;
|
|
201
|
+
display: inline-flex;
|
|
202
|
+
align-items: center;
|
|
203
|
+
}
|
|
204
|
+
.context-card-header .context-card-icon .lucide {
|
|
205
|
+
width: 14px;
|
|
206
|
+
height: 14px;
|
|
202
207
|
}
|
|
203
208
|
|
|
204
209
|
.context-card-screenshot {
|
|
@@ -226,10 +231,16 @@
|
|
|
226
231
|
|
|
227
232
|
.context-card-meta {
|
|
228
233
|
display: flex;
|
|
229
|
-
|
|
230
|
-
align-items: baseline;
|
|
234
|
+
align-items: center;
|
|
231
235
|
margin-top: 8px;
|
|
232
|
-
gap:
|
|
236
|
+
gap: 6px;
|
|
237
|
+
}
|
|
238
|
+
.context-card-favicon {
|
|
239
|
+
width: 14px;
|
|
240
|
+
height: 14px;
|
|
241
|
+
border-radius: 2px;
|
|
242
|
+
flex-shrink: 0;
|
|
243
|
+
object-fit: contain;
|
|
233
244
|
}
|
|
234
245
|
|
|
235
246
|
.context-card-title {
|
|
@@ -240,6 +251,8 @@
|
|
|
240
251
|
text-overflow: ellipsis;
|
|
241
252
|
flex: 1;
|
|
242
253
|
min-width: 0;
|
|
254
|
+
flex: 1;
|
|
255
|
+
min-width: 0;
|
|
243
256
|
}
|
|
244
257
|
|
|
245
258
|
.context-card-domain {
|
package/lib/public/index.html
CHANGED
|
@@ -256,11 +256,11 @@
|
|
|
256
256
|
<button id="mate-sticky-notes-btn"><i data-lucide="sticky-note"></i> <span>Sticky Notes</span></button>
|
|
257
257
|
<button id="mate-skills-btn"><i data-lucide="puzzle"></i> <span>Skills</span></button>
|
|
258
258
|
<button id="mate-scheduler-btn"><i data-lucide="calendar-clock"></i> <span>Scheduled Tasks</span></button>
|
|
259
|
-
<button id="mate-debate-btn"><i data-lucide="mic"></i> <span>Debate</span></button>
|
|
260
259
|
</div>
|
|
261
260
|
<div id="mate-sidebar-conversations">
|
|
262
261
|
<div class="mate-sidebar-sessions-header">
|
|
263
262
|
<span>Conversations</span>
|
|
263
|
+
<button id="mate-debate-btn" class="mate-debate-pill" title="New Debate"><i data-lucide="mic"></i> Debate</button>
|
|
264
264
|
<div class="mate-sidebar-actions">
|
|
265
265
|
<button id="mate-search-session-btn" type="button" title="Search sessions"><i data-lucide="search"></i></button>
|
|
266
266
|
<button id="mate-new-session-btn" type="button" title="New session"><i data-lucide="plus"></i></button>
|
|
@@ -332,7 +332,6 @@
|
|
|
332
332
|
<button id="header-info-btn" type="button" title="Session info"><i data-lucide="info"></i></button>
|
|
333
333
|
<button id="header-rename-btn" type="button" title="Rename session"><i data-lucide="pencil"></i></button>
|
|
334
334
|
<div id="mate-mobile-title" class="mate-mobile-title hidden">
|
|
335
|
-
<button id="mate-mobile-back" class="mate-mobile-back" type="button" aria-label="Back"><i data-lucide="chevron-left"></i></button>
|
|
336
335
|
<img id="mate-mobile-avatar" class="mate-mobile-avatar" alt="">
|
|
337
336
|
<span id="mate-mobile-name" class="mate-mobile-name"></span>
|
|
338
337
|
</div>
|
|
@@ -1507,30 +1506,38 @@
|
|
|
1507
1506
|
</div>
|
|
1508
1507
|
</div>
|
|
1509
1508
|
|
|
1510
|
-
<!-- Debate Modal -->
|
|
1509
|
+
<!-- Debate Modal (Wizard) -->
|
|
1511
1510
|
<div id="debate-modal" class="hidden">
|
|
1512
1511
|
<div class="debate-modal-backdrop"></div>
|
|
1513
1512
|
<div class="debate-modal-card">
|
|
1514
1513
|
<div class="debate-modal-header">
|
|
1515
1514
|
<span><i data-lucide="mic"></i> New Debate</span>
|
|
1515
|
+
<div class="debate-wizard-steps">
|
|
1516
|
+
<span class="debate-step-dot active" data-step="0"></span>
|
|
1517
|
+
<span class="debate-step-dot" data-step="1"></span>
|
|
1518
|
+
</div>
|
|
1516
1519
|
<button id="debate-modal-close">×</button>
|
|
1517
1520
|
</div>
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
<
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
</label>
|
|
1521
|
+
<!-- Step 0: Topic -->
|
|
1522
|
+
<div class="debate-wizard-page active" data-step="0">
|
|
1523
|
+
<div class="debate-modal-body">
|
|
1524
|
+
<label class="debate-field-label" for="debate-topic-input">Topic <span class="debate-field-req">*</span></label>
|
|
1525
|
+
<textarea id="debate-topic-input" rows="2" placeholder="e.g. Should AI development be regulated?"></textarea>
|
|
1526
|
+
</div>
|
|
1527
|
+
</div>
|
|
1528
|
+
<!-- Step 1: Panelists -->
|
|
1529
|
+
<div class="debate-wizard-page" data-step="1">
|
|
1530
|
+
<div class="debate-modal-body">
|
|
1531
|
+
<label class="debate-field-label" for="debate-panel-list">Select panelists</label>
|
|
1532
|
+
<div id="debate-panel-list" class="debate-panel-list"></div>
|
|
1529
1533
|
</div>
|
|
1530
1534
|
</div>
|
|
1531
1535
|
<div class="debate-modal-footer">
|
|
1532
1536
|
<button id="debate-modal-cancel" class="debate-btn-cancel">Cancel</button>
|
|
1533
|
-
<button id="debate-modal-
|
|
1537
|
+
<button id="debate-modal-back" class="debate-btn-back hidden">Back</button>
|
|
1538
|
+
<button id="debate-modal-quick" class="debate-btn-quick hidden">Quick Start</button>
|
|
1539
|
+
<button id="debate-modal-next" class="debate-btn-next hidden">Choose Panel</button>
|
|
1540
|
+
<button id="debate-modal-start" class="debate-btn-start hidden">Design Debate</button>
|
|
1534
1541
|
</div>
|
|
1535
1542
|
</div>
|
|
1536
1543
|
</div>
|
|
@@ -2033,6 +2040,7 @@
|
|
|
2033
2040
|
<script src="https://cdn.jsdelivr.net/npm/@xterm/xterm@5/lib/xterm.min.js"></script>
|
|
2034
2041
|
<script src="https://cdn.jsdelivr.net/npm/@xterm/addon-fit@0/lib/addon-fit.min.js"></script>
|
|
2035
2042
|
<script src="https://cdn.jsdelivr.net/npm/@xterm/addon-web-links@0/lib/addon-web-links.min.js"></script>
|
|
2043
|
+
<script src="https://cdn.jsdelivr.net/npm/@xterm/addon-webgl@0/lib/addon-webgl.min.js"></script>
|
|
2036
2044
|
<script type="module" src="app.js"></script>
|
|
2037
2045
|
<div id="pwa-install-modal" class="pwa-modal hidden">
|
|
2038
2046
|
<div class="pwa-modal-backdrop"></div>
|
|
@@ -223,12 +223,27 @@ function renderPicker() {
|
|
|
223
223
|
var tabSection = document.getElementById("context-picker-tabs");
|
|
224
224
|
tabSection.innerHTML = "";
|
|
225
225
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
226
|
+
var tabLabel = document.createElement("div");
|
|
227
|
+
tabLabel.className = "context-picker-section-label";
|
|
228
|
+
tabLabel.textContent = "Browser Tabs";
|
|
229
|
+
tabSection.appendChild(tabLabel);
|
|
230
|
+
|
|
231
|
+
if (browserTabList.length === 0) {
|
|
232
|
+
// Extension not connected: show notice with setup button
|
|
233
|
+
var notice = document.createElement("div");
|
|
234
|
+
notice.className = "context-picker-ext-notice";
|
|
235
|
+
notice.innerHTML =
|
|
236
|
+
'<span class="context-picker-ext-notice-text">Chrome extension required to access browser tabs.</span>' +
|
|
237
|
+
'<button class="context-picker-ext-btn" type="button"><i data-lucide="puzzle"></i> Setup Extension</button>';
|
|
238
|
+
var setupBtn = notice.querySelector(".context-picker-ext-btn");
|
|
239
|
+
setupBtn.addEventListener("click", function (e) {
|
|
240
|
+
e.stopPropagation();
|
|
241
|
+
closePicker();
|
|
242
|
+
var extPill = document.getElementById("ext-pill");
|
|
243
|
+
if (extPill) extPill.click();
|
|
244
|
+
});
|
|
245
|
+
tabSection.appendChild(notice);
|
|
246
|
+
} else {
|
|
232
247
|
for (var j = 0; j < browserTabList.length; j++) {
|
|
233
248
|
var tab = browserTabList[j];
|
|
234
249
|
var tabSourceId = "tab:" + tab.id;
|