@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.
@@ -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.slice(match[0].length).replace(/\n\n\(Reply using send_to_agent\([^)]*\)[^)]*\)\s*$/, '').trim();
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) { return !!m.id; }).length;
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 = selectedCount === selectableCount && selectableCount > 0 ? 'Deselect All' : 'Select All';
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 = ids.length + ' message' + (ids.length === 1 ? '' : 's') + ' will be permanently deleted.';
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 () { dialog.remove(); });
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) menu.style.left = (window.innerWidth - rect.width - 4) + 'px';
2581
- if (rect.bottom > window.innerHeight) menu.style.top = (window.innerHeight - rect.height - 4) + 'px';
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('.cumulus-confirm-dialog[data-context="thread-delete"]');
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 = '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;';
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) { return !!m.id; }).length;
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 = selectedCount === selectableCount && selectableCount > 0 ? 'Deselect All' : 'Select All';
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 = ids.length + ' message' + (ids.length === 1 ? '' : 's') + ' will be permanently deleted.';
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
- // Nothing to do — the new stream's tokens are already arriving.
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';
@@ -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":"AAAA,kDAAkD;AAClD,4BAA4B;AAE5B,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGjE,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAYtD,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAGnC,iBAAiB;AACjB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxE,0BAA0B;AAC1B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAQ1C,aAAa;AACb,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,qBAAqB,CAAC;AAQ7B,UAAU;AACV,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGzE,WAAW;AACX,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,oBAAoB;AACpB,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,aAAa,IAAI,oBAAoB,EACrC,aAAa,IAAI,oBAAoB,EACrC,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAG/E,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAQnC,SAAS;AACT,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAWzB,cAAc;AACd,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGlF,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGjF,aAAa;AACb,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,0DAA0D;AAC1D,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAW1B,kDAAkD;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,8CAA8C;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAerD,OAAO,EAAE,iBAAiB,EAAE,aAAa,IAAI,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAQ/F,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,SAAS,IAAI,aAAa,EAC1B,WAAW,IAAI,eAAe,EAC9B,gBAAgB,IAAI,oBAAoB,EACxC,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,SAAS,GACV,MAAM,qBAAqB,CAAC;AAE7B,YAAY;AACZ,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAGnG,+DAA+D;AAC/D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEjG,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE1F,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGtF,6CAA6C;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,yDAAyD;AACzD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE9D,qFAAqF;AACrF,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;AACjE,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AACzD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luckydraw/cumulus",
3
- "version": "0.27.18",
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"}