@luckydraw/cumulus 0.27.18 → 0.27.21
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/dist/gateway/adapters/webchat.d.ts.map +1 -1
- package/dist/gateway/adapters/webchat.js +21 -0
- package/dist/gateway/adapters/webchat.js.map +1 -1
- package/dist/gateway/config.d.ts +7 -0
- package/dist/gateway/config.d.ts.map +1 -1
- package/dist/gateway/config.js +13 -0
- package/dist/gateway/config.js.map +1 -1
- package/dist/gateway/daemon.js +26 -0
- package/dist/gateway/daemon.js.map +1 -1
- package/dist/gateway/gateway-agents-mcp.js +49 -0
- package/dist/gateway/gateway-agents-mcp.js.map +1 -1
- package/dist/gateway/push.d.ts +66 -0
- package/dist/gateway/push.d.ts.map +1 -0
- package/dist/gateway/push.js +131 -0
- package/dist/gateway/push.js.map +1 -0
- package/dist/gateway/server.d.ts +3 -0
- package/dist/gateway/server.d.ts.map +1 -1
- package/dist/gateway/server.js +106 -0
- package/dist/gateway/server.js.map +1 -1
- package/dist/gateway/static/sw.js +73 -0
- package/dist/gateway/static/widget.js +208 -19
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
- package/dist/lib/projects.d.ts.map +0 -1
|
@@ -1057,7 +1057,10 @@
|
|
|
1057
1057
|
function parseAgentMessage(content) {
|
|
1058
1058
|
var match = content.match(AGENT_MSG_RE);
|
|
1059
1059
|
if (!match) return null;
|
|
1060
|
-
var body = content
|
|
1060
|
+
var body = content
|
|
1061
|
+
.slice(match[0].length)
|
|
1062
|
+
.replace(/\n\n\(Reply using send_to_agent\([^)]*\)[^)]*\)\s*$/, '')
|
|
1063
|
+
.trim();
|
|
1061
1064
|
// Also strip CC/broadcast reply hints
|
|
1062
1065
|
body = body.replace(/\n\n\(You are CC'd on this message[^)]*\)\s*$/, '').trim();
|
|
1063
1066
|
body = body.replace(/\n\n\(Review the above messages[^)]*\)\s*$/, '').trim();
|
|
@@ -1518,6 +1521,8 @@
|
|
|
1518
1521
|
var streamBuffer = '';
|
|
1519
1522
|
var connection = null;
|
|
1520
1523
|
var connectionStatus = 'disconnected';
|
|
1524
|
+
var embeddedStreamTimer = null;
|
|
1525
|
+
var EMBEDDED_STREAM_TIMEOUT = 120000;
|
|
1521
1526
|
var authenticated = false;
|
|
1522
1527
|
var pendingAttachments = [];
|
|
1523
1528
|
var selectionMode = false;
|
|
@@ -1773,7 +1778,9 @@
|
|
|
1773
1778
|
if (!selectionMode) return;
|
|
1774
1779
|
|
|
1775
1780
|
var selectedCount = Object.keys(selectedIds).length;
|
|
1776
|
-
var selectableCount = messages.filter(function (m) {
|
|
1781
|
+
var selectableCount = messages.filter(function (m) {
|
|
1782
|
+
return !!m.id;
|
|
1783
|
+
}).length;
|
|
1777
1784
|
|
|
1778
1785
|
var bar = document.createElement('div');
|
|
1779
1786
|
bar.className = 'cumulus-selection-bar';
|
|
@@ -1785,7 +1792,8 @@
|
|
|
1785
1792
|
|
|
1786
1793
|
var selectAllBtn = document.createElement('button');
|
|
1787
1794
|
selectAllBtn.className = 'cumulus-selection-select-all-btn';
|
|
1788
|
-
selectAllBtn.textContent =
|
|
1795
|
+
selectAllBtn.textContent =
|
|
1796
|
+
selectedCount === selectableCount && selectableCount > 0 ? 'Deselect All' : 'Select All';
|
|
1789
1797
|
selectAllBtn.addEventListener('click', function () {
|
|
1790
1798
|
if (selectedCount === selectableCount && selectableCount > 0) {
|
|
1791
1799
|
selectedIds = {};
|
|
@@ -1833,7 +1841,8 @@
|
|
|
1833
1841
|
|
|
1834
1842
|
var text = document.createElement('div');
|
|
1835
1843
|
text.className = 'cumulus-confirm-dialog-text';
|
|
1836
|
-
text.textContent =
|
|
1844
|
+
text.textContent =
|
|
1845
|
+
ids.length + ' message' + (ids.length === 1 ? '' : 's') + ' will be permanently deleted.';
|
|
1837
1846
|
box.appendChild(text);
|
|
1838
1847
|
|
|
1839
1848
|
var warn = document.createElement('div');
|
|
@@ -1847,7 +1856,9 @@
|
|
|
1847
1856
|
var cancelBtn = document.createElement('button');
|
|
1848
1857
|
cancelBtn.className = 'cumulus-confirm-dialog-cancel';
|
|
1849
1858
|
cancelBtn.textContent = 'Cancel';
|
|
1850
|
-
cancelBtn.addEventListener('click', function () {
|
|
1859
|
+
cancelBtn.addEventListener('click', function () {
|
|
1860
|
+
dialog.remove();
|
|
1861
|
+
});
|
|
1851
1862
|
actions.appendChild(cancelBtn);
|
|
1852
1863
|
|
|
1853
1864
|
var confirmBtn = document.createElement('button');
|
|
@@ -1955,6 +1966,17 @@
|
|
|
1955
1966
|
function handleServerMessage(data) {
|
|
1956
1967
|
switch (data.type) {
|
|
1957
1968
|
case 'auth_ok':
|
|
1969
|
+
// Reset streaming state on reconnect
|
|
1970
|
+
if (streaming) {
|
|
1971
|
+
if (streamBuffer) {
|
|
1972
|
+
messages.push({ role: 'assistant', content: streamBuffer });
|
|
1973
|
+
streamBuffer = '';
|
|
1974
|
+
}
|
|
1975
|
+
streaming = false;
|
|
1976
|
+
stopRequested = false;
|
|
1977
|
+
if (embeddedStreamTimer) { clearTimeout(embeddedStreamTimer); embeddedStreamTimer = null; }
|
|
1978
|
+
updateSendBtn();
|
|
1979
|
+
}
|
|
1958
1980
|
showChatView();
|
|
1959
1981
|
break;
|
|
1960
1982
|
case 'auth_error':
|
|
@@ -1976,11 +1998,29 @@
|
|
|
1976
1998
|
updateSendBtn();
|
|
1977
1999
|
}
|
|
1978
2000
|
streamBuffer += data.text;
|
|
2001
|
+
// Reset streaming timeout on each token
|
|
2002
|
+
if (embeddedStreamTimer) clearTimeout(embeddedStreamTimer);
|
|
2003
|
+
embeddedStreamTimer = setTimeout(function () {
|
|
2004
|
+
if (streaming) {
|
|
2005
|
+
console.warn('[Cumulus] Streaming timeout — resetting');
|
|
2006
|
+
if (streamBuffer) {
|
|
2007
|
+
messages.push({ role: 'assistant', content: streamBuffer + '\n\n*(response may be incomplete)*' });
|
|
2008
|
+
}
|
|
2009
|
+
streaming = false;
|
|
2010
|
+
streamBuffer = '';
|
|
2011
|
+
updateSendBtn();
|
|
2012
|
+
renderMessages();
|
|
2013
|
+
// Reload history
|
|
2014
|
+
if (connection) connection.send({ type: 'history', threadName: sessionId, limit: 50 });
|
|
2015
|
+
}
|
|
2016
|
+
embeddedStreamTimer = null;
|
|
2017
|
+
}, EMBEDDED_STREAM_TIMEOUT);
|
|
1979
2018
|
renderMessages();
|
|
1980
2019
|
break;
|
|
1981
2020
|
case 'segment':
|
|
1982
2021
|
break;
|
|
1983
2022
|
case 'done':
|
|
2023
|
+
if (embeddedStreamTimer) { clearTimeout(embeddedStreamTimer); embeddedStreamTimer = null; }
|
|
1984
2024
|
if (stopRequested) {
|
|
1985
2025
|
stopRequested = false;
|
|
1986
2026
|
streaming = false;
|
|
@@ -2000,8 +2040,10 @@
|
|
|
2000
2040
|
break;
|
|
2001
2041
|
case 'interjected':
|
|
2002
2042
|
// Server confirms old stream was aborted. Partial already frozen client-side.
|
|
2043
|
+
if (embeddedStreamTimer) { clearTimeout(embeddedStreamTimer); embeddedStreamTimer = null; }
|
|
2003
2044
|
break;
|
|
2004
2045
|
case 'error':
|
|
2046
|
+
if (embeddedStreamTimer) { clearTimeout(embeddedStreamTimer); embeddedStreamTimer = null; }
|
|
2005
2047
|
stopRequested = false;
|
|
2006
2048
|
streaming = false;
|
|
2007
2049
|
if (streamBuffer) {
|
|
@@ -2213,6 +2255,39 @@
|
|
|
2213
2255
|
|
|
2214
2256
|
// Thread registry: threadName -> { messages, streaming, streamBuffer, stopRequested, pendingAttachments }
|
|
2215
2257
|
var threadStates = {};
|
|
2258
|
+
var streamingTimeouts = {}; // threadName -> timeout ID
|
|
2259
|
+
var STREAMING_TIMEOUT_MS = 120000; // 2 minutes with no token = assume dead
|
|
2260
|
+
|
|
2261
|
+
function resetStreamingTimeout(threadName) {
|
|
2262
|
+
if (streamingTimeouts[threadName]) clearTimeout(streamingTimeouts[threadName]);
|
|
2263
|
+
streamingTimeouts[threadName] = setTimeout(function () {
|
|
2264
|
+
var s = threadStates[threadName];
|
|
2265
|
+
if (s && s.streaming) {
|
|
2266
|
+
console.warn('[CumulusChat] Streaming timeout for thread:', threadName);
|
|
2267
|
+
if (s.streamBuffer) {
|
|
2268
|
+
s.messages.push({ role: 'assistant', content: s.streamBuffer + '\n\n*(response may be incomplete — connection issue)*' });
|
|
2269
|
+
}
|
|
2270
|
+
s.streaming = false;
|
|
2271
|
+
s.streamBuffer = '';
|
|
2272
|
+
s.stopRequested = false;
|
|
2273
|
+
s.interjecting = false;
|
|
2274
|
+
// Reload history to get the real response if server completed
|
|
2275
|
+
s.historyLoaded = false;
|
|
2276
|
+
if (connection) {
|
|
2277
|
+
connection.send({ type: 'history', threadName: threadName, limit: 50 });
|
|
2278
|
+
}
|
|
2279
|
+
refreshThreadPanel(threadName);
|
|
2280
|
+
}
|
|
2281
|
+
delete streamingTimeouts[threadName];
|
|
2282
|
+
}, STREAMING_TIMEOUT_MS);
|
|
2283
|
+
}
|
|
2284
|
+
|
|
2285
|
+
function clearStreamingTimeout(threadName) {
|
|
2286
|
+
if (streamingTimeouts[threadName]) {
|
|
2287
|
+
clearTimeout(streamingTimeouts[threadName]);
|
|
2288
|
+
delete streamingTimeouts[threadName];
|
|
2289
|
+
}
|
|
2290
|
+
}
|
|
2216
2291
|
|
|
2217
2292
|
// Thread list from server: [{ name, messageCount, lastActivity }]
|
|
2218
2293
|
var allThreads = [];
|
|
@@ -2577,8 +2652,10 @@
|
|
|
2577
2652
|
|
|
2578
2653
|
// Clamp to viewport
|
|
2579
2654
|
var rect = menu.getBoundingClientRect();
|
|
2580
|
-
if (rect.right > window.innerWidth)
|
|
2581
|
-
|
|
2655
|
+
if (rect.right > window.innerWidth)
|
|
2656
|
+
menu.style.left = window.innerWidth - rect.width - 4 + 'px';
|
|
2657
|
+
if (rect.bottom > window.innerHeight)
|
|
2658
|
+
menu.style.top = window.innerHeight - rect.height - 4 + 'px';
|
|
2582
2659
|
|
|
2583
2660
|
// Dismiss on next click or right-click anywhere
|
|
2584
2661
|
setTimeout(function () {
|
|
@@ -2590,7 +2667,9 @@
|
|
|
2590
2667
|
// ── Thread delete confirmation ──
|
|
2591
2668
|
function showThreadDeleteConfirm(threadName) {
|
|
2592
2669
|
// Remove any existing confirm dialogs
|
|
2593
|
-
var existing = document.querySelector(
|
|
2670
|
+
var existing = document.querySelector(
|
|
2671
|
+
'.cumulus-confirm-dialog[data-context="thread-delete"]'
|
|
2672
|
+
);
|
|
2594
2673
|
if (existing) {
|
|
2595
2674
|
existing.remove();
|
|
2596
2675
|
return;
|
|
@@ -2600,7 +2679,8 @@
|
|
|
2600
2679
|
var dialog = document.createElement('div');
|
|
2601
2680
|
dialog.className = 'cumulus-confirm-dialog';
|
|
2602
2681
|
dialog.setAttribute('data-context', 'thread-delete');
|
|
2603
|
-
dialog.style.cssText =
|
|
2682
|
+
dialog.style.cssText =
|
|
2683
|
+
'position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.6); z-index: 200; display: flex; align-items: center; justify-content: center;';
|
|
2604
2684
|
|
|
2605
2685
|
var box = document.createElement('div');
|
|
2606
2686
|
box.className = 'cumulus-confirm-dialog-box';
|
|
@@ -3013,7 +3093,9 @@
|
|
|
3013
3093
|
if (!state.selectionMode) return;
|
|
3014
3094
|
|
|
3015
3095
|
var selectedCount = Object.keys(state.selectedIds).length;
|
|
3016
|
-
var selectableCount = state.messages.filter(function (m) {
|
|
3096
|
+
var selectableCount = state.messages.filter(function (m) {
|
|
3097
|
+
return !!m.id;
|
|
3098
|
+
}).length;
|
|
3017
3099
|
|
|
3018
3100
|
var bar = document.createElement('div');
|
|
3019
3101
|
bar.className = 'cumulus-selection-bar';
|
|
@@ -3025,7 +3107,8 @@
|
|
|
3025
3107
|
|
|
3026
3108
|
var selectAllBtn = document.createElement('button');
|
|
3027
3109
|
selectAllBtn.className = 'cumulus-selection-select-all-btn';
|
|
3028
|
-
selectAllBtn.textContent =
|
|
3110
|
+
selectAllBtn.textContent =
|
|
3111
|
+
selectedCount === selectableCount && selectableCount > 0 ? 'Deselect All' : 'Select All';
|
|
3029
3112
|
selectAllBtn.addEventListener('click', function () {
|
|
3030
3113
|
if (selectedCount === selectableCount && selectableCount > 0) {
|
|
3031
3114
|
// Deselect all
|
|
@@ -3089,7 +3172,8 @@
|
|
|
3089
3172
|
|
|
3090
3173
|
var text = document.createElement('div');
|
|
3091
3174
|
text.className = 'cumulus-confirm-dialog-text';
|
|
3092
|
-
text.textContent =
|
|
3175
|
+
text.textContent =
|
|
3176
|
+
ids.length + ' message' + (ids.length === 1 ? '' : 's') + ' will be permanently deleted.';
|
|
3093
3177
|
box.appendChild(text);
|
|
3094
3178
|
|
|
3095
3179
|
var warn = document.createElement('div');
|
|
@@ -3229,6 +3313,7 @@
|
|
|
3229
3313
|
if (!text && state.pendingAttachments.length === 0) {
|
|
3230
3314
|
state.stopRequested = true;
|
|
3231
3315
|
state.streaming = false;
|
|
3316
|
+
clearStreamingTimeout(threadName);
|
|
3232
3317
|
updatePanelSendBtn();
|
|
3233
3318
|
if (state.streamBuffer) {
|
|
3234
3319
|
state.messages.push({ role: 'assistant', content: state.streamBuffer });
|
|
@@ -3262,6 +3347,7 @@
|
|
|
3262
3347
|
state.stopRequested = false;
|
|
3263
3348
|
state.streamBuffer = '';
|
|
3264
3349
|
state.interjecting = false;
|
|
3350
|
+
resetStreamingTimeout(threadName);
|
|
3265
3351
|
updatePanelSendBtn();
|
|
3266
3352
|
renderPanelMessages();
|
|
3267
3353
|
|
|
@@ -3438,8 +3524,7 @@
|
|
|
3438
3524
|
panel.appendChild(overlay);
|
|
3439
3525
|
|
|
3440
3526
|
// Request the list
|
|
3441
|
-
connection &&
|
|
3442
|
-
connection.send({ type: 'include_list', threadName: threadName });
|
|
3527
|
+
connection && connection.send({ type: 'include_list', threadName: threadName });
|
|
3443
3528
|
}
|
|
3444
3529
|
|
|
3445
3530
|
function renderIncludeList(panel, threadName, files) {
|
|
@@ -3525,8 +3610,7 @@
|
|
|
3525
3610
|
panel.appendChild(overlay);
|
|
3526
3611
|
|
|
3527
3612
|
// Request the turn list
|
|
3528
|
-
connection &&
|
|
3529
|
-
connection.send({ type: 'revert_list', threadName: threadName });
|
|
3613
|
+
connection && connection.send({ type: 'revert_list', threadName: threadName });
|
|
3530
3614
|
}
|
|
3531
3615
|
|
|
3532
3616
|
function renderRevertList(panel, threadName, turns) {
|
|
@@ -3605,8 +3689,7 @@
|
|
|
3605
3689
|
cancelBtn.textContent = 'Cancel';
|
|
3606
3690
|
cancelBtn.addEventListener('click', function () {
|
|
3607
3691
|
// Re-request list
|
|
3608
|
-
connection &&
|
|
3609
|
-
connection.send({ type: 'revert_list', threadName: threadName });
|
|
3692
|
+
connection && connection.send({ type: 'revert_list', threadName: threadName });
|
|
3610
3693
|
});
|
|
3611
3694
|
actions.appendChild(cancelBtn);
|
|
3612
3695
|
|
|
@@ -3639,6 +3722,92 @@
|
|
|
3639
3722
|
return h + ':' + (m < 10 ? '0' : '') + m + ' ' + ampm;
|
|
3640
3723
|
}
|
|
3641
3724
|
|
|
3725
|
+
// ── Push notification subscription ──
|
|
3726
|
+
function registerPushNotifications() {
|
|
3727
|
+
if (!('serviceWorker' in navigator) || !('PushManager' in window)) {
|
|
3728
|
+
console.log('[Cumulus] Push notifications not supported');
|
|
3729
|
+
return;
|
|
3730
|
+
}
|
|
3731
|
+
|
|
3732
|
+
navigator.serviceWorker
|
|
3733
|
+
.register('/sw.js')
|
|
3734
|
+
.then(function (registration) {
|
|
3735
|
+
console.log('[Cumulus] Service worker registered');
|
|
3736
|
+
|
|
3737
|
+
// Check existing subscription
|
|
3738
|
+
return registration.pushManager.getSubscription().then(function (existing) {
|
|
3739
|
+
if (existing) {
|
|
3740
|
+
// Already subscribed — send to server in case it's new/different
|
|
3741
|
+
sendPushSubscription(existing);
|
|
3742
|
+
return;
|
|
3743
|
+
}
|
|
3744
|
+
|
|
3745
|
+
// Get VAPID key from server
|
|
3746
|
+
var loc = window.location;
|
|
3747
|
+
var apiUrl = loc.protocol + '//' + loc.host;
|
|
3748
|
+
fetch(apiUrl + '/api/push/vapid-key')
|
|
3749
|
+
.then(function (r) {
|
|
3750
|
+
return r.json();
|
|
3751
|
+
})
|
|
3752
|
+
.then(function (data) {
|
|
3753
|
+
if (!data.publicKey) {
|
|
3754
|
+
console.log('[Cumulus] Push not configured on server');
|
|
3755
|
+
return;
|
|
3756
|
+
}
|
|
3757
|
+
|
|
3758
|
+
// Request permission and subscribe
|
|
3759
|
+
return registration.pushManager
|
|
3760
|
+
.subscribe({
|
|
3761
|
+
userVisibleOnly: true,
|
|
3762
|
+
applicationServerKey: urlBase64ToUint8Array(data.publicKey),
|
|
3763
|
+
})
|
|
3764
|
+
.then(function (subscription) {
|
|
3765
|
+
console.log('[Cumulus] Push subscription created');
|
|
3766
|
+
sendPushSubscription(subscription);
|
|
3767
|
+
});
|
|
3768
|
+
})
|
|
3769
|
+
.catch(function (err) {
|
|
3770
|
+
console.warn('[Cumulus] Push subscription failed:', err);
|
|
3771
|
+
});
|
|
3772
|
+
});
|
|
3773
|
+
})
|
|
3774
|
+
.catch(function (err) {
|
|
3775
|
+
console.warn('[Cumulus] Service worker registration failed:', err);
|
|
3776
|
+
});
|
|
3777
|
+
}
|
|
3778
|
+
|
|
3779
|
+
function sendPushSubscription(subscription) {
|
|
3780
|
+
var loc = window.location;
|
|
3781
|
+
var apiUrl = loc.protocol + '//' + loc.host;
|
|
3782
|
+
var raw = subscription.toJSON();
|
|
3783
|
+
|
|
3784
|
+
fetch(apiUrl + '/api/push/subscribe', {
|
|
3785
|
+
method: 'POST',
|
|
3786
|
+
headers: {
|
|
3787
|
+
'Content-Type': 'application/json',
|
|
3788
|
+
'X-API-Key': activeApiKey,
|
|
3789
|
+
},
|
|
3790
|
+
body: JSON.stringify({
|
|
3791
|
+
endpoint: raw.endpoint,
|
|
3792
|
+
keys: raw.keys,
|
|
3793
|
+
label: navigator.userAgent.indexOf('iPhone') !== -1 ? 'iPhone' : 'Browser',
|
|
3794
|
+
}),
|
|
3795
|
+
}).catch(function (err) {
|
|
3796
|
+
console.warn('[Cumulus] Failed to send push subscription:', err);
|
|
3797
|
+
});
|
|
3798
|
+
}
|
|
3799
|
+
|
|
3800
|
+
function urlBase64ToUint8Array(base64String) {
|
|
3801
|
+
var padding = '='.repeat((4 - (base64String.length % 4)) % 4);
|
|
3802
|
+
var base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');
|
|
3803
|
+
var rawData = atob(base64);
|
|
3804
|
+
var outputArray = new Uint8Array(rawData.length);
|
|
3805
|
+
for (var i = 0; i < rawData.length; ++i) {
|
|
3806
|
+
outputArray[i] = rawData.charCodeAt(i);
|
|
3807
|
+
}
|
|
3808
|
+
return outputArray;
|
|
3809
|
+
}
|
|
3810
|
+
|
|
3642
3811
|
// ── Message router ──
|
|
3643
3812
|
function handleServerMessage(data) {
|
|
3644
3813
|
if (data.type !== 'token') {
|
|
@@ -3646,7 +3815,23 @@
|
|
|
3646
3815
|
}
|
|
3647
3816
|
switch (data.type) {
|
|
3648
3817
|
case 'auth_ok':
|
|
3818
|
+
// Reset streaming state on reconnect — server may have finished while we were disconnected
|
|
3819
|
+
Object.keys(threadStates).forEach(function (tn) {
|
|
3820
|
+
var s = threadStates[tn];
|
|
3821
|
+
if (s.streaming) {
|
|
3822
|
+
if (s.streamBuffer) {
|
|
3823
|
+
s.messages.push({ role: 'assistant', content: s.streamBuffer });
|
|
3824
|
+
s.streamBuffer = '';
|
|
3825
|
+
}
|
|
3826
|
+
s.streaming = false;
|
|
3827
|
+
s.stopRequested = false;
|
|
3828
|
+
s.interjecting = false;
|
|
3829
|
+
}
|
|
3830
|
+
// Reload history from server to pick up any responses we missed
|
|
3831
|
+
s.historyLoaded = false;
|
|
3832
|
+
});
|
|
3649
3833
|
showAppView();
|
|
3834
|
+
registerPushNotifications();
|
|
3650
3835
|
break;
|
|
3651
3836
|
|
|
3652
3837
|
case 'auth_error':
|
|
@@ -3747,6 +3932,8 @@
|
|
|
3747
3932
|
state.streamBuffer = '';
|
|
3748
3933
|
}
|
|
3749
3934
|
state.streamBuffer += data.text;
|
|
3935
|
+
// Reset streaming timeout on each token
|
|
3936
|
+
resetStreamingTimeout(data.threadName);
|
|
3750
3937
|
// Update lastActivity for this thread in allThreads
|
|
3751
3938
|
updateThreadActivity(data.threadName);
|
|
3752
3939
|
refreshThreadPanel(data.threadName);
|
|
@@ -3759,6 +3946,7 @@
|
|
|
3759
3946
|
|
|
3760
3947
|
case 'done':
|
|
3761
3948
|
if (data.threadName) {
|
|
3949
|
+
clearStreamingTimeout(data.threadName);
|
|
3762
3950
|
var state = getThreadState(data.threadName);
|
|
3763
3951
|
if (state.stopRequested) {
|
|
3764
3952
|
state.stopRequested = false;
|
|
@@ -3785,11 +3973,12 @@
|
|
|
3785
3973
|
case 'interjected':
|
|
3786
3974
|
// Server confirms the old stream was aborted due to interjection.
|
|
3787
3975
|
// The partial response was already frozen client-side in sendPanelMessage.
|
|
3788
|
-
|
|
3976
|
+
if (data.threadName) clearStreamingTimeout(data.threadName);
|
|
3789
3977
|
break;
|
|
3790
3978
|
|
|
3791
3979
|
case 'error':
|
|
3792
3980
|
if (data.threadName) {
|
|
3981
|
+
clearStreamingTimeout(data.threadName);
|
|
3793
3982
|
var state = getThreadState(data.threadName);
|
|
3794
3983
|
state.stopRequested = false;
|
|
3795
3984
|
state.streaming = false;
|
package/dist/index.d.ts
CHANGED
|
@@ -40,8 +40,10 @@ export type { GatewayServerOptions, GatewayServerHandle } from './gateway/server
|
|
|
40
40
|
export { ExecutorRegistry } from './lib/executor.js';
|
|
41
41
|
export type { ExecutePayload, ExecuteTokenMessage, ExecuteDoneMessage, ExecuteErrorMessage, ExecuteAbortPayload, ExecutorRegisterMessage, ExecutorRegisteredMessage, ExecutorMessage, ExecutionResult, McpServerDispatchConfig, DeviceToolCallMessage, DeviceToolResultMessage, } from './lib/executor.js';
|
|
42
42
|
export { loadGatewayConfig, getConfigPath as getGatewayConfigPath } from './gateway/config.js';
|
|
43
|
-
export type { GatewayConfig, SlackChannelConfig, DiscordChannelConfig, ChannelsConfig, } from './gateway/config.js';
|
|
43
|
+
export type { GatewayConfig, SlackChannelConfig, DiscordChannelConfig, ChannelsConfig, VapidConfig, } from './gateway/config.js';
|
|
44
44
|
export { authenticate as authenticateRequest } from './gateway/auth.js';
|
|
45
|
+
export { configureVapid, generateVapidKeys, subscribe as pushSubscribe, unsubscribe as pushUnsubscribe, getSubscriptions as getPushSubscriptions, sendNotification, } from './gateway/push.js';
|
|
46
|
+
export type { VapidConfig as PushVapidConfig, StoredSubscription as PushSubscription, NotificationPayload, } from './gateway/push.js';
|
|
45
47
|
export { createLogger, getDefaultLogPath } from './gateway/logger.js';
|
|
46
48
|
export type { Logger, LogLevel, LoggerOptions } from './gateway/logger.js';
|
|
47
49
|
export { writePidFile, readPidFile, removePidFile, isProcessRunning, getPidFilePath, parseArgs, } from './gateway/daemon.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -42,6 +42,7 @@ export { startGatewayServer } from './gateway/server.js';
|
|
|
42
42
|
export { ExecutorRegistry } from './lib/executor.js';
|
|
43
43
|
export { loadGatewayConfig, getConfigPath as getGatewayConfigPath } from './gateway/config.js';
|
|
44
44
|
export { authenticate as authenticateRequest } from './gateway/auth.js';
|
|
45
|
+
export { configureVapid, generateVapidKeys, subscribe as pushSubscribe, unsubscribe as pushUnsubscribe, getSubscriptions as getPushSubscriptions, sendNotification, } from './gateway/push.js';
|
|
45
46
|
export { createLogger, getDefaultLogPath } from './gateway/logger.js';
|
|
46
47
|
export { writePidFile, readPidFile, removePidFile, isProcessRunning, getPidFilePath, parseArgs, } from './gateway/daemon.js';
|
|
47
48
|
// Templates
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luckydraw/cumulus",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.21",
|
|
4
4
|
"description": "RLM-based CLI chat wrapper for Claude with external history context management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -72,6 +72,7 @@
|
|
|
72
72
|
"@eslint/js": "^9.39.2",
|
|
73
73
|
"@types/node": "^25.0.10",
|
|
74
74
|
"@types/react": "^18.3.27",
|
|
75
|
+
"@types/web-push": "^3.6.4",
|
|
75
76
|
"@types/ws": "^8.18.1",
|
|
76
77
|
"@vitest/coverage-v8": "^4.0.18",
|
|
77
78
|
"eslint": "^9.39.2",
|
|
@@ -98,6 +99,7 @@
|
|
|
98
99
|
"nanoid": "^5.1.6",
|
|
99
100
|
"pdfjs-dist": "^5.4.624",
|
|
100
101
|
"react": "^18.3.1",
|
|
102
|
+
"web-push": "^3.6.7",
|
|
101
103
|
"ws": "^8.19.0"
|
|
102
104
|
}
|
|
103
105
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/lib/projects.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE;AA4BD;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAkE3F;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA4BlF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAUjC;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,eAAe,GAAG,WAAW,CAAC,CAAC,EAClF,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAoC1B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,YAAY,UAAQ,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAS1B;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB"}
|