ask-slack-mcp-server 2.2.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/server.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import "dotenv/config";
3
3
  import http from "node:http";
4
4
  import { createRequire } from "module";
5
- import { sendQuestionAndWait, startBoltApp, stopBoltApp } from "./slack.js";
5
+ import { sendQuestionAndWait, waitForExistingQuestion, startBoltApp, stopBoltApp } from "./slack.js";
6
6
  import { getServerPort, getServerApiKey } from "./config.js";
7
7
  const require = createRequire(import.meta.url);
8
8
  const { version: VERSION } = require("../package.json");
@@ -64,8 +64,11 @@ const httpServer = http.createServer(async (req, res) => {
64
64
  description: o.description,
65
65
  }))
66
66
  : undefined;
67
- const answer = await sendQuestionAndWait(fullMessage, body.slack_user_id, slackOptions, body.multi_select);
68
- sendJson(res, 200, { answer });
67
+ // Abort when the HTTP client disconnects so we don't leak pending questions
68
+ const abortController = new AbortController();
69
+ req.on("close", () => abortController.abort());
70
+ const result = await sendQuestionAndWait(fullMessage, body.slack_user_id, slackOptions, body.multi_select, abortController.signal);
71
+ sendJson(res, 200, { answer: result.answer, question_id: result.questionId });
69
72
  }
70
73
  catch (err) {
71
74
  const message = err instanceof Error ? err.message : String(err);
@@ -74,6 +77,29 @@ const httpServer = http.createServer(async (req, res) => {
74
77
  }
75
78
  return;
76
79
  }
80
+ // Reconnect to existing pending question (no message resent)
81
+ if (req.method === "POST" && req.url === "/api/wait") {
82
+ const providedKey = req.headers["x-api-key"] ??
83
+ req.headers["authorization"]?.replace(/^Bearer\s+/i, "");
84
+ if (!providedKey || providedKey !== API_KEY) {
85
+ sendJson(res, 401, { error: "Invalid or missing API key" });
86
+ return;
87
+ }
88
+ try {
89
+ const rawBody = await readBody(req);
90
+ const body = JSON.parse(rawBody);
91
+ const abortController = new AbortController();
92
+ req.on("close", () => abortController.abort());
93
+ const result = await waitForExistingQuestion(body.slack_user_id, body.question_id, abortController.signal);
94
+ sendJson(res, 200, { answer: result.answer, question_id: result.questionId });
95
+ }
96
+ catch (err) {
97
+ const message = err instanceof Error ? err.message : String(err);
98
+ console.error("[Server] Error handling /api/wait:", message);
99
+ sendJson(res, 500, { error: message });
100
+ }
101
+ return;
102
+ }
77
103
  sendJson(res, 404, { error: "Not found" });
78
104
  });
