crewly 1.20.207 → 1.20.209

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 (121) hide show
  1. package/dist/backend/backend/src/constants.d.ts +10 -0
  2. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  3. package/dist/backend/backend/src/constants.js +10 -0
  4. package/dist/backend/backend/src/constants.js.map +1 -1
  5. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  6. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +4 -0
  7. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  8. package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
  9. package/dist/backend/backend/src/controllers/session/session.controller.js +2 -0
  10. package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
  11. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  12. package/dist/backend/backend/src/controllers/slack/slack.controller.js +29 -0
  13. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  14. package/dist/backend/backend/src/index.d.ts.map +1 -1
  15. package/dist/backend/backend/src/index.js +15 -1
  16. package/dist/backend/backend/src/index.js.map +1 -1
  17. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  18. package/dist/backend/backend/src/services/agent/agent-registration.service.js +12 -2
  19. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  20. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +9 -0
  21. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  22. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +11 -0
  23. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  24. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +10 -0
  25. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  26. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +19 -0
  27. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  28. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.d.ts +10 -0
  29. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.js +16 -0
  31. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.js.map +1 -1
  32. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +10 -0
  33. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +21 -0
  35. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  36. package/dist/backend/backend/src/services/session/input-ledger.d.ts +115 -0
  37. package/dist/backend/backend/src/services/session/input-ledger.d.ts.map +1 -0
  38. package/dist/backend/backend/src/services/session/input-ledger.js +144 -0
  39. package/dist/backend/backend/src/services/session/input-ledger.js.map +1 -0
  40. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +26 -0
  41. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/session/session-command-helper.js +167 -36
  43. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  44. package/dist/backend/backend/src/services/session/tui-input-guard.d.ts +65 -0
  45. package/dist/backend/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/session/tui-input-guard.js +118 -0
  47. package/dist/backend/backend/src/services/session/tui-input-guard.js.map +1 -1
  48. package/dist/backend/backend/src/services/slack/slack-delivery-audit.service.d.ts +156 -0
  49. package/dist/backend/backend/src/services/slack/slack-delivery-audit.service.d.ts.map +1 -0
  50. package/dist/backend/backend/src/services/slack/slack-delivery-audit.service.js +259 -0
  51. package/dist/backend/backend/src/services/slack/slack-delivery-audit.service.js.map +1 -0
  52. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/slack/slack-initializer.js +19 -0
  54. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  55. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts +14 -1
  56. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts.map +1 -1
  57. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js +13 -0
  58. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js.map +1 -1
  59. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  60. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +7 -1
  61. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  62. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +22 -1
  63. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  64. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +41 -4
  65. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  66. package/dist/backend/backend/src/types/slack.types.d.ts +48 -0
  67. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  68. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  69. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  70. package/dist/backend/backend/src/websocket/terminal.gateway.js +4 -1
  71. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  72. package/dist/backend/build-info.json +2 -2
  73. package/dist/cli/backend/src/constants.d.ts +10 -0
  74. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  75. package/dist/cli/backend/src/constants.js +10 -0
  76. package/dist/cli/backend/src/constants.js.map +1 -1
  77. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  78. package/dist/cli/backend/src/services/agent/agent-registration.service.js +12 -2
  79. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  80. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +9 -0
  81. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  82. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +11 -0
  83. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  84. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +10 -0
  85. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  86. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +19 -0
  87. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  88. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.d.ts +10 -0
  89. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.d.ts.map +1 -1
  90. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.js +16 -0
  91. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.js.map +1 -1
  92. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +10 -0
  93. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  94. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +21 -0
  95. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  96. package/dist/cli/backend/src/services/session/input-ledger.d.ts +115 -0
  97. package/dist/cli/backend/src/services/session/input-ledger.d.ts.map +1 -0
  98. package/dist/cli/backend/src/services/session/input-ledger.js +144 -0
  99. package/dist/cli/backend/src/services/session/input-ledger.js.map +1 -0
  100. package/dist/cli/backend/src/services/session/session-command-helper.d.ts +26 -0
  101. package/dist/cli/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  102. package/dist/cli/backend/src/services/session/session-command-helper.js +167 -36
  103. package/dist/cli/backend/src/services/session/session-command-helper.js.map +1 -1
  104. package/dist/cli/backend/src/services/session/tui-input-guard.d.ts +65 -0
  105. package/dist/cli/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
  106. package/dist/cli/backend/src/services/session/tui-input-guard.js +118 -0
  107. package/dist/cli/backend/src/services/session/tui-input-guard.js.map +1 -1
  108. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  109. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +7 -1
  110. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  111. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +22 -1
  112. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  113. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +41 -4
  114. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  115. package/dist/cli/backend/src/types/slack.types.d.ts +48 -0
  116. package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
  117. package/dist/cli/backend/src/types/slack.types.js.map +1 -1
  118. package/dist/cli/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  119. package/dist/cli/backend/src/websocket/terminal.gateway.js +4 -1
  120. package/dist/cli/backend/src/websocket/terminal.gateway.js.map +1 -1
  121. package/package.json +1 -1
