@luckydraw/cumulus 0.30.14 → 0.30.15
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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
## v0.30.14
|
|
4
4
|
|
|
5
|
+
- Cross-gateway agent messaging: agents on different gateways can now talk to each other
|
|
6
|
+
- Voice conversation mode with server-side narration for hands-free use
|
|
7
|
+
- First-run setup wizard, in-app update checker, and per-thread model selection
|
|
8
|
+
- Inline annotations: highlight chat text to comment like Google Docs
|
|
9
|
+
- Bug fixes and stability improvements (Windows spawn, blex resize, streaming reliability)
|
|
10
|
+
|
|
11
|
+
## v0.30.14
|
|
12
|
+
|
|
5
13
|
- Windows 11 compatibility: fixed `spawn EINVAL` when the gateway tries to run the `claude.cmd` shim. All Claude CLI spawn sites (gateway, TUI, MCP handler, content-detector, summaries) now route through cmd.exe on Windows.
|
|
6
14
|
|
|
7
15
|
## v0.30.13
|
|
@@ -46,13 +46,7 @@ export interface FederationInjectMessage {
|
|
|
46
46
|
hidden: string[];
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
-
export
|
|
50
|
-
type: 'ping';
|
|
51
|
-
}
|
|
52
|
-
export interface FederationPong {
|
|
53
|
-
type: 'pong';
|
|
54
|
-
}
|
|
55
|
-
export type FederationMessage = FederationAuthMessage | FederationAuthOk | FederationAuthError | FederationThreadSync | FederationRouteMessage | FederationInjectMessage | FederationPing | FederationPong;
|
|
49
|
+
export type FederationMessage = FederationAuthMessage | FederationAuthOk | FederationAuthError | FederationThreadSync | FederationRouteMessage | FederationInjectMessage;
|
|
56
50
|
export interface FederationRouterOptions {
|
|
57
51
|
hubName: string;
|
|
58
52
|
apiKeys: string[];
|
|
@@ -124,6 +118,8 @@ export declare class FederationClient {
|
|
|
124
118
|
private closed;
|
|
125
119
|
private hubName;
|
|
126
120
|
private lastSyncedThreads;
|
|
121
|
+
private pingTimer;
|
|
122
|
+
private lastSeen;
|
|
127
123
|
constructor(options: FederationClientOptions);
|
|
128
124
|
/** Connect to the hub */
|
|
129
125
|
connect(): void;
|
|
@@ -135,6 +131,8 @@ export declare class FederationClient {
|
|
|
135
131
|
syncThreads(): void;
|
|
136
132
|
/** Handle a message from the hub destined for a local thread */
|
|
137
133
|
private handleInject;
|
|
134
|
+
private startHeartbeat;
|
|
135
|
+
private stopHeartbeat;
|
|
138
136
|
private scheduleReconnect;
|
|
139
137
|
private send;
|
|
140
138
|
get isConnected(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/gateway/federation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOrC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC5C;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC5C;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/gateway/federation.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
* relays inbound messages to local threads.
|
|
9
9
|
*/
|
|
10
10
|
import { WebSocket, WebSocketServer } from 'ws';
|
|
11
|
+
// Heartbeat: WebSocket-level ping frames (not JSON). 25s interval, 75s timeout.
|
|
12
|
+
const HEARTBEAT_INTERVAL_MS = 25_000;
|
|
13
|
+
const HEARTBEAT_TIMEOUT_MS = 75_000;
|
|
11
14
|
export class FederationRouter {
|
|
12
15
|
wss;
|
|
13
16
|
spokes = new Map();
|
|
@@ -76,16 +79,27 @@ export class FederationRouter {
|
|
|
76
79
|
threads: [],
|
|
77
80
|
lastSeen: Date.now(),
|
|
78
81
|
};
|
|
79
|
-
//
|
|
82
|
+
// WS-level heartbeat: ping frames every 25s, timeout at 75s of silence.
|
|
83
|
+
// Spoke also pings us; either side's `pong` event updates lastSeen.
|
|
80
84
|
entry.pingTimer = setInterval(() => {
|
|
81
|
-
if (Date.now() - entry.lastSeen >
|
|
85
|
+
if (Date.now() - entry.lastSeen > HEARTBEAT_TIMEOUT_MS) {
|
|
82
86
|
console.log(`[Federation] Spoke "${spokeName}" timed out, disconnecting`);
|
|
83
|
-
ws.
|
|
87
|
+
ws.terminate(); // Force-close: TCP may be dead even if readyState says OPEN
|
|
84
88
|
this.cleanupSpoke(spokeName);
|
|
85
89
|
return;
|
|
86
90
|
}
|
|
87
|
-
|
|
88
|
-
|
|
91
|
+
if (ws.readyState === WebSocket.OPEN) {
|
|
92
|
+
ws.ping();
|
|
93
|
+
}
|
|
94
|
+
}, HEARTBEAT_INTERVAL_MS);
|
|
95
|
+
// Any pong (from our ping) or ping (from spoke) updates liveness.
|
|
96
|
+
ws.on('pong', () => {
|
|
97
|
+
entry.lastSeen = Date.now();
|
|
98
|
+
});
|
|
99
|
+
ws.on('ping', () => {
|
|
100
|
+
entry.lastSeen = Date.now();
|
|
101
|
+
// ws library auto-responds with pong, no manual send needed
|
|
102
|
+
});
|
|
89
103
|
this.spokes.set(spokeName, entry);
|
|
90
104
|
this.send(ws, { type: 'auth_ok', hubName: this.options.hubName });
|
|
91
105
|
console.log(`[Federation] Spoke "${spokeName}" connected`);
|
|
@@ -104,9 +118,6 @@ export class FederationRouter {
|
|
|
104
118
|
case 'route':
|
|
105
119
|
void this.handleRoute(spokeName, msg);
|
|
106
120
|
break;
|
|
107
|
-
case 'pong':
|
|
108
|
-
// lastSeen already updated above
|
|
109
|
-
break;
|
|
110
121
|
default:
|
|
111
122
|
console.log(`[Federation] Unknown message type from "${spokeName}": ${msg.type}`);
|
|
112
123
|
}
|
|
@@ -244,6 +255,8 @@ export class FederationClient {
|
|
|
244
255
|
closed = false;
|
|
245
256
|
hubName = '';
|
|
246
257
|
lastSyncedThreads = [];
|
|
258
|
+
pingTimer = null;
|
|
259
|
+
lastSeen = 0;
|
|
247
260
|
constructor(options) {
|
|
248
261
|
this.options = options;
|
|
249
262
|
}
|
|
@@ -262,14 +275,25 @@ export class FederationClient {
|
|
|
262
275
|
this.ws.on('open', () => {
|
|
263
276
|
console.log(`[Federation] Connected to hub at ${this.options.hubUrl}`);
|
|
264
277
|
this.reconnectDelay = 1000; // Reset backoff on successful connect
|
|
278
|
+
this.lastSeen = Date.now();
|
|
265
279
|
// Send auth
|
|
266
280
|
this.send({
|
|
267
281
|
type: 'auth',
|
|
268
282
|
name: this.options.spokeName,
|
|
269
283
|
apiKey: this.options.apiKey,
|
|
270
284
|
});
|
|
285
|
+
// WS-level heartbeat: ping hub every 25s, reconnect if no traffic for 75s.
|
|
286
|
+
this.startHeartbeat();
|
|
287
|
+
});
|
|
288
|
+
this.ws.on('pong', () => {
|
|
289
|
+
this.lastSeen = Date.now();
|
|
290
|
+
});
|
|
291
|
+
this.ws.on('ping', () => {
|
|
292
|
+
this.lastSeen = Date.now();
|
|
293
|
+
// ws library auto-responds with pong
|
|
271
294
|
});
|
|
272
295
|
this.ws.on('message', (raw) => {
|
|
296
|
+
this.lastSeen = Date.now();
|
|
273
297
|
let msg;
|
|
274
298
|
try {
|
|
275
299
|
msg = JSON.parse(raw.toString());
|
|
@@ -294,15 +318,13 @@ export class FederationClient {
|
|
|
294
318
|
case 'inject':
|
|
295
319
|
void this.handleInject(msg);
|
|
296
320
|
break;
|
|
297
|
-
case 'ping':
|
|
298
|
-
this.send({ type: 'pong' });
|
|
299
|
-
break;
|
|
300
321
|
default:
|
|
301
322
|
break;
|
|
302
323
|
}
|
|
303
324
|
});
|
|
304
325
|
this.ws.on('close', () => {
|
|
305
326
|
this.authenticated = false;
|
|
327
|
+
this.stopHeartbeat();
|
|
306
328
|
if (!this.closed) {
|
|
307
329
|
console.log(`[Federation] Disconnected from hub, reconnecting in ${this.reconnectDelay}ms`);
|
|
308
330
|
this.scheduleReconnect();
|
|
@@ -350,6 +372,25 @@ export class FederationClient {
|
|
|
350
372
|
console.error(`[Federation] Failed to inject into local thread "${msg.to}":`, err.message);
|
|
351
373
|
}
|
|
352
374
|
}
|
|
375
|
+
startHeartbeat() {
|
|
376
|
+
this.stopHeartbeat();
|
|
377
|
+
this.pingTimer = setInterval(() => {
|
|
378
|
+
if (Date.now() - this.lastSeen > HEARTBEAT_TIMEOUT_MS) {
|
|
379
|
+
console.log('[Federation] Hub silent, forcing reconnect');
|
|
380
|
+
this.ws?.terminate(); // Force-close: triggers 'close' → reconnect
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
if (this.ws?.readyState === WebSocket.OPEN) {
|
|
384
|
+
this.ws.ping();
|
|
385
|
+
}
|
|
386
|
+
}, HEARTBEAT_INTERVAL_MS);
|
|
387
|
+
}
|
|
388
|
+
stopHeartbeat() {
|
|
389
|
+
if (this.pingTimer) {
|
|
390
|
+
clearInterval(this.pingTimer);
|
|
391
|
+
this.pingTimer = null;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
353
394
|
scheduleReconnect() {
|
|
354
395
|
if (this.closed)
|
|
355
396
|
return;
|
|
@@ -374,6 +415,7 @@ export class FederationClient {
|
|
|
374
415
|
}
|
|
375
416
|
close() {
|
|
376
417
|
this.closed = true;
|
|
418
|
+
this.stopHeartbeat();
|
|
377
419
|
if (this.reconnectTimer)
|
|
378
420
|
clearTimeout(this.reconnectTimer);
|
|
379
421
|
this.ws?.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/gateway/federation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/gateway/federation.ts"],"names":[],"mappings":"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"}
|
|
@@ -3256,7 +3256,7 @@
|
|
|
3256
3256
|
// Reset streaming state on reconnect
|
|
3257
3257
|
if (streaming) {
|
|
3258
3258
|
if (streamBuffer) {
|
|
3259
|
-
messages.push({ role: 'assistant', content: streamBuffer });
|
|
3259
|
+
messages.push({ role: 'assistant', content: streamBuffer, timestamp: Date.now() });
|
|
3260
3260
|
streamBuffer = '';
|
|
3261
3261
|
}
|
|
3262
3262
|
streaming = false;
|
|
@@ -3297,6 +3297,7 @@
|
|
|
3297
3297
|
messages.push({
|
|
3298
3298
|
role: 'assistant',
|
|
3299
3299
|
content: streamBuffer + '\n\n*(response may be incomplete)*',
|
|
3300
|
+
timestamp: Date.now(),
|
|
3300
3301
|
});
|
|
3301
3302
|
}
|
|
3302
3303
|
streaming = false;
|
|
@@ -3322,7 +3323,7 @@
|
|
|
3322
3323
|
stopRequested = false;
|
|
3323
3324
|
streaming = false;
|
|
3324
3325
|
if (streamBuffer) {
|
|
3325
|
-
messages.push({ role: 'assistant', content: streamBuffer });
|
|
3326
|
+
messages.push({ role: 'assistant', content: streamBuffer, timestamp: Date.now() });
|
|
3326
3327
|
}
|
|
3327
3328
|
streamBuffer = '';
|
|
3328
3329
|
updateSendBtn();
|
|
@@ -3330,7 +3331,11 @@
|
|
|
3330
3331
|
break;
|
|
3331
3332
|
}
|
|
3332
3333
|
streaming = false;
|
|
3333
|
-
messages.push({
|
|
3334
|
+
messages.push({
|
|
3335
|
+
role: 'assistant',
|
|
3336
|
+
content: data.response || streamBuffer,
|
|
3337
|
+
timestamp: Date.now(),
|
|
3338
|
+
});
|
|
3334
3339
|
streamBuffer = '';
|
|
3335
3340
|
updateSendBtn();
|
|
3336
3341
|
renderMessages();
|
|
@@ -3353,11 +3358,13 @@
|
|
|
3353
3358
|
messages.push({
|
|
3354
3359
|
role: 'assistant',
|
|
3355
3360
|
content: streamBuffer + '\n\n[Error: ' + (data.error || 'Unknown error') + ']',
|
|
3361
|
+
timestamp: Date.now(),
|
|
3356
3362
|
});
|
|
3357
3363
|
} else {
|
|
3358
3364
|
messages.push({
|
|
3359
3365
|
role: 'assistant',
|
|
3360
3366
|
content: '[Error: ' + (data.error || 'Unknown error') + ']',
|
|
3367
|
+
timestamp: Date.now(),
|
|
3361
3368
|
});
|
|
3362
3369
|
}
|
|
3363
3370
|
streamBuffer = '';
|
|
@@ -3402,7 +3409,7 @@
|
|
|
3402
3409
|
streaming = false;
|
|
3403
3410
|
updateSendBtn();
|
|
3404
3411
|
if (streamBuffer) {
|
|
3405
|
-
messages.push({ role: 'assistant', content: streamBuffer });
|
|
3412
|
+
messages.push({ role: 'assistant', content: streamBuffer, timestamp: Date.now() });
|
|
3406
3413
|
streamBuffer = '';
|
|
3407
3414
|
}
|
|
3408
3415
|
renderMessages();
|
|
@@ -3410,7 +3417,7 @@
|
|
|
3410
3417
|
}
|
|
3411
3418
|
// Freeze partial response
|
|
3412
3419
|
if (streamBuffer) {
|
|
3413
|
-
messages.push({ role: 'assistant', content: streamBuffer });
|
|
3420
|
+
messages.push({ role: 'assistant', content: streamBuffer, timestamp: Date.now() });
|
|
3414
3421
|
}
|
|
3415
3422
|
streamBuffer = '';
|
|
3416
3423
|
// Don't set streaming=false — new message keeps streaming
|
|
@@ -3571,6 +3578,7 @@
|
|
|
3571
3578
|
s.messages.push({
|
|
3572
3579
|
role: 'assistant',
|
|
3573
3580
|
content: s.streamBuffer + '\n\n*(response may be incomplete — connection issue)*',
|
|
3581
|
+
timestamp: Date.now(),
|
|
3574
3582
|
});
|
|
3575
3583
|
}
|
|
3576
3584
|
s.streaming = false;
|
|
@@ -5599,7 +5607,11 @@
|
|
|
5599
5607
|
clearStreamingTimeout(threadName);
|
|
5600
5608
|
updatePanelSendBtn();
|
|
5601
5609
|
if (state.streamBuffer) {
|
|
5602
|
-
state.messages.push({
|
|
5610
|
+
state.messages.push({
|
|
5611
|
+
role: 'assistant',
|
|
5612
|
+
content: state.streamBuffer,
|
|
5613
|
+
timestamp: Date.now(),
|
|
5614
|
+
});
|
|
5603
5615
|
state.streamBuffer = '';
|
|
5604
5616
|
}
|
|
5605
5617
|
renderPanelMessages();
|
|
@@ -5609,7 +5621,11 @@
|
|
|
5609
5621
|
// Freeze the partial assistant response as a message so the interjection
|
|
5610
5622
|
// appears AFTER the (partial) LLM response, not next to the prior user message
|
|
5611
5623
|
if (state.streamBuffer) {
|
|
5612
|
-
state.messages.push({
|
|
5624
|
+
state.messages.push({
|
|
5625
|
+
role: 'assistant',
|
|
5626
|
+
content: state.streamBuffer,
|
|
5627
|
+
timestamp: Date.now(),
|
|
5628
|
+
});
|
|
5613
5629
|
}
|
|
5614
5630
|
// Reset streaming state — the server will send 'interjected' for the old stream
|
|
5615
5631
|
state.streamBuffer = '';
|
|
@@ -6128,7 +6144,11 @@
|
|
|
6128
6144
|
var s = threadStates[tn];
|
|
6129
6145
|
if (s.streaming) {
|
|
6130
6146
|
if (s.streamBuffer) {
|
|
6131
|
-
s.messages.push({
|
|
6147
|
+
s.messages.push({
|
|
6148
|
+
role: 'assistant',
|
|
6149
|
+
content: s.streamBuffer,
|
|
6150
|
+
timestamp: Date.now(),
|
|
6151
|
+
});
|
|
6132
6152
|
s.streamBuffer = '';
|
|
6133
6153
|
}
|
|
6134
6154
|
s.streaming = false;
|
|
@@ -6360,7 +6380,11 @@
|
|
|
6360
6380
|
state.stopRequested = false;
|
|
6361
6381
|
state.streaming = false;
|
|
6362
6382
|
if (state.streamBuffer) {
|
|
6363
|
-
state.messages.push({
|
|
6383
|
+
state.messages.push({
|
|
6384
|
+
role: 'assistant',
|
|
6385
|
+
content: state.streamBuffer,
|
|
6386
|
+
timestamp: Date.now(),
|
|
6387
|
+
});
|
|
6364
6388
|
}
|
|
6365
6389
|
state.streamBuffer = '';
|
|
6366
6390
|
updateThreadActivity(data.threadName);
|
|
@@ -6372,6 +6396,7 @@
|
|
|
6372
6396
|
state.messages.push({
|
|
6373
6397
|
role: 'assistant',
|
|
6374
6398
|
content: responseContent,
|
|
6399
|
+
timestamp: Date.now(),
|
|
6375
6400
|
});
|
|
6376
6401
|
state.streamBuffer = '';
|
|
6377
6402
|
updateThreadActivity(data.threadName);
|
|
@@ -6400,11 +6425,13 @@
|
|
|
6400
6425
|
role: 'assistant',
|
|
6401
6426
|
content:
|
|
6402
6427
|
state.streamBuffer + '\n\n[Error: ' + (data.error || 'Unknown error') + ']',
|
|
6428
|
+
timestamp: Date.now(),
|
|
6403
6429
|
});
|
|
6404
6430
|
} else {
|
|
6405
6431
|
state.messages.push({
|
|
6406
6432
|
role: 'assistant',
|
|
6407
6433
|
content: '[Error: ' + (data.error || 'Unknown error') + ']',
|
|
6434
|
+
timestamp: Date.now(),
|
|
6408
6435
|
});
|
|
6409
6436
|
}
|
|
6410
6437
|
state.streamBuffer = '';
|