@luckydraw/cumulus 0.17.0 → 0.18.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webchat.d.ts","sourceRoot":"","sources":["../../../src/gateway/adapters/webchat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAM7B,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"webchat.d.ts","sourceRoot":"","sources":["../../../src/gateway/adapters/webchat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAM7B,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAU9B,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CACpB,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,CAAC,CAC1E,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAsGD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CA4BT;AAID;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,oBAAoB,GAC3B,oBAAoB,CAmJtB"}
|
|
@@ -10,6 +10,8 @@ import * as path from 'path';
|
|
|
10
10
|
import { fileURLToPath } from 'url';
|
|
11
11
|
import { WebSocketServer } from 'ws';
|
|
12
12
|
import { sendMessage, getOrCreateThread, } from '../../lib/gateway.js';
|
|
13
|
+
import { listAlwaysIncludeFiles, addAlwaysIncludeFile, removeAlwaysIncludeFile, } from '../../lib/config.js';
|
|
14
|
+
import { executeRevert } from '../../lib/revert.js';
|
|
13
15
|
// ─── Rate limiting ───────────────────────────────────────────────────────────
|
|
14
16
|
const RATE_LIMIT_WINDOW = 60_000; // 1 minute
|
|
15
17
|
const RATE_LIMIT_MAX = 20; // messages per window
|
|
@@ -134,6 +136,31 @@ export function createWebChatAdapter(config) {
|
|
|
134
136
|
await handleCreateThread(ws, data);
|
|
135
137
|
return;
|
|
136
138
|
}
|
|
139
|
+
// Handle include list
|
|
140
|
+
if (data.type === 'include_list') {
|
|
141
|
+
await handleIncludeList(ws, data);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// Handle include add
|
|
145
|
+
if (data.type === 'include_add') {
|
|
146
|
+
await handleIncludeAdd(ws, data);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
// Handle include remove
|
|
150
|
+
if (data.type === 'include_remove') {
|
|
151
|
+
await handleIncludeRemove(ws, data);
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
// Handle revert list
|
|
155
|
+
if (data.type === 'revert_list') {
|
|
156
|
+
await handleRevertList(ws, data);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
// Handle revert execute
|
|
160
|
+
if (data.type === 'revert_execute') {
|
|
161
|
+
await handleRevertExecute(ws, data);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
137
164
|
// Handle chat message
|
|
138
165
|
if (data.type === 'message') {
|
|
139
166
|
// Rate limit
|
|
@@ -179,6 +206,7 @@ async function handleHistory(ws, data) {
|
|
|
179
206
|
const limit = Math.min(data.limit || 50, 200);
|
|
180
207
|
const slice = all.slice(-limit);
|
|
181
208
|
const messages = slice.map((m) => ({
|
|
209
|
+
id: m.id,
|
|
182
210
|
role: m.role,
|
|
183
211
|
content: m.content,
|
|
184
212
|
timestamp: m.timestamp,
|
|
@@ -258,6 +286,135 @@ async function handleCreateThread(ws, data) {
|
|
|
258
286
|
});
|
|
259
287
|
}
|
|
260
288
|
}
|
|
289
|
+
async function handleIncludeList(ws, data) {
|
|
290
|
+
try {
|
|
291
|
+
const result = await listAlwaysIncludeFiles(data.threadName);
|
|
292
|
+
const files = [
|
|
293
|
+
...result.global.map((p) => ({ path: p, scope: 'global' })),
|
|
294
|
+
...result.thread.map((p) => ({ path: p, scope: 'thread' })),
|
|
295
|
+
];
|
|
296
|
+
wsSend(ws, { type: 'include_list', threadName: data.threadName, files });
|
|
297
|
+
}
|
|
298
|
+
catch (err) {
|
|
299
|
+
wsSend(ws, {
|
|
300
|
+
type: 'error',
|
|
301
|
+
error: `Failed to list include files: ${err instanceof Error ? err.message : String(err)}`,
|
|
302
|
+
threadName: data.threadName,
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
async function handleIncludeAdd(ws, data) {
|
|
307
|
+
try {
|
|
308
|
+
if (!data.filePath) {
|
|
309
|
+
wsSend(ws, { type: 'error', error: 'Missing filePath', threadName: data.threadName });
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
const threadName = data.scope === 'global' ? undefined : data.threadName;
|
|
313
|
+
await addAlwaysIncludeFile(data.filePath, threadName);
|
|
314
|
+
// Return updated list
|
|
315
|
+
await handleIncludeList(ws, { type: 'include_list', threadName: data.threadName });
|
|
316
|
+
wsSend(ws, {
|
|
317
|
+
type: 'include_added',
|
|
318
|
+
threadName: data.threadName,
|
|
319
|
+
filePath: data.filePath,
|
|
320
|
+
scope: data.scope || 'thread',
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
catch (err) {
|
|
324
|
+
wsSend(ws, {
|
|
325
|
+
type: 'error',
|
|
326
|
+
error: `Failed to add include file: ${err instanceof Error ? err.message : String(err)}`,
|
|
327
|
+
threadName: data.threadName,
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
async function handleIncludeRemove(ws, data) {
|
|
332
|
+
try {
|
|
333
|
+
if (!data.filePath) {
|
|
334
|
+
wsSend(ws, { type: 'error', error: 'Missing filePath', threadName: data.threadName });
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
// Try removing from thread first, then global
|
|
338
|
+
try {
|
|
339
|
+
await removeAlwaysIncludeFile(data.filePath, data.threadName);
|
|
340
|
+
}
|
|
341
|
+
catch {
|
|
342
|
+
await removeAlwaysIncludeFile(data.filePath, undefined);
|
|
343
|
+
}
|
|
344
|
+
// Return updated list
|
|
345
|
+
await handleIncludeList(ws, { type: 'include_list', threadName: data.threadName });
|
|
346
|
+
wsSend(ws, {
|
|
347
|
+
type: 'include_removed',
|
|
348
|
+
threadName: data.threadName,
|
|
349
|
+
filePath: data.filePath,
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
catch (err) {
|
|
353
|
+
wsSend(ws, {
|
|
354
|
+
type: 'error',
|
|
355
|
+
error: `Failed to remove include file: ${err instanceof Error ? err.message : String(err)}`,
|
|
356
|
+
threadName: data.threadName,
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
async function handleRevertList(ws, data) {
|
|
361
|
+
try {
|
|
362
|
+
const thread = await getOrCreateThread(data.threadName);
|
|
363
|
+
const all = await thread.history.getAll();
|
|
364
|
+
// Build turn pairs (user + assistant) for the revert UI
|
|
365
|
+
const turns = [];
|
|
366
|
+
let turnIndex = 0;
|
|
367
|
+
for (let i = 0; i < all.length; i++) {
|
|
368
|
+
const msg = all[i];
|
|
369
|
+
if (msg.role === 'user') {
|
|
370
|
+
turnIndex++;
|
|
371
|
+
const preview = msg.content.slice(0, 80).replace(/\n/g, ' ');
|
|
372
|
+
turns.push({
|
|
373
|
+
index: turnIndex,
|
|
374
|
+
userMessageId: msg.id,
|
|
375
|
+
preview,
|
|
376
|
+
timestamp: msg.timestamp,
|
|
377
|
+
hasGitSnapshot: !!msg.metadata?.gitSnapshot,
|
|
378
|
+
messageCount: all.length - i, // messages that would be removed
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
// Newest first
|
|
383
|
+
turns.reverse();
|
|
384
|
+
wsSend(ws, { type: 'revert_list', threadName: data.threadName, turns });
|
|
385
|
+
}
|
|
386
|
+
catch (err) {
|
|
387
|
+
wsSend(ws, {
|
|
388
|
+
type: 'error',
|
|
389
|
+
error: `Failed to list turns: ${err instanceof Error ? err.message : String(err)}`,
|
|
390
|
+
threadName: data.threadName,
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
async function handleRevertExecute(ws, data) {
|
|
395
|
+
try {
|
|
396
|
+
if (!data.targetMessageId) {
|
|
397
|
+
wsSend(ws, { type: 'error', error: 'Missing targetMessageId', threadName: data.threadName });
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
const thread = await getOrCreateThread(data.threadName);
|
|
401
|
+
const result = await executeRevert(thread.history, data.targetMessageId);
|
|
402
|
+
wsSend(ws, {
|
|
403
|
+
type: 'revert_done',
|
|
404
|
+
threadName: data.threadName,
|
|
405
|
+
success: result.success,
|
|
406
|
+
removedCount: result.removedCount,
|
|
407
|
+
error: result.error,
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
catch (err) {
|
|
411
|
+
wsSend(ws, {
|
|
412
|
+
type: 'error',
|
|
413
|
+
error: `Failed to revert: ${err instanceof Error ? err.message : String(err)}`,
|
|
414
|
+
threadName: data.threadName,
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
}
|
|
261
418
|
async function handleChatMessage(ws, data, pipelineOpts) {
|
|
262
419
|
const { threadName, message, images } = data;
|
|
263
420
|
if (!threadName || !message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webchat.js","sourceRoot":"","sources":["../../../src/gateway/adapters/webchat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"webchat.js","sourceRoot":"","sources":["../../../src/gateway/adapters/webchat.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
|
6
6
|
<title>Cumulus Chat</title>
|
|
7
7
|
<style>
|
|
8
8
|
html, body {
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
' box-shadow: 0 10px 36px rgba(0,0,0,0.55);',
|
|
82
82
|
'}',
|
|
83
83
|
'.cumulus-panel.standalone {',
|
|
84
|
-
' width: 100%; height: 100vh;',
|
|
84
|
+
' width: 100%; height: 100vh; height: 100dvh;',
|
|
85
85
|
' border: none; border-radius: 0;',
|
|
86
86
|
'}',
|
|
87
87
|
|
|
@@ -426,7 +426,7 @@
|
|
|
426
426
|
/* ── Standalone layout ── */
|
|
427
427
|
'.cumulus-standalone-root {',
|
|
428
428
|
' display: flex; flex-direction: row;',
|
|
429
|
-
' width: 100%; height: 100vh;',
|
|
429
|
+
' width: 100%; height: 100vh; height: 100dvh;',
|
|
430
430
|
' background: #1e1e1e; overflow: hidden;',
|
|
431
431
|
'}',
|
|
432
432
|
|
|
@@ -574,6 +574,237 @@
|
|
|
574
574
|
'}',
|
|
575
575
|
'.cumulus-topbar-title { font-weight: 600; font-size: 15px; color: #e0e0e0; }',
|
|
576
576
|
'.cumulus-topbar-right { display: flex; align-items: center; gap: 10px; }',
|
|
577
|
+
|
|
578
|
+
/* ── Panel header action buttons ── */
|
|
579
|
+
'.cumulus-panel-actions { display: flex; align-items: center; gap: 4px; margin-left: auto; margin-right: 8px; }',
|
|
580
|
+
'.cumulus-panel-action-btn {',
|
|
581
|
+
' background: none; border: 1px solid transparent; color: #777;',
|
|
582
|
+
' cursor: pointer; font-size: 11px; padding: 2px 7px;',
|
|
583
|
+
' border-radius: 3px; font-family: inherit; white-space: nowrap;',
|
|
584
|
+
'}',
|
|
585
|
+
'.cumulus-panel-action-btn:hover { color: #ddd; border-color: #555; }',
|
|
586
|
+
|
|
587
|
+
/* ── Overlay (covers the thread panel) ── */
|
|
588
|
+
'.cumulus-overlay {',
|
|
589
|
+
' position: absolute; top: 0; left: 0; right: 0; bottom: 0;',
|
|
590
|
+
' background: #1e1e1e; z-index: 10;',
|
|
591
|
+
' display: flex; flex-direction: column;',
|
|
592
|
+
' overflow: hidden;',
|
|
593
|
+
'}',
|
|
594
|
+
'.cumulus-overlay-header {',
|
|
595
|
+
' display: flex; align-items: center; justify-content: space-between;',
|
|
596
|
+
' padding: 0 0.85em; height: 40px;',
|
|
597
|
+
' background: #2d2d2d; border-bottom: 1px solid #3a3a3a;',
|
|
598
|
+
' flex-shrink: 0;',
|
|
599
|
+
'}',
|
|
600
|
+
'.cumulus-overlay-title { font-weight: 600; font-size: 14px; color: #e0e0e0; }',
|
|
601
|
+
'.cumulus-overlay-close {',
|
|
602
|
+
' background: none; border: none; color: #666; cursor: pointer;',
|
|
603
|
+
' font-size: 18px; padding: 2px 4px; line-height: 1;',
|
|
604
|
+
'}',
|
|
605
|
+
'.cumulus-overlay-close:hover { color: #e0e0e0; }',
|
|
606
|
+
'.cumulus-overlay-body {',
|
|
607
|
+
' flex: 1; overflow-y: auto; padding: 0.75em;',
|
|
608
|
+
'}',
|
|
609
|
+
'.cumulus-overlay-footer {',
|
|
610
|
+
' padding: 0.6em 0.85em; background: #2d2d2d;',
|
|
611
|
+
' border-top: 1px solid #3a3a3a; flex-shrink: 0;',
|
|
612
|
+
'}',
|
|
613
|
+
|
|
614
|
+
/* ── Include list items ── */
|
|
615
|
+
'.cumulus-include-item {',
|
|
616
|
+
' display: flex; align-items: center; justify-content: space-between;',
|
|
617
|
+
' padding: 0.45em 0.6em; border-radius: 4px;',
|
|
618
|
+
' border: 1px solid #333; margin-bottom: 0.35em;',
|
|
619
|
+
'}',
|
|
620
|
+
'.cumulus-include-item:hover { border-color: #555; }',
|
|
621
|
+
'.cumulus-include-path {',
|
|
622
|
+
' font-family: "SF Mono", Consolas, monospace; font-size: 0.85em;',
|
|
623
|
+
' color: #ccc; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1;',
|
|
624
|
+
'}',
|
|
625
|
+
'.cumulus-include-scope {',
|
|
626
|
+
' font-size: 0.75em; color: #888; background: #2a2a2a;',
|
|
627
|
+
' border: 1px solid #3a3a3a; border-radius: 3px;',
|
|
628
|
+
' padding: 1px 6px; margin-left: 8px; flex-shrink: 0;',
|
|
629
|
+
'}',
|
|
630
|
+
'.cumulus-include-remove {',
|
|
631
|
+
' background: none; border: none; color: #666; cursor: pointer;',
|
|
632
|
+
' font-size: 16px; padding: 0 4px; margin-left: 6px; flex-shrink: 0;',
|
|
633
|
+
'}',
|
|
634
|
+
'.cumulus-include-remove:hover { color: #ef4444; }',
|
|
635
|
+
|
|
636
|
+
/* ── Include add row ── */
|
|
637
|
+
'.cumulus-include-add-row {',
|
|
638
|
+
' display: flex; gap: 6px; align-items: center;',
|
|
639
|
+
'}',
|
|
640
|
+
'.cumulus-include-add-input {',
|
|
641
|
+
' flex: 1; background: #1e1e1e; border: 1px solid #3a3a3a;',
|
|
642
|
+
' color: #e0e0e0; padding: 0.4em 0.6em; border-radius: 4px;',
|
|
643
|
+
' font-family: "SF Mono", Consolas, monospace; font-size: 0.85em;',
|
|
644
|
+
' outline: none;',
|
|
645
|
+
'}',
|
|
646
|
+
'.cumulus-include-add-input:focus { border-color: #0066cc; }',
|
|
647
|
+
'.cumulus-include-add-input::placeholder { color: #555; }',
|
|
648
|
+
'.cumulus-scope-toggle {',
|
|
649
|
+
' background: #2a2a2a; border: 1px solid #3a3a3a; color: #aaa;',
|
|
650
|
+
' padding: 0.35em 0.6em; border-radius: 4px; cursor: pointer;',
|
|
651
|
+
' font-size: 0.8em; white-space: nowrap;',
|
|
652
|
+
'}',
|
|
653
|
+
'.cumulus-scope-toggle:hover { border-color: #555; color: #ddd; }',
|
|
654
|
+
'.cumulus-include-add-btn {',
|
|
655
|
+
' background: #0066cc; border: none; color: white;',
|
|
656
|
+
' padding: 0.4em 0.8em; border-radius: 4px; cursor: pointer;',
|
|
657
|
+
' font-size: 0.85em; white-space: nowrap;',
|
|
658
|
+
'}',
|
|
659
|
+
'.cumulus-include-add-btn:hover { background: #0077ee; }',
|
|
660
|
+
|
|
661
|
+
/* ── Revert turn items ── */
|
|
662
|
+
'.cumulus-revert-item {',
|
|
663
|
+
' display: flex; align-items: center; gap: 0.6em;',
|
|
664
|
+
' padding: 0.55em 0.6em; border-radius: 4px;',
|
|
665
|
+
' border: 1px solid #333; margin-bottom: 0.35em; cursor: pointer;',
|
|
666
|
+
'}',
|
|
667
|
+
'.cumulus-revert-item:hover { border-color: #555; background: #252525; }',
|
|
668
|
+
'.cumulus-revert-turn-num {',
|
|
669
|
+
' font-size: 0.8em; color: #888; background: #2a2a2a;',
|
|
670
|
+
' border: 1px solid #3a3a3a; border-radius: 3px;',
|
|
671
|
+
' padding: 1px 6px; flex-shrink: 0; min-width: 3em; text-align: center;',
|
|
672
|
+
'}',
|
|
673
|
+
'.cumulus-revert-preview {',
|
|
674
|
+
' flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;',
|
|
675
|
+
' color: #ccc; font-size: 0.9em;',
|
|
676
|
+
'}',
|
|
677
|
+
'.cumulus-revert-time {',
|
|
678
|
+
' font-size: 0.75em; color: #666; flex-shrink: 0;',
|
|
679
|
+
'}',
|
|
680
|
+
'.cumulus-revert-git-badge {',
|
|
681
|
+
' font-size: 0.7em; color: #22c55e; background: rgba(34,197,94,0.1);',
|
|
682
|
+
' border: 1px solid rgba(34,197,94,0.3); border-radius: 3px;',
|
|
683
|
+
' padding: 0 5px; flex-shrink: 0;',
|
|
684
|
+
'}',
|
|
685
|
+
|
|
686
|
+
/* ── Revert confirm panel ── */
|
|
687
|
+
'.cumulus-revert-confirm {',
|
|
688
|
+
' padding: 1.5em; display: flex; flex-direction: column;',
|
|
689
|
+
' align-items: center; gap: 1em; text-align: center;',
|
|
690
|
+
'}',
|
|
691
|
+
'.cumulus-revert-confirm-text { color: #ccc; font-size: 0.95em; }',
|
|
692
|
+
'.cumulus-revert-confirm-warn { color: #f59e0b; font-size: 0.85em; }',
|
|
693
|
+
'.cumulus-revert-confirm-actions { display: flex; gap: 8px; }',
|
|
694
|
+
'.cumulus-revert-confirm-btn {',
|
|
695
|
+
' padding: 0.4em 1.2em; border-radius: 4px; cursor: pointer;',
|
|
696
|
+
' font-size: 0.9em; border: 1px solid #3a3a3a;',
|
|
697
|
+
'}',
|
|
698
|
+
'.cumulus-revert-confirm-btn.danger {',
|
|
699
|
+
' background: #8b2222; border-color: #a33; color: white;',
|
|
700
|
+
'}',
|
|
701
|
+
'.cumulus-revert-confirm-btn.danger:hover { background: #a33; }',
|
|
702
|
+
'.cumulus-revert-confirm-btn.cancel {',
|
|
703
|
+
' background: #2a2a2a; color: #ccc;',
|
|
704
|
+
'}',
|
|
705
|
+
'.cumulus-revert-confirm-btn.cancel:hover { background: #3a3a3a; }',
|
|
706
|
+
|
|
707
|
+
/* ── Status message ── */
|
|
708
|
+
'.cumulus-overlay-status {',
|
|
709
|
+
' padding: 0.4em 0.6em; font-size: 0.85em; border-radius: 4px;',
|
|
710
|
+
' margin-top: 0.5em; text-align: center;',
|
|
711
|
+
'}',
|
|
712
|
+
'.cumulus-overlay-status.success { color: #22c55e; background: rgba(34,197,94,0.1); }',
|
|
713
|
+
'.cumulus-overlay-status.error { color: #ef4444; background: rgba(239,68,68,0.1); }',
|
|
714
|
+
|
|
715
|
+
/* ── Empty overlay state ── */
|
|
716
|
+
'.cumulus-overlay-empty {',
|
|
717
|
+
' color: #555; font-size: 0.9em; text-align: center; padding: 2em;',
|
|
718
|
+
'}',
|
|
719
|
+
|
|
720
|
+
/* ── Hamburger toggle (hidden on desktop) ── */
|
|
721
|
+
'.cumulus-sidebar-toggle {',
|
|
722
|
+
' display: none;',
|
|
723
|
+
' background: none; border: none; color: #ccc;',
|
|
724
|
+
' font-size: 22px; padding: 4px 8px; cursor: pointer; line-height: 1;',
|
|
725
|
+
'}',
|
|
726
|
+
'.cumulus-sidebar-toggle:hover { color: #fff; }',
|
|
727
|
+
|
|
728
|
+
/* ── Sidebar backdrop (mobile overlay) ── */
|
|
729
|
+
'.cumulus-sidebar-backdrop {',
|
|
730
|
+
' display: none;',
|
|
731
|
+
' position: fixed; top: 0; left: 0; right: 0; bottom: 0;',
|
|
732
|
+
' background: rgba(0,0,0,0.5); z-index: 99;',
|
|
733
|
+
'}',
|
|
734
|
+
|
|
735
|
+
/* ── Mobile responsive ── */
|
|
736
|
+
'@media (max-width: 768px) {',
|
|
737
|
+
|
|
738
|
+
/* Show hamburger */
|
|
739
|
+
' .cumulus-sidebar-toggle { display: flex; align-items: center; }',
|
|
740
|
+
|
|
741
|
+
/* Sidebar becomes a slide-over drawer */
|
|
742
|
+
' .cumulus-sidebar {',
|
|
743
|
+
' position: fixed; top: 0; left: 0; bottom: 0;',
|
|
744
|
+
' width: 280px; z-index: 100;',
|
|
745
|
+
' transform: translateX(-100%);',
|
|
746
|
+
' transition: transform 0.2s ease;',
|
|
747
|
+
' border-right: 1px solid #333;',
|
|
748
|
+
' }',
|
|
749
|
+
' .cumulus-sidebar.open {',
|
|
750
|
+
' transform: translateX(0);',
|
|
751
|
+
' }',
|
|
752
|
+
' .cumulus-sidebar-backdrop.open {',
|
|
753
|
+
' display: block;',
|
|
754
|
+
' }',
|
|
755
|
+
|
|
756
|
+
/* Bigger touch targets for thread items */
|
|
757
|
+
' .cumulus-thread-item {',
|
|
758
|
+
' padding: 12px 14px; font-size: 15px; min-height: 44px;',
|
|
759
|
+
' }',
|
|
760
|
+
' .cumulus-new-thread-btn { padding: 12px 10px; font-size: 15px; min-height: 44px; }',
|
|
761
|
+
' .cumulus-new-thread-input { padding: 12px 10px; font-size: 15px; min-height: 44px; }',
|
|
762
|
+
' .cumulus-sidebar-footer { padding: 10px; }',
|
|
763
|
+
|
|
764
|
+
/* Force single panel (no side-by-side) */
|
|
765
|
+
' .cumulus-content-area { flex-direction: column; }',
|
|
766
|
+
' .cumulus-thread-panel { border-left: none; border-top: 1px solid #333; }',
|
|
767
|
+
' .cumulus-thread-panel:first-child { border-top: none; }',
|
|
768
|
+
|
|
769
|
+
/* Full-width message content */
|
|
770
|
+
' .cumulus-msg-row { max-width: 100%; }',
|
|
771
|
+
' .cumulus-input-row { max-width: 100%; }',
|
|
772
|
+
' .cumulus-attach-strip { max-width: 100%; }',
|
|
773
|
+
|
|
774
|
+
/* Slightly larger base text for readability */
|
|
775
|
+
' .cumulus-messages { padding: 1em 0.65em; gap: 1.2em; }',
|
|
776
|
+
' .cumulus-input-area { padding: 0.5em 0.65em 0.6em; }',
|
|
777
|
+
|
|
778
|
+
/* User bubble can be wider on mobile */
|
|
779
|
+
' .cumulus-msg.user { max-width: 85%; }',
|
|
780
|
+
|
|
781
|
+
/* Tables scroll horizontally */
|
|
782
|
+
' .cumulus-msg table { display: block; overflow-x: auto; white-space: nowrap; }',
|
|
783
|
+
|
|
784
|
+
/* Code blocks: ensure horizontal scroll works */
|
|
785
|
+
' .code-block-wrapper pre { font-size: 0.85em; }',
|
|
786
|
+
|
|
787
|
+
/* Auth panel full-width */
|
|
788
|
+
' .cumulus-auth { padding: 2em 1.2em; }',
|
|
789
|
+
' .cumulus-auth-input { max-width: 100%; }',
|
|
790
|
+
|
|
791
|
+
/* Overlay footer inputs stack better */
|
|
792
|
+
' .cumulus-include-add-row { flex-wrap: wrap; }',
|
|
793
|
+
' .cumulus-include-add-input { min-width: 0; }',
|
|
794
|
+
|
|
795
|
+
/* Topbar: tighter on mobile */
|
|
796
|
+
' .cumulus-topbar { padding: 0 10px; }',
|
|
797
|
+
' .cumulus-topbar-title { font-size: 14px; }',
|
|
798
|
+
|
|
799
|
+
/* Panel header: allow wrapping of action buttons */
|
|
800
|
+
' .cumulus-panel-actions { gap: 2px; }',
|
|
801
|
+
' .cumulus-panel-action-btn { font-size: 10px; padding: 2px 5px; }',
|
|
802
|
+
|
|
803
|
+
/* Empty state hint: no cmd+click on mobile */
|
|
804
|
+
' .cumulus-standalone-empty-hint { display: none; }',
|
|
805
|
+
|
|
806
|
+
'}',
|
|
807
|
+
|
|
577
808
|
].join('\n');
|
|
578
809
|
|
|
579
810
|
// ─── HTML Escaping ───────────────────────────────────────────────────────────
|
|
@@ -1491,12 +1722,13 @@
|
|
|
1491
1722
|
|
|
1492
1723
|
// App layout — shown after auth
|
|
1493
1724
|
var appLayout = document.createElement('div');
|
|
1494
|
-
appLayout.style.cssText = 'display:none; flex-direction:column; width:100%; height:100vh; overflow:hidden;';
|
|
1725
|
+
appLayout.style.cssText = 'display:none; flex-direction:column; width:100%; height:100vh; height:100dvh; overflow:hidden;';
|
|
1495
1726
|
|
|
1496
1727
|
// Top bar
|
|
1497
1728
|
var topbar = document.createElement('div');
|
|
1498
1729
|
topbar.className = 'cumulus-topbar';
|
|
1499
1730
|
topbar.innerHTML =
|
|
1731
|
+
'<button class="cumulus-sidebar-toggle" data-testid="webchat-sidebar-toggle" aria-label="Toggle sidebar">☰</button>' +
|
|
1500
1732
|
'<span class="cumulus-topbar-title">Cumulus</span>' +
|
|
1501
1733
|
'<div class="cumulus-topbar-right">' +
|
|
1502
1734
|
'<span class="cumulus-header-status">' +
|
|
@@ -1550,10 +1782,38 @@
|
|
|
1550
1782
|
var contentArea = document.createElement('div');
|
|
1551
1783
|
contentArea.className = 'cumulus-content-area';
|
|
1552
1784
|
|
|
1785
|
+
// Sidebar backdrop (mobile overlay)
|
|
1786
|
+
var sidebarBackdrop = document.createElement('div');
|
|
1787
|
+
sidebarBackdrop.className = 'cumulus-sidebar-backdrop';
|
|
1788
|
+
sidebarBackdrop.setAttribute('data-testid', 'webchat-sidebar-backdrop');
|
|
1789
|
+
|
|
1790
|
+
appRow.appendChild(sidebarBackdrop);
|
|
1553
1791
|
appRow.appendChild(sidebar);
|
|
1554
1792
|
appRow.appendChild(contentArea);
|
|
1555
1793
|
appLayout.appendChild(appRow);
|
|
1556
1794
|
|
|
1795
|
+
// ── Mobile sidebar toggle ──
|
|
1796
|
+
var isMobile = function () { return window.innerWidth <= 768; };
|
|
1797
|
+
|
|
1798
|
+
function openSidebar() {
|
|
1799
|
+
sidebar.classList.add('open');
|
|
1800
|
+
sidebarBackdrop.classList.add('open');
|
|
1801
|
+
}
|
|
1802
|
+
function closeSidebar() {
|
|
1803
|
+
sidebar.classList.remove('open');
|
|
1804
|
+
sidebarBackdrop.classList.remove('open');
|
|
1805
|
+
}
|
|
1806
|
+
|
|
1807
|
+
sidebarBackdrop.addEventListener('click', closeSidebar);
|
|
1808
|
+
|
|
1809
|
+
var toggleBtn = topbar.querySelector('[data-testid="webchat-sidebar-toggle"]');
|
|
1810
|
+
if (toggleBtn) {
|
|
1811
|
+
toggleBtn.addEventListener('click', function () {
|
|
1812
|
+
if (sidebar.classList.contains('open')) closeSidebar();
|
|
1813
|
+
else openSidebar();
|
|
1814
|
+
});
|
|
1815
|
+
}
|
|
1816
|
+
|
|
1557
1817
|
standaloneRoot.appendChild(authWrapper);
|
|
1558
1818
|
standaloneRoot.appendChild(appLayout);
|
|
1559
1819
|
container.appendChild(standaloneRoot);
|
|
@@ -1700,9 +1960,15 @@
|
|
|
1700
1960
|
renderSidebar();
|
|
1701
1961
|
renderContentArea();
|
|
1702
1962
|
loadThreadHistoryIfNeeded(name);
|
|
1963
|
+
if (isMobile()) closeSidebar();
|
|
1703
1964
|
}
|
|
1704
1965
|
|
|
1705
1966
|
function togglePanelThread(name) {
|
|
1967
|
+
// On mobile, always solo (no side-by-side)
|
|
1968
|
+
if (isMobile()) {
|
|
1969
|
+
soloThread(name);
|
|
1970
|
+
return;
|
|
1971
|
+
}
|
|
1706
1972
|
var idx = visibleThreads.indexOf(name);
|
|
1707
1973
|
if (idx !== -1) {
|
|
1708
1974
|
// Remove from visible
|
|
@@ -1774,6 +2040,7 @@
|
|
|
1774
2040
|
|
|
1775
2041
|
var panel = document.createElement('div');
|
|
1776
2042
|
panel.className = 'cumulus-thread-panel';
|
|
2043
|
+
panel.style.position = 'relative'; // for overlay positioning
|
|
1777
2044
|
panel.setAttribute('data-testid', 'webchat-panel-' + threadName);
|
|
1778
2045
|
panel.setAttribute('data-thread-panel', threadName);
|
|
1779
2046
|
|
|
@@ -1797,6 +2064,32 @@
|
|
|
1797
2064
|
|
|
1798
2065
|
panelHeader.appendChild(titleLeft);
|
|
1799
2066
|
|
|
2067
|
+
// Action buttons (include + revert)
|
|
2068
|
+
var actions = document.createElement('div');
|
|
2069
|
+
actions.className = 'cumulus-panel-actions';
|
|
2070
|
+
|
|
2071
|
+
var includeBtn = document.createElement('button');
|
|
2072
|
+
includeBtn.className = 'cumulus-panel-action-btn';
|
|
2073
|
+
includeBtn.setAttribute('data-testid', 'webchat-include-btn');
|
|
2074
|
+
includeBtn.setAttribute('title', 'Manage always-include files');
|
|
2075
|
+
includeBtn.textContent = '/include';
|
|
2076
|
+
includeBtn.addEventListener('click', function () {
|
|
2077
|
+
openIncludeOverlay(panel, threadName);
|
|
2078
|
+
});
|
|
2079
|
+
actions.appendChild(includeBtn);
|
|
2080
|
+
|
|
2081
|
+
var revertBtn = document.createElement('button');
|
|
2082
|
+
revertBtn.className = 'cumulus-panel-action-btn';
|
|
2083
|
+
revertBtn.setAttribute('data-testid', 'webchat-revert-btn');
|
|
2084
|
+
revertBtn.setAttribute('title', 'Revert conversation to earlier point');
|
|
2085
|
+
revertBtn.textContent = '/revert';
|
|
2086
|
+
revertBtn.addEventListener('click', function () {
|
|
2087
|
+
openRevertOverlay(panel, threadName);
|
|
2088
|
+
});
|
|
2089
|
+
actions.appendChild(revertBtn);
|
|
2090
|
+
|
|
2091
|
+
panelHeader.appendChild(actions);
|
|
2092
|
+
|
|
1800
2093
|
var closeBtn = document.createElement('button');
|
|
1801
2094
|
closeBtn.className = 'cumulus-thread-panel-close';
|
|
1802
2095
|
closeBtn.setAttribute('data-testid', 'webchat-panel-close');
|
|
@@ -2142,6 +2435,272 @@
|
|
|
2142
2435
|
}
|
|
2143
2436
|
}
|
|
2144
2437
|
|
|
2438
|
+
// ── Include overlay ──
|
|
2439
|
+
function openIncludeOverlay(panel, threadName) {
|
|
2440
|
+
// Remove existing overlay if any
|
|
2441
|
+
var existing = panel.querySelector('.cumulus-overlay');
|
|
2442
|
+
if (existing) { existing.remove(); return; }
|
|
2443
|
+
|
|
2444
|
+
var overlay = document.createElement('div');
|
|
2445
|
+
overlay.className = 'cumulus-overlay';
|
|
2446
|
+
|
|
2447
|
+
var header = document.createElement('div');
|
|
2448
|
+
header.className = 'cumulus-overlay-header';
|
|
2449
|
+
var title = document.createElement('span');
|
|
2450
|
+
title.className = 'cumulus-overlay-title';
|
|
2451
|
+
title.textContent = 'Always-Include Files';
|
|
2452
|
+
header.appendChild(title);
|
|
2453
|
+
var closeBtn = document.createElement('button');
|
|
2454
|
+
closeBtn.className = 'cumulus-overlay-close';
|
|
2455
|
+
closeBtn.textContent = '\xD7';
|
|
2456
|
+
closeBtn.addEventListener('click', function () { overlay.remove(); });
|
|
2457
|
+
header.appendChild(closeBtn);
|
|
2458
|
+
overlay.appendChild(header);
|
|
2459
|
+
|
|
2460
|
+
var body = document.createElement('div');
|
|
2461
|
+
body.className = 'cumulus-overlay-body';
|
|
2462
|
+
body.innerHTML = '<div class="cumulus-overlay-empty">Loading\u2026</div>';
|
|
2463
|
+
overlay.appendChild(body);
|
|
2464
|
+
|
|
2465
|
+
// Footer with add input
|
|
2466
|
+
var footer = document.createElement('div');
|
|
2467
|
+
footer.className = 'cumulus-overlay-footer';
|
|
2468
|
+
var addRow = document.createElement('div');
|
|
2469
|
+
addRow.className = 'cumulus-include-add-row';
|
|
2470
|
+
|
|
2471
|
+
var addInput = document.createElement('input');
|
|
2472
|
+
addInput.className = 'cumulus-include-add-input';
|
|
2473
|
+
addInput.setAttribute('placeholder', '/path/to/file');
|
|
2474
|
+
addInput.setAttribute('data-testid', 'webchat-include-add-input');
|
|
2475
|
+
|
|
2476
|
+
var currentScope = 'thread';
|
|
2477
|
+
var scopeBtn = document.createElement('button');
|
|
2478
|
+
scopeBtn.className = 'cumulus-scope-toggle';
|
|
2479
|
+
scopeBtn.textContent = 'thread';
|
|
2480
|
+
scopeBtn.setAttribute('data-testid', 'webchat-include-scope-toggle');
|
|
2481
|
+
scopeBtn.addEventListener('click', function () {
|
|
2482
|
+
currentScope = currentScope === 'thread' ? 'global' : 'thread';
|
|
2483
|
+
scopeBtn.textContent = currentScope;
|
|
2484
|
+
});
|
|
2485
|
+
|
|
2486
|
+
var addBtn = document.createElement('button');
|
|
2487
|
+
addBtn.className = 'cumulus-include-add-btn';
|
|
2488
|
+
addBtn.textContent = 'Add';
|
|
2489
|
+
addBtn.setAttribute('data-testid', 'webchat-include-add-btn');
|
|
2490
|
+
addBtn.addEventListener('click', function () {
|
|
2491
|
+
var filePath = addInput.value.trim();
|
|
2492
|
+
if (!filePath) return;
|
|
2493
|
+
connection && connection.send(JSON.stringify({
|
|
2494
|
+
type: 'include_add', threadName: threadName,
|
|
2495
|
+
filePath: filePath, scope: currentScope,
|
|
2496
|
+
}));
|
|
2497
|
+
addInput.value = '';
|
|
2498
|
+
});
|
|
2499
|
+
|
|
2500
|
+
addInput.addEventListener('keydown', function (e) {
|
|
2501
|
+
if (e.key === 'Enter') { addBtn.click(); }
|
|
2502
|
+
});
|
|
2503
|
+
|
|
2504
|
+
addRow.appendChild(addInput);
|
|
2505
|
+
addRow.appendChild(scopeBtn);
|
|
2506
|
+
addRow.appendChild(addBtn);
|
|
2507
|
+
footer.appendChild(addRow);
|
|
2508
|
+
overlay.appendChild(footer);
|
|
2509
|
+
|
|
2510
|
+
// Store references for the message handler to update
|
|
2511
|
+
overlay._includeBody = body;
|
|
2512
|
+
overlay._threadName = threadName;
|
|
2513
|
+
|
|
2514
|
+
panel.appendChild(overlay);
|
|
2515
|
+
|
|
2516
|
+
// Request the list
|
|
2517
|
+
connection && connection.send(JSON.stringify({ type: 'include_list', threadName: threadName }));
|
|
2518
|
+
}
|
|
2519
|
+
|
|
2520
|
+
function renderIncludeList(panel, threadName, files) {
|
|
2521
|
+
var overlay = panel.querySelector('.cumulus-overlay');
|
|
2522
|
+
if (!overlay || overlay._threadName !== threadName) return;
|
|
2523
|
+
var body = overlay._includeBody;
|
|
2524
|
+
if (!body) return;
|
|
2525
|
+
|
|
2526
|
+
body.innerHTML = '';
|
|
2527
|
+
if (files.length === 0) {
|
|
2528
|
+
body.innerHTML = '<div class="cumulus-overlay-empty">No always-include files configured.</div>';
|
|
2529
|
+
return;
|
|
2530
|
+
}
|
|
2531
|
+
|
|
2532
|
+
files.forEach(function (f) {
|
|
2533
|
+
var item = document.createElement('div');
|
|
2534
|
+
item.className = 'cumulus-include-item';
|
|
2535
|
+
|
|
2536
|
+
var pathEl = document.createElement('span');
|
|
2537
|
+
pathEl.className = 'cumulus-include-path';
|
|
2538
|
+
pathEl.textContent = f.path;
|
|
2539
|
+
pathEl.setAttribute('title', f.path);
|
|
2540
|
+
item.appendChild(pathEl);
|
|
2541
|
+
|
|
2542
|
+
var scopeEl = document.createElement('span');
|
|
2543
|
+
scopeEl.className = 'cumulus-include-scope';
|
|
2544
|
+
scopeEl.textContent = f.scope;
|
|
2545
|
+
item.appendChild(scopeEl);
|
|
2546
|
+
|
|
2547
|
+
var removeBtn = document.createElement('button');
|
|
2548
|
+
removeBtn.className = 'cumulus-include-remove';
|
|
2549
|
+
removeBtn.textContent = '\xD7';
|
|
2550
|
+
removeBtn.setAttribute('title', 'Remove');
|
|
2551
|
+
removeBtn.addEventListener('click', function () {
|
|
2552
|
+
connection && connection.send(JSON.stringify({
|
|
2553
|
+
type: 'include_remove', threadName: threadName, filePath: f.path,
|
|
2554
|
+
}));
|
|
2555
|
+
});
|
|
2556
|
+
item.appendChild(removeBtn);
|
|
2557
|
+
|
|
2558
|
+
body.appendChild(item);
|
|
2559
|
+
});
|
|
2560
|
+
}
|
|
2561
|
+
|
|
2562
|
+
// ── Revert overlay ──
|
|
2563
|
+
function openRevertOverlay(panel, threadName) {
|
|
2564
|
+
var existing = panel.querySelector('.cumulus-overlay');
|
|
2565
|
+
if (existing) { existing.remove(); return; }
|
|
2566
|
+
|
|
2567
|
+
var overlay = document.createElement('div');
|
|
2568
|
+
overlay.className = 'cumulus-overlay';
|
|
2569
|
+
|
|
2570
|
+
var header = document.createElement('div');
|
|
2571
|
+
header.className = 'cumulus-overlay-header';
|
|
2572
|
+
var title = document.createElement('span');
|
|
2573
|
+
title.className = 'cumulus-overlay-title';
|
|
2574
|
+
title.textContent = 'Revert Conversation';
|
|
2575
|
+
header.appendChild(title);
|
|
2576
|
+
var closeBtn = document.createElement('button');
|
|
2577
|
+
closeBtn.className = 'cumulus-overlay-close';
|
|
2578
|
+
closeBtn.textContent = '\xD7';
|
|
2579
|
+
closeBtn.addEventListener('click', function () { overlay.remove(); });
|
|
2580
|
+
header.appendChild(closeBtn);
|
|
2581
|
+
overlay.appendChild(header);
|
|
2582
|
+
|
|
2583
|
+
var body = document.createElement('div');
|
|
2584
|
+
body.className = 'cumulus-overlay-body';
|
|
2585
|
+
body.innerHTML = '<div class="cumulus-overlay-empty">Loading\u2026</div>';
|
|
2586
|
+
overlay.appendChild(body);
|
|
2587
|
+
|
|
2588
|
+
overlay._revertBody = body;
|
|
2589
|
+
overlay._threadName = threadName;
|
|
2590
|
+
|
|
2591
|
+
panel.appendChild(overlay);
|
|
2592
|
+
|
|
2593
|
+
// Request the turn list
|
|
2594
|
+
connection && connection.send(JSON.stringify({ type: 'revert_list', threadName: threadName }));
|
|
2595
|
+
}
|
|
2596
|
+
|
|
2597
|
+
function renderRevertList(panel, threadName, turns) {
|
|
2598
|
+
var overlay = panel.querySelector('.cumulus-overlay');
|
|
2599
|
+
if (!overlay || overlay._threadName !== threadName) return;
|
|
2600
|
+
var body = overlay._revertBody;
|
|
2601
|
+
if (!body) return;
|
|
2602
|
+
|
|
2603
|
+
body.innerHTML = '';
|
|
2604
|
+
if (turns.length === 0) {
|
|
2605
|
+
body.innerHTML = '<div class="cumulus-overlay-empty">No turns to revert to.</div>';
|
|
2606
|
+
return;
|
|
2607
|
+
}
|
|
2608
|
+
|
|
2609
|
+
// Skip the first turn (most recent) — nothing to revert to
|
|
2610
|
+
var revertableTurns = turns.length > 1 ? turns.slice(1) : turns;
|
|
2611
|
+
|
|
2612
|
+
revertableTurns.forEach(function (turn) {
|
|
2613
|
+
var item = document.createElement('div');
|
|
2614
|
+
item.className = 'cumulus-revert-item';
|
|
2615
|
+
item.setAttribute('data-testid', 'webchat-revert-turn');
|
|
2616
|
+
|
|
2617
|
+
var numEl = document.createElement('span');
|
|
2618
|
+
numEl.className = 'cumulus-revert-turn-num';
|
|
2619
|
+
numEl.textContent = '#' + turn.index;
|
|
2620
|
+
item.appendChild(numEl);
|
|
2621
|
+
|
|
2622
|
+
var previewEl = document.createElement('span');
|
|
2623
|
+
previewEl.className = 'cumulus-revert-preview';
|
|
2624
|
+
previewEl.textContent = turn.preview;
|
|
2625
|
+
item.appendChild(previewEl);
|
|
2626
|
+
|
|
2627
|
+
if (turn.hasGitSnapshot) {
|
|
2628
|
+
var gitBadge = document.createElement('span');
|
|
2629
|
+
gitBadge.className = 'cumulus-revert-git-badge';
|
|
2630
|
+
gitBadge.textContent = 'git';
|
|
2631
|
+
item.appendChild(gitBadge);
|
|
2632
|
+
}
|
|
2633
|
+
|
|
2634
|
+
var timeEl = document.createElement('span');
|
|
2635
|
+
timeEl.className = 'cumulus-revert-time';
|
|
2636
|
+
timeEl.textContent = formatTime(turn.timestamp);
|
|
2637
|
+
item.appendChild(timeEl);
|
|
2638
|
+
|
|
2639
|
+
item.addEventListener('click', function () {
|
|
2640
|
+
showRevertConfirm(overlay, threadName, turn);
|
|
2641
|
+
});
|
|
2642
|
+
|
|
2643
|
+
body.appendChild(item);
|
|
2644
|
+
});
|
|
2645
|
+
}
|
|
2646
|
+
|
|
2647
|
+
function showRevertConfirm(overlay, threadName, turn) {
|
|
2648
|
+
var body = overlay._revertBody;
|
|
2649
|
+
if (!body) return;
|
|
2650
|
+
|
|
2651
|
+
body.innerHTML = '';
|
|
2652
|
+
var confirm = document.createElement('div');
|
|
2653
|
+
confirm.className = 'cumulus-revert-confirm';
|
|
2654
|
+
|
|
2655
|
+
var text = document.createElement('div');
|
|
2656
|
+
text.className = 'cumulus-revert-confirm-text';
|
|
2657
|
+
text.textContent = 'Revert to after turn #' + turn.index + '?';
|
|
2658
|
+
confirm.appendChild(text);
|
|
2659
|
+
|
|
2660
|
+
var warn = document.createElement('div');
|
|
2661
|
+
warn.className = 'cumulus-revert-confirm-warn';
|
|
2662
|
+
warn.textContent = turn.messageCount + ' message(s) will be removed. This cannot be undone.';
|
|
2663
|
+
confirm.appendChild(warn);
|
|
2664
|
+
|
|
2665
|
+
var actions = document.createElement('div');
|
|
2666
|
+
actions.className = 'cumulus-revert-confirm-actions';
|
|
2667
|
+
|
|
2668
|
+
var cancelBtn = document.createElement('button');
|
|
2669
|
+
cancelBtn.className = 'cumulus-revert-confirm-btn cancel';
|
|
2670
|
+
cancelBtn.textContent = 'Cancel';
|
|
2671
|
+
cancelBtn.addEventListener('click', function () {
|
|
2672
|
+
// Re-request list
|
|
2673
|
+
connection && connection.send(JSON.stringify({ type: 'revert_list', threadName: threadName }));
|
|
2674
|
+
});
|
|
2675
|
+
actions.appendChild(cancelBtn);
|
|
2676
|
+
|
|
2677
|
+
var revertBtn = document.createElement('button');
|
|
2678
|
+
revertBtn.className = 'cumulus-revert-confirm-btn danger';
|
|
2679
|
+
revertBtn.setAttribute('data-testid', 'webchat-revert-confirm');
|
|
2680
|
+
revertBtn.textContent = 'Revert';
|
|
2681
|
+
revertBtn.addEventListener('click', function () {
|
|
2682
|
+
revertBtn.disabled = true;
|
|
2683
|
+
revertBtn.textContent = 'Reverting\u2026';
|
|
2684
|
+
connection && connection.send(JSON.stringify({
|
|
2685
|
+
type: 'revert_execute', threadName: threadName,
|
|
2686
|
+
targetMessageId: turn.userMessageId,
|
|
2687
|
+
}));
|
|
2688
|
+
});
|
|
2689
|
+
actions.appendChild(revertBtn);
|
|
2690
|
+
|
|
2691
|
+
confirm.appendChild(actions);
|
|
2692
|
+
body.appendChild(confirm);
|
|
2693
|
+
}
|
|
2694
|
+
|
|
2695
|
+
function formatTime(ts) {
|
|
2696
|
+
var d = new Date(typeof ts === 'number' ? ts : Date.parse(ts));
|
|
2697
|
+
var h = d.getHours();
|
|
2698
|
+
var m = d.getMinutes();
|
|
2699
|
+
var ampm = h >= 12 ? 'PM' : 'AM';
|
|
2700
|
+
h = h % 12 || 12;
|
|
2701
|
+
return h + ':' + (m < 10 ? '0' : '') + m + ' ' + ampm;
|
|
2702
|
+
}
|
|
2703
|
+
|
|
2145
2704
|
// ── Message router ──
|
|
2146
2705
|
function handleServerMessage(data) {
|
|
2147
2706
|
switch (data.type) {
|
|
@@ -2187,7 +2746,7 @@
|
|
|
2187
2746
|
var state = getThreadState(data.threadName);
|
|
2188
2747
|
if (data.messages && data.messages.length > 0) {
|
|
2189
2748
|
state.messages = data.messages.map(function (m) {
|
|
2190
|
-
return { role: m.role, content: m.content };
|
|
2749
|
+
return { id: m.id, role: m.role, content: m.content };
|
|
2191
2750
|
});
|
|
2192
2751
|
}
|
|
2193
2752
|
refreshThreadPanel(data.threadName);
|
|
@@ -2249,6 +2808,52 @@
|
|
|
2249
2808
|
refreshThreadPanel(data.threadName);
|
|
2250
2809
|
}
|
|
2251
2810
|
break;
|
|
2811
|
+
|
|
2812
|
+
// ── Include/Revert responses ──
|
|
2813
|
+
case 'include_list':
|
|
2814
|
+
if (data.threadName && data.files) {
|
|
2815
|
+
var panel = document.querySelector('[data-thread-panel="' + data.threadName + '"]');
|
|
2816
|
+
if (panel) renderIncludeList(panel, data.threadName, data.files);
|
|
2817
|
+
}
|
|
2818
|
+
break;
|
|
2819
|
+
|
|
2820
|
+
case 'include_added':
|
|
2821
|
+
case 'include_removed':
|
|
2822
|
+
// List already updated by the handler — no extra action needed
|
|
2823
|
+
break;
|
|
2824
|
+
|
|
2825
|
+
case 'revert_list':
|
|
2826
|
+
if (data.threadName && data.turns) {
|
|
2827
|
+
var panel = document.querySelector('[data-thread-panel="' + data.threadName + '"]');
|
|
2828
|
+
if (panel) renderRevertList(panel, data.threadName, data.turns);
|
|
2829
|
+
}
|
|
2830
|
+
break;
|
|
2831
|
+
|
|
2832
|
+
case 'revert_done':
|
|
2833
|
+
if (data.threadName) {
|
|
2834
|
+
var panel = document.querySelector('[data-thread-panel="' + data.threadName + '"]');
|
|
2835
|
+
if (panel) {
|
|
2836
|
+
var overlay = panel.querySelector('.cumulus-overlay');
|
|
2837
|
+
if (data.success) {
|
|
2838
|
+
// Reload history and close overlay
|
|
2839
|
+
var tState = getThreadState(data.threadName);
|
|
2840
|
+
tState.messages = [];
|
|
2841
|
+
tState.historyLoaded = false;
|
|
2842
|
+
// Re-request history
|
|
2843
|
+
connection && connection.send(JSON.stringify({
|
|
2844
|
+
type: 'history', threadName: data.threadName, limit: 200,
|
|
2845
|
+
}));
|
|
2846
|
+
if (overlay) overlay.remove();
|
|
2847
|
+
} else {
|
|
2848
|
+
// Show error in overlay
|
|
2849
|
+
if (overlay && overlay._revertBody) {
|
|
2850
|
+
overlay._revertBody.innerHTML = '<div class="cumulus-overlay-status error">' +
|
|
2851
|
+
escapeHtml(data.error || 'Revert failed') + '</div>';
|
|
2852
|
+
}
|
|
2853
|
+
}
|
|
2854
|
+
}
|
|
2855
|
+
}
|
|
2856
|
+
break;
|
|
2252
2857
|
}
|
|
2253
2858
|
}
|
|
2254
2859
|
|