@@ -331,6 +331,103 @@ export function pasteShowsAs(text, message) {
331
331
  }
332
332
  return false;
333
333
  }
334
+ /**
335
+ * Whether input-box text is made up only of the harness's own pastes:
336
+ * runtime paste markers and/or the pasted texts, possibly several of them
337
+ * run together ("[Pasted text #2 +5 lines][Pasted text #3 +5 lines]" — a
338
+ * second paste landed on a first one that rendered late, 1.20.207 Ella).
339
+ *
340
+ * Each part must be accounted for, in order, by a distinct paste:
341
+ * - a marker that the harness saw for its own paste (`shownMarkers`, exact
342
+ * text: the runtime's counter makes it unique in the session), or
343
+ * - a marker or text with the shape of one of `pastes` — the harness's
344
+ * pastes since the last outside input, oldest first. With no outside
345
+ * input since, nothing else can have put it there.
346
+ *
347
+ * @param text - The input box text
348
+ * @param pastes - Harness paste messages since the last outside input, oldest first
349
+ * @param shownMarkers - Exact markers the box showed for harness pastes
350
+ * @returns The messages the box holds, in order, when every part of it is
351
+ * one of our pastes; null otherwise
352
+ */
353
+ export function boxHoldsOnlyOwnPastes(text, pastes, shownMarkers = []) {
354
+ return attributeOwnPastes(text, pastes, shownMarkers)?.messages ?? null;
355
+ }
356
+ /**
357
+ * {@link boxHoldsOnlyOwnPastes}, also saying whether the match is certain.
358
+ *
359
+ * @param text - The input box text
360
+ * @param pastes - Harness paste messages since the last outside input, oldest first
361
+ * @param shownMarkers - Exact markers the box showed for harness pastes
362
+ * @returns The attribution, or null when the box is not only our pastes
363
+ */
364
+ export function attributeOwnPastes(text, pastes, shownMarkers = []) {
365
+ const body = text.replace(/\s+/g, ' ').trim();
366
+ if (body === '')
367
+ return null;
368
+ const used = [];
369
+ // Messages that could stand for a shape-only match instead of the one chosen.
370
+ const alternatives = new Set();
371
+ // Split into markers and the text between them.
372
+ const parts = [];
373
+ const re = /\[Pasted (?:text|content)[^\]]*\]/gi;
374
+ let last = 0;
375
+ for (const m of body.matchAll(re)) {
376
+ const before = body.slice(last, m.index).trim();
377
+ if (before)
378
+ parts.push({ marker: false, text: before });
379
+ parts.push({ marker: true, text: m[0] });
380
+ last = (m.index ?? 0) + m[0].length;
381
+ }
382
+ const tail = body.slice(last).trim();
383
+ if (tail)
384
+ parts.push({ marker: false, text: tail });
385
+ let next = 0; // the next paste that may account for a part
386
+ for (const part of parts) {
387
+ if (part.marker) {
388
+ const shown = shownMarkers.find((m) => m.marker === part.text);
389
+ if (shown) {
390
+ // That paste is accounted for: it cannot stand for another part.
391
+ const k = pastes.indexOf(shown.message, next);
392
+ if (k >= 0)
393
+ next = k + 1;
394
+ used.push(shown.message);
395
+ continue;
396
+ }
397
+ let j = next;
398
+ while (j < pastes.length && !pasteShowsAs(part.text, pastes[j]))
399
+ j++;
400
+ if (j >= pastes.length)
401
+ return null;
402
+ // Another unseen paste, of a different message, with the same shape:
403
+ // this marker could be either of them.
404
+ for (let k = j + 1; k < pastes.length; k++) {
405
+ if (pastes[k] !== pastes[j] && pasteShowsAs(part.text, pastes[k]))
406
+ alternatives.add(pastes[k]);
407
+ }
408
+ used.push(pastes[j]);
409
+ next = j + 1;
410
+ continue;
411
+ }
412
+ // Plain text: one or more whole pasted messages, run together.
413
+ let rest = squash(part.text);
414
+ while (rest.length > 0) {
415
+ let j = next;
416
+ while (j < pastes.length && !(squash(pastes[j]).length > 0 && rest.startsWith(squash(pastes[j]))))
417
+ j++;
418
+ if (j >= pastes.length)
419
+ return null;
420
+ used.push(pastes[j]);
421
+ rest = rest.slice(squash(pastes[j]).length);
422
+ next = j + 1;
423
+ }
424
+ }
425
+ // Uncertain only when an alternative was left out: then which messages
426
+ // the box holds is a guess. (Two markers for two same-shaped pastes
427
+ // account for both, whichever is which.)
428
+ const ambiguous = [...alternatives].some((m) => !used.includes(m));
429
+ return { messages: used, ambiguous };
430
+ }
334
431
  /**
335
432
  * Classify what an input box holds relative to the message the harness
336
433
  * wants to send (or has just pasted).
@@ -411,4 +508,25 @@ export class TuiInputGuardError extends Error {
411
508
  this.reading = reading;
412
509
  }
413
510
  }
511
+ /**
512
+ * Raised when the harness will not paste because an earlier paste of its
513
+ * own may still land in the box (pasted but not yet seen, or just
514
+ * submitted): pasting now could put two messages in one box (1.20.207
515
+ * Ella). The caller queues the message; it goes out once the box is
516
+ * settled.
517
+ */
518
+ export class TuiPasteHoldError extends Error {
519
+ /** Why the paste was held */
520
+ reason;
521
+ /**
522
+ * @param reason - Why the paste was held
523
+ */
524
+ constructor(reason) {
525
+ super(reason === 'pending-paste'
526
+ ? 'An earlier paste of ours may still render in the input box; holding this message'
527
+ : 'Just submitted an earlier paste of ours; holding this message until the box settles');
528
+ this.name = 'TuiPasteHoldError';
529
+ this.reason = reason;
530
+ }
531
+ }
414
532
  //# sourceMappingURL=tui-input-guard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tui-input-guard.js","sourceRoot":"","sources":["../../../../../../backend/src/services/session/tui-input-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui-input-guard.js","sourceRoot":"","sources":["../../../../../../backend/src/services/session/tui-input-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAiErD;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,WAAmB,eAAe,CAAC,cAAc;IAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,CAAC,GAAG,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC;AAC9C,CAAC;AAED,oDAAoD;AACpD,SAAS,MAAM,CAAC,IAAY;IAC3B,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,KAAe;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;IAChF,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,GAAG,CAAC,CAAC;YACX,MAAM;QACP,CAAC;IACF,CAAC;IACD,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5F,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,GAAG,GAAG,CAAC,CAAC;YACR,MAAM;QACP,CAAC;IACF,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,MAAM,GAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;IAC5E,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,KAAe;IACrC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3G,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,GAAG,CAAC,CAAC;YACX,MAAM;QACP,CAAC;IACF,CAAC;IACD,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5F,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,GAAG,CAAC,CAAC;YACR,MAAM;QACP,CAAC;IACF,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpD,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAE,KAAK,CAAC,CAAC,CAAY,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,IAAI,GAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,KAAe;IAC9C,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3G,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,CAAC,CAAC;YACX,MAAM;QACP,CAAC;IACF,CAAC;IACD,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5F,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACtC,GAAG,GAAG,CAAC,CAAC;YACR,MAAM;QACP,CAAC;IACF,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACvF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACxE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,KAAe,EAAE,SAAiB;IAC5D,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,KAAK,GAAG,CAAC,CAAC;YACV,MAAM;QACP,CAAC;IACF,CAAC;IACD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,SAAS,GAAG,KAAK,IAAI,SAAS,GAAG,KAAK,GAAG,eAAe,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IACxF,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACtG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAkB;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IACrB,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,GAAG,EAAE,CAAC;IACpD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,sBAAsB,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/H,CAAC;AAED;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,IAAY;IAC3B,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,OAAO,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,sDAAsD,CAAC;AAY5E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC7C,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,GAAG,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC7F,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACvE,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzG,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QACrC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM;IACP,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc;IACvD,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAe;IACzD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,IAAI,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACtD,MAAM,MAAM,GAAG,6CAA6C,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,MAAM,EAAE,CAAC;QACZ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,MAAM,KAAK,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,KAAK,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,KAAK,GAAG,oCAAoC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,KAAK,KAAK,OAAO,CAAC,MAAM,IAAI,KAAK,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,KAAK,UAAU,CAAC,MAAM,CAAC;IACjG,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CACpC,IAAY,EACZ,MAAyB,EACzB,eAAmE,EAAE;IAErE,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC;AACzE,CAAC;AAcD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CACjC,IAAY,EACZ,MAAyB,EACzB,eAAmE,EAAE;IAErE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,8EAA8E;IAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,gDAAgD;IAChD,MAAM,KAAK,GAA6C,EAAE,CAAC;IAC3D,MAAM,EAAE,GAAG,qCAAqC,CAAC;IACjD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,6CAA6C;IAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,KAAK,EAAE,CAAC;gBACX,iEAAiE;gBACjE,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACzB,SAAS;YACV,CAAC;YACD,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAE,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACpC,qEAAqE;YACrE,uCAAuC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;oBAAE,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACb,SAAS;QACV,CAAC;QACD,+DAA+D;QAC/D,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,CAAC,EAAE,CAAC;YACvG,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;IACF,CAAC;IACD,uEAAuE;IACvE,oEAAoE;IACpE,yCAAyC;IACzC,MAAM,SAAS,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,gBAAgB,CAC/B,IAAkB,EAClB,OAAe,EACf,QAAuB,aAAa,EACpC,SAAkB;IAElB,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC9D,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACvE,MAAM,WAAW,GAAG,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;WAC/F,CAAC,CAAC,QAAQ,IAAI,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChH,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,WAAW;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAElG,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,wEAAwE;IACxE,uEAAuE;IACvE,qEAAqE;IACrE,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACnD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAC/D,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,KAAK,eAAe,CAAC;IAC5E,qEAAqE;IACrE,6DAA6D;IAC7D,IAAI,KAAK,KAAK,cAAc;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;IAC1F,IAAI,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;IACnD,wEAAwE;IACxE,6DAA6D;IAC7D,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC7B,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QACjE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACnG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QACzC,CAAC;IACF,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC5C,uDAAuD;IAC9C,OAAO,CAAkB;IAClC,kEAAkE;IACzD,KAAK,CAAmC;IAEjD;;;OAGG;IACH,YAAY,KAAuC,EAAE,OAAwB;QAC5E,KAAK,CACJ,KAAK,KAAK,cAAc;YACvB,CAAC,CAAC,oEAAoE,OAAO,CAAC,KAAK,6BAA6B;YAChH,CAAC,CAAC,uDAAuD,OAAO,CAAC,KAAK,4BAA4B,CACnG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;CACD;AAED;;;;;;GAMG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC3C,6BAA6B;IACpB,MAAM,CAAqC;IAEpD;;OAEG;IACH,YAAY,MAA0C;QACrD,KAAK,CAAC,MAAM,KAAK,eAAe;YAC/B,CAAC,CAAC,kFAAkF;YACpF,CAAC,CAAC,qFAAqF,CAAC,CAAC;QAC1F,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;CACD"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Slack delivery audit — owner messages Slack has that never reached a machine.
