@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 interface FederationPing {
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":"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"}
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,MAAM,iBAAiB,GACzB,qBAAqB,GACrB,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,GACpB,sBAAsB,GACtB,uBAAuB,CAAC;AAkB5B,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,uDAAuD;IACvD,WAAW,EAAE,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,KACvC,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjC,qCAAqC;IACrC,gBAAgB,EAAE,MAAM,MAAM,EAAE,CAAC;CAClC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,OAAO,CAA0B;gBAE7B,OAAO,EAAE,uBAAuB;IAK5C,4DAA4D;IAC5D,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMvE,OAAO,CAAC,gBAAgB;IA0HxB,sDAAsD;YACxC,WAAW;IA+CzB,qEAAqE;IAC/D,YAAY,CAChB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,GACzC,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAwB9B,uGAAuG;IACvG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAShD,6DAA6D;IAC7D,kBAAkB,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAU9E,kCAAkC;IAClC,SAAS,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAc7F,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,IAAI;IAMZ,KAAK,IAAI,IAAI;CAMd;AAID,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,WAAW,EAAE,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,KACvC,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjC,0CAA0C;IAC1C,gBAAgB,EAAE,MAAM,MAAM,EAAE,CAAC;CAClC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,QAAQ,CAAK;gBAET,OAAO,EAAE,uBAAuB;IAI5C,yBAAyB;IACzB,OAAO,IAAI,IAAI;IAqFf,gEAAgE;IAChE,YAAY,CACV,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,GACzC,OAAO;IAcV,4CAA4C;IAC5C,WAAW,IAAI,IAAI;IAcnB,gEAAgE;YAClD,YAAY;IAiB1B,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,IAAI;IAMZ,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,KAAK,IAAI,IAAI;CAMd;AAID,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CASxF"}
@@ -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
- // Start ping/pong heartbeat (30s interval)
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 > 60_000) {
85
+ if (Date.now() - entry.lastSeen > HEARTBEAT_TIMEOUT_MS) {
82
86
  console.log(`[Federation] Spoke "${spokeName}" timed out, disconnecting`);
83
- ws.close(1000, 'Heartbeat timeout');
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
- this.send(ws, { type: 'ping' });
88
- }, 30_000);
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":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAoDhD,gFAAgF;AAChF,MAAM,qBAAqB,GAAG,MAAM,CAAC;AACrC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AA6BpC,MAAM,OAAO,gBAAgB;IACnB,GAAG,CAAkB;IACrB,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IACvC,OAAO,CAA0B;IAEzC,YAAY,OAAgC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,4DAA4D;IAC5D,aAAa,CAAC,GAAoB,EAAE,MAAc,EAAE,IAAY;QAC9D,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE;YAC7C,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,EAAa;QACpC,iDAAiD;QACjD,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;QAC3C,CAAC,EAAE,MAAM,CAAC,CAAC;QAEX,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE;YAC/B,IAAI,GAAsB,CAAC;YAC3B,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACxB,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;oBACxC,OAAO;gBACT,CAAC;gBACD,YAAY,CAAC,WAAW,CAAC,CAAC;gBAE1B,MAAM,OAAO,GAAG,GAA4B,CAAC;gBAC7C,mBAAmB;gBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBACjE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;oBAClC,OAAO;gBACT,CAAC;gBACD,sBAAsB;gBACtB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;wBACZ,IAAI,EAAE,YAAY;wBAClB,MAAM,EAAE,UAAU,OAAO,CAAC,IAAI,uBAAuB;qBACtD,CAAC,CAAC;oBACH,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,iCAAiC;gBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,QAAQ,EAAE,CAAC;oBACb,yBAAyB;oBACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;oBACtD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC;gBAED,aAAa,GAAG,IAAI,CAAC;gBACrB,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;gBAEzB,iBAAiB;gBACjB,MAAM,KAAK,GAAe;oBACxB,IAAI,EAAE,SAAS;oBACf,EAAE;oBACF,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;iBACrB,CAAC;gBAEF,wEAAwE;gBACxE,oEAAoE;gBACpE,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;oBACjC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,GAAG,oBAAoB,EAAE,CAAC;wBACvD,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,4BAA4B,CAAC,CAAC;wBAC1E,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,4DAA4D;wBAC5E,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;wBAC7B,OAAO;oBACT,CAAC;oBACD,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;wBACrC,EAAE,CAAC,IAAI,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,EAAE,qBAAqB,CAAC,CAAC;gBAE1B,kEAAkE;gBAClE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;oBACjB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC9B,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;oBACjB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC5B,4DAA4D;gBAC9D,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,aAAa,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;YAED,yBAAyB;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE5B,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,aAAa;oBAChB,KAAK,CAAC,OAAO,GAAI,GAA4B,CAAC,OAAO,CAAC;oBACtD,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,YAAY,KAAK,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;oBACxF,MAAM;gBAER,KAAK,OAAO;oBACV,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAA6B,CAAC,CAAC;oBAChE,MAAM;gBAER;oBACE,OAAO,CAAC,GAAG,CAAC,2CAA2C,SAAS,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,YAAY,CAAC,WAAW,CAAC,CAAC;YAC1B,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,gBAAgB,CAAC,CAAC;gBAC9D,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,sCAAsC,SAAS,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sDAAsD;IAC9C,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,GAA2B;QACtE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;QAChD,MAAM,eAAe,GAAG,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC;QAEjD,+DAA+D;QAC/D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACjD,+BAA+B;YAC/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;gBAC5F,OAAO,CAAC,GAAG,CAAC,uBAAuB,eAAe,YAAY,MAAM,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7F,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CACX,oDAAoD,MAAM,IAAI,EAC7D,GAAa,CAAC,OAAO,CACvB,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,uBAAuB,OAAO,kCAAkC,CAAC,CAAC;YAC9E,2CAA2C;YAC3C,OAAO;QACT,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,yBAAyB,OAAO,GAAG,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;YACxB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,eAAe;YACrB,EAAE,EAAE,MAAM;YACV,OAAO;YACP,MAAM,EAAE,eAAe;YACvB,UAAU;SACX,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,uBAAuB,eAAe,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,YAAY,CAChB,aAAqB,EACrB,YAAoB,EACpB,OAAe,EACf,MAAc,EACd,UAA0C;QAE1C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC7B,2CAA2C;QAC7C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QACxC,CAAC;QAED,MAAM,eAAe,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;YAClB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,eAAe;YACrB,EAAE,EAAE,YAAY;YAChB,OAAO;YACP,MAAM,EAAE,eAAe;YACvB,UAAU;SACX,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjC,CAAC;IAED,uGAAuG;IACvG,aAAa,CAAC,UAAkB;QAC9B,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6DAA6D;IAC7D,kBAAkB;QAChB,MAAM,MAAM,GAA6D,EAAE,CAAC;QAC5E,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7C,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kCAAkC;IAClC,SAAS;QACP,MAAM,MAAM,GACV,EAAE,CAAC;QACL,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;aAClD,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,KAAK,EAAE,SAAS,EAAE,CAAC;YACrB,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEO,IAAI,CAAC,EAAa,EAAE,GAAsB;QAChD,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK;QACH,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;CACF;AAmBD,MAAM,OAAO,gBAAgB;IACnB,EAAE,GAAqB,IAAI,CAAC;IAC5B,OAAO,CAA0B;IACjC,cAAc,GAAG,IAAI,CAAC;IACtB,iBAAiB,GAAG,MAAM,CAAC;IAC3B,cAAc,GAAyC,IAAI,CAAC;IAC5D,aAAa,GAAG,KAAK,CAAC;IACtB,MAAM,GAAG,KAAK,CAAC;IACf,OAAO,GAAG,EAAE,CAAC;IACb,iBAAiB,GAAa,EAAE,CAAC;IACjC,SAAS,GAA0C,IAAI,CAAC;IACxD,QAAQ,GAAG,CAAC,CAAC;IAErB,YAAY,OAAgC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,yBAAyB;IACzB,OAAO;QACL,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAExB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YAClF,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,sCAAsC;YAClE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE3B,YAAY;YACZ,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;aAC5B,CAAC,CAAC;YAEH,2EAA2E;YAC3E,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,qCAAqC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE;YACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE3B,IAAI,GAAsB,CAAC;YAC3B,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;YAED,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,SAAS;oBACZ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC1B,IAAI,CAAC,OAAO,GAAI,GAAwB,CAAC,OAAO,CAAC;oBACjD,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;oBACrE,mBAAmB;oBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM;gBAER,KAAK,YAAY;oBACf,OAAO,CAAC,KAAK,CAAC,6BAA8B,GAA2B,CAAC,MAAM,EAAE,CAAC,CAAC;oBAClF,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;oBACjB,oDAAoD;oBACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,MAAM;gBAER,KAAK,QAAQ;oBACX,KAAK,IAAI,CAAC,YAAY,CAAC,GAA8B,CAAC,CAAC;oBACvD,MAAM;gBAER;oBACE,MAAM;YACV,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,uDAAuD,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;gBAC5F,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gEAAgE;IAChE,YAAY,CACV,aAAqB,EACrB,YAAoB,EACpB,OAAe,EACf,MAAc,EACd,UAA0C;QAE1C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,EAAE;YAC3C,EAAE,EAAE,GAAG,aAAa,IAAI,YAAY,EAAE;YACtC,OAAO;YACP,MAAM;YACN,UAAU;SACX,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4CAA4C;IAC5C,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAE5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAChD,uBAAuB;QACvB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAE/E,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,aAAa;YACnB,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,gEAAgE;IACxD,KAAK,CAAC,YAAY,CAAC,GAA4B;QACrD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAC3C,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,UAAU,CACf,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACxF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,oDAAoD,GAAG,CAAC,EAAE,IAAI,EAC7D,GAAa,CAAC,OAAO,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,oBAAoB,EAAE,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;gBAC1D,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,4CAA4C;gBAClE,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC3C,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACjB,CAAC;QACH,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC5B,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,IAAI,CAAC,cAAc;YAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE3D,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAExB,+BAA+B;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClF,CAAC;IAEO,IAAI,CAAC,GAAsB;QACjC,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC;IACtE,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,cAAc;YAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;CACF;AAED,sEAAsE;AAEtE,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC;QACvC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;KACxC,CAAC;AACJ,CAAC"}
@@ -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({ role: 'assistant', content: data.response || streamBuffer });
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({ role: 'assistant', content: state.streamBuffer });
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({ role: 'assistant', content: state.streamBuffer });
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({ role: 'assistant', content: s.streamBuffer });
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({ role: 'assistant', content: state.streamBuffer });
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 = '';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luckydraw/cumulus",
3
- "version": "0.30.14",
3
+ "version": "0.30.15",
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",