agent-nuvira 1.88.4 → 1.89.0

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.
Files changed (39) hide show
  1. package/dist/cli/gateway.d.ts +4 -0
  2. package/dist/cli/gateway.d.ts.map +1 -1
  3. package/dist/cli/gateway.js +82 -0
  4. package/dist/cli/gateway.js.map +1 -1
  5. package/dist/gateway/chat-store.d.ts +70 -0
  6. package/dist/gateway/chat-store.d.ts.map +1 -0
  7. package/dist/gateway/chat-store.js +145 -0
  8. package/dist/gateway/chat-store.js.map +1 -0
  9. package/dist/gateway/registry.d.ts +19 -0
  10. package/dist/gateway/registry.d.ts.map +1 -1
  11. package/dist/gateway/registry.js +92 -1
  12. package/dist/gateway/registry.js.map +1 -1
  13. package/dist/sync/inventory.js +1 -1
  14. package/dist/sync/validate.d.ts +1 -0
  15. package/dist/sync/validate.d.ts.map +1 -1
  16. package/dist/sync/validate.js +7 -1
  17. package/dist/sync/validate.js.map +1 -1
  18. package/dist/tools/gateway-send.d.ts +4 -0
  19. package/dist/tools/gateway-send.d.ts.map +1 -1
  20. package/dist/tools/gateway-send.js +90 -1
  21. package/dist/tools/gateway-send.js.map +1 -1
  22. package/dist/tools/registry.d.ts +25 -3
  23. package/dist/tools/registry.d.ts.map +1 -1
  24. package/dist/tools/registry.js +109 -18
  25. package/dist/tools/registry.js.map +1 -1
  26. package/dist/tools/send-message-tool.d.ts +4 -1
  27. package/dist/tools/send-message-tool.d.ts.map +1 -1
  28. package/dist/tools/send-message-tool.js +70 -3
  29. package/dist/tools/send-message-tool.js.map +1 -1
  30. package/dist/web-dashboard/chat-console.d.ts +16 -0
  31. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  32. package/dist/web-dashboard/chat-console.js.map +1 -1
  33. package/dist/web-dashboard/hub-data.d.ts +15 -0
  34. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  35. package/dist/web-dashboard/hub-data.js +26 -0
  36. package/dist/web-dashboard/hub-data.js.map +1 -1
  37. package/dist/web-dashboard/src/types.d.ts +13 -0
  38. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  39. package/package.json +1 -1
@@ -17,6 +17,10 @@ export declare class GatewayCommand {
17
17
  private status;
18
18
  private send;
19
19
  private sendMedia;
20
+ private historyList;
21
+ private historyShow;
22
+ private historyClear;
23
+ private historyPrune;
20
24
  private delivery;
21
25
  private aliasAdd;
22
26
  private aliasRemove;
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/cli/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyCpC,qBAAa,cAAc;IACzB,MAAM,IAAI,OAAO;IA8FjB,OAAO,CAAC,MAAM;YAoDA,IAAI;YAmCJ,SAAS;YAsDT,QAAQ;YA+CR,QAAQ;YAmBR,WAAW;YAYX,WAAW;YA0BX,cAAc;YAgBd,aAAa;YAeb,aAAa;YAgBb,UAAU;YAaV,IAAI;YAcJ,KAAK;YAqLL,KAAK;CAqDpB"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/cli/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyCpC,qBAAa,cAAc;IACzB,MAAM,IAAI,OAAO;IAuHjB,OAAO,CAAC,MAAM;YAoDA,IAAI;YAmCJ,SAAS;YAsDT,WAAW;YAwBX,WAAW;YAkBX,YAAY;YAaZ,YAAY;YASZ,QAAQ;YA+CR,QAAQ;YAmBR,WAAW;YAYX,WAAW;YA0BX,cAAc;YAgBd,aAAa;YAeb,aAAa;YAgBb,UAAU;YAaV,IAAI;YAcJ,KAAK;YAqLL,KAAK;CAqDpB"}
@@ -81,6 +81,26 @@ export class GatewayCommand {
81
81
  .description('Show the delivery ledger (failed sends awaiting retry) and optionally drain it')
82
82
  .option('--flush', 'Attempt every due pending entry now (uses configured adapters)')
83
83
  .action(async (opts) => this.delivery(Boolean(opts.flush)));
84
+ // ── history subcommands (per-contact conversation history) ──
85
+ const history = cmd.command('history').description('Manage per-contact conversation history (gateway chat memory)');
86
+ history
87
+ .command('list')
88
+ .description('List all stored conversations with last message preview')
89
+ .option('--platform <platform>', 'Filter by platform (whatsapp, telegram, etc.)')
90
+ .action(async (opts) => this.historyList(opts));
91
+ history
92
+ .command('show <key>')
93
+ .description('Show conversation history for a contact (e.g. nuvira gateway history show whatsapp:918800663237)')
94
+ .option('--limit <n>', 'Max message pairs to show', '5')
95
+ .action(async (key, opts) => this.historyShow(key, Number(opts.limit)));
96
+ history
97
+ .command('clear <key>')
98
+ .description('Clear conversation history for a contact')
99
+ .action(async (key) => this.historyClear(key));
100
+ history
101
+ .command('prune')
102
+ .description('Remove conversations older than 7 days')
103
+ .action(async () => this.historyPrune());
84
104
  cmd
85
105
  .command('start')
86
106
  .description('Run all configured adapters in the foreground (Ctrl-C to stop)')
@@ -237,6 +257,68 @@ export class GatewayCommand {
237
257
  }
238
258
  logger.success(`Sent ${type} to ${target} (${ref.platform}:${maskSenderId(ref.channelId)})`);
239
259
  }