3
+ *
4
+ * Earlier audits read only the local chat.db, so a message that never
5
+ * reached this machine could not show up in them. The 2026-10-03 #content-team
6
+ * message was one: Cloud pushed it to the Air only, and the Mac, where the
7
+ * room's agents run, never recorded it. This audit starts from Slack instead:
8
+ *
9
+ * 1. every channel this machine maps, read with a bot that is a member
10
+ * (`conversations.history`, plus `conversations.replies` for threads
11
+ * active in the window);
12
+ * 2. the owner's messages in it;
13
+ * 3. each one checked against this machine's chat.db and against Cloud's
14
+ * routing log (which machine it was pushed to, and why).
15
+ *
16
+ * See specs/2026-10-04-room-delivery-audit.md.
17
+ *
18
+ * @module services/slack/slack-delivery-audit.service
19
+ */
20
+ import type { CloudRoutingDecision } from '../../types/slack.types.js';
21
+ /** A mapped channel and the local agents in it. */
22
+ export interface AuditRoom {
23
+ slackChannelId: string;
24
+ slackChannelName: string;
25
+ members: string[];
26
+ }
27
+ /** Collaborators, injectable for tests. */
28
+ export interface SlackDeliveryAuditDeps {
29
+ /** Every Slack channel this machine maps, with its local members. */
30
+ listRooms: () => Promise<AuditRoom[]>;
31
+ /** A bot token that can read a channel: one of its members' own bots. */
32
+ tokenFor: (members: string[]) => string | null;
33
+ /** The owner's Slack user id; when unknown every human message is audited. */
34
+ ownerUserId: () => string | null | undefined;
35
+ /** Whether this machine recorded the Slack message. */
36
+ hasLocal: (slackChannelId: string, slackTs: string) => boolean;
37
+ /** Cloud's routing log for one channel since a time; null when Cloud cannot be asked. */
38
+ cloudDecisions?: (channel: string, since: Date) => Promise<CloudRoutingDecision[] | null>;
39
+ /** This machine's instance id (to tell "pushed here" from "pushed elsewhere"). */
40
+ instanceId?: () => Promise<string | null>;
41
+ fetchImpl?: typeof fetch;
42
+ now?: () => number;
43
+ }
44
+ /** What happened to one owner message. */
45
+ export type AuditVerdict = 'reached-here' | 'reached-other-instance' | 'pushed-here-not-recorded' | 'never-reached' | 'no-cloud-record';
46
+ /** One owner message and where it went. */
47
+ export interface AuditedMessage {
48
+ channel: string;
49
+ channelName: string;
50
+ ts: string;
51
+ threadTs: string | null;
52
+ at: string;
53
+ text: string;
54
+ reachedHere: boolean;
55
+ cloud: {
56
+ rule: string;
57
+ owner: string | null;
58
+ targets: string[];
59
+ pushedTo: string[];
60
+ queued: Array<{
61
+ instanceId: string;
62
+ error?: string;
63
+ }>;
64
+ reason: string;
65
+ } | null;
66
+ verdict: AuditVerdict;
67
+ }
68
+ /** The audit's result. */
69
+ export interface DeliveryAuditReport {
70
+ since: string;
71
+ instanceId: string | null;
72
+ cloudLog: 'available' | 'unavailable';
73
+ channels: Array<{
74
+ channel: string;
75
+ name: string;
76
+ readable: boolean;
77
+ error?: string;
78
+ ownerMessages: number;
79
+ }>;
80
+ messages: AuditedMessage[];
81
+ summary: {
82
+ total: number;
83
+ reachedHere: number;
84
+ reachedElsewhere: number;
85
+ /** pushed-here-not-recorded + never-reached + no-cloud-record */
86
+ missing: number;
87
+ };
88
+ }
89
+ /** Limits. */
90
+ export declare const SLACK_DELIVERY_AUDIT_CONSTANTS: {
91
+ readonly DEFAULT_HOURS: 24;
92
+ readonly MAX_HOURS: 168;
93
+ /** Threads read per channel (each is one `conversations.replies` call). */
94
+ readonly MAX_THREADS_PER_CHANNEL: 20;
95
+ /** `conversations.history` pages per channel. */
96
+ readonly MAX_HISTORY_PAGES: 5;
97
+ readonly PAGE_SIZE: 200;
98
+ readonly API_BASE_URL: "https://slack.com/api";
99
+ readonly FETCH_TIMEOUT_MS: 10000;
100
+ readonly TEXT_PREVIEW_CHARS: 80;
101
+ };
102
+ /**
103
+ * Service — see module docs.
104
+ */
105
+ export declare class SlackDeliveryAuditService {
106
+ private readonly deps;
107
+ private readonly fetchImpl;
108
+ private readonly now;
109
+ constructor(deps: SlackDeliveryAuditDeps);
110
+ /**
111
+ * Audit the owner's messages of the last `hours` hours. Never throws for
112
+ * one channel's failure — that channel is listed with its error.
113
+ *
114
+ * @param options - `hours` (default 24, max 168)
115
+ * @returns The report
116
+ */
117
+ audit(options?: {
118
+ hours?: number;
119
+ }): Promise<DeliveryAuditReport>;
120
+ /**
121
+ * History since `oldest`, plus the replies of threads active in that window.
122
+ *
123
+ * @param token - Bot token of a member
124
+ * @param channel - Slack channel id
125
+ * @param oldest - Slack ts lower bound
126
+ * @returns Messages (top level and thread replies), or the error
127
+ */
128
+ private readChannel;
129
+ /**
130
+ * One Slack Web API GET; never throws.
131
+ *
132
+ * @param method - e.g. `conversations.history`
133
+ * @param token - Bot token
134
+ * @param params - Query parameters
135
+ * @returns The body, or the error code
136
+ */
137
+ private call;
138
+ }
139
+ /**
140
+ * What happened to one owner message.
141
+ *
142
+ * @param reachedHere - This machine recorded it
143
+ * @param cloud - Cloud's routing record, if any
144
+ * @param me - This machine's instance id
145
+ * @returns The verdict
146
+ */
147
+ export declare function verdictOf(reachedHere: boolean, cloud: AuditedMessage['cloud'], me: string | null): AuditVerdict;
148
+ /** The process-wide audit service, if wired. */
149
+ export declare function getSlackDeliveryAuditService(): SlackDeliveryAuditService | null;
150
+ /**
151
+ * Set (or clear) the process-wide audit service.
152
+ *
153
+ * @param service - The service, or null
154
+ */
155
+ export declare function setSlackDeliveryAuditService(service: SlackDeliveryAuditService | null): void;
156
+ //# sourceMappingURL=slack-delivery-audit.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-delivery-audit.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-delivery-audit.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,259 @@
1
+ /**
2
+ * Slack delivery audit — owner messages Slack has that never reached a machine.
3
+ *
4
+ * Earlier audits read only the local chat.db, so a message that never
5
+ * reached this machine could not show up in them. The 2026-10-03 #content-team
6
+ * message was one: Cloud pushed it to the Air only, and the Mac, where the
7
+ * room's agents run, never recorded it. This audit starts from Slack instead:
8
+ *
9
+ * 1. every channel this machine maps, read with a bot that is a member
10
+ * (`conversations.history`, plus `conversations.replies` for threads
11
+ * active in the window);
12
+ * 2. the owner's messages in it;
13
+ * 3. each one checked against this machine's chat.db and against Cloud's
14
+ * routing log (which machine it was pushed to, and why).
15
+ *
16
+ * See specs/2026-10-04-room-delivery-audit.md.
17
+ *
18
+ * @module services/slack/slack-delivery-audit.service
19
+ */
20
+ /** Limits. */
21
+ export const SLACK_DELIVERY_AUDIT_CONSTANTS = {
22
+ DEFAULT_HOURS: 24,
23
+ MAX_HOURS: 168,
24
+ /** Threads read per channel (each is one `conversations.replies` call). */
25
+ MAX_THREADS_PER_CHANNEL: 20,
26
+ /** `conversations.history` pages per channel. */
27
+ MAX_HISTORY_PAGES: 5,
28
+ PAGE_SIZE: 200,
29
+ API_BASE_URL: 'https://slack.com/api',
30
+ FETCH_TIMEOUT_MS: 10_000,
31
+ TEXT_PREVIEW_CHARS: 80,
32
+ };
33
+ /** Subtypes that are still a person speaking. */
34
+ const HUMAN_SUBTYPES = new Set(['', 'thread_broadcast', 'file_share']);
35
+ /**
36
+ * Service — see module docs.
37
+ */
38
+ export class SlackDeliveryAuditService {
39
+ deps;
40
+ fetchImpl;
41
+ now;
42
+ constructor(deps) {
43
+ this.deps = deps;
44
+ this.fetchImpl = deps.fetchImpl ?? fetch;
45
+ this.now = deps.now ?? (() => Date.now());
46
+ }
47
+ /**
48
+ * Audit the owner's messages of the last `hours` hours. Never throws for
49
+ * one channel's failure — that channel is listed with its error.
50
+ *
51
+ * @param options - `hours` (default 24, max 168)
52
+ * @returns The report
53
+ */
54
+ async audit(options = {}) {
55
+ const C = SLACK_DELIVERY_AUDIT_CONSTANTS;
56
+ const hours = Math.max(1, Math.min(Math.floor(options.hours ?? C.DEFAULT_HOURS), C.MAX_HOURS));
57
+ const sinceMs = this.now() - hours * 3600 * 1000;
58
+ const since = new Date(sinceMs);
59
+ const oldest = (sinceMs / 1000).toFixed(6);
60
+ const me = this.deps.instanceId ? await this.deps.instanceId().catch(() => null) : null;
61
+ const owner = this.deps.ownerUserId() ?? null;
62
+ const rooms = await this.deps.listRooms();
63
+ const report = {
64
+ since: since.toISOString(),
65
+ instanceId: me,
66
+ cloudLog: this.deps.cloudDecisions ? 'available' : 'unavailable',
67
+ channels: [],
68
+ messages: [],
69
+ summary: { total: 0, reachedHere: 0, reachedElsewhere: 0, missing: 0 },
70
+ };
71
+ const seen = new Set();
72
+ for (const room of rooms) {
73
+ if (seen.has(room.slackChannelId))
74
+ continue;
75
+ seen.add(room.slackChannelId);
76
+ const token = this.deps.tokenFor(room.members);
77
+ if (!token) {
78
+ report.channels.push({ channel: room.slackChannelId, name: room.slackChannelName, readable: false, error: 'no_member_bot_token', ownerMessages: 0 });
79
+ continue;
80
+ }
81
+ const read = await this.readChannel(token, room.slackChannelId, oldest);
82
+ if (!read.ok) {
83
+ report.channels.push({ channel: room.slackChannelId, name: room.slackChannelName, readable: false, error: read.error, ownerMessages: 0 });
84
+ continue;
85
+ }
86
+ const ownerMessages = read.messages.filter((m) => isPersonMessage(m) && (!owner || m.user === owner) && Number(m.ts) >= sinceMs / 1000);
87
+ report.channels.push({ channel: room.slackChannelId, name: room.slackChannelName, readable: true, ownerMessages: ownerMessages.length });
88
+ if (ownerMessages.length === 0)
89
+ continue;
90
+ let decisions = null;
91
+ if (this.deps.cloudDecisions) {
92
+ decisions = await this.deps.cloudDecisions(room.slackChannelId, since).catch(() => null);
93
+ if (decisions === null)
94
+ report.cloudLog = 'unavailable';
95
+ }
96
+ const byTs = new Map((decisions ?? []).map((d) => [d.ts, d]));
97
+ for (const m of ownerMessages) {
98
+ const ts = m.ts;
99
+ const reachedHere = this.deps.hasLocal(room.slackChannelId, ts);
100
+ const decision = byTs.get(ts) ?? null;
101
+ const cloud = decision ? summarise(decision) : null;
102
+ report.messages.push({
103
+ channel: room.slackChannelId,
104
+ channelName: room.slackChannelName,
105
+ ts,
106
+ threadTs: m.thread_ts && m.thread_ts !== ts ? m.thread_ts : null,
107
+ at: new Date(Number(ts) * 1000).toISOString(),
108
+ text: (m.text ?? '').slice(0, C.TEXT_PREVIEW_CHARS),
109
+ reachedHere,
110
+ cloud,
111
+ verdict: verdictOf(reachedHere, cloud, me),
112
+ });
113
+ }
114
+ }
115
+ report.messages.sort((a, b) => Number(a.ts) - Number(b.ts));
116
+ for (const m of report.messages) {
117
+ report.summary.total++;
118
+ if (m.verdict === 'reached-here')
119
+ report.summary.reachedHere++;
120
+ else if (m.verdict === 'reached-other-instance')
121
+ report.summary.reachedElsewhere++;
122
+ else
123
+ report.summary.missing++;
124
+ }
125
+ return report;
126
+ }
127
+ /**
128
+ * History since `oldest`, plus the replies of threads active in that window.
129
+ *
130
+ * @param token - Bot token of a member
131
+ * @param channel - Slack channel id
132
+ * @param oldest - Slack ts lower bound
133
+ * @returns Messages (top level and thread replies), or the error
134
+ */
135
+ async readChannel(token, channel, oldest) {
136
+ const C = SLACK_DELIVERY_AUDIT_CONSTANTS;
137
+ const top = [];
138
+ let cursor = '';
139
+ for (let page = 0; page < C.MAX_HISTORY_PAGES; page++) {
140
+ const res = await this.call('conversations.history', token, {
141
+ channel,
142
+ oldest,
143
+ limit: String(C.PAGE_SIZE),
144
+ ...(cursor ? { cursor } : {}),
145
+ });
146
+ if (!res.ok)
147
+ return res;
148
+ top.push(...(res.body['messages'] ?? []));
149
+ cursor = (res.body['response_metadata']?.next_cursor ?? '').trim();
150
+ if (!cursor)
151
+ break;
152
+ }
153
+ const out = [...top];
154
+ // `conversations.history` returns only top-level posts: an owner's reply
155
+ // inside a thread is read from the thread itself.
156
+ const threads = top.filter((m) => (m.reply_count ?? 0) > 0 && Number(m.latest_reply ?? m.ts ?? 0) >= Number(oldest)).slice(0, C.MAX_THREADS_PER_CHANNEL);
157
+ for (const parent of threads) {
158
+ const res = await this.call('conversations.replies', token, { channel, ts: parent.ts, oldest, limit: String(C.PAGE_SIZE) });
159
+ if (!res.ok)
160
+ continue;
161
+ for (const r of res.body['messages'] ?? []) {
162
+ if (r.ts !== parent.ts)
163
+ out.push(r);
164
+ }
165
+ }
166
+ return { ok: true, messages: out };
167
+ }
168
+ /**
169
+ * One Slack Web API GET; never throws.
170
+ *
171
+ * @param method - e.g. `conversations.history`
172
+ * @param token - Bot token
173
+ * @param params - Query parameters
174
+ * @returns The body, or the error code
175
+ */
176
+ async call(method, token, params) {
177
+ const C = SLACK_DELIVERY_AUDIT_CONSTANTS;
178
+ const controller = new AbortController();
179
+ const timer = setTimeout(() => controller.abort(), C.FETCH_TIMEOUT_MS);
180
+ try {
181
+ const res = await this.fetchImpl(`${C.API_BASE_URL}/${method}?${new URLSearchParams(params).toString()}`, {
182
+ method: 'GET',
183
+ headers: { Authorization: `Bearer ${token}` },
184
+ signal: controller.signal,
185
+ });
186
+ if (res.status === 429)
187
+ return { ok: false, error: 'rate_limited' };
188
+ const body = (await res.json());
189
+ if (!body || body['ok'] !== true)
190
+ return { ok: false, error: typeof body?.['error'] === 'string' ? body['error'] : `http_${res.status}` };
191
+ return { ok: true, body };
192
+ }
193
+ catch (err) {
194
+ return { ok: false, error: err instanceof Error ? err.message : String(err) };
195
+ }
196
+ finally {
197
+ clearTimeout(timer);
198
+ }
199
+ }
200
+ }
201
+ /**
202
+ * Whether a Slack message is a person speaking (not a bot, join, edit…).
203
+ *
204
+ * @param m - Raw message
205
+ * @returns True for a person's post
206
+ */
207
+ function isPersonMessage(m) {
208
+ return !!m.ts && !!m.user && !m.bot_id && HUMAN_SUBTYPES.has(m.subtype ?? '');
209
+ }
210
+ /**
211
+ * The parts of a Cloud decision the report shows.
212
+ *
213
+ * @param d - Cloud routing decision
214
+ * @returns Summary
215
+ */
216
+ function summarise(d) {
217
+ const deliveries = Object.entries(d.deliveries ?? {});
218
+ return {
219
+ rule: d.rule,
220
+ owner: d.owner,
221
+ targets: d.targets ?? [],
222
+ pushedTo: deliveries.filter(([, o]) => o.status === 'pushed').map(([id]) => id),
223
+ queued: deliveries.filter(([, o]) => o.status === 'queued').map(([id, o]) => ({ instanceId: id, ...(o.error ? { error: o.error } : {}) })),
224
+ reason: d.reason,
225
+ };
226
+ }
227
+ /**
228
+ * What happened to one owner message.
229
+ *
230
+ * @param reachedHere - This machine recorded it
231
+ * @param cloud - Cloud's routing record, if any
232
+ * @param me - This machine's instance id
233
+ * @returns The verdict
234
+ */
235
+ export function verdictOf(reachedHere, cloud, me) {
236
+ if (reachedHere)
237
+ return 'reached-here';
238
+ if (!cloud)
239
+ return 'no-cloud-record';
240
+ if (me && cloud.pushedTo.includes(me))
241
+ return 'pushed-here-not-recorded';
242
+ if (cloud.pushedTo.some((id) => id !== me))
243
+ return 'reached-other-instance';
244
+ return 'never-reached';
245
+ }
246
+ let singleton = null;
247
+ /** The process-wide audit service, if wired. */
248
+ export function getSlackDeliveryAuditService() {
249
+ return singleton;
250
+ }
251
+ /**
252
+ * Set (or clear) the process-wide audit service.
253
+ *
254
+ * @param service - The service, or null
255
+ */
256
+ export function setSlackDeliveryAuditService(service) {
257
+ singleton = service;
258
+ }
259
+ //# sourceMappingURL=slack-delivery-audit.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-delivery-audit.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-delivery-audit.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAqFH,cAAc;AACd,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,aAAa,EAAE,EAAE;IACjB,SAAS,EAAE,GAAG;IACd,2EAA2E;IAC3E,uBAAuB,EAAE,EAAE;IAC3B,iDAAiD;IACjD,iBAAiB,EAAE,CAAC;IACpB,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,uBAAuB;IACrC,gBAAgB,EAAE,MAAM;IACxB,kBAAkB,EAAE,EAAE;CACd,CAAC;AAEX,iDAAiD;AACjD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,OAAO,yBAAyB;IAIP;IAHZ,SAAS,CAAe;IACxB,GAAG,CAAe;IAEnC,YAA6B,IAA4B;QAA5B,SAAI,GAAJ,IAAI,CAAwB;QACvD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;QACzC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,UAA8B,EAAE;QAC1C,MAAM,CAAC,GAAG,8BAA8B,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAwB;YAClC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;YAC1B,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;YAChE,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;SACvE,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;gBAAE,SAAS;YAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrJ,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC1I,SAAS;YACX,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC;YACxI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;YACzI,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEzC,IAAI,SAAS,GAAkC,IAAI,CAAC;YACpD,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC7B,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACzF,IAAI,SAAS,KAAK,IAAI;oBAAE,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC;YAC1D,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,EAAY,CAAC;gBAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;gBACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACpD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,IAAI,CAAC,cAAc;oBAC5B,WAAW,EAAE,IAAI,CAAC,gBAAgB;oBAClC,EAAE;oBACF,QAAQ,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;oBAChE,EAAE,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;oBAC7C,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC;oBACnD,WAAW;oBACX,KAAK;oBACL,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;iBAC3C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,OAAO,KAAK,cAAc;gBAAE,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;iBAC1D,IAAI,CAAC,CAAC,OAAO,KAAK,wBAAwB;gBAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;;gBAC9E,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,OAAe,EAAE,MAAc;QACtE,MAAM,CAAC,GAAG,8BAA8B,CAAC;QACzC,MAAM,GAAG,GAAiB,EAAE,CAAC;QAC7B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;YACtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE;gBAC1D,OAAO;gBACP,MAAM;gBACN,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,GAAG,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAA8B,IAAI,EAAE,CAAC,CAAC,CAAC;YACxE,MAAM,GAAG,CAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAA0C,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7G,IAAI,CAAC,MAAM;gBAAE,MAAM;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACrB,yEAAyE;QACzE,kDAAkD;QAClD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,uBAAuB,CAAC,CAAC;QACzJ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACtI,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,SAAS;YACtB,KAAK,MAAM,CAAC,IAAK,GAAG,CAAC,IAAI,CAAC,UAAU,CAA8B,IAAI,EAAE,EAAE,CAAC;gBACzE,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE;oBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,KAAa,EAAE,MAA8B;QAC9E,MAAM,CAAC,GAAG,8BAA8B,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,MAAM,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE;gBACxG,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;gBAC7C,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;YAC3D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,OAAO,CAAY,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;YACtJ,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChF,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,CAAa;IACpC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,CAAuB;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACtD,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;QACxB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/E,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1I,MAAM,EAAE,CAAC,CAAC,MAAM;KACjB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,WAAoB,EAAE,KAA8B,EAAE,EAAiB;IAC/F,IAAI,WAAW;QAAE,OAAO,cAAc,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,iBAAiB,CAAC;IACrC,IAAI,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,0BAA0B,CAAC;IACzE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAAE,OAAO,wBAAwB,CAAC;IAC5E,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,IAAI,SAAS,GAAqC,IAAI,CAAC;AAEvD,gDAAgD;AAChD,MAAM,UAAU,4BAA4B;IAC1C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAyC;IACpF,SAAS,GAAG,OAAO,CAAC;AACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"slack-initializer.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-initializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-initializer.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-initializer.ts"],"names":[],"mappings":"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"}