79
105
  async function main() {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/slack.d.ts CHANGED
@@ -4,4 +4,15 @@ export interface SlackQuestionOption {
4
4
  }
5
5
  export declare function startBoltApp(): Promise<void>;
6
6
  export declare function stopBoltApp(): Promise<void>;
7
- export declare function sendQuestionAndWait(question: string, slackUserId?: string, options?: SlackQuestionOption[], multiSelect?: boolean): Promise<string>;
7
+ export declare function sendQuestionAndWait(question: string, slackUserId?: string, options?: SlackQuestionOption[], multiSelect?: boolean, signal?: AbortSignal): Promise<{
8
+ answer: string;
9
+ questionId: string;
10
+ }>;
11
+ /**
12
+ * Re-attach to an existing pending question without sending a new Slack message.
13
+ * Used by the reconnect flow when the HTTP connection drops before the user answers.
14
+ */
15
+ export declare function waitForExistingQuestion(slackUserId?: string, questionId?: string, signal?: AbortSignal): Promise<{
16
+ answer: string;
17
+ questionId: string;
18
+ }>;
package/dist/slack.js CHANGED
@@ -1,8 +1,32 @@
1
1
  import { WebClient } from "@slack/web-api";
2
2
  import { App } from "@slack/bolt";
3
- const TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
3
+ function createDeferred() {
4
+ let resolve;
5
+ const promise = new Promise((r) => { resolve = r; });
6
+ return { promise, resolve };
7
+ }
8
+ function raceWithAbort(promise, signal) {
9
+ if (!signal)
10
+ return promise;
11
+ if (signal.aborted)
12
+ return Promise.reject(new Error("Client disconnected"));
13
+ return new Promise((resolve, reject) => {
14
+ const onAbort = () => reject(new Error("Client disconnected"));
15
+ signal.addEventListener("abort", onAbort, { once: true });
16
+ promise.then((answer) => {
17
+ signal.removeEventListener("abort", onAbort);
18
+ resolve(answer);
19
+ });
20
+ });
21
+ }
4
22
  const STARTUP_DELAY_MS = 6000; // Wait for stale Slack connections to expire
23
+ const POLL_INTERVAL_MS = 15_000; // Poll every 15s as fallback for dead Socket Mode
24
+ // Keyed by messageTs (unique per question) — supports multiple pending questions per channel
5
25
  const pendingQuestions = new Map();
26
+ // Cache of recently answered questions so reconnecting clients can pick up the answer
27
+ const resolvedAnswers = new Map(); // key: messageTs
28
+ const RESOLVED_ANSWER_TTL_MS = 5 * 60 * 1000; // 5 minutes
29
+ let pollTimer;
6
30
  const web = new WebClient(process.env.SLACK_BOT_TOKEN);
7
31
  const boltApp = new App({
8
32
  token: process.env.SLACK_BOT_TOKEN,
@@ -11,23 +35,39 @@ const boltApp = new App({
11
35
  appToken: process.env.SLACK_APP_TOKEN,
12
36
  });
13
37
  // --- Helpers ---
14
- function resolvePending(channelId, answer) {
15
- const pending = pendingQuestions.get(channelId);
38
+ function resolvePending(messageTs, answer) {
39
+ const pending = pendingQuestions.get(messageTs);
16
40
  if (!pending)
17
41
  return false;
18
- console.error("[Bolt] Resolving pending question for channel:", channelId, "with:", answer);
19
- pending.resolve(answer);
20
- pendingQuestions.delete(channelId);
21
- // Confirm to the user on Slack that the answer was received
42
+ console.error("[Bolt] Resolving pending question:", messageTs, "in channel:", pending.channelId, "with:", answer);
43
+ pending.deferred.resolve(answer);
44
+ pendingQuestions.delete(messageTs);
45
+ // Cache the answer so reconnecting clients can still pick it up
46
+ resolvedAnswers.set(messageTs, { answer, channelId: pending.channelId });
47
+ setTimeout(() => resolvedAnswers.delete(messageTs), RESOLVED_ANSWER_TTL_MS);
48
+ // Confirm to the user on Slack that the answer was received (in thread of the original question)
22
49
  web.chat.postMessage({
23
- channel: channelId,
50
+ channel: pending.channelId,
24
51
  text: `✅ Your answer: ${answer}`,
52
+ thread_ts: messageTs,
25
53
  mrkdwn: true,
26
54
  }).catch((err) => {
27
55
  console.error("[Bolt] Failed to send confirmation message:", err);
28
56
  });
29
57
  return true;
30
58
  }
59
+ /** Find the most recent pending question for a given channel. */
60
+ function findLatestPendingForChannel(channelId) {
61
+ let latest;
62
+ for (const pending of pendingQuestions.values()) {
63
+ if (pending.channelId === channelId) {
64
+ if (!latest || pending.createdAt > latest.createdAt) {
65
+ latest = pending;
66
+ }
67
+ }
68
+ }
69
+ return latest;
70
+ }
31
71
  function formatSelected(labels) {
32
72
  return `Selected: ${labels.join(", ")}`;
33
73
  }
@@ -129,8 +169,24 @@ boltApp.message(async ({ message }) => {
129
169
  console.error("[Bolt] Ignoring message subtype:", msg.subtype);
130
170
  return;
131
171
  }
132
- const pending = pendingQuestions.get(msg.channel);
133
- if (!pending || !msg.text) {
172
+ if (!msg.text) {
173
+ console.error("[Bolt] No text in message, skipping.");
174
+ return;
175
+ }
176
+ // Route reply to the correct pending question:
177
+ // 1. Thread reply (thread_ts set) → find question matching that thread_ts
178
+ // 2. Direct reply (no thread_ts) → find the most recent pending question in this channel
179
+ let pending;
180
+ if (msg.thread_ts) {
181
+ pending = pendingQuestions.get(msg.thread_ts);
182
+ if (pending) {
183
+ console.error("[Bolt] Matched thread reply to question:", msg.thread_ts);
184
+ }
185
+ }
186
+ if (!pending) {
187
+ pending = findLatestPendingForChannel(msg.channel);
188
+ }
189
+ if (!pending) {
134
190
  console.error("[Bolt] No pending question for channel:", msg.channel);
135
191
  return;
136
192
  }
@@ -143,20 +199,20 @@ boltApp.message(async ({ message }) => {
143
199
  }
144
200
  // Otherwise pass through as freeform text
145
201
  }
146
- resolvePending(msg.channel, answer);
202
+ resolvePending(pending.messageTs, answer);
147
203
  });
148
204
  // Single-select button click
149
205
  boltApp.action(/^ask_slack_btn_\d+$/, async ({ body, ack }) => {
150
206
  await ack();
151
207
  const blockBody = body;
152
- const channelId = blockBody.channel?.id;
153
- if (!channelId)
208
+ const messageTs = blockBody.message?.ts;
209
+ if (!messageTs)
154
210
  return;
155
211
  const action = blockBody.actions[0];
156
212
  const selectedLabel = action.type === "button" ? action.value : "";
157
213
  if (selectedLabel) {
158
- console.error("[Bolt] Button clicked:", selectedLabel, "in channel:", channelId);
159
- resolvePending(channelId, formatSelected([selectedLabel]));
214
+ console.error("[Bolt] Button clicked:", selectedLabel, "for question:", messageTs);
215
+ resolvePending(messageTs, formatSelected([selectedLabel]));
160
216
  }
161
217
  });
162
218
  // Checkbox toggle — just acknowledge, wait for Submit
@@ -167,8 +223,8 @@ boltApp.action("ask_slack_checkboxes", async ({ ack }) => {
167
223
  boltApp.action("ask_slack_submit", async ({ body, ack }) => {
168
224
  await ack();
169
225
  const blockBody = body;
170
- const channelId = blockBody.channel?.id;
171
- if (!channelId)
226
+ const messageTs = blockBody.message?.ts;
227
+ if (!messageTs)
172
228
  return;
173
229
  const stateValues = blockBody.state?.values;
174
230
  const checkboxState = stateValues?.["ask_slack_options"]?.["ask_slack_checkboxes"];
@@ -177,9 +233,87 @@ boltApp.action("ask_slack_submit", async ({ body, ack }) => {
177
233
  console.error("[Bolt] Submit clicked but no options selected");
178
234
  return;
179
235
  }
180
- console.error("[Bolt] Submit — selected:", selectedLabels, "in channel:", channelId);
181
- resolvePending(channelId, formatSelected(selectedLabels));
236
+ console.error("[Bolt] Submit — selected:", selectedLabels, "for question:", messageTs);
237
+ resolvePending(messageTs, formatSelected(selectedLabels));
182
238
  });
239
+ // --- Polling fallback ---
240
+ // When Socket Mode dies silently, we poll conversations.history to pick up replies.
241
+ async function pollForReplies() {
242
+ // Group pending questions by channel to minimize API calls
243
+ const byChannel = new Map();
244
+ for (const pending of pendingQuestions.values()) {
245
+ const list = byChannel.get(pending.channelId) ?? [];
246
+ list.push(pending);
247
+ byChannel.set(pending.channelId, list);
248
+ }
249
+ for (const [channelId, pendings] of byChannel) {
250
+ try {
251
+ // Use the oldest pending question's messageTs as the starting point
252
+ const oldest = pendings.reduce((min, p) => (p.messageTs < min ? p.messageTs : min), pendings[0].messageTs);
253
+ const history = await web.conversations.history({
254
+ channel: channelId,
255
+ oldest,
256
+ inclusive: false,
257
+ limit: 20,
258
+ });
259
+ const messages = history.messages ?? [];
260
+ for (const msg of messages) {
261
+ if (msg.bot_id)
262
+ continue;
263
+ if (msg.subtype)
264
+ continue;
265
+ const text = msg.text;
266
+ if (!text)
267
+ continue;
268
+ const threadTs = msg.thread_ts;
269
+ let matched;
270
+ // Thread reply → match to specific question
271
+ if (threadTs) {
272
+ matched = pendings.find((p) => p.messageTs === threadTs);
273
+ }
274
+ // Direct reply → match to latest pending question in channel
275
+ if (!matched) {
276
+ matched = pendings.reduce((latest, p) => !latest || p.createdAt > latest.createdAt ? p : latest, undefined);
277
+ }
278
+ if (!matched)
279
+ continue;
280
+ let answer = text;
281
+ if (matched.options && matched.options.length > 0) {
282
+ const parsed = tryParseNumberedReply(text, matched.options);
283
+ if (parsed)
284
+ answer = parsed;
285
+ }
286
+ console.error("[Poll] Found reply for question:", matched.messageTs, "answer:", answer);
287
+ resolvePending(matched.messageTs, answer);
288
+ // Remove from local array so we don't double-match
289
+ const idx = pendings.indexOf(matched);
290
+ if (idx >= 0)
291
+ pendings.splice(idx, 1);
292
+ if (pendings.length === 0)
293
+ break;
294
+ }
295
+ }
296
+ catch (err) {
297
+ console.error("[Poll] Error polling channel", channelId, err);
298
+ }
299
+ }
300
+ // Stop polling when no more pending questions
301
+ if (pendingQuestions.size === 0 && pollTimer) {
302
+ clearInterval(pollTimer);
303
+ pollTimer = undefined;
304
+ console.error("[Poll] No more pending questions, polling stopped.");
305
+ }
306
+ }
307
+ function ensurePolling() {
308
+ if (pollTimer)
309
+ return;
310
+ console.error(`[Poll] Starting polling fallback (every ${POLL_INTERVAL_MS / 1000}s)`);
311
+ pollTimer = setInterval(() => {
312
+ pollForReplies().catch((err) => {
313
+ console.error("[Poll] Unhandled error in pollForReplies:", err);
314
+ });
315
+ }, POLL_INTERVAL_MS);
316
+ }
183
317
  // --- Exported functions ---
184
318
  export async function startBoltApp() {
185
319
  console.error(`[Bolt] Waiting ${STARTUP_DELAY_MS / 1000}s for stale connections to expire...`);
@@ -188,10 +322,14 @@ export async function startBoltApp() {
188
322
  console.error("[Bolt] Socket Mode app started successfully.");
189
323
  }
190
324
  export async function stopBoltApp() {
325
+ if (pollTimer) {
326
+ clearInterval(pollTimer);
327
+ pollTimer = undefined;
328
+ }
191
329
  await boltApp.stop();
192
330
  console.error("[Bolt] Socket Mode app stopped.");
193
331
  }
194
- export async function sendQuestionAndWait(question, slackUserId, options, multiSelect) {
332
+ export async function sendQuestionAndWait(question, slackUserId, options, multiSelect, signal) {
195
333
  const userId = slackUserId ?? process.env.SLACK_USER_ID;
196
334
  if (!userId) {
197
335
  throw new Error("Missing slack_user_id parameter and SLACK_USER_ID environment variable");
@@ -201,9 +339,10 @@ export async function sendQuestionAndWait(question, slackUserId, options, multiS
201
339
  const channelId = dmResult.channel.id;
202
340
  // Build and send message
203
341
  const hasOptions = options && options.length > 0;
342
+ let sentResult;
204
343
  if (hasOptions) {
205
344
  const blocks = buildOptionsBlocks(question, options, multiSelect ?? false);
206
- await web.chat.postMessage({
345
+ sentResult = await web.chat.postMessage({
207
346
  channel: channelId,
208
347
  text: question, // fallback for notifications
209
348
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -212,28 +351,72 @@ export async function sendQuestionAndWait(question, slackUserId, options, multiS
212
351
  });
213
352
  }
214
353
  else {
215
- await web.chat.postMessage({
354
+ sentResult = await web.chat.postMessage({
216
355
  channel: channelId,
217
356
  text: question,
218
357
  mrkdwn: true,
219
358
  });
220
359
  }
221
- // Wait for response (text reply or interactive action)
222
- console.error(`[Slack] Waiting for reply in channel ${channelId} (timeout: ${TIMEOUT_MS / 1000}s)`);
223
- return new Promise((resolve, reject) => {
224
- const timer = setTimeout(() => {
225
- console.error(`[Slack] TIMEOUT no reply received for channel ${channelId}`);
226
- pendingQuestions.delete(channelId);
227
- reject(new Error("Timeout user did not respond within 5 minutes"));
228
- }, TIMEOUT_MS);
229
- pendingQuestions.set(channelId, {
230
- resolve: (answer) => {
231
- clearTimeout(timer);
232
- resolve(answer);
233
- },
234
- options: hasOptions ? options : undefined,
235
- multiSelect,
236
- });
360
+ // Wait for response (text reply or interactive action) — no server-side timeout,
361
+ // the client controls how long to wait via its own HTTP timeout.
362
+ const messageTs = sentResult.ts;
363
+ console.error(`[Slack] Waiting for reply to question ${messageTs} in channel ${channelId} (no timeout)`);
364
+ // Use a deferred promise so that if the HTTP client disconnects,
365
+ // the pending question survives and can be picked up by /api/wait.
366
+ const deferred = createDeferred();
367
+ pendingQuestions.set(messageTs, {
368
+ deferred,
369
+ options: hasOptions ? options : undefined,
370
+ multiSelect,
371
+ messageTs,
372
+ channelId,
373
+ createdAt: Date.now(),
237
374
  });
375
+ ensurePolling();
376
+ const answer = await raceWithAbort(deferred.promise, signal);
377
+ return { answer, questionId: messageTs };
378
+ }
379
+ /**
380
+ * Re-attach to an existing pending question without sending a new Slack message.
381
+ * Used by the reconnect flow when the HTTP connection drops before the user answers.
382
+ */
383
+ export async function waitForExistingQuestion(slackUserId, questionId, signal) {
384
+ // If a specific questionId is provided, look it up directly
385
+ if (questionId) {
386
+ const cached = resolvedAnswers.get(questionId);
387
+ if (cached !== undefined) {
388
+ resolvedAnswers.delete(questionId);
389
+ return { answer: cached.answer, questionId };
390
+ }
391
+ const pending = pendingQuestions.get(questionId);
392
+ if (!pending) {
393
+ throw new Error("No pending question found with this ID");
394
+ }
395
+ console.error(`[Slack] Client reconnected — re-attaching to question ${questionId}`);
396
+ const answer = await raceWithAbort(pending.deferred.promise, signal);
397
+ return { answer, questionId };
398
+ }
399
+ // No questionId — find by channel (backward compatible)
400
+ const userId = slackUserId ?? process.env.SLACK_USER_ID;
401
+ if (!userId) {
402
+ throw new Error("Missing slack_user_id parameter and SLACK_USER_ID environment variable");
403
+ }
404
+ const dmResult = await web.conversations.open({ users: userId });
405
+ const channelId = dmResult.channel.id;
406
+ // If the answer arrived between disconnect and reconnect, return the latest
407
+ for (const [msgTs, cached] of resolvedAnswers) {
408
+ if (cached.channelId === channelId) {
409
+ resolvedAnswers.delete(msgTs);
410
+ return { answer: cached.answer, questionId: msgTs };
411
+ }
412
+ }
413
+ // Find the latest pending question for this channel
414
+ const pending = findLatestPendingForChannel(channelId);
415
+ if (!pending) {
416
+ throw new Error("No pending question found for this user");
417
+ }
418
+ console.error(`[Slack] Client reconnected — re-attaching to latest pending question ${pending.messageTs} in channel ${channelId}`);
419
+ const answer = await raceWithAbort(pending.deferred.promise, signal);
420
+ return { answer, questionId: pending.messageTs };
238
421
  }
239
422
  //# sourceMappingURL=slack.js.map
package/dist/slack.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"slack.js","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAe,MAAM,aAAa,CAAC;AAuB/C,SAAS,cAAc;IACrB,IAAI,OAAiC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAS,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,aAAa,CAAC,OAAwB,EAAE,MAAoB;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IAC5B,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACtB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,6CAA6C;AAC5E,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,kDAAkD;AAEnF,6FAA6F;AAC7F,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;AAO5D,sFAAsF;AACtF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAwB,CAAC,CAAC,iBAAiB;AAC1E,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAE1D,IAAI,SAAqD,CAAC;AAE1D,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAEvD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;IAClC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;IACrD,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;CACtC,CAAC,CAAC;AAEH,kBAAkB;AAElB,SAAS,cAAc,CAAC,SAAiB,EAAE,MAAc;IACvD,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAClH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEnC,gEAAgE;IAChE,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACzE,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAE5E,iGAAiG;IACjG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC,SAAS;QAC1B,IAAI,EAAE,kBAAkB,MAAM,EAAE;QAChC,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,GAAG,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iEAAiE;AACjE,SAAS,2BAA2B,CAAC,SAAiB;IACpD,IAAI,MAAmC,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBACpD,MAAM,GAAG,OAAO,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,MAAgB;IACtC,OAAO,aAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAY,EACZ,OAA8B;IAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAElD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAElE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChE,OAAO,cAAc,CAAC,cAAc,CAAC,CAAC;AACxC,CAAC;AAED,oCAAoC;AAEpC,SAAS,kBAAkB,CACzB,YAAoB,EACpB,OAA8B,EAC9B,WAAoB;IAEpB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,gBAAgB;IAChB,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;KAC7C,CAAC,CAAC;IAEH,oDAAoD;IACpD,MAAM,YAAY,GAAG,OAAO;SACzB,GAAG,CACF,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxE;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;KAC7C,CAAC,CAAC;IAEH,IAAI,WAAW,EAAE,CAAC;QAChB,6BAA6B;QAC7B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,mBAAmB;YAC7B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,YAAY;oBAClB,SAAS,EAAE,sBAAsB;oBACjC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC3B,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAiB;4BACvB,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;yBACjE;wBACD,KAAK,EAAE,CAAC,CAAC,KAAK;qBACf,CAAC,CAAC;iBACJ;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,EAAE,IAAI,EAAE,YAAqB,EAAE,IAAI,EAAE,UAAU,EAAE;oBACvD,KAAK,EAAE,SAAS;iBACjB;aACF;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,uCAAuC;QACvC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,mBAAmB;YAC7B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,iBAAiB,CAAC,EAAE;gBAC/B,IAAI,EAAE,EAAE,IAAI,EAAE,YAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE;gBACpD,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACZ,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,uDAAuD;QACzD,CAAC,CAAC,uDAAuD,CAAC;IAC5D,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KAC/C,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yBAAyB;AAEzB,mBAAmB;AACnB,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpC,MAAM,GAAG,GAAG,OAA8B,CAAC;IAE3C,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE;QACxC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,CAAC,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC;KAC1C,CAAC,CAAC;IAEH,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QAChD,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,+CAA+C;IAC/C,0EAA0E;IAC1E,yFAAyF;IACzF,IAAI,OAAoC,CAAC;IAEzC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,2BAA2B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IAED,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;IAEtB,8DAA8D;IAC9D,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,MAAM,CAAC;QAClB,CAAC;QACD,0CAA0C;IAC5C,CAAC;IAED,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEH,6BAA6B;AAC7B,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;IAC5D,MAAM,GAAG,EAAE,CAAC;IAEZ,MAAM,SAAS,GAAG,IAAmB,CAAC;IACtC,MAAM,SAAS,GAAI,SAAS,CAAC,OAAuC,EAAE,EAAE,CAAC;IACzE,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,aAAa,GACjB,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,MAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtE,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QACnF,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,sDAAsD;AACtD,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;IACvD,MAAM,GAAG,EAAE,CAAC;AACd,CAAC,CAAC,CAAC;AAEH,4CAA4C;AAC5C,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;IACzD,MAAM,GAAG,EAAE,CAAC;IAEZ,MAAM,SAAS,GAAG,IAAmB,CAAC;IACtC,MAAM,SAAS,GAAI,SAAS,CAAC,OAAuC,EAAE,EAAE,CAAC;IACzE,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,WAAW,GACf,SAAS,CAAC,KAGX,EAAE,MAAM,CAAC;IAEV,MAAM,aAAa,GAAG,WAAW,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;IACnF,MAAM,cAAc,GAClB,aAAa,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAEjE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IACvF,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,2BAA2B;AAC3B,oFAAoF;AAEpF,KAAK,UAAU,cAAc;IAC3B,2DAA2D;IAC3D,MAAM,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC;IACvD,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,oEAAoE;YACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EACnD,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CACtB,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC;gBAC9C,OAAO,EAAE,SAAS;gBAClB,MAAM;gBACN,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;YACxC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,IAAK,GAA2B,CAAC,MAAM;oBAAE,SAAS;gBAClD,IAAK,GAA4B,CAAC,OAAO;oBAAE,SAAS;gBACpD,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,CAAC;gBAC7C,IAAI,CAAC,IAAI;oBAAE,SAAS;gBAEpB,MAAM,QAAQ,GAAI,GAA8B,CAAC,SAAS,CAAC;gBAC3D,IAAI,OAAoC,CAAC;gBAEzC,4CAA4C;gBAC5C,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;gBAC3D,CAAC;gBAED,6DAA6D;gBAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,QAAQ,CAAC,MAAM,CACvB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CACZ,CAAC,MAAM,IAAI,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EACxD,SAAwC,CACzC,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,OAAO;oBAAE,SAAS;gBAEvB,IAAI,MAAM,GAAG,IAAI,CAAC;gBAClB,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClD,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC5D,IAAI,MAAM;wBAAE,MAAM,GAAG,MAAM,CAAC;gBAC9B,CAAC;gBAED,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;gBACxF,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAE1C,mDAAmD;gBACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,GAAG,IAAI,CAAC;oBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM;YACnC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,IAAI,gBAAgB,CAAC,IAAI,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;QAC7C,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,SAAS,GAAG,SAAS,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,SAAS;QAAE,OAAO;IACtB,OAAO,CAAC,KAAK,CAAC,2CAA2C,gBAAgB,GAAG,IAAI,IAAI,CAAC,CAAC;IACtF,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QAC3B,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACvB,CAAC;AAED,6BAA6B;AAE7B,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,OAAO,CAAC,KAAK,CAAC,kBAAkB,gBAAgB,GAAG,IAAI,sCAAsC,CAAC,CAAC;IAC/F,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE1D,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACtB,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,SAAS,EAAE,CAAC;QACd,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,SAAS,GAAG,SAAS,CAAC;IACxB,CAAC;IACD,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,WAAoB,EACpB,OAA+B,EAC/B,WAAqB,EACrB,MAAoB;IAEpB,MAAM,MAAM,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACxD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACjE,MAAM,SAAS,GAAI,QAAQ,CAAC,OAA0B,CAAC,EAAE,CAAC;IAE1D,yBAAyB;IACzB,MAAM,UAAU,GAAG,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACjD,IAAI,UAA2B,CAAC;IAEhC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,IAAI,KAAK,CAAC,CAAC;QAC3E,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;YACtC,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,QAAQ,EAAE,6BAA6B;YAC7C,8DAA8D;YAC9D,MAAM,EAAE,MAAa;YACrB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;YACtC,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;IAED,iFAAiF;IACjF,iEAAiE;IACjE,MAAM,SAAS,GAAG,UAAU,CAAC,EAAG,CAAC;IACjC,OAAO,CAAC,KAAK,CACX,yCAAyC,SAAS,eAAe,SAAS,eAAe,CAC1F,CAAC;IAEF,iEAAiE;IACjE,mEAAmE;IACnE,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE;QAC9B,QAAQ;QACR,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACzC,WAAW;QACX,SAAS;QACT,SAAS;QACT,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAC;IAEH,aAAa,EAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAoB,EACpB,UAAmB,EACnB,MAAoB;IAEpB,4DAA4D;IAC5D,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,KAAK,CACX,yDAAyD,UAAU,EAAE,CACtE,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChC,CAAC;IAED,wDAAwD;IACxD,MAAM,MAAM,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACxD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACjE,MAAM,SAAS,GAAI,QAAQ,CAAC,OAA0B,CAAC,EAAE,CAAC;IAE1D,4EAA4E;IAC5E,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,MAAM,OAAO,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,KAAK,CACX,wEAAwE,OAAO,CAAC,SAAS,eAAe,SAAS,EAAE,CACpH,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;AACnD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ask-slack-mcp-server",
3
- "version": "2.2.0",
3
+ "version": "2.5.0",
4
4
  "description": "HTTP API server for ask-slack-mcp — Slack bridge for human-in-the-loop",
5
5
  "type": "module",
6
6
  "main": "dist/server.js",