260
+ // ─── history (per-contact conversation memory) ────────────────────────────
261
+ async historyList(opts) {
262
+ const { GatewayChatStore } = await import('../gateway/chat-store.js');
263
+ const store = new GatewayChatStore();
264
+ let conversations = store.getAllConversations();
265
+ if (opts.platform) {
266
+ conversations = conversations.filter((c) => c.key.startsWith(`${opts.platform}:`));
267
+ }
268
+ if (conversations.length === 0) {
269
+ console.log('No stored conversations.');
270
+ return;
271
+ }
272
+ console.log(`💬 Conversation history (${conversations.length} conversations)\n`);
273
+ for (const conv of conversations) {
274
+ const lastUser = conv.messages.filter((m) => m.role === 'user').pop();
275
+ const lastAssistant = conv.messages.filter((m) => m.role === 'assistant').pop();
276
+ const age = Date.now() - conv.lastActiveAt;
277
+ const ageStr = age < 60_000 ? 'just now' : age < 3_600_000 ? `${Math.round(age / 60_000)}m ago` : age < 86_400_000 ? `${Math.round(age / 3_600_000)}h ago` : `${Math.round(age / 86_400_000)}d ago`;
278
+ console.log(` ${conv.key} (${conv.messages.length} messages, ${ageStr})`);
279
+ if (lastUser)
280
+ console.log(` 👤 ${(lastUser.content || '').slice(0, 80)}`);
281
+ if (lastAssistant)
282
+ console.log(` 🤖 ${(lastAssistant.content || '').slice(0, 80)}`);
283
+ console.log('');
284
+ }
285
+ }
286
+ async historyShow(key, limit) {
287
+ const { GatewayChatStore } = await import('../gateway/chat-store.js');
288
+ const store = new GatewayChatStore();
289
+ const messages = store.getHistory(key);
290
+ if (messages.length === 0) {
291
+ console.log(`No history found for '${key}'.`);
292
+ return;
293
+ }
294
+ const pairs = limit * 2;
295
+ const shown = messages.slice(-pairs);
296
+ console.log(`💬 History for ${key} (${shown.length} of ${messages.length} messages):\n`);
297
+ for (const msg of shown) {
298
+ const ts = new Date(msg.ts).toLocaleTimeString();
299
+ const icon = msg.role === 'user' ? '👤' : '🤖';
300
+ console.log(` ${icon} [${ts}] ${(msg.content || '').slice(0, 200)}`);
301
+ }
302
+ }
303
+ async historyClear(key) {
304
+ const { GatewayChatStore } = await import('../gateway/chat-store.js');
305
+ const store = new GatewayChatStore();
306
+ const before = store.count();
307
+ store.clear(key);
308
+ const after = store.count();
309
+ if (before === after) {
310
+ console.log(`No conversation found for '${key}'.`);
311
+ }
312
+ else {
313
+ console.log(`✅ Cleared conversation history for ${key}.`);
314
+ }
315
+ }
316
+ async historyPrune() {
317
+ const { GatewayChatStore } = await import('../gateway/chat-store.js');
318
+ const store = new GatewayChatStore();
319
+ const removed = store.prune();
320
+ console.log(`✅ Pruned ${removed} stale conversation(s) (older than 7 days).`);
321
+ }
240
322
  // ─── delivery (I2) ────────────────────────────────────────────────────────
241
323
  async delivery(flush) {
242
324
  const ledger = new DeliveryLedger();
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/cli/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/cli/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACV,cAAc,EACd,oBAAoB,GAErB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,OAAO,cAAc;IACzB,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;aAC/B,WAAW,CAAC,kGAAkG,CAAC,CAAC;QAEnH,GAAG;aACA,OAAO,CAAC,QAAQ,CAAC;aACjB,WAAW,CAAC,iDAAiD,CAAC;aAC9D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE/B,GAAG;aACA,OAAO,CAAC,sBAAsB,CAAC;aAC/B,WAAW,CAAC,yDAAyD,CAAC;aACtE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAE3D,GAAG;aACA,OAAO,CAAC,4BAA4B,CAAC;aACrC,WAAW,CAAC,0GAA0G,CAAC;aACvH,MAAM,CAAC,kBAAkB,EAAE,kCAAkC,CAAC;aAC9D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAA0B,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAE1G,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;QAEzE,KAAK;aACF,OAAO,CAAC,oCAAoC,CAAC;aAC7C,WAAW,CAAC,6DAA6D,CAAC;aAC1E,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAErD,KAAK;aACF,OAAO,CAAC,gBAAgB,CAAC;aACzB,WAAW,CAAC,iBAAiB,CAAC;aAC9B,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5C,6DAA6D;QAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,wEAAwE,CAAC,CAAC;QAE7H,OAAO;aACJ,OAAO,CAAC,MAAM,CAAC;aACf,WAAW,CAAC,iDAAiD,CAAC;aAC9D,MAAM,CAAC,WAAW,EAAE,4BAA4B,CAAC;aACjD,MAAM,CAAC,uBAAuB,EAAE,+CAA+C,CAAC;aAChF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAElD,OAAO;aACJ,OAAO,CAAC,oBAAoB,CAAC;aAC7B,WAAW,CAAC,0CAA0C,CAAC;aACvD,MAAM,CAAC,uBAAuB,EAAE,mDAAmD,CAAC;aACpF,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAEzE,OAAO;aACJ,OAAO,CAAC,mBAAmB,CAAC;aAC5B,WAAW,CAAC,4CAA4C,CAAC;aACzD,MAAM,CAAC,uBAAuB,EAAE,kDAAkD,CAAC;aACnF,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAExE,OAAO;aACJ,OAAO,CAAC,mBAAmB,CAAC;aAC5B,WAAW,CAAC,8BAA8B,CAAC;aAC3C,MAAM,CAAC,uBAAuB,EAAE,oDAAoD,CAAC;aACrF,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAExE,OAAO;aACJ,OAAO,CAAC,4BAA4B,CAAC;aACrC,WAAW,CAAC,kFAAkF,CAAC;aAC/F,MAAM,CAAC,kBAAkB,EAAE,2CAA2C,CAAC;aACvE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QAEzF,GAAG;aACA,OAAO,CAAC,UAAU,CAAC;aACnB,WAAW,CAAC,gFAAgF,CAAC;aAC7F,MAAM,CAAC,SAAS,EAAE,gEAAgE,CAAC;aACnF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE9D,+DAA+D;QAC/D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,+DAA+D,CAAC,CAAC;QAEpH,OAAO;aACJ,OAAO,CAAC,MAAM,CAAC;aACf,WAAW,CAAC,yDAAyD,CAAC;aACtE,MAAM,CAAC,uBAAuB,EAAE,+CAA+C,CAAC;aAChF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAElD,OAAO;aACJ,OAAO,CAAC,YAAY,CAAC;aACrB,WAAW,CAAC,kGAAkG,CAAC;aAC/G,MAAM,CAAC,aAAa,EAAE,2BAA2B,EAAE,GAAG,CAAC;aACvD,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE1E,OAAO;aACJ,OAAO,CAAC,aAAa,CAAC;aACtB,WAAW,CAAC,0CAA0C,CAAC;aACvD,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAEjD,OAAO;aACJ,OAAO,CAAC,OAAO,CAAC;aAChB,WAAW,CAAC,wCAAwC,CAAC;aACrD,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE3C,GAAG;aACA,OAAO,CAAC,OAAO,CAAC;aAChB,WAAW,CAAC,gEAAgE,CAAC;aAC7E,MAAM,CAAC,YAAY,EAAE,iDAAiD,EAAE,MAAM,CAAC;aAC/E,MAAM,CAAC,aAAa,EAAE,4EAA4E,EAAE,WAAW,CAAC;aAChH,MAAM,CAAC,aAAa,EAAE,wCAAwC,EAAE,KAAK,CAAC;aACtE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAAI,GAAG;aACrF,OAAO,CAAC,MAAM,CAAC;aACf,WAAW,CAAC,iEAAiE,CAAC;aAC9E,MAAM,CAAC,YAAY,EAAE,qDAAqD,EAAE,MAAM,CAAC;aACnF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAExD,GAAG;aACA,OAAO,CAAC,kBAAkB,CAAC;aAC3B,WAAW,CAAC,wFAAwF,CAAC;aACrG,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEpD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,6EAA6E;IAErE,MAAM;QACZ,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,uBAAuB,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;YACzF,OAAO,CAAC,GAAG,CAAC,iIAAiI,CAAC,CAAC;YAC/I,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;YACxF,OAAO,CAAC,GAAG,CAAC,2HAA2H,CAAC,CAAC;YACzI,OAAO,CAAC,GAAG,CAAC,2HAA2H,CAAC,CAAC;YACzI,OAAO,CAAC,GAAG,CAAC,0IAA0I,CAAC,CAAC;YACxJ,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;YAC5G,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;YAC9F,OAAO,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAC;YACxG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBACtC,mEAAmE;gBACnE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,eAAe,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,sOAAsO,CAAC,CAAC;YACpP,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;YAC5G,OAAO,CAAC,GAAG,CAAC,4DAA4D,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC;YAC9G,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,IAAY;QAC7C,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;QAC5C,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE3D,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,CAAC,KAAK,CAAC,2BAA2B,MAAM,wCAAwC,CAAC,CAAC;YACxF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/C,uEAAuE;QACvE,0EAA0E;QAC1E,+DAA+D;QAC/D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,QAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC/E,MAAM,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;YACpG,MAAM,CAAC,IAAI,CAAC,YAAY,UAAU,EAAE,uDAAuD,CAAC,CAAC;YAC7F,MAAM,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;YACpF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,WAAW,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACvF,CAAC;IAED,4EAA4E;IAEpE,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAY,EAAE,OAAgB;QACpE,IAAI,IAAgB,CAAC;QACrB,IAAI,CAAC;YACH,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,aAAa,CAAC,CAAC;YACzC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,IAAI,GACR,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO;YAC7D,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO;gBACvD,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO;oBACtD,CAAC,CAAC,UAAU,CAAC;QAEf,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;QAC5C,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,CAAC,KAAK,CAAC,2BAA2B,MAAM,wCAAwC,CAAC,CAAC;YACxF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE;YAC5C,IAAI;YACJ,IAAI;YACJ,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI;SACxC,CAAC,CAAC;QACH,sEAAsE;QACtE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,CAAC,QAAQ,oFAAoF,CAAC,CAAC;YACvI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/F,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,WAAW,CAAC,IAA2B;QACnD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrC,IAAI,aAAa,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAChD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,4BAA4B,aAAa,CAAC,MAAM,mBAAmB,CAAC,CAAC;QACjF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;YACtE,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;YAChF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3C,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC;YACpM,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,cAAc,MAAM,GAAG,CAAC,CAAC;YAC3E,IAAI,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7E,IAAI,aAAa;gBAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,GAAW,EAAE,KAAa;QAClD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,KAAK,CAAC,MAAM,OAAO,QAAQ,CAAC,MAAM,eAAe,CAAC,CAAC;QACzF,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAW;QACpC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sCAAsC,GAAG,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,6CAA6C,CAAC,CAAC;IAChF,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,QAAQ,CAAC,KAAc;QACnC,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAE9B,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;YAC5C,KAAK,MAAM,OAAO,IAAI,QAAQ;gBAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC9C,qEAAqE;YACrE,0BAA0B;YAC1B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,iBAAiB;gBACnB,CAAC;YACH,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,4BAA4B,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,SAAS,YAAY,CAAC,CAAC;QACzH,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC3E,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxH,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3K,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,MAAM,cAAc,IAAI,CAAC,MAAM,WAAW,MAAM,CAAC,MAAM,eAAe,SAAS,CAAC,MAAM,YAAY,CAAC,CAAC;QACpI,OAAO,CAAC,GAAG,CAAC,0GAA0G,CAAC,CAAC;IAC1H,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,QAAgB,EAAE,SAAiB;QACvE,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAC/C,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,iBAAiB,CAAC,QAAe,EAAE,SAAS,CAAC,CAAC;QAC1D,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAe,EAAE,SAAS,CAAC,CAAC;YACpE,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,CAAC,KAAK,OAAO,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAa;QACrC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAC/C,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACzC,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,8EAA8E;IAEtE,KAAK,CAAC,WAAW,CAAC,IAA8C;QACtE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAChD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACrC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YACzD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACnF,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrG,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,UAAU,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACtE,IAAI,OAAO,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,uCAAuC,UAAU,EAAE,kCAAkC,CAAC,CAAC;IAClI,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAAgB,EAAE,IAA2B;QACxE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAChD,MAAM,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACzF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAiB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC1E,IAAI,EAAE,EAAE,CAAC;gBAAC,MAAM,CAAC,OAAO,CAAC,cAAc,QAAQ,iBAAiB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAAC,CAAC;iBAAM,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC,YAAY,QAAQ,kBAAkB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,CAAC;YACvL,OAAO;QACT,CAAC;QACD,qDAAqD;QACrD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC1G,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC,YAAY,QAAQ,cAAc,CAAC,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC1G,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAAC,CAAC;QAC3E,MAAM,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,IAA2B;QACvE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAChD,MAAM,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACzF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAiB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC1E,IAAI,EAAE,EAAE,CAAC;gBAAC,MAAM,CAAC,OAAO,CAAC,eAAe,QAAQ,iBAAiB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAAC,CAAC;iBAAM,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC,YAAY,QAAQ,kBAAkB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,CAAC;YACxL,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC1G,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC,YAAY,QAAQ,cAAc,CAAC,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC1G,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAAC,CAAC;QAC3E,MAAM,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,IAA2B;QACvE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAChD,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAiB,EAAE,QAAQ,CAAC,CAAC;YAClE,IAAI,EAAE,EAAE,CAAC;gBAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,QAAQ,kBAAkB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAAC,CAAC;iBAAM,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC,YAAY,QAAQ,kBAAkB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,CAAC;YAC1L,OAAO;QACT,CAAC;QACD,8BAA8B;QAC9B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;YACxF,IAAI,oBAAoB,CAAC,CAAU,EAAE,QAAQ,CAAC;gBAAE,OAAO,GAAG,IAAI,CAAC;QACjE,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,QAAQ,YAAY,CAAC,CAAC;QAAC,CAAC;aAAM,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC,YAAY,QAAQ,cAAc,CAAC,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QAAC,CAAC;IACzJ,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAU,EAAE,IAAwB;QAC3F,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAChD,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACxE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAiB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5J,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,OAAO,CAAC,eAAe,OAAO,CAAC,IAAI,YAAY,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/I,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,IAAI,cAAc,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,IAAI,CAAC,IAAY;QAC7B,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAC/C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,CAAC,wBAAwB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,CAAC,MAAM,IAAI,0BAA0B,EAAE,CAAC,CAAC;YAC3F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,4EAA4E;IAEpE,KAAK,CAAC,KAAK,CAAC,WAA+B;QACjD,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAC/C,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;QACpD,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAC9G,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;QAE5E,kCAAkC;QAClC,MAAM,MAAM,GAMP;YACH,QAAQ,EAAE;gBACR,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE;oBACL,yCAAyC;oBACzC,kDAAkD;oBAClD,4CAA4C;oBAC5C,qEAAqE;oBACrE,iDAAiD;oBACjD,+DAA+D;iBAChE;gBACD,IAAI,EAAE,kBAAkB,CAAC,UAAU,CAAC;gBACpC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;oBACvB,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC;oBACzC,IAAI,CAAC,KAAK;wBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;oBAC9D,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,+BAA+B,KAAK,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBAC/G,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAsD,CAAC;wBAClF,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;4BACrC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;wBACtB,CAAC;wBACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8CAA8C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACpG,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACnH,CAAC;gBACH,CAAC;gBACD,SAAS,EAAE;oBACT,0CAA0C;oBAC1C,8CAA8C;oBAC9C,qCAAqC;oBACrC,6DAA6D;oBAC7D,mFAAmF;iBACpF;aACF;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL,mDAAmD;oBACnD,mDAAmD;oBACnD,mDAAmD;oBACnD,mDAAmD;oBACnD,kEAAkE;oBAClE,oGAAoG;iBACrG;gBACD,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC;gBACnC,SAAS,EAAE;oBACT,0CAA0C;oBAC1C,sDAAsD;oBACtD,qCAAqC;iBACtC;aACF;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,kCAAkC;oBAClC,yCAAyC;oBACzC,uFAAuF;oBACvF,mCAAmC;oBACnC,mDAAmD;iBACpD;gBACD,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC;gBACjC,SAAS,EAAE;oBACT,0CAA0C;oBAC1C,uCAAuC;oBACvC,qCAAqC;iBACtC;aACF;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE;oBACL,yDAAyD;oBACzD,oFAAoF;oBACpF,iEAAiE;iBAClE;gBACD,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC;gBACjC,SAAS,EAAE;oBACT,0CAA0C;oBAC1C,yCAAyC;oBACzC,iCAAiC;iBAClC;aACF;SACF,CAAC;QAEF,2CAA2C;QAC3C,IAAI,QAAQ,GAAG,WAAW,EAAE,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxD,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,oBAAoB,CAAC,GAAU,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrF,KAAK,EAAE,GAAG;aACX,CAAC,CAAC,CAAC;YACJ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAqB,CAAC;oBAC5D,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,uCAAuC;oBAChD,OAAO;iBACR,CAAC,CAAC,CAAC;YACJ,QAAQ,GAAG,MAAM,CAAC;QACpB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAS,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,qBAAqB,QAAQ,iBAAiB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,SAAS,CAAC,uBAAuB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,cAAc;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,2BAA2B;QAC3B,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAoB,CAAC;oBAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;oBACrC,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG;oBACvB,OAAO,EAAE,QAAQ,IAAI,SAAS;oBAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;iBACjC,CAAC,CAAC,CAAC;YACJ,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACvC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,OAAO,CAAC,4BAA4B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE/D,yCAAyC;QACzC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,MAAM,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,IAAY,EAAE,YAAqB;QACnE,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAqB,wBAAwB,EAAE,CAAC;QAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE3D,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAAC;YAChG,OAAO,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAAC;YAChG,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;YAC7F,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;YACzF,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;YAC1F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,uDAAuD;QACvD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACvD,QAAQ;iBACL,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACnB,MAAM,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;iBACb,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBACzB,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC;QAEzC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEvB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,iCAAiC,IAAI,IAAI,IAAI,mCAAmC,CAAC,CAAC;YAC9F,MAAM,CAAC,IAAI,CAAC,gHAAgH,CAAC,CAAC;YAC9H,MAAM,CAAC,IAAI,CAAC,yGAAyG,CAAC,CAAC;QACzH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;YACzC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAE7C,4CAA4C;QAC5C,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE,GAAwB,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF;AAED,sEAAsE;AACtE,SAAS,cAAc;IACrB,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,wBAAwB,EAAE;QAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,oEAAoE;IACpE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Gateway Chat History Store (`src/gateway/chat-store.ts`).
3
+ *
4
+ * Persists per-contact conversation history to disk so that gateway chats
5
+ * (WhatsApp, Telegram, Discord, ...) survive restarts. Follows the same
6
+ * conventions as DeliveryLedger/InboxLedger:
7
+ *
8
+ * - File: `~/.nuvira/gateway/chat-history.json`
9
+ * - Keyed by `platform:channelId`
10
+ * - Each conversation holds the last N message pairs (user + assistant)
11
+ * - TTL: conversations older than 7 days are automatically pruned
12
+ * - Cap: max 100 conversations stored; oldest evicted first
13
+ * - Best-effort: read/write failures never throw
14
+ */
15
+ /** Max message pairs retained per contact. */
16
+ export declare const CHAT_HISTORY_MAX_PAIRS = 10;
17
+ /** Max number of distinct conversations (contacts) stored. */
18
+ export declare const CHAT_HISTORY_MAX_CONVERSATIONS = 100;
19
+ /** Conversations older than this (ms) are pruned. 7 days. */
20
+ export declare const CHAT_HISTORY_TTL_MS: number;
21
+ export interface ChatMessage {
22
+ role: 'user' | 'assistant';
23
+ content: string;
24
+ /** Epoch-ms when this message was stored. */
25
+ ts: number;
26
+ }
27
+ export interface ChatConversation {
28
+ /** Platform + channel id, e.g. "whatsapp:9188006663237". */
29
+ key: string;
30
+ /** Messages in chronological order (oldest first). */
31
+ messages: ChatMessage[];
32
+ /** Epoch-ms of the last message (for TTL/pruning). */
33
+ lastActiveAt: number;
34
+ }
35
+ export declare class GatewayChatStore {
36
+ private file;
37
+ constructor(configDir?: string);
38
+ /** Absolute path of the store file. */
39
+ get storePath(): string;
40
+ /** Load all conversations from disk. Never throws. */
41
+ private read;
42
+ /** Persist conversations to disk. Never throws. */
43
+ private write;
44
+ /**
45
+ * Load conversation history for a contact.
46
+ * Returns messages in chronological order (oldest first), or [] if none.
47
+ */
48
+ getHistory(key: string): ChatMessage[];
49
+ /**
50
+ * Append a user message + assistant response to a contact's conversation.
51
+ * Trims to CHAT_HISTORY_MAX_PAIRS and persists to disk.
52
+ */
53
+ append(key: string, userMessage: string, assistantMessage: string): void;
54
+ /**
55
+ * Remove conversation history for a specific contact.
56
+ */
57
+ clear(key: string): void;
58
+ /**
59
+ * Prune conversations older than CHAT_HISTORY_TTL_MS and enforce the
60
+ * max-conversations cap (evict oldest first). Returns the number removed.
61
+ */
62
+ prune(now?: number): number;
63
+ /** All conversations, sorted by lastActiveAt descending. */
64
+ getAllConversations(): ChatConversation[];
65
+ /** Total number of stored conversations. */
66
+ count(): number;
67
+ }
68
+ export declare function getGatewayChatStore(configDir?: string): GatewayChatStore;
69
+ export declare function resetGatewayChatStore(): void;
70
+ //# sourceMappingURL=chat-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-store.d.ts","sourceRoot":"","sources":["../../src/gateway/chat-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,8DAA8D;AAC9D,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB,QAA0B,CAAC;AAI3D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;CACtB;AASD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAS;gBAET,SAAS,CAAC,EAAE,MAAM;IAI9B,uCAAuC;IACvC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,sDAAsD;IACtD,OAAO,CAAC,IAAI;IAWZ,mDAAmD;IACnD,OAAO,CAAC,KAAK;IASb;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE;IAMtC;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAwBxE;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMxB;;;OAGG;IACH,KAAK,CAAC,GAAG,SAAa,GAAG,MAAM;IAyB/B,4DAA4D;IAC5D,mBAAmB,IAAI,gBAAgB,EAAE;IAMzC,4CAA4C;IAC5C,KAAK,IAAI,MAAM;CAGhB;AAMD,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAGxE;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Gateway Chat History Store (`src/gateway/chat-store.ts`).
3
+ *
4
+ * Persists per-contact conversation history to disk so that gateway chats
5
+ * (WhatsApp, Telegram, Discord, ...) survive restarts. Follows the same
6
+ * conventions as DeliveryLedger/InboxLedger:
7
+ *
8
+ * - File: `~/.nuvira/gateway/chat-history.json`
9
+ * - Keyed by `platform:channelId`
10
+ * - Each conversation holds the last N message pairs (user + assistant)
11
+ * - TTL: conversations older than 7 days are automatically pruned
12
+ * - Cap: max 100 conversations stored; oldest evicted first
13
+ * - Best-effort: read/write failures never throw
14
+ */
15
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
16
+ import { dirname, join } from 'node:path';
17
+ import { resolveBuffConfigDir } from '../config/paths.js';
18
+ // ─── Constants ──────────────────────────────────────────────────────────────
19
+ /** Max message pairs retained per contact. */
20
+ export const CHAT_HISTORY_MAX_PAIRS = 10;
21
+ /** Max number of distinct conversations (contacts) stored. */
22
+ export const CHAT_HISTORY_MAX_CONVERSATIONS = 100;
23
+ /** Conversations older than this (ms) are pruned. 7 days. */
24
+ export const CHAT_HISTORY_TTL_MS = 7 * 24 * 60 * 60 * 1000;
25
+ // ─── Store ──────────────────────────────────────────────────────────────────
26
+ export class GatewayChatStore {
27
+ file;
28
+ constructor(configDir) {
29
+ this.file = join(resolveBuffConfigDir(configDir), 'gateway', 'chat-history.json');
30
+ }
31
+ /** Absolute path of the store file. */
32
+ get storePath() {
33
+ return this.file;
34
+ }
35
+ /** Load all conversations from disk. Never throws. */
36
+ read() {
37
+ try {
38
+ if (!existsSync(this.file))
39
+ return { version: 1, conversations: {} };
40
+ const parsed = JSON.parse(readFileSync(this.file, 'utf-8'));
41
+ if (parsed && typeof parsed.conversations === 'object')
42
+ return parsed;
43
+ return { version: 1, conversations: {} };
44
+ }
45
+ catch {
46
+ return { version: 1, conversations: {} };
47
+ }
48
+ }
49
+ /** Persist conversations to disk. Never throws. */
50
+ write(data) {
51
+ try {
52
+ mkdirSync(dirname(this.file), { recursive: true });
53
+ writeFileSync(this.file, JSON.stringify(data, null, 2), 'utf-8');
54
+ }
55
+ catch {
56
+ /* best-effort — a failed write must never break a chat turn */
57
+ }
58
+ }
59
+ /**
60
+ * Load conversation history for a contact.
61
+ * Returns messages in chronological order (oldest first), or [] if none.
62
+ */
63
+ getHistory(key) {
64
+ const data = this.read();
65
+ const conv = data.conversations[key];
66
+ return conv?.messages ?? [];
67
+ }
68
+ /**
69
+ * Append a user message + assistant response to a contact's conversation.
70
+ * Trims to CHAT_HISTORY_MAX_PAIRS and persists to disk.
71
+ */
72
+ append(key, userMessage, assistantMessage) {
73
+ const data = this.read();
74
+ const now = Date.now();
75
+ const existing = data.conversations[key];
76
+ const messages = [
77
+ ...(existing?.messages ?? []),
78
+ { role: 'user', content: userMessage, ts: now },
79
+ { role: 'assistant', content: assistantMessage, ts: now },
80
+ ];
81
+ // Trim to max pairs (each pair = 2 messages).
82
+ const maxMessages = CHAT_HISTORY_MAX_PAIRS * 2;
83
+ const trimmed = messages.slice(-maxMessages);
84
+ data.conversations[key] = {
85
+ key,
86
+ messages: trimmed,
87
+ lastActiveAt: now,
88
+ };
89
+ this.write(data);
90
+ }
91
+ /**
92
+ * Remove conversation history for a specific contact.
93
+ */
94
+ clear(key) {
95
+ const data = this.read();
96
+ delete data.conversations[key];
97
+ this.write(data);
98
+ }
99
+ /**
100
+ * Prune conversations older than CHAT_HISTORY_TTL_MS and enforce the
101
+ * max-conversations cap (evict oldest first). Returns the number removed.
102
+ */
103
+ prune(now = Date.now()) {
104
+ const data = this.read();
105
+ const keys = Object.keys(data.conversations);
106
+ const before = keys.length;
107
+ // Remove expired conversations.
108
+ for (const key of keys) {
109
+ const conv = data.conversations[key];
110
+ if (now - conv.lastActiveAt > CHAT_HISTORY_TTL_MS) {
111
+ delete data.conversations[key];
112
+ }
113
+ }
114
+ // Enforce cap: sort remaining by lastActiveAt ascending, remove oldest.
115
+ const remaining = Object.entries(data.conversations)
116
+ .sort((a, b) => a[1].lastActiveAt - b[1].lastActiveAt);
117
+ while (remaining.length > CHAT_HISTORY_MAX_CONVERSATIONS) {
118
+ const [oldestKey] = remaining.shift();
119
+ delete data.conversations[oldestKey];
120
+ }
121
+ this.write(data);
122
+ return before - Object.keys(data.conversations).length;
123
+ }
124
+ /** All conversations, sorted by lastActiveAt descending. */
125
+ getAllConversations() {
126
+ const data = this.read();
127
+ return Object.values(data.conversations)
128
+ .sort((a, b) => b.lastActiveAt - a.lastActiveAt);
129
+ }
130
+ /** Total number of stored conversations. */
131
+ count() {
132
+ return Object.keys(this.read().conversations).length;
133
+ }
134
+ }
135
+ // ─── Singleton ──────────────────────────────────────────────────────────────
136
+ let _instance = null;
137
+ export function getGatewayChatStore(configDir) {
138
+ if (!_instance)
139
+ _instance = new GatewayChatStore(configDir);
140
+ return _instance;
141
+ }
142
+ export function resetGatewayChatStore() {
143
+ _instance = null;
144
+ }
145
+ //# sourceMappingURL=chat-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-store.js","sourceRoot":"","sources":["../../src/gateway/chat-store.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,22 @@ import { ChannelDirectory, type ChannelRef, type PolicyMap } from './channel-dir
20
20
  import type { ChannelAdapter, InboundMessage, MediaPayload } from './adapters.js';
21
21
  import { DeliveryLedger } from './delivery.js';
22
22
  import { InboxLedger } from './inbox.js';
23
+ /**
24
+ * Strip leaked internal reasoning, planning blocks, and meta-commentary from
25
+ * a gateway chat response. The model sometimes emits its chain-of-thought
26
+ * (draft planning, tool deliberation, self-correction) as visible text instead
27
+ * of keeping it internal. This function removes the noise while preserving
28
+ * the actual deliverable (poem, answer, code, etc.).
29
+ *
30
+ * Patterns stripped:
31
+ * - Planning blocks: lines like "* User: Divya", "* Tone: Loving", "* Stanza 1:..."
32
+ * - Drafting/action markers: "* Drafting:", "* Acknowledge:", "* Answer:", "* Tool:"
33
+ * - Self-correction: "Correction: ...", "Self-Correction on..."
34
+ * - Deliberation: "Wait, the prompt says...", "Actually, looking at..."
35
+ * - Preamble: "I would be happy to..." / "I'd be happy to..." at the start
36
+ * - Response format planning: "1. Text response", "2. gateway_send", etc.
37
+ */
38
+ export declare function stripGatewayReasoning(text: string): string;
23
39
  /**
24
40
  * Does a request ask to DELIVER something to someone (send/message/email/text
25
41
  * … to/for a recipient)? Used to route pipeline intents that ALSO ask for
@@ -110,6 +126,9 @@ export declare class GatewayRegistry {
110
126
  private drainChain;
111
127
  private started;
112
128
  private chatEngine;
129
+ /** Per-contact conversation history for gateway chat (WhatsApp/Telegram/etc.).
130
+ * Disk-backed via GatewayChatStore so history survives gateway restarts. */
131
+ private chatStore;
113
132
  constructor(options?: GatewayRegistryOptions, configManager?: ConfigManager);
114
133
  /**
115
134
  * Build the effective policy map: explicit options < env < config (most
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/gateway/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/gateway/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,gBAAgB,EAIhB,KAAK,UAAU,EAEf,KAAK,SAAS,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,cAAc,EAAsB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,WAAW,EAA2B,MAAM,YAAY,CAAC;AASlE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiC1D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOpD;AAID,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAsBzE;AAID;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAOhE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGlE;AAyBD,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKpD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,SAAS,CAoBvC;AAID,MAAM,WAAW,sBAAsB;IACrC,0FAA0F;IAC1F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2FAA2F;IAC3F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6FAA6F;IAC7F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,kCAAkC,EAAE,UAAU,CAAC;CACpE;AAED,qBAAa,eAAe;IAC1B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,OAAO,CAA0F;IACzG;;yBAEqB;IACrB,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,aAAa,CAA+B;IACpD,wEAAwE;IACxE,OAAO,CAAC,aAAa,CAA2B;IAChD,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAuC;IACvD;;wDAEoD;IACpD,OAAO,CAAC,UAAU,CAAuC;IACzD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAA8C;IAChE;iFAC6E;IAC7E,OAAO,CAAC,SAAS,CAAmB;gBAExB,OAAO,GAAE,sBAA2B,EAAE,aAAa,CAAC,EAAE,aAAa;IAoB/E;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAQpB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAK5B;;;;OAIG;YACW,sBAAsB;IAOpC,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIvC,+BAA+B;IAC/B,YAAY,IAAI,cAAc,EAAE;IAIhC,sDAAsD;IACtD,oBAAoB,IAAI,OAAO;IAI/B,6EAA6E;IACvE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1D;;;;OAIG;IACG,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAM5E,gFAAgF;IAC1E,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BjF;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAMnF,+EAA+E;YACjE,SAAS;IASvB,iFAAiF;IACjF,OAAO,CAAC,gBAAgB;IAYxB;;;;;;;OAOG;IACG,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IA4KzD;;;;;;;OAOG;YACW,cAAc;IA4G5B,0FAA0F;IAC1F,OAAO,CAAC,SAAS;IAOjB,wEAAwE;IAClE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC5B;;;;;;OAMG;YACW,mBAAmB;IAmDjC,yEAAyE;IACnE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAa5B"}