@songsid/agend 2.1.2-beta.8 → 2.1.2

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 (174) hide show
  1. package/dist/access-path.js +15 -6
  2. package/dist/access-path.js.map +1 -1
  3. package/dist/agent-cli-instructions.md +1 -0
  4. package/dist/agent-cli.js +14 -0
  5. package/dist/agent-cli.js.map +1 -1
  6. package/dist/agent-endpoint.d.ts +2 -0
  7. package/dist/agent-endpoint.js +25 -1
  8. package/dist/agent-endpoint.js.map +1 -1
  9. package/dist/backend/antigravity.d.ts +20 -0
  10. package/dist/backend/antigravity.js +51 -4
  11. package/dist/backend/antigravity.js.map +1 -1
  12. package/dist/backend/claude-code.d.ts +59 -0
  13. package/dist/backend/claude-code.js +67 -1
  14. package/dist/backend/claude-code.js.map +1 -1
  15. package/dist/backend/codex.d.ts +26 -0
  16. package/dist/backend/codex.js +100 -0
  17. package/dist/backend/codex.js.map +1 -1
  18. package/dist/backend/grok.d.ts +25 -0
  19. package/dist/backend/grok.js +51 -0
  20. package/dist/backend/grok.js.map +1 -1
  21. package/dist/backend/kiro.d.ts +23 -0
  22. package/dist/backend/kiro.js +120 -2
  23. package/dist/backend/kiro.js.map +1 -1
  24. package/dist/backend/types.d.ts +58 -0
  25. package/dist/backend/types.js +13 -1
  26. package/dist/backend/types.js.map +1 -1
  27. package/dist/channel/adapters/discord.d.ts +15 -0
  28. package/dist/channel/adapters/discord.js +120 -8
  29. package/dist/channel/adapters/discord.js.map +1 -1
  30. package/dist/channel/adapters/telegram.d.ts +21 -0
  31. package/dist/channel/adapters/telegram.js +86 -0
  32. package/dist/channel/adapters/telegram.js.map +1 -1
  33. package/dist/channel/ipc-bridge.d.ts +9 -1
  34. package/dist/channel/ipc-bridge.js +12 -3
  35. package/dist/channel/ipc-bridge.js.map +1 -1
  36. package/dist/channel/ipc-timeouts.d.ts +46 -0
  37. package/dist/channel/ipc-timeouts.js +65 -0
  38. package/dist/channel/ipc-timeouts.js.map +1 -0
  39. package/dist/channel/mcp-server.js +25 -14
  40. package/dist/channel/mcp-server.js.map +1 -1
  41. package/dist/channel/mcp-tools.js +30 -1
  42. package/dist/channel/mcp-tools.js.map +1 -1
  43. package/dist/channel/reconnect-backoff.d.ts +17 -0
  44. package/dist/channel/reconnect-backoff.js +21 -0
  45. package/dist/channel/reconnect-backoff.js.map +1 -0
  46. package/dist/channel/types.d.ts +29 -0
  47. package/dist/classic-channel-manager.js +1 -5
  48. package/dist/classic-channel-manager.js.map +1 -1
  49. package/dist/cli.js +242 -91
  50. package/dist/cli.js.map +1 -1
  51. package/dist/completion.d.ts +27 -0
  52. package/dist/completion.js +121 -0
  53. package/dist/completion.js.map +1 -0
  54. package/dist/config-validator.js +21 -0
  55. package/dist/config-validator.js.map +1 -1
  56. package/dist/config.js +2 -0
  57. package/dist/config.js.map +1 -1
  58. package/dist/cost-guard.d.ts +3 -1
  59. package/dist/cost-guard.js +3 -1
  60. package/dist/cost-guard.js.map +1 -1
  61. package/dist/daemon.d.ts +299 -7
  62. package/dist/daemon.js +1152 -311
  63. package/dist/daemon.js.map +1 -1
  64. package/dist/event-log.d.ts +31 -0
  65. package/dist/event-log.js +96 -0
  66. package/dist/event-log.js.map +1 -1
  67. package/dist/fleet-context.d.ts +14 -0
  68. package/dist/fleet-lock.d.ts +28 -0
  69. package/dist/fleet-lock.js +130 -0
  70. package/dist/fleet-lock.js.map +1 -0
  71. package/dist/fleet-manager.d.ts +348 -6
  72. package/dist/fleet-manager.js +1860 -262
  73. package/dist/fleet-manager.js.map +1 -1
  74. package/dist/general-instance.d.ts +9 -0
  75. package/dist/general-instance.js +11 -0
  76. package/dist/general-instance.js.map +1 -0
  77. package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +22 -0
  78. package/dist/general-knowledge/skills/model-discovery/SKILL.md +14 -23
  79. package/dist/general-knowledge/skills/session-management/SKILL.md +15 -34
  80. package/dist/hang-detector.d.ts +19 -13
  81. package/dist/hang-detector.js +19 -49
  82. package/dist/hang-detector.js.map +1 -1
  83. package/dist/instance-lifecycle.d.ts +58 -2
  84. package/dist/instance-lifecycle.js +231 -46
  85. package/dist/instance-lifecycle.js.map +1 -1
  86. package/dist/locale.js +7 -1
  87. package/dist/locale.js.map +1 -1
  88. package/dist/logger.js +14 -0
  89. package/dist/logger.js.map +1 -1
  90. package/dist/mcp-liveness.d.ts +21 -0
  91. package/dist/mcp-liveness.js +27 -0
  92. package/dist/mcp-liveness.js.map +1 -0
  93. package/dist/outbound-handlers.d.ts +9 -0
  94. package/dist/outbound-handlers.js +194 -31
  95. package/dist/outbound-handlers.js.map +1 -1
  96. package/dist/outbound-schemas.d.ts +11 -3
  97. package/dist/outbound-schemas.js +16 -2
  98. package/dist/outbound-schemas.js.map +1 -1
  99. package/dist/pane-write-lock.d.ts +48 -0
  100. package/dist/pane-write-lock.js +73 -0
  101. package/dist/pane-write-lock.js.map +1 -0
  102. package/dist/process-memory.d.ts +31 -0
  103. package/dist/process-memory.js +79 -0
  104. package/dist/process-memory.js.map +1 -0
  105. package/dist/quickstart.js +17 -16
  106. package/dist/quickstart.js.map +1 -1
  107. package/dist/reply-dedup.d.ts +41 -0
  108. package/dist/reply-dedup.js +0 -0
  109. package/dist/reply-dedup.js.map +1 -0
  110. package/dist/restart-progress.d.ts +41 -0
  111. package/dist/restart-progress.js +97 -0
  112. package/dist/restart-progress.js.map +1 -0
  113. package/dist/scheduler/db.js +3 -0
  114. package/dist/scheduler/db.js.map +1 -1
  115. package/dist/sd-notify.d.ts +27 -0
  116. package/dist/sd-notify.js +33 -1
  117. package/dist/sd-notify.js.map +1 -1
  118. package/dist/secret-file.d.ts +33 -0
  119. package/dist/secret-file.js +36 -0
  120. package/dist/secret-file.js.map +1 -0
  121. package/dist/service-installer.d.ts +28 -0
  122. package/dist/service-installer.js +72 -1
  123. package/dist/service-installer.js.map +1 -1
  124. package/dist/settings-api.js +5 -3
  125. package/dist/settings-api.js.map +1 -1
  126. package/dist/setup-wizard.js +9 -7
  127. package/dist/setup-wizard.js.map +1 -1
  128. package/dist/tmux-control.d.ts +58 -5
  129. package/dist/tmux-control.js +102 -14
  130. package/dist/tmux-control.js.map +1 -1
  131. package/dist/tmux-manager.d.ts +31 -1
  132. package/dist/tmux-manager.js +40 -11
  133. package/dist/tmux-manager.js.map +1 -1
  134. package/dist/topic-commands.d.ts +49 -9
  135. package/dist/topic-commands.js +270 -109
  136. package/dist/topic-commands.js.map +1 -1
  137. package/dist/tui-glyphs.d.ts +5 -1
  138. package/dist/tui-glyphs.js +6 -2
  139. package/dist/tui-glyphs.js.map +1 -1
  140. package/dist/types.d.ts +19 -2
  141. package/dist/ui/settings.html +1 -1
  142. package/dist/ui/view.html +123 -2
  143. package/dist/update-marker.d.ts +15 -0
  144. package/dist/update-marker.js +69 -0
  145. package/dist/update-marker.js.map +1 -0
  146. package/dist/usage/format-rich.d.ts +11 -0
  147. package/dist/usage/format-rich.js +121 -0
  148. package/dist/usage/format-rich.js.map +1 -0
  149. package/dist/usage/provider-alerts.d.ts +33 -0
  150. package/dist/usage/provider-alerts.js +57 -0
  151. package/dist/usage/provider-alerts.js.map +1 -0
  152. package/dist/usage/providers.d.ts +130 -0
  153. package/dist/usage/providers.js +1063 -0
  154. package/dist/usage/providers.js.map +1 -0
  155. package/dist/usage/statusline-usage.d.ts +20 -0
  156. package/dist/usage/statusline-usage.js +120 -0
  157. package/dist/usage/statusline-usage.js.map +1 -0
  158. package/dist/usage/usage-api.d.ts +50 -0
  159. package/dist/usage/usage-api.js +197 -0
  160. package/dist/usage/usage-api.js.map +1 -0
  161. package/dist/view-api.js +8 -3
  162. package/dist/view-api.js.map +1 -1
  163. package/dist/web-api.js +7 -3
  164. package/dist/web-api.js.map +1 -1
  165. package/dist/web-auth.d.ts +6 -0
  166. package/dist/web-auth.js +54 -0
  167. package/dist/web-auth.js.map +1 -0
  168. package/package.json +4 -1
  169. package/dist/channel/tool-tracker.d.ts +0 -13
  170. package/dist/channel/tool-tracker.js +0 -58
  171. package/dist/channel/tool-tracker.js.map +0 -1
  172. package/dist/daemon-entry.d.ts +0 -1
  173. package/dist/daemon-entry.js +0 -30
  174. package/dist/daemon-entry.js.map +0 -1
@@ -22,6 +22,8 @@ export interface CliBackendConfig {
22
22
  mcpServers: Record<string, McpServerEntry>;
23
23
  skipPermissions?: boolean;
24
24
  model?: string;
25
+ /** Reasoning effort for backends that take it as a launch flag. */
26
+ effort?: string;
25
27
  /** Kiro-only UI/agent profile. Defaults to "legacy". */
26
28
  kiroUi?: "legacy" | "tui" | "v3";
27
29
  /** When true, backend should not resume a previous session (crash recovery). */
@@ -96,6 +98,13 @@ export interface CliBackend {
96
98
  * Absent means false.
97
99
  */
98
100
  supportsQueuedInput?(): boolean;
101
+ /**
102
+ * Whether the first submission after startup needs a defensive second Enter.
103
+ * Some TUIs expose their prompt before their final redraw is complete; output
104
+ * from that redraw can look like a successful idle→busy transition even when
105
+ * the first Enter was swallowed. Absent means false.
106
+ */
107
+ requiresFirstDeliveryEnterRetry?(): boolean;
99
108
  /** Build the shell command string to launch the CLI in a tmux window. */
100
109
  buildCommand(config: CliBackendConfig): string;
101
110
  /** Write all config files the CLI needs before launch. */
@@ -106,6 +115,33 @@ export interface CliBackend {
106
115
  getSessionId(): string | null;
107
116
  /** Regex to detect when the CLI is ready to accept input. */
108
117
  getReadyPattern(): RegExp;
118
+ /**
119
+ * Regex matching a marker that means "generating right now", if the TUI has one.
120
+ *
121
+ * Several TUIs keep their input box (and therefore their ready marker) on screen
122
+ * the whole time they work, so a ready match alone cannot distinguish idle from
123
+ * busy. When this is supplied, a match **vetoes** ready: the pane is treated as
124
+ * not-ready no matter what `getReadyPattern()` says.
125
+ *
126
+ * Only worth implementing when the marker is present *only* while generating.
127
+ * A pattern that lingers after the work finishes is worse than none, because the
128
+ * instance would never be seen as idle again. Omit if unsure.
129
+ */
130
+ getBusyPattern?(): RegExp | null;
131
+ /**
132
+ * What the CLI is doing right now, read off a pane capture, for the live
133
+ * progress line. Return null when nothing is running or it cannot be told.
134
+ *
135
+ * A *function* rather than a regex because "currently running" is usually a
136
+ * relationship between two markers — a tool announcement with no completion
137
+ * line after it — not a single match.
138
+ *
139
+ * Purely cosmetic: nothing decides anything from the result, so returning null
140
+ * always is a valid implementation and simply leaves the progress line showing
141
+ * elapsed time. Prefer that over guessing. Keep the text short; the caller caps
142
+ * and flattens it, but a tool name beats a truncated sentence.
143
+ */
144
+ getPaneActivity?(pane: string): string | null;
109
145
  /** Error patterns to detect in PTY output during operation. */
110
146
  getErrorPatterns?(): ErrorPattern[];
111
147
  /**
@@ -170,6 +206,22 @@ export interface CliBackend {
170
206
  * Absent ⇒ treated as "restart".
171
207
  */
172
208
  getModelSwitchStrategy?(model: string): "runtime" | "restart";
209
+ /**
210
+ * How this CLI's reasoning-effort setting can be changed.
211
+ *
212
+ * - `runtime` — the TUI accepts `/effort <level>`; paste it, no restart.
213
+ * - `restart` — effort is a launch flag only; persist it and respawn.
214
+ * - `unsupported` (or absent) — the CLI has no effort concept.
215
+ *
216
+ * Verified per CLI by running its `--help` on 2026-08-02; see each backend.
217
+ */
218
+ getEffortStrategy?(): "runtime" | "restart" | "unsupported";
219
+ /**
220
+ * Effort levels this CLI accepts, in increasing order. AgEnD's canonical set
221
+ * is low|medium|high|xhigh|max; a backend supporting fewer returns its own
222
+ * list and the caller clamps to the nearest supported level — visibly.
223
+ */
224
+ getEffortLevels?(): string[];
173
225
  /**
174
226
  * Probe the CLI environment at startup: version, available models, and
175
227
  * (best-effort) auth/current model. Result is cached to disk so `/model` and
@@ -183,6 +235,12 @@ export interface CliBackend {
183
235
  }>;
184
236
  }
185
237
  export declare function resolveBinary(name: string, fallbackDirs?: readonly string[]): string;
238
+ /**
239
+ * Guard an effort level before it reaches a shell command line. Same reasoning
240
+ * as validateModel: the value originates from a chat message, and the launch
241
+ * command is a string. Only the canonical levels are allowed through.
242
+ */
243
+ export declare function validateEffort(effort: string): string;
186
244
  export declare function validateModel(model: string): string;
187
245
  /** Check if a model name is compatible with the given backend. */
188
246
  export declare function isModelCompatible(backendName: string, model: string): boolean;
@@ -74,6 +74,18 @@ export function resolveBinary(name, fallbackDirs) {
74
74
  * shell string consumed by tmux and we cannot rely on argv-style quoting.
75
75
  */
76
76
  const SAFE_MODEL_RE = /^[A-Za-z0-9._:/-]+$/;
77
+ /**
78
+ * Guard an effort level before it reaches a shell command line. Same reasoning
79
+ * as validateModel: the value originates from a chat message, and the launch
80
+ * command is a string. Only the canonical levels are allowed through.
81
+ */
82
+ export function validateEffort(effort) {
83
+ const level = effort.trim().toLowerCase();
84
+ if (!/^(low|medium|high|xhigh|max)$/.test(level)) {
85
+ throw new Error(`Invalid effort level: ${effort}`);
86
+ }
87
+ return level;
88
+ }
77
89
  export function validateModel(model) {
78
90
  if (!SAFE_MODEL_RE.test(model)) {
79
91
  throw new Error(`Invalid model name: ${JSON.stringify(model)} — must match ${SAFE_MODEL_RE}`);
@@ -82,7 +94,7 @@ export function validateModel(model) {
82
94
  }
83
95
  /** Known model prefixes/patterns per backend. Used only for advisory warnings. */
84
96
  const BACKEND_MODEL_PATTERNS = {
85
- "claude-code": /^(sonnet|opus|haiku|opusplan|best|claude)/i,
97
+ "claude-code": /^(sonnet|opus|haiku|opusplan|best|fable|claude)/i,
86
98
  "kiro-cli": /^(claude|sonnet|opus|haiku|auto|gpt|deepseek|minimax|glm|qwen)/i,
87
99
  "codex": /^(gpt|o[0-9]|chatgpt)/i,
88
100
  "gemini-cli": /^gemini/i,
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/backend/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/backend/types.ts"],"names":[],"mappings":"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"}
@@ -78,6 +78,21 @@ export declare class DiscordAdapter extends EventEmitter implements ChannelAdapt
78
78
  downloadAttachment(fileId: string): Promise<string>;
79
79
  promptUser(chatId: string, text: string, choices: Choice[], opts?: SendOpts): Promise<string>;
80
80
  notifyAlert(chatId: string, alert: AlertData, opts?: SendOpts): Promise<SentMessage>;
81
+ /**
82
+ * Edit an alert's text while keeping its buttons.
83
+ *
84
+ * The two platforms disagree about what *omitting* the buttons means, and the
85
+ * disagreement is exactly inverted:
86
+ *
87
+ * Telegram — omitting `reply_markup` CLEARS the keyboard.
88
+ * Discord — omitting `components` KEEPS whatever is already there.
89
+ *
90
+ * So an `editAlert` with no choices used to clear the buttons on one platform and
91
+ * preserve them on the other, from the same call site. `components` is therefore
92
+ * always sent, empty array included: `alert.choices` is the single description of
93
+ * what the message should end up with, on both platforms.
94
+ */
95
+ editAlert(chatId: string, messageId: string, alert: AlertData, opts?: SendOpts): Promise<void>;
81
96
  private _resolveCategory;
82
97
  private ensureCategoryId;
83
98
  createTopic(name: string): Promise<string>;
@@ -6,7 +6,7 @@ import { join } from "node:path";
6
6
  import { pipeline } from "node:stream/promises";
7
7
  import { Readable } from "node:stream";
8
8
  import { createWriteStream } from "node:fs";
9
- import { Client, GatewayIntentBits, ActionRowBuilder, ButtonBuilder, ButtonStyle, StringSelectMenuBuilder, ApplicationCommandOptionType, ChannelType, MessageFlags, } from "discord.js";
9
+ import { Client, GatewayIntentBits, Partials, ActionRowBuilder, ButtonBuilder, ButtonStyle, StringSelectMenuBuilder, ApplicationCommandOptionType, ChannelType, MessageFlags, } from "discord.js";
10
10
  import { MessageQueue } from "../message-queue.js";
11
11
  const DISCORD_MAX_LENGTH = 2000;
12
12
  /** Curated ClassicBot backends for Discord's native slash-option dropdown. */
@@ -52,7 +52,14 @@ export class DiscordAdapter extends EventEmitter {
52
52
  GatewayIntentBits.Guilds,
53
53
  GatewayIntentBits.GuildMessages,
54
54
  GatewayIntentBits.MessageContent,
55
+ // Required to receive messageReactionAdd/Remove at all.
56
+ GatewayIntentBits.GuildMessageReactions,
55
57
  ],
58
+ // Reactions on messages that are not in the cache — which is every message
59
+ // sent before the current process started, i.e. the common case after any
60
+ // restart — arrive as PARTIAL objects. Without these, discord.js drops those
61
+ // events entirely and reactions appear to work only on very recent messages.
62
+ partials: [Partials.Message, Partials.Reaction, Partials.User],
56
63
  });
57
64
  this.queue = new MessageQueue({
58
65
  send: async (chatId, threadId, text) => {
@@ -88,6 +95,55 @@ export class DiscordAdapter extends EventEmitter {
88
95
  // shares the fleet process).
89
96
  this.client.on("error", (err) => console.warn(`[discord] client error: ${err?.message ?? err}`));
90
97
  this.client.on("shardError", (err) => console.warn(`[discord] shard error: ${err?.message ?? err}`));
98
+ // Reactions on the bot's messages, as inbound events (#408). Both add and remove
99
+ // are reported so an agent can see an approval being withdrawn.
100
+ const onReaction = async (reaction, user, action) => {
101
+ try {
102
+ // Partial reaction — the message is not in cache, which is every message
103
+ // from before this process started. Fetch before reading .message.
104
+ if (reaction.partial) {
105
+ try {
106
+ await reaction.fetch();
107
+ }
108
+ catch {
109
+ return;
110
+ }
111
+ }
112
+ if (user.id === this.client.user?.id)
113
+ return; // our own reaction
114
+ // Other bots' reactions are DELIVERED on purpose: agents react to each
115
+ // other's messages as signals (agent A 👍 → agent B sees it). The noise
116
+ // this used to guard against — sibling AgEnD bots stamping the
117
+ // delivery-status ladder — is filtered downstream by exact emoji
118
+ // (DELIVERY_STATUS_EMOJIS in fleet-manager), not by sender kind.
119
+ const message = reaction.message;
120
+ // Only reactions on OUR messages are meaningful as agent signals; a user
121
+ // reacting to another user's message is chatter.
122
+ if (message.author?.id && message.author.id !== this.client.user?.id)
123
+ return;
124
+ if (message.guildId && message.guildId !== this.guildId && !this.openChannels.has(message.channelId))
125
+ return;
126
+ this.emit("reaction", {
127
+ source: "discord",
128
+ adapterId: this.id,
129
+ chatId: this.guildId,
130
+ threadId: message.channelId,
131
+ messageId: message.id,
132
+ userId: user.id,
133
+ username: ("username" in user ? user.username : null) ?? user.id,
134
+ emoji: reaction.emoji.name ?? reaction.emoji.toString(),
135
+ action,
136
+ timestamp: new Date(),
137
+ });
138
+ }
139
+ catch (err) {
140
+ // Same containment as the other handlers: a throw here would become an
141
+ // unhandledRejection.
142
+ console.warn(`[discord] reaction ${action} handler error (${err.message})`);
143
+ }
144
+ };
145
+ this.client.on("messageReactionAdd", (reaction, user) => void onReaction(reaction, user, "add"));
146
+ this.client.on("messageReactionRemove", (reaction, user) => void onReaction(reaction, user, "remove"));
91
147
  this.client.on("messageCreate", async (msg) => {
92
148
  try {
93
149
  if (msg.author.id === this.client.user?.id)
@@ -388,17 +444,30 @@ export class DiscordAdapter extends EventEmitter {
388
444
  name: "chat", description: t("slash.chat"),
389
445
  options: [{ name: "message", description: "Your message", type: 3, required: true }],
390
446
  },
391
- { name: "status", description: t("slash.status") },
447
+ { name: "status", description: "🔒 " + t("slash.status") },
392
448
  { name: "sysinfo", description: t("slash.sysinfo") },
393
449
  { name: "dashboard", description: t("slash.dashboard") },
394
450
  { name: "ctx", description: t("slash.ctx") },
395
451
  { name: "restart", description: "🔒 " + t("slash.restart") },
396
452
  { name: "update", description: "🔒 " + t("slash.update") },
397
453
  { name: "doctor", description: "🔒 " + t("slash.doctor") },
454
+ { name: "usage", description: t("slash.usage") },
398
455
  { name: "compact", description: "🔒 " + t("slash.compact") },
399
456
  {
400
457
  name: "model", description: "🔒 Switch model (admin only)",
401
458
  },
459
+ {
460
+ name: "effort", description: "🔒 " + t("slash.effort"),
461
+ options: [{
462
+ name: "level", description: "low | medium | high | xhigh | max",
463
+ type: ApplicationCommandOptionType.String, required: false,
464
+ choices: [
465
+ { name: "low", value: "low" }, { name: "medium", value: "medium" },
466
+ { name: "high", value: "high" }, { name: "xhigh", value: "xhigh" },
467
+ { name: "max", value: "max" },
468
+ ],
469
+ }],
470
+ },
402
471
  { name: "collab", description: "🔒 " + t("slash.collab") },
403
472
  {
404
473
  name: "save", description: "🔒 " + t("slash.save"),
@@ -564,16 +633,30 @@ export class DiscordAdapter extends EventEmitter {
564
633
  catch { /* message already gone */ }
565
634
  }
566
635
  async react(chatId, messageId, emoji, threadId) {
636
+ // A Discord thread is its own channel — a message posted in a topic thread
637
+ // lives there, not in the parent channel, so react on threadId when given.
638
+ const channelId = threadId ?? chatId;
639
+ const encoded = encodeURIComponent(emoji);
567
640
  try {
568
- // A Discord thread is its own channel — a message posted in a topic thread
569
- // lives there, not in the parent channel, so react on threadId when given.
570
- const channelId = threadId ?? chatId;
571
641
  // Direct REST call — single API request instead of 3 (fetchChannel → fetchMessage → react)
572
- const encoded = encodeURIComponent(emoji);
573
642
  await this.client.rest.put(`/channels/${channelId}/messages/${messageId}/reactions/${encoded}/@me`);
643
+ return;
574
644
  }
575
- catch {
576
- // No-op per degradation strategy
645
+ catch (directError) {
646
+ // Reaction PUT is idempotent: retrying cannot create a duplicate. The
647
+ // high-level discord.js path also normalizes custom emoji and refreshes
648
+ // stale channel/message state, so it is a useful recovery path rather than
649
+ // merely repeating the same request. Do not swallow both failures — the
650
+ // MCP react tool must not return "ok" for a reaction nobody can see.
651
+ try {
652
+ const channel = await this._fetchTextChannel(channelId);
653
+ const message = await channel.messages.fetch(messageId);
654
+ await message.react(emoji);
655
+ return;
656
+ }
657
+ catch (fallbackError) {
658
+ throw new Error(`Discord reaction failed: ${fallbackError.message}`, { cause: directError });
659
+ }
577
660
  }
578
661
  }
579
662
  // ── Approval ───────────────────────────────────────────────────────────
@@ -693,6 +776,35 @@ export class DiscordAdapter extends EventEmitter {
693
776
  }
694
777
  return this.sendText(chatId, alert.message, opts);
695
778
  }
779
+ /**
780
+ * Edit an alert's text while keeping its buttons.
781
+ *
782
+ * The two platforms disagree about what *omitting* the buttons means, and the
783
+ * disagreement is exactly inverted:
784
+ *
785
+ * Telegram — omitting `reply_markup` CLEARS the keyboard.
786
+ * Discord — omitting `components` KEEPS whatever is already there.
787
+ *
788
+ * So an `editAlert` with no choices used to clear the buttons on one platform and
789
+ * preserve them on the other, from the same call site. `components` is therefore
790
+ * always sent, empty array included: `alert.choices` is the single description of
791
+ * what the message should end up with, on both platforms.
792
+ */
793
+ async editAlert(chatId, messageId, alert, opts) {
794
+ const channel = await this._fetchTextChannel(opts?.threadId ?? chatId);
795
+ const msg = await channel.messages.fetch(messageId);
796
+ const row = new ActionRowBuilder();
797
+ for (const choice of alert.choices ?? []) {
798
+ row.addComponents(new ButtonBuilder()
799
+ .setCustomId(choice.id)
800
+ .setLabel(choice.label.slice(0, 80))
801
+ .setStyle(ButtonStyle.Secondary));
802
+ }
803
+ await msg.edit({
804
+ content: alert.message.slice(0, DISCORD_MAX_LENGTH),
805
+ components: row.components.length > 0 ? [row] : [],
806
+ });
807
+ }
696
808
  // ── Topology: create channel ────────────────────────────────────────────
697
809
  async _resolveCategory() {
698
810
  const guild = await this.client.guilds.fetch(this.guildId);
@@ -1 +1 @@
1
- {"version":3,"file":"discord.js","sourceRoot":"","sources":["../../../src/channel/adapters/discord.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discord.js","sourceRoot":"","sources":["../../../src/channel/adapters/discord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EACL,MAAM,EACN,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,uBAAuB,EACvB,4BAA4B,EAC5B,WAAW,EACX,YAAY,GASb,MAAM,YAAY,CAAC;AAWpB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACvC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IACjC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACvC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC7C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;CAC7B,CAAC;AAEX,MAAM,+BAA+B,GAAG,uBAAuB,CAAC;AAahE,MAAM,OAAO,cAAe,SAAQ,YAAY;IACrC,IAAI,GAAG,SAAS,CAAC;IACjB,QAAQ,GAAG,UAAmB,CAAC;IAC/B,EAAE,CAAS;IAEZ,MAAM,CAAS;IACf,QAAQ,CAAS;IACjB,aAAa,CAAgB;IAC7B,QAAQ,CAAS;IACjB,OAAO,CAAS;IAChB,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,YAAY,CAAS;IACrB,gBAAgB,CAAU;IAC1B,gBAAgB,CAAU;IAC1B,KAAK,CAAe;IACpB,UAAU,GAAkB,IAAI,CAAC;IACjC,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,iBAAiB,CAAmB;IAE5C,YAAY,IAA2B;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,cAAc,CAAC;QACxD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC;QAExD,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,OAAO,EAAE;gBACP,iBAAiB,CAAC,MAAM;gBACxB,iBAAiB,CAAC,aAAa;gBAC/B,iBAAiB,CAAC,cAAc;gBAChC,wDAAwD;gBACxD,iBAAiB,CAAC,qBAAqB;aACxC;YACD,2EAA2E;YAC3E,0EAA0E;YAC1E,6EAA6E;YAC7E,6EAA6E;YAC7E,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;SAC/D,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC;YAC5B,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;gBACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;gBACjE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAC/B,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;gBACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACrD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACpD,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;gBAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;gBACjE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACtD,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAC/B,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,wBAAwB,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,OAAsB,CAAC;IAChC,CAAC;IAEO,iBAAiB;QACvB,6EAA6E;QAC7E,0EAA0E;QAC1E,2EAA2E;QAC3E,6EAA6E;QAC7E,6BAA6B;QAC7B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA4B,GAAa,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5G,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA2B,GAAa,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAEhH,iFAAiF;QACjF,gEAAgE;QAChE,MAAM,UAAU,GAAG,KAAK,EACtB,QAAkD,EAClD,IAAwB,EACxB,MAAwB,EACT,EAAE;YACjB,IAAI,CAAC;gBACH,yEAAyE;gBACzE,mEAAmE;gBACnE,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACrB,IAAI,CAAC;wBAAC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC;wBAAC,OAAO;oBAAC,CAAC;gBACnD,CAAC;gBACD,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;oBAAE,OAAO,CAAC,mBAAmB;gBACjE,uEAAuE;gBACvE,wEAAwE;gBACxE,+DAA+D;gBAC/D,iEAAiE;gBACjE,iEAAiE;gBACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;gBACjC,yEAAyE;gBACzE,iDAAiD;gBACjD,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;oBAAE,OAAO;gBAC7E,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;oBAAE,OAAO;gBAE7G,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;oBACpB,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,IAAI,CAAC,EAAE;oBAClB,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,QAAQ,EAAE,OAAO,CAAC,SAAS;oBAC3B,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,QAAQ,EAAE,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;oBAChE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACvD,MAAM;oBACN,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,uEAAuE;gBACvE,sBAAsB;gBACtB,OAAO,CAAC,IAAI,CAAC,sBAAsB,MAAM,mBAAoB,GAAa,CAAC,OAAO,GAAG,CAAC,CAAC;YACzF,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,uBAAuB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEvG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;YACrD,IAAI,CAAC;gBACL,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;oBAAE,OAAO,CAAC,sBAAsB;gBAC1E,IAAI,CAAC,GAAG,CAAC,OAAO;oBAAE,OAAO;gBACzB,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;wBAAE,OAAO;oBAClD,2DAA2D;gBAC7D,CAAC;gBAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAE7B,gFAAgF;gBAEhF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC;gBAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACrC,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;gBAEvB,0DAA0D;gBAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,KAAK,GAAa,EAAE,CAAC;oBAC3B,wDAAwD;oBACxD,IAAK,GAAW,CAAC,gBAAgB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;wBAC5C,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAK,GAAW,CAAC,gBAAgB,EAAE,CAAC;4BACrD,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO;gCAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;4BAC5D,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gCACjC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oCACpC,IAAI,CAAC,CAAC,KAAK;wCAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oCACjC,IAAI,CAAC,CAAC,WAAW;wCAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gCAC/C,CAAC;4BACH,CAAC;4BACD,4DAA4D;4BAC5D,IAAI,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;gCACxC,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;oCAC/C,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gCACnC,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,0CAA0C;oBAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;4BAC3B,IAAI,CAAC,CAAC,KAAK;gCAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4BACjC,IAAI,CAAC,CAAC,WAAW;gCAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;4BAC7C,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gCACrB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;oCAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;4BAChE,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;wBAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChD,CAAC;gBACD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;gBAEpC,sBAAsB;gBACtB,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAChD,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO;wBACpD,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO;4BACjD,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO;gCACjD,CAAC,CAAC,UAAU,CAA6C;oBAC3D,MAAM,EAAE,GAAG,CAAC,EAAE;oBACd,IAAI,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;oBAClC,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS;iBAChC,CAAC,CAAC,CAAC;gBAEJ,2CAA2C;gBAC3C,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3C,CAAC;gBACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;oBACvC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;oBACtD,IAAI,KAAK;wBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;wBACxC,MAAM;gBACb,CAAC;gBAED,IAAI,WAA+B,CAAC;gBACpC,IAAI,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;oBAC7B,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;wBACvC,WAAW,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,SAAS,CAAC;oBACzE,CAAC;oBAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;gBACpD,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBACnB,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,IAAI,CAAC,EAAE;oBAClB,MAAM;oBACN,QAAQ;oBACR,SAAS;oBACT,MAAM;oBACN,QAAQ;oBACR,IAAI;oBACJ,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,YAAY;oBACZ,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;oBAC7D,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,IAAI,SAAS;oBAC9C,WAAW;iBACZ,CAAC,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,wEAAwE;gBACxE,uEAAuE;gBACvE,OAAO,CAAC,IAAI,CAAC,0CAA2C,GAAa,CAAC,OAAO,GAAG,CAAC,CAAC;YACpF,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,gFAAgF;QAChF,0EAA0E;QAC1E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,EAAE,WAAwB,EAAE,EAAE;YACrE,IAAI,CAAC;gBACH,wEAAwE;gBACxE,yEAAyE;gBACzE,2EAA2E;gBAC3E,4EAA4E;gBAC5E,yEAAyE;gBACzE,2BAA2B;gBAC3B,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBAAC,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,CAAC;oBACnG,sEAAsE;oBACtE,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;wBAChG,2HAA2H;wBAC3H,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;wBAC1B,YAAY,EAAE,WAAW,CAAC,QAAQ;wBAClC,MAAM,EAAE,IAAI,CAAC,OAAO;wBACpB,QAAQ,EAAE,WAAW,CAAC,SAAS;wBAC/B,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE;wBACjC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE;qBAC5B,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,sEAAsE;gBACtE,0EAA0E;gBAC1E,IAAI,WAAW,CAAC,kBAAkB,EAAE,EAAE,CAAC;oBACrC,IAAI,CAAC;wBAAC,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,CAAC;oBACnG,sEAAsE;oBACtE,qEAAqE;oBACrE,uEAAuE;oBACvE,uEAAuE;oBACvE,yDAAyD;oBACzD,IAAI,WAAW,CAAC,QAAQ,KAAK,+BAA+B;2BACvD,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;2BACpC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC;wBAAE,OAAO;oBACjE,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC3C,IAAI,CAAC,YAAY;wBAAE,OAAO;oBAC1B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;wBAC1B,YAAY;wBACZ,MAAM,EAAE,IAAI,CAAC,OAAO;wBACpB,QAAQ,EAAE,WAAW,CAAC,SAAS;wBAC/B,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE;wBACjC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE;qBAC5B,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;oBACzC,8EAA8E;oBAC9E,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC;wBAAE,OAAO;gBACvG,CAAC;gBAED,IAAI,WAAW,CAAC,kBAAkB,EAAE,EAAE,CAAC;oBACrC,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,IAAI,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjH,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC3C,IAAI,WAAW,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;wBACvC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;wBAC5D,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;wBAC/B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;4BACzB,OAAO,EAAE,MAAM;4BACf,SAAS,EAAE,WAAW,CAAC,SAAS;4BAChC,WAAW;4BACX,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,SAAS;4BACzC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE;4BAC3B,QAAQ;4BACR,IAAI;4BACJ,OAAO,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE,GAAG,IAAI,CAAC;gCAAC,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,CAAC;4BAAC,CAAC;4BAAC,MAAM,CAAC;gCAAC,OAAO,SAAS,CAAC;4BAAC,CAAC,CAAC,CAAC;yBACrI,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,MAAM,WAAW,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBAClD,uDAAuD;wBACvD,MAAM,OAAO,GAAqC,EAAE,CAAC;wBACrD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;4BAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAyB,CAAC;wBACpD,CAAC;wBACD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;4BACzB,OAAO,EAAE,WAAW,CAAC,WAAW;4BAChC,SAAS,EAAE,WAAW,CAAC,SAAS;4BAChC,WAAW;4BACX,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,SAAS;4BACzC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE;4BAC3B,QAAQ;4BACR,OAAO;4BACP,OAAO,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE,GAAG,IAAI,CAAC;gCAAC,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;4BAAC,CAAC;4BAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;4BACpH,cAAc,EAAE,KAAK,EAAE,IAAY,EAAE,OAAiB,EAAE,EAAE;gCACxD,MAAM,MAAM,GAAG,IAAI,uBAAuB,EAAE;qCACzC,WAAW,CAAC,+BAA+B,CAAC;qCAC5C,cAAc,CAAC,kBAAkB,CAAC;qCAClC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oCACjC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oCACjC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;iCAC/B,CAAC,CAAC,CAAC,CAAC;gCACP,MAAM,GAAG,GAAG,IAAI,gBAAgB,EAA2B,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gCAClF,IAAI,CAAC;oCACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oCAClF,OAAO,OAAO,CAAC,EAAE,CAAC;gCACpB,CAAC;gCAAC,MAAM,CAAC;oCACP,OAAO,SAAS,CAAC;gCACnB,CAAC;4BACH,CAAC;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,sCAAuC,GAAa,CAAC,OAAO,GAAG,CAAC,CAAC;YAChF,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,uDAAuD;QACvD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC9B,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,UAAU,EAAE,KAAK,CAAC,IAAI;gBACtB,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1C,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC;gBAAE,OAAO;YACpC,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAAE,OAAO;gBAC/C,uEAAuE;YACzE,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACxB,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,QAAQ,EAAE,OAAO,CAAC,EAAE;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kFAAkF;IAClF,eAAe,CAAC,UAAoB;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QACxC,qFAAqF;IACvF,CAAC;IAED,0EAA0E;IAE1E,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YACnC,2EAA2E;YAC3E,0EAA0E;YAC1E,IAAI,IAAI,CAAC,gBAAgB;gBAAE,IAAI,CAAC;oBAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC;wBAC1C;4BACE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC;4BAC5C,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,SAAS;oCACf,WAAW,EAAE,kBAAkB;oCAC/B,IAAI,EAAE,4BAA4B,CAAC,MAAM;oCACzC,QAAQ,EAAE,IAAI;oCACd,OAAO,EAAE,6BAA6B;iCACvC,CAAC;yBACH;wBACD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE;wBAC9C;4BACE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,2BAA2B;4BACvD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,qCAAqC,EAAE,IAAI,EAAE,4BAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;yBAChJ;wBACD;4BACE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,2BAA2B;4BACtD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,qCAAqC,EAAE,IAAI,EAAE,4BAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;yBAChJ;wBACD;4BACE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC;4BAC1C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;yBACrF;wBACD,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE;wBAC1D,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE;wBACpD,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE;wBACxD,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE;wBAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,EAAE;wBAC5D,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE;wBAC1D,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE;wBAC1D,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE;wBAChD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,EAAE;wBAC5D;4BACE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,8BAA8B;yBAC3D;wBACD;4BACE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC;4BACtD,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,mCAAmC;oCAC/D,IAAI,EAAE,4BAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK;oCAC1D,OAAO,EAAE;wCACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;wCAClE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;wCAClE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;qCAC9B;iCACF,CAAC;yBACH;wBACD,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE;wBAC1D;4BACE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC;4BAClD,OAAO,EAAE;gCACP,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gCAClF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;6BACrF;yBACF;wBACD;4BACE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC;4BAClD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;yBAC3F;wBACD,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE;qBACnD,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,wDAAwD;gBAC1D,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,0EAA0E;IAE1E;;;;;;;OAOG;IACK,KAAK,CAAC,cAAc,CAAC,WAAwC,EAAE,KAAa;QAClF,MAAM,SAAS,GAAG,IAAI,CAAC;QACvB,IAAI,KAAK,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACvC,MAAM,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3C,MAAM,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACnG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,IAAe;QAC1D,MAAM,SAAS,GAAG,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,kBAAkB,CAAC;QAE1D,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAEvD,gEAAgE;QAChE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc;YACnD,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,cAAc,EAAE;YAC5D,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEf,2BAA2B;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,EAAE;YACnB,MAAM;YACN,QAAQ,EAAE,IAAI,EAAE,QAAQ;SACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,QAAgB,EAAE,IAAe;QAC9D,MAAM,SAAS,GAAG,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,SAAiB,EAAE,IAAY,EAAE,QAAiB;QAClF,2EAA2E;QAC3E,wEAAwE;QACxE,4EAA4E;QAC5E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;YACjE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,SAAS,CACxC,CAAC;YACF,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,EAAiB,CAAC;oBACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACnD,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;oBAClD,OAAO;gBACT,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,2BAA2B,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,oEAAoE;YACpE,wEAAwE;YACxE,wEAAwE;YACxE,OAAO,CAAC,IAAI,CACV,wGACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED;oEACgE;IAChE,KAAK,CAAC,wBAAwB,CAAC,MAAc,EAAE,SAAiB,EAAE,IAAY,EAAE,QAAiB;QAC/F,2EAA2E;QAC3E,+DAA+D;QAC/D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;YACjE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,SAAS,CAAC,CAAC;YACtF,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,EAAiB,CAAC;oBACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACnD,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC/E,OAAO;gBACT,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,qCAAqC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,SAAiB,EAAE,QAAiB;QACtE,2EAA2E;QAC3E,+DAA+D;QAC/D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;YACjE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,SAAS,CAAC,CAAC;YACtF,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,EAAiB,CAAC;oBACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACnD,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;oBACnB,OAAO;gBACT,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,SAAiB,EAAE,KAAa,EAAE,QAAiB;QAC7E,2EAA2E;QAC3E,2EAA2E;QAC3E,MAAM,SAAS,GAAG,QAAQ,IAAI,MAAM,CAAC;QACrC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,2FAA2F;YAC3F,MAAO,IAAI,CAAC,MAAc,CAAC,IAAI,CAAC,GAAG,CACjC,aAAa,SAAS,aAAa,SAAS,cAAc,OAAO,MAAM,CACxE,CAAC;YACF,OAAO;QACT,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACrB,sEAAsE;YACtE,wEAAwE;YACxE,2EAA2E;YAC3E,wEAAwE;YACxE,qEAAqE;YACrE,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACxD,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YAAC,OAAO,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,4BAA6B,aAAuB,CAAC,OAAO,EAAE,EAC9D,EAAE,KAAK,EAAE,WAAW,EAAE,CACvB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E,KAAK,CAAC,YAAY,CAChB,MAAwB,EACxB,QAAmE,EACnE,MAAoB,EACpB,QAAiB;QAEjB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,oBAAoB,KAAK,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,2BAA2B,KAAK,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,iBAAiB,KAAK,EAAE,CAAC;QAE1C,MAAM,GAAG,GAAG,IAAI,gBAAgB,EAAiB,CAAC,aAAa,CAC7D,IAAI,aAAa,EAAE;aAChB,WAAW,CAAC,WAAW,CAAC;aACxB,QAAQ,CAAC,OAAO,CAAC;aACjB,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAChC,IAAI,aAAa,EAAE;aAChB,WAAW,CAAC,UAAU,CAAC;aACvB,QAAQ,CAAC,QAAQ,CAAC;aAClB,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAChC,IAAI,aAAa,EAAE;aAChB,WAAW,CAAC,QAAQ,CAAC;aACrB,QAAQ,CAAC,MAAM,CAAC;aAChB,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAChC,CAAC;QAEF,IAAI,IAAI,GAAG,sCAAsC,MAAM,CAAC,SAAS,IAAI,CAAC;QACtE,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG;gBAC/C,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG;gBAC1C,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;YACzB,IAAI,IAAI,aAAa,OAAO,UAAU,CAAC;QACzC,CAAC;aAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC9B,IAAI,IAAI,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,KAAwF,EAAE,EAAE;YAC3G,IAAI,CAAC,KAAK,CAAC,YAAY;gBAAE,OAAO;YAChC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,KAAK,WAAW,CAAC;YACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,KAAK,UAAU,CAAC;YACnD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC;YAC/C,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;gBAAE,OAAO;YAE/C,OAAO,EAAE,CAAC;YAEV,0CAA0C;YAC1C,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;oBACjD,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAY,EAAE,EAAE;wBACxD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC;wBAChF,GAAG,CAAC,IAAI,CAAC;4BACP,OAAO,EAAE,GAAG,KAAK,aAAa,MAAM,CAAC,SAAS,IAAI;4BAClD,UAAU,EAAE,EAAE;yBACf,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBACrB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACrB,CAAC;YAED,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAEnC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC;QACpD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACxD,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,2EAA2E;IAE3E,SAAS,KAAoB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACtD,SAAS,CAAC,MAAc,IAAU,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;IAE7D,0EAA0E;IAE1E,KAAK,CAAC,kBAAkB,CAAC,MAAc;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;QACtG,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC/C,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAA2C,CAAC,EAAE,IAAI,CAAC,CAAC;QACpF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wEAAwE;IAExE,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,IAAY,EAAE,OAAiB,EAAE,IAAe;QAC/E,MAAM,SAAS,GAAG,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,IAAI,uBAAuB,EAAE;aACzC,WAAW,CAAC,UAAU,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;aACvD,cAAc,CAAC,kBAAkB,CAAC;aAClC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACjC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;SAC/B,CAAC,CAAC,CAAC,CAAC;QACP,MAAM,GAAG,GAAG,IAAI,gBAAgB,EAA2B,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAElF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,KAAgB,EAAE,IAAe;QACjE,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC;YAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAExD,MAAM,GAAG,GAAG,IAAI,gBAAgB,EAAiB,CAAC;YAClD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,GAAG,CAAC,aAAa,CACf,IAAI,aAAa,EAAE;qBAChB,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;qBACtB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;qBACnC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CACnC,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9E,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,SAAiB,EAAE,KAAgB,EAAE,IAAe;QAClF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,gBAAgB,EAAiB,CAAC;QAClD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACzC,GAAG,CAAC,aAAa,CACf,IAAI,aAAa,EAAE;iBAChB,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;iBACtB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;iBACnC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CACnC,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC,IAAI,CAAC;YACb,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC;YACnD,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;SACnD,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAEnE,KAAK,CAAC,gBAAgB;QAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CACxC,CAAC,CAAsC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CACjH,CAAC;QACF,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,YAAY;YACvB,IAAI,EAAE,WAAW,CAAC,aAAa;SAChC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7D,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;gBACnC,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC1C,IAAI;gBACJ,IAAI,EAAE,WAAW,CAAC,SAAS;gBAC3B,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,4DAA4D;YAC5D,IAAK,GAAyB,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC9C,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;gBACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC9C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC1C,IAAI;oBACJ,IAAI,EAAE,WAAW,CAAC,SAAS;oBAC3B,MAAM,EAAE,OAAO;iBAChB,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,EAAE,CAAC;YACpB,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAwB;QACxC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,qFAAqF;QACrF,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,IAAK,OAAiC,CAAC,IAAI,KAAK,WAAW,CAAC,SAAS,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC7H,MAAO,OAA0C,CAAC,MAAM,EAAE,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAwB;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAClE,OAAO,OAAO,IAAI,IAAI,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,MAAc;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,YAAqB;QACtD,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC5D,CAAC;CACF;AAED,4EAA4E;AAE5E,SAAS,SAAS,CAAC,IAAY,EAAE,KAAa;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -2,6 +2,18 @@ import { EventEmitter } from "node:events";
2
2
  import { Bot } from "grammy";
3
3
  import type { ChannelAdapter, ApprovalHandle, SendOpts, SentMessage, PermissionPrompt, Choice, AlertData } from "../types.js";
4
4
  import type { AccessManager } from "../access-manager.js";
5
+ /**
6
+ * Update types this adapter subscribes to.
7
+ *
8
+ * `message_reaction` is NOT in Telegram's default set, so it only arrives when
9
+ * allowed_updates is passed explicitly — and passing it freezes the set, so
10
+ * everything the adapter handles has to be listed. Keep in sync with the
11
+ * `bot.on(...)` handlers.
12
+ *
13
+ * Note: Telegram only delivers `message_reaction` when the bot is an administrator
14
+ * in the chat. A non-admin bot simply receives nothing, with no error.
15
+ */
16
+ export declare const TELEGRAM_ALLOWED_UPDATES: readonly ["message", "edited_message", "callback_query", "message_reaction"];
5
17
  export interface TelegramAdapterOptions {
6
18
  id: string;
7
19
  botToken: string;
@@ -49,6 +61,15 @@ export declare class TelegramAdapter extends EventEmitter implements ChannelAdap
49
61
  downloadAttachment(fileId: string): Promise<string>;
50
62
  promptUser(chatId: string, text: string, choices: Choice[], opts?: SendOpts): Promise<string>;
51
63
  notifyAlert(chatId: string, alert: AlertData, opts?: SendOpts): Promise<SentMessage>;
64
+ /**
65
+ * Edit an alert's text while KEEPING its inline keyboard.
66
+ *
67
+ * `editMessage` cannot be used for this: it omits `reply_markup`, and the Bot API
68
+ * treats that as "clear the keyboard" — which is precisely how
69
+ * `editMessageRemoveButtons` works. Editing a cancel-button message with it would
70
+ * delete the cancel button.
71
+ */
72
+ editAlert(chatId: string, messageId: string, alert: AlertData): Promise<void>;
52
73
  createTopic(name: string): Promise<number>;
53
74
  deleteTopic(topicId: number | string): Promise<void>;
54
75
  topicExists(topicId: number): Promise<boolean>;
@@ -6,6 +6,23 @@ import { Bot, GrammyError, InputFile } from "grammy";
6
6
  import { InlineKeyboard } from "grammy";
7
7
  import { MessageQueue } from "../message-queue.js";
8
8
  const IMAGE_EXTENSIONS = new Set([".jpg", ".jpeg", ".png", ".gif", ".webp", ".bmp"]);
9
+ /**
10
+ * Update types this adapter subscribes to.
11
+ *
12
+ * `message_reaction` is NOT in Telegram's default set, so it only arrives when
13
+ * allowed_updates is passed explicitly — and passing it freezes the set, so
14
+ * everything the adapter handles has to be listed. Keep in sync with the
15
+ * `bot.on(...)` handlers.
16
+ *
17
+ * Note: Telegram only delivers `message_reaction` when the bot is an administrator
18
+ * in the chat. A non-admin bot simply receives nothing, with no error.
19
+ */
20
+ export const TELEGRAM_ALLOWED_UPDATES = [
21
+ "message",
22
+ "edited_message",
23
+ "callback_query",
24
+ "message_reaction",
25
+ ];
9
26
  function errorMessage(err) {
10
27
  return err instanceof Error ? err.message : String(err);
11
28
  }
@@ -236,6 +253,51 @@ export class TelegramAdapter extends EventEmitter {
236
253
  });
237
254
  });
238
255
  // Handle topic closed/deleted events (for auto-unbind)
256
+ // Reactions on the bot's own messages (#408). Bot API 7.0+, and only delivered
257
+ // when the bot is an administrator in the chat.
258
+ this.bot.on("message_reaction", (ctx) => {
259
+ try {
260
+ const update = ctx.update.message_reaction;
261
+ if (!update)
262
+ return;
263
+ const user = update.user;
264
+ // Bot reactions pass through (agents signalling each other); the
265
+ // delivery-status stamps are filtered downstream by exact emoji. NOTE:
266
+ // Telegram itself rarely delivers other bots' events to a bot, so
267
+ // bot-to-bot reactions may be platform-limited here regardless.
268
+ if (!user)
269
+ return;
270
+ // `new_reaction` is the full current set, not a delta: an empty array means
271
+ // the user removed their last reaction.
272
+ const current = update.new_reaction ?? [];
273
+ const previous = update.old_reaction ?? [];
274
+ const emojiOf = (r) => r.type === "emoji" ? r.emoji ?? "" : r.custom_emoji_id ?? "";
275
+ const before = new Set(previous.map(emojiOf).filter(Boolean));
276
+ const after = new Set(current.map(emojiOf).filter(Boolean));
277
+ const chatId = String(update.chat.id);
278
+ const base = {
279
+ source: "telegram",
280
+ adapterId: this.id,
281
+ chatId,
282
+ threadId: undefined,
283
+ messageId: String(update.message_id),
284
+ userId: String(user.id),
285
+ username: user.username ?? user.first_name ?? String(user.id),
286
+ timestamp: new Date(),
287
+ };
288
+ for (const emoji of after) {
289
+ if (!before.has(emoji))
290
+ this.emit("reaction", { ...base, emoji, action: "add" });
291
+ }
292
+ for (const emoji of before) {
293
+ if (!after.has(emoji))
294
+ this.emit("reaction", { ...base, emoji, action: "remove" });
295
+ }
296
+ }
297
+ catch (err) {
298
+ console.warn(`[telegram] message_reaction handler error (${errorMessage(err)})`);
299
+ }
300
+ });
239
301
  this.bot.on("message:forum_topic_closed", (ctx) => {
240
302
  const chatId = String(ctx.message?.chat.id ?? "");
241
303
  const threadId = ctx.message?.message_thread_id != null
@@ -342,6 +404,14 @@ export class TelegramAdapter extends EventEmitter {
342
404
  try {
343
405
  await this.bot.start({
344
406
  drop_pending_updates: attempt === 1 && reconnects === 0,
407
+ // Telegram's DEFAULT allowed_updates excludes message_reaction, so
408
+ // reactions cannot arrive unless the set is listed explicitly. Passing
409
+ // this list also FREEZES the set: any update type omitted here stops
410
+ // arriving, silently. So it enumerates everything this adapter handles
411
+ // — `message` (and its sub-filters) and `callback_query` — plus
412
+ // message_reaction. A future handler for a new update type must be
413
+ // added here too, or it will never fire.
414
+ allowed_updates: TELEGRAM_ALLOWED_UPDATES,
345
415
  onStart: (info) => {
346
416
  reconnects = 0; // reset on successful start
347
417
  this.emit("started", info.username);
@@ -681,6 +751,22 @@ export class TelegramAdapter extends EventEmitter {
681
751
  }
682
752
  return this.sendText(chatId, alert.message, opts);
683
753
  }
754
+ /**
755
+ * Edit an alert's text while KEEPING its inline keyboard.
756
+ *
757
+ * `editMessage` cannot be used for this: it omits `reply_markup`, and the Bot API
758
+ * treats that as "clear the keyboard" — which is precisely how
759
+ * `editMessageRemoveButtons` works. Editing a cancel-button message with it would
760
+ * delete the cancel button.
761
+ */
762
+ async editAlert(chatId, messageId, alert) {
763
+ const keyboard = new InlineKeyboard();
764
+ for (const choice of alert.choices ?? [])
765
+ keyboard.text(choice.label, choice.id);
766
+ await this.bot.api.editMessageText(Number(chatId), Number(messageId), alert.message, {
767
+ reply_markup: keyboard,
768
+ });
769
+ }
684
770
  async createTopic(name) {
685
771
  const chatId = this.getChatId();
686
772
  if (!chatId)