@mono-agent/slack-adapter 0.4.0 → 0.4.1
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/README.md +1 -1
- package/dist/adapter.d.ts +194 -1
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +416 -7
- package/dist/adapter.js.map +1 -1
- package/dist/config.d.ts +58 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +213 -78
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/message-stream.d.ts +11 -0
- package/dist/message-stream.d.ts.map +1 -1
- package/dist/message-stream.js +6 -0
- package/dist/message-stream.js.map +1 -1
- package/dist/slack-client.d.ts +2 -1
- package/dist/slack-client.d.ts.map +1 -1
- package/dist/slack-client.js +3 -0
- package/dist/slack-client.js.map +1 -1
- package/dist/socket-mode-runner.d.ts +110 -1
- package/dist/socket-mode-runner.d.ts.map +1 -1
- package/dist/socket-mode-runner.js +287 -22
- package/dist/socket-mode-runner.js.map +1 -1
- package/dist/start.d.ts +26 -3
- package/dist/start.d.ts.map +1 -1
- package/dist/start.js +46 -0
- package/dist/start.js.map +1 -1
- package/dist/types.d.ts +93 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -3
package/dist/adapter.js
CHANGED
|
@@ -94,7 +94,19 @@ export class SlackAdapter {
|
|
|
94
94
|
messages;
|
|
95
95
|
attachmentMaxBytes;
|
|
96
96
|
allowedMimeTypes;
|
|
97
|
+
/** callback_id → shortcut binding for registered Slack shortcuts. */
|
|
98
|
+
shortcuts;
|
|
99
|
+
/** action_id → button binding for App Home tab buttons. */
|
|
100
|
+
homeButtons;
|
|
101
|
+
/** Ordered Home tab buttons (for rendering the view in config order). */
|
|
102
|
+
homeButtonOrder;
|
|
103
|
+
homeTabEnabled;
|
|
104
|
+
homeTabHeaderText;
|
|
105
|
+
/** First allowlisted channel (original case), used as a global interaction's default reply destination. */
|
|
106
|
+
defaultShortcutChannelId;
|
|
97
107
|
logger;
|
|
108
|
+
resolvePostIndex;
|
|
109
|
+
recordPostedMessage;
|
|
98
110
|
/**
|
|
99
111
|
* In-flight abort controllers per thread. The harness serializes runs for a
|
|
100
112
|
* conversation, so several may be queued/active concurrently; /cancel aborts
|
|
@@ -125,12 +137,27 @@ export class SlackAdapter {
|
|
|
125
137
|
this.messages = { ...DEFAULT_MESSAGES, ...options.messages };
|
|
126
138
|
this.attachmentMaxBytes = options.attachments?.maxBytes ?? DEFAULT_ATTACHMENT_MAX_BYTES;
|
|
127
139
|
this.allowedMimeTypes = new Set((options.attachments?.allowedMimeTypes ?? DEFAULT_ALLOWED_MIME_TYPES).map((mime) => mime.trim().toLowerCase()));
|
|
140
|
+
this.shortcuts = new Map((options.shortcuts ?? [])
|
|
141
|
+
.filter((binding) => binding.callbackId.trim().length > 0)
|
|
142
|
+
.map((binding) => [binding.callbackId, binding]));
|
|
143
|
+
this.homeButtonOrder = (options.homeTab?.buttons ?? []).filter((button) => button.actionId.trim().length > 0);
|
|
144
|
+
this.homeButtons = new Map(this.homeButtonOrder.map((button) => [button.actionId, button]));
|
|
145
|
+
this.homeTabEnabled = options.homeTab?.enabled === true;
|
|
146
|
+
this.homeTabHeaderText = options.homeTab?.headerText;
|
|
147
|
+
this.defaultShortcutChannelId = options.allowedChannelIds?.[0];
|
|
128
148
|
this.logger = options.logger;
|
|
149
|
+
this.resolvePostIndex = options.resolvePostIndex;
|
|
150
|
+
this.recordPostedMessage = options.recordPostedMessage;
|
|
129
151
|
if (!this.allowAllChannels && this.allowedChannelIds.size === 0) {
|
|
130
152
|
throw new TypeError("SlackAdapter requires allowedChannelIds or allowAllChannels: true.");
|
|
131
153
|
}
|
|
132
154
|
}
|
|
133
155
|
async handleEventCallback(callback) {
|
|
156
|
+
// App Home tab opened → (re)publish the button panel. This is an events_api
|
|
157
|
+
// event with no channel/trigger, so it is handled before the message path.
|
|
158
|
+
if (callback.event.type === "app_home_opened" && callback.event.tab === "home") {
|
|
159
|
+
return this.handleAppHomeOpened(callback);
|
|
160
|
+
}
|
|
134
161
|
const normalized = this.normalizeEventCallback(callback);
|
|
135
162
|
if (normalized.kind === "ignored") {
|
|
136
163
|
return normalized;
|
|
@@ -194,10 +221,15 @@ export class SlackAdapter {
|
|
|
194
221
|
};
|
|
195
222
|
}
|
|
196
223
|
const runKey = runKeyFor(event);
|
|
224
|
+
// Resolve once, up front, so /cancel, the admission queue, and the run all use
|
|
225
|
+
// the SAME conversationId — an in-thread reply to a message we posted resolves
|
|
226
|
+
// to the producing conversation (so it loads that history), else the default
|
|
227
|
+
// slack: thread id.
|
|
228
|
+
const conversationId = await this.resolveConversationId(event);
|
|
197
229
|
if (command?.name === "cancel") {
|
|
198
230
|
// Clear any queued follow-ups for the conversation (the harness owns the
|
|
199
231
|
// queue) and abort every in-flight controller for this thread.
|
|
200
|
-
this.responder.cancel?.(
|
|
232
|
+
this.responder.cancel?.(conversationId, new Error("Cancelled by Slack user."));
|
|
201
233
|
const controllers = this.activeControllers.get(runKey);
|
|
202
234
|
if (controllers !== undefined) {
|
|
203
235
|
for (const controller of controllers) {
|
|
@@ -220,7 +252,7 @@ export class SlackAdapter {
|
|
|
220
252
|
// session after the current turn. We admit messages through a per-conversation
|
|
221
253
|
// serial queue first so they reach the harness in arrival order even when an
|
|
222
254
|
// earlier message stalls on file download.
|
|
223
|
-
|
|
255
|
+
//
|
|
224
256
|
// Create and register the controller BEFORE entering the admission queue so a
|
|
225
257
|
// /cancel can abort a message still parked behind an earlier same-thread run.
|
|
226
258
|
// respondToEvent's first abort check then makes the queued-then-cancelled run
|
|
@@ -233,7 +265,7 @@ export class SlackAdapter {
|
|
|
233
265
|
this.admissionQueues.set(conversationId, queue);
|
|
234
266
|
}
|
|
235
267
|
try {
|
|
236
|
-
return await queue.run(() => this.respondToEvent(event, text, runKey, controller));
|
|
268
|
+
return await queue.run(() => this.respondToEvent(event, text, runKey, controller, conversationId));
|
|
237
269
|
}
|
|
238
270
|
catch (error) {
|
|
239
271
|
if (isSerialQueueFullError(error)) {
|
|
@@ -257,7 +289,375 @@ export class SlackAdapter {
|
|
|
257
289
|
}
|
|
258
290
|
}
|
|
259
291
|
}
|
|
260
|
-
|
|
292
|
+
/**
|
|
293
|
+
* Deliver a proactive notification to a Slack destination by running it as a
|
|
294
|
+
* turn on that destination's OWN harness (shared session/history + the same
|
|
295
|
+
* per-conversation admission queue as inbound messages) and posting the answer
|
|
296
|
+
* through the normal stream. `threadTs` targets an existing thread (clean
|
|
297
|
+
* continuity — the user's in-thread replies share the session); omitting it
|
|
298
|
+
* posts top-level (fire-and-forget: a fresh top-level post has no pre-existing
|
|
299
|
+
* thread to share continuity with). Used by cron/webhook nudges. Best-effort:
|
|
300
|
+
* a failed or empty turn posts nothing.
|
|
301
|
+
*/
|
|
302
|
+
async notify(channelId, threadTs, text, options) {
|
|
303
|
+
const conversationId = threadTs === undefined ? `slack:${channelId}` : `slack:${channelId}:${threadTs}`;
|
|
304
|
+
// A threaded proactive run shares the inbound /cancel key so a user's
|
|
305
|
+
// /cancel in that thread can abort it; a top-level post (no thread) has no
|
|
306
|
+
// inbound /cancel target, so it keeps its own proactive key.
|
|
307
|
+
const runKey = threadTs === undefined ? `proactive:${conversationId}` : `${channelId}:${threadTs}`;
|
|
308
|
+
const controller = new AbortController();
|
|
309
|
+
this.registerController(runKey, controller);
|
|
310
|
+
let queue = this.admissionQueues.get(conversationId);
|
|
311
|
+
if (queue === undefined) {
|
|
312
|
+
queue = new SerialQueue();
|
|
313
|
+
this.admissionQueues.set(conversationId, queue);
|
|
314
|
+
}
|
|
315
|
+
try {
|
|
316
|
+
return await queue.run(() => options?.verbatim === true
|
|
317
|
+
? this.runVerbatimDelivery(conversationId, channelId, threadTs, text, runKey, controller)
|
|
318
|
+
: this.runProactiveTurn(conversationId, channelId, threadTs, text, runKey, controller));
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
if (isSerialQueueFullError(error)) {
|
|
322
|
+
this.unregisterController(runKey, controller);
|
|
323
|
+
this.logger?.warn?.("Slack proactive notify dropped: conversation is at its concurrency cap.", {
|
|
324
|
+
conversationId,
|
|
325
|
+
});
|
|
326
|
+
return { delivered: false, reason: "conversation at concurrency cap" };
|
|
327
|
+
}
|
|
328
|
+
throw error;
|
|
329
|
+
}
|
|
330
|
+
finally {
|
|
331
|
+
if (queue.idle && this.admissionQueues.get(conversationId) === queue) {
|
|
332
|
+
this.admissionQueues.delete(conversationId);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Route any interactivity payload to the right handler: a shortcut/message
|
|
338
|
+
* action by `callback_id`, or a Block Kit button click by `action_id`.
|
|
339
|
+
*/
|
|
340
|
+
async handleInteraction(payload) {
|
|
341
|
+
if (payload.type === "block_actions") {
|
|
342
|
+
return this.handleBlockActions(payload);
|
|
343
|
+
}
|
|
344
|
+
return this.handleShortcut(payload);
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Route a Slack shortcut payload. When its `callback_id` is bound to a prompt
|
|
348
|
+
* and the resolved destination channel is authorized, run that prompt as a
|
|
349
|
+
* proactive turn. The destination is the binding's `channelId`, else the
|
|
350
|
+
* payload's own channel (message shortcuts), else the first allowlisted channel.
|
|
351
|
+
*/
|
|
352
|
+
async handleShortcut(payload) {
|
|
353
|
+
const callbackId = typeof payload.callback_id === "string" ? payload.callback_id : undefined;
|
|
354
|
+
if (callbackId === undefined || callbackId.length === 0) {
|
|
355
|
+
return { kind: "ignored", reason: "no_action" };
|
|
356
|
+
}
|
|
357
|
+
const binding = this.shortcuts.get(callbackId);
|
|
358
|
+
if (binding === undefined) {
|
|
359
|
+
return { kind: "ignored", reason: "unbound", id: callbackId };
|
|
360
|
+
}
|
|
361
|
+
// A message shortcut can reply in the source thread; a global shortcut has no
|
|
362
|
+
// thread, so the run posts top-level in the destination channel.
|
|
363
|
+
const threadTs = firstNonEmpty(payload.message?.thread_ts, payload.message?.ts);
|
|
364
|
+
return this.runBoundInteraction(callbackId, binding, payload.channel?.id, threadTs);
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Route a Block Kit `block_actions` payload (a clicked button — typically on the
|
|
368
|
+
* App Home tab). Acts on the first action whose `action_id` is a bound Home
|
|
369
|
+
* button. A Home-tab click carries no channel, so the reply goes to the button's
|
|
370
|
+
* `channelId` (or the first allowlisted channel).
|
|
371
|
+
*/
|
|
372
|
+
async handleBlockActions(payload) {
|
|
373
|
+
const actions = Array.isArray(payload.actions) ? payload.actions : [];
|
|
374
|
+
if (actions.length === 0) {
|
|
375
|
+
return { kind: "ignored", reason: "no_action" };
|
|
376
|
+
}
|
|
377
|
+
const action = actions.find((candidate) => typeof candidate.action_id === "string" && this.homeButtons.has(candidate.action_id));
|
|
378
|
+
if (action === undefined || typeof action.action_id !== "string") {
|
|
379
|
+
return { kind: "ignored", reason: "unbound" };
|
|
380
|
+
}
|
|
381
|
+
const actionId = action.action_id;
|
|
382
|
+
const binding = this.homeButtons.get(actionId);
|
|
383
|
+
if (binding === undefined) {
|
|
384
|
+
return { kind: "ignored", reason: "unbound", id: actionId };
|
|
385
|
+
}
|
|
386
|
+
const threadTs = firstNonEmpty(payload.message?.thread_ts, payload.message?.ts);
|
|
387
|
+
return this.runBoundInteraction(actionId, binding, payload.channel?.id, threadTs);
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Shared interaction run path: resolve the destination channel, enforce the
|
|
391
|
+
* allowlist, post the optional instant ack, then run the bound prompt as a
|
|
392
|
+
* proactive turn. The returned result is for logging.
|
|
393
|
+
*/
|
|
394
|
+
async runBoundInteraction(id, binding, payloadChannelId, payloadThreadTs) {
|
|
395
|
+
const channelId = firstNonEmpty(binding.channelId, payloadChannelId, this.defaultShortcutChannelId);
|
|
396
|
+
if (channelId === undefined) {
|
|
397
|
+
this.logger?.warn?.("Slack interaction has no destination channel; set channelId on the binding.", { id });
|
|
398
|
+
return { kind: "ignored", reason: "missing_channel", id };
|
|
399
|
+
}
|
|
400
|
+
if (!this.isAuthorized(channelId)) {
|
|
401
|
+
this.logger?.warn?.("Slack interaction targets an unauthorized channel; ignored.", { id, channelId });
|
|
402
|
+
return { kind: "unauthorized", id, channelId };
|
|
403
|
+
}
|
|
404
|
+
// A Slack `thread_ts` is channel-scoped, so only thread the reply when the
|
|
405
|
+
// destination IS the channel the interaction came from. A binding that pins a
|
|
406
|
+
// different channelId (or a global shortcut / Home-tab click with no source
|
|
407
|
+
// channel) posts top-level — otherwise a foreign thread_ts 404s the post.
|
|
408
|
+
const threadTs = channelId === payloadChannelId ? payloadThreadTs : undefined;
|
|
409
|
+
// Instant feedback: the result lands seconds later (and a global shortcut or a
|
|
410
|
+
// Home-tab click shows no on-click UI), so post the ack now (best-effort)
|
|
411
|
+
// before the run. The result follows as its own message in the same channel.
|
|
412
|
+
if (binding.ackText !== undefined) {
|
|
413
|
+
try {
|
|
414
|
+
await this.api.chatPostMessage({
|
|
415
|
+
channel: channelId,
|
|
416
|
+
text: binding.ackText,
|
|
417
|
+
...(threadTs === undefined ? {} : { thread_ts: threadTs }),
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
catch (error) {
|
|
421
|
+
this.logger?.warn?.("Slack interaction ack message failed (continuing with the run).", {
|
|
422
|
+
id,
|
|
423
|
+
error: error instanceof Error ? error.message : String(error),
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
const delivery = await this.notify(channelId, threadTs, binding.prompt);
|
|
428
|
+
const result = {
|
|
429
|
+
kind: "triggered",
|
|
430
|
+
id,
|
|
431
|
+
channelId,
|
|
432
|
+
delivered: delivery.delivered,
|
|
433
|
+
};
|
|
434
|
+
if (delivery.reason !== undefined) {
|
|
435
|
+
result.reason = delivery.reason;
|
|
436
|
+
}
|
|
437
|
+
return result;
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Publish the App Home tab for a user when they open it. Best-effort: a publish
|
|
441
|
+
* failure is logged, not thrown, so opening Home never surfaces an error.
|
|
442
|
+
*/
|
|
443
|
+
async handleAppHomeOpened(callback) {
|
|
444
|
+
const userId = callback.event.user;
|
|
445
|
+
if (!this.homeTabEnabled || typeof userId !== "string" || userId.length === 0) {
|
|
446
|
+
return { kind: "ignored", reason: "unsupported_event", eventId: callback.event_id };
|
|
447
|
+
}
|
|
448
|
+
if (typeof this.api.viewsPublish !== "function") {
|
|
449
|
+
this.logger?.warn?.("Home tab is enabled but the Slack client cannot publish views.");
|
|
450
|
+
return { kind: "ignored", reason: "unsupported_event", eventId: callback.event_id };
|
|
451
|
+
}
|
|
452
|
+
const blocks = this.buildHomeTabBlocks();
|
|
453
|
+
if (blocks.length === 0) {
|
|
454
|
+
// views.publish requires 1–100 blocks; an enabled-but-empty Home tab would
|
|
455
|
+
// error on every open. Skip the publish instead (config load also rejects
|
|
456
|
+
// this combination, so it should not happen in practice).
|
|
457
|
+
this.logger?.warn?.("Skipping App Home publish: the Home view has no blocks.");
|
|
458
|
+
return { kind: "ignored", reason: "unsupported_event", eventId: callback.event_id };
|
|
459
|
+
}
|
|
460
|
+
try {
|
|
461
|
+
await this.api.viewsPublish({ userId, view: { type: "home", blocks } });
|
|
462
|
+
return { kind: "home_published", eventId: callback.event_id, userId };
|
|
463
|
+
}
|
|
464
|
+
catch (error) {
|
|
465
|
+
this.logger?.error?.("Failed to publish the Slack App Home tab.", {
|
|
466
|
+
userId,
|
|
467
|
+
error: error instanceof Error ? error.message : String(error),
|
|
468
|
+
});
|
|
469
|
+
return { kind: "error", eventId: callback.event_id, error };
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
/** Build the App Home tab Block Kit: an optional header plus one button per configured Home button. */
|
|
473
|
+
buildHomeTabBlocks() {
|
|
474
|
+
const blocks = [];
|
|
475
|
+
if (this.homeTabHeaderText !== undefined && this.homeTabHeaderText.trim().length > 0) {
|
|
476
|
+
blocks.push({ type: "section", text: { type: "mrkdwn", text: this.homeTabHeaderText } });
|
|
477
|
+
}
|
|
478
|
+
const elements = this.homeButtonOrder.map((button) => ({
|
|
479
|
+
type: "button",
|
|
480
|
+
text: { type: "plain_text", text: button.label, emoji: true },
|
|
481
|
+
action_id: button.actionId,
|
|
482
|
+
value: button.actionId,
|
|
483
|
+
}));
|
|
484
|
+
if (elements.length > 0) {
|
|
485
|
+
blocks.push({ type: "actions", block_id: "home_actions", elements });
|
|
486
|
+
}
|
|
487
|
+
return blocks;
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Build the stream options shared by both proactive delivery paths
|
|
491
|
+
* ({@link runProactiveTurn} and {@link runVerbatimDelivery}): a threaded post
|
|
492
|
+
* targets the existing thread; a top-level post records its ts → this
|
|
493
|
+
* conversation so a user's in-thread reply resolves back here.
|
|
494
|
+
*/
|
|
495
|
+
buildProactiveStreamOptions(conversationId, channelId, threadTs, controller) {
|
|
496
|
+
const streamOptions = {
|
|
497
|
+
api: this.api,
|
|
498
|
+
channelId,
|
|
499
|
+
// No reactToTs: a proactive turn has no inbound message to react to.
|
|
500
|
+
finalOnly: this.streamOptions.finalOnly ?? true,
|
|
501
|
+
abortSignal: controller.signal,
|
|
502
|
+
};
|
|
503
|
+
if (threadTs !== undefined) {
|
|
504
|
+
streamOptions.threadTs = threadTs;
|
|
505
|
+
}
|
|
506
|
+
else if (this.recordPostedMessage !== undefined) {
|
|
507
|
+
// A top-level proactive post is a fresh thread root with no prior history.
|
|
508
|
+
// Record its ts → this conversation so a user's in-thread reply resolves
|
|
509
|
+
// back here (the threaded case already shares the thread's conversationId).
|
|
510
|
+
const record = this.recordPostedMessage;
|
|
511
|
+
let recorded = false;
|
|
512
|
+
streamOptions.onPosted = ({ ts, channel }) => {
|
|
513
|
+
if (recorded || ts.length === 0) {
|
|
514
|
+
return;
|
|
515
|
+
}
|
|
516
|
+
recorded = true;
|
|
517
|
+
record(channel, ts, conversationId);
|
|
518
|
+
};
|
|
519
|
+
}
|
|
520
|
+
if (this.streamOptions.maxMessageChars !== undefined) {
|
|
521
|
+
streamOptions.maxMessageChars = this.streamOptions.maxMessageChars;
|
|
522
|
+
}
|
|
523
|
+
if (this.streamOptions.maxSendRetries !== undefined) {
|
|
524
|
+
streamOptions.maxSendRetries = this.streamOptions.maxSendRetries;
|
|
525
|
+
}
|
|
526
|
+
if (this.streamOptions.retryCapMs !== undefined) {
|
|
527
|
+
streamOptions.retryCapMs = this.streamOptions.retryCapMs;
|
|
528
|
+
}
|
|
529
|
+
if (this.streamOptions.retryBaseDelayMs !== undefined) {
|
|
530
|
+
streamOptions.retryBaseDelayMs = this.streamOptions.retryBaseDelayMs;
|
|
531
|
+
}
|
|
532
|
+
if (this.logger !== undefined) {
|
|
533
|
+
streamOptions.logger = this.logger;
|
|
534
|
+
}
|
|
535
|
+
return streamOptions;
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Deliver `text` VERBATIM to a Slack destination: post it unchanged through the
|
|
539
|
+
* normal stream with NO model call (the producing cron/webhook run already wrote
|
|
540
|
+
* the message), then record it to the destination's durable history via the
|
|
541
|
+
* responder so a later reply resumes with it in context. Best-effort: a
|
|
542
|
+
* history-record failure never fails an already-delivered post.
|
|
543
|
+
*/
|
|
544
|
+
async runVerbatimDelivery(conversationId, channelId, threadTs, text, runKey, controller) {
|
|
545
|
+
const stream = new SlackMessageStream(this.buildProactiveStreamOptions(conversationId, channelId, threadTs, controller));
|
|
546
|
+
try {
|
|
547
|
+
if (controller.signal.aborted) {
|
|
548
|
+
return { delivered: false, reason: "cancelled" };
|
|
549
|
+
}
|
|
550
|
+
if (text.trim().length === 0) {
|
|
551
|
+
return { delivered: false, reason: "empty notification" };
|
|
552
|
+
}
|
|
553
|
+
try {
|
|
554
|
+
await stream.finish(text);
|
|
555
|
+
}
|
|
556
|
+
catch (error) {
|
|
557
|
+
if (controller.signal.aborted || isAgentResponseCancelledError(error)) {
|
|
558
|
+
return { delivered: false, reason: "cancelled" };
|
|
559
|
+
}
|
|
560
|
+
this.logger?.error?.("Slack verbatim notify delivery failed.", {
|
|
561
|
+
error: error instanceof Error ? error.message : String(error),
|
|
562
|
+
});
|
|
563
|
+
return { delivered: false, reason: "delivery failed" };
|
|
564
|
+
}
|
|
565
|
+
try {
|
|
566
|
+
await this.responder.deliverVerbatim?.(conversationId, text);
|
|
567
|
+
}
|
|
568
|
+
catch (error) {
|
|
569
|
+
this.logger?.warn?.("Slack verbatim notify history record failed.", {
|
|
570
|
+
error: error instanceof Error ? error.message : String(error),
|
|
571
|
+
});
|
|
572
|
+
}
|
|
573
|
+
return { delivered: true };
|
|
574
|
+
}
|
|
575
|
+
finally {
|
|
576
|
+
this.unregisterController(runKey, controller);
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
async runProactiveTurn(conversationId, channelId, threadTs, text, runKey, controller) {
|
|
580
|
+
const stream = new SlackMessageStream(this.buildProactiveStreamOptions(conversationId, channelId, threadTs, controller));
|
|
581
|
+
try {
|
|
582
|
+
if (controller.signal.aborted) {
|
|
583
|
+
return { delivered: false, reason: "cancelled" };
|
|
584
|
+
}
|
|
585
|
+
const request = {
|
|
586
|
+
conversationId,
|
|
587
|
+
channelId,
|
|
588
|
+
messageTs: threadTs ?? "",
|
|
589
|
+
threadTs: threadTs ?? "",
|
|
590
|
+
eventId: "proactive",
|
|
591
|
+
text,
|
|
592
|
+
trigger: "direct",
|
|
593
|
+
abortSignal: controller.signal,
|
|
594
|
+
metadata: {
|
|
595
|
+
slack: {
|
|
596
|
+
eventId: "proactive",
|
|
597
|
+
channel: { id: channelId },
|
|
598
|
+
message: { ts: threadTs ?? "" },
|
|
599
|
+
trigger: "direct",
|
|
600
|
+
},
|
|
601
|
+
},
|
|
602
|
+
};
|
|
603
|
+
let response;
|
|
604
|
+
try {
|
|
605
|
+
response = await this.responder.respond(request, stream);
|
|
606
|
+
}
|
|
607
|
+
catch (error) {
|
|
608
|
+
if (controller.signal.aborted || isAgentResponseCancelledError(error)) {
|
|
609
|
+
return { delivered: false, reason: "cancelled" };
|
|
610
|
+
}
|
|
611
|
+
this.logger?.error?.("Slack proactive notify failed.", {
|
|
612
|
+
error: error instanceof Error ? error.message : String(error),
|
|
613
|
+
});
|
|
614
|
+
return { delivered: false, reason: "responder failed" };
|
|
615
|
+
}
|
|
616
|
+
const answer = response.text;
|
|
617
|
+
if (controller.signal.aborted) {
|
|
618
|
+
return { delivered: false, reason: "cancelled" };
|
|
619
|
+
}
|
|
620
|
+
if (answer === undefined || answer.trim().length === 0) {
|
|
621
|
+
return { delivered: false, reason: "agent produced no answer" };
|
|
622
|
+
}
|
|
623
|
+
try {
|
|
624
|
+
await stream.finish(answer);
|
|
625
|
+
}
|
|
626
|
+
catch (error) {
|
|
627
|
+
if (controller.signal.aborted || isAgentResponseCancelledError(error)) {
|
|
628
|
+
return { delivered: false, reason: "cancelled" };
|
|
629
|
+
}
|
|
630
|
+
this.logger?.error?.("Slack proactive delivery failed after a successful AI run.", {
|
|
631
|
+
error: error instanceof Error ? error.message : String(error),
|
|
632
|
+
});
|
|
633
|
+
return { delivered: false, reason: "delivery failed" };
|
|
634
|
+
}
|
|
635
|
+
return { delivered: true };
|
|
636
|
+
}
|
|
637
|
+
finally {
|
|
638
|
+
this.unregisterController(runKey, controller);
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
/**
|
|
642
|
+
* The conversation the run should continue. A genuine in-thread reply
|
|
643
|
+
* (`threadTs !== messageTs`) whose `(channel, threadTs)` matches a message we
|
|
644
|
+
* posted resolves to that producing conversation; everything else uses the
|
|
645
|
+
* default `slack:<channel>:<threadTs>`. Best-effort: a lookup error falls back.
|
|
646
|
+
*/
|
|
647
|
+
async resolveConversationId(event) {
|
|
648
|
+
const fallback = conversationIdFor(event);
|
|
649
|
+
if (this.resolvePostIndex === undefined || event.threadTs === event.messageTs) {
|
|
650
|
+
return fallback;
|
|
651
|
+
}
|
|
652
|
+
try {
|
|
653
|
+
const producing = await this.resolvePostIndex(event.channelId, event.threadTs);
|
|
654
|
+
return producing !== undefined && producing.length > 0 ? producing : fallback;
|
|
655
|
+
}
|
|
656
|
+
catch {
|
|
657
|
+
return fallback;
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
async respondToEvent(event, text, runKey, controller, conversationId) {
|
|
261
661
|
const streamOptions = {
|
|
262
662
|
api: this.api,
|
|
263
663
|
channelId: event.channelId,
|
|
@@ -312,7 +712,7 @@ export class SlackAdapter {
|
|
|
312
712
|
await stream.finish(this.messages.unsupportedText);
|
|
313
713
|
return { kind: "ignored", reason: "no_usable_attachments", eventId: event.eventId, channelId: event.channelId };
|
|
314
714
|
}
|
|
315
|
-
const request = buildAgentRequest(event, text, controller.signal, attachments);
|
|
715
|
+
const request = buildAgentRequest(event, text, controller.signal, attachments, conversationId);
|
|
316
716
|
const response = await this.responder.respond(request, stream);
|
|
317
717
|
if (controller.signal.aborted) {
|
|
318
718
|
await stream.finish(this.messages.cancelledText);
|
|
@@ -528,7 +928,7 @@ function ignored(reason, callback, event) {
|
|
|
528
928
|
}
|
|
529
929
|
return result;
|
|
530
930
|
}
|
|
531
|
-
function buildAgentRequest(event, text, abortSignal, attachments) {
|
|
931
|
+
function buildAgentRequest(event, text, abortSignal, attachments, conversationId) {
|
|
532
932
|
const metadata = {
|
|
533
933
|
eventId: event.eventId,
|
|
534
934
|
channel: {
|
|
@@ -561,7 +961,7 @@ function buildAgentRequest(event, text, abortSignal, attachments) {
|
|
|
561
961
|
metadata.user = { id: event.userId };
|
|
562
962
|
}
|
|
563
963
|
const request = {
|
|
564
|
-
conversationId
|
|
964
|
+
conversationId,
|
|
565
965
|
channelId: event.channelId,
|
|
566
966
|
messageTs: event.messageTs,
|
|
567
967
|
threadTs: event.threadTs,
|
|
@@ -637,4 +1037,13 @@ function conversationIdFor(event) {
|
|
|
637
1037
|
function normalizeIdForMatch(value) {
|
|
638
1038
|
return value.trim().toLowerCase();
|
|
639
1039
|
}
|
|
1040
|
+
/** First argument that is a non-blank string, else undefined. */
|
|
1041
|
+
function firstNonEmpty(...values) {
|
|
1042
|
+
for (const value of values) {
|
|
1043
|
+
if (typeof value === "string" && value.trim().length > 0) {
|
|
1044
|
+
return value;
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
return undefined;
|
|
1048
|
+
}
|
|
640
1049
|
//# sourceMappingURL=adapter.js.map
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,GAK9B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,kBAAkB,GAInB,MAAM,qBAAqB,CAAC;AAkL7B,MAAM,4BAA4B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACtD,MAAM,0BAA0B,GAAsB;IACpD,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,YAAY;IACZ,eAAe;IACf,UAAU;IACV,kBAAkB;CACnB,CAAC;AAEF,MAAM,gBAAgB,GAAmC;IACvD,WAAW,EACT,4EAA4E;IAC9E,QAAQ,EACN,wGAAwG;IAC1G,QAAQ,EAAE,kEAAkE;IAC5E,gBAAgB,EAAE,uDAAuD;IACzE,aAAa,EAAE,YAAY;IAC3B,SAAS,EAAE,uDAAuD;IAClE,eAAe,EAAE,gEAAgE;CAClF,CAAC;AAEF,iFAAiF;AACjF,gFAAgF;AAChF,6EAA6E;AAC7E,2EAA2E;AAC3E,iEAAiE;AACjE,MAAM,6BAA6B,GAAwB,IAAI,GAAG,CAAC;IACjE,YAAY;IACZ,kBAAkB;CACnB,CAAC,CAAC;AAEH,iFAAiF;AACjF,6EAA6E;AAC7E,8DAA8D;AAC9D,MAAM,iCAAiC,GAAG,GAAG,CAAC;AAE9C;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,IAAI,GAAG,mBAA4B,CAAC;IAE7C,YAAY,QAAgB;QAC1B,KAAK,CAAC,iDAAiD,QAAQ,YAAY,CAAC,CAAC;QAC7E,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,WAAW;IACd,IAAI,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,KAAK,GAAG,CAAC,CAAC;IACD,QAAQ,CAAS;IAElC,YAAY,WAAmB,iCAAiC;QAC9D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,GAAG,CAAI,IAAsB;QAC3B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,IAAI,CACd,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAC1B,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAC3B,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,8CAA8C;IAC9C,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,OAAO,KAAK,YAAY,oBAAoB,CAAC;AAC/C,CAAC;AAED,MAAM,OAAO,YAAY;IACN,GAAG,CAAc;IACjB,SAAS,CAAiB;IAC1B,gBAAgB,CAAU;IAC1B,iBAAiB,CAAc;IAC/B,UAAU,CAAc;IACxB,aAAa,CAAoB;IACjC,kBAAkB,CAAoB;IACtC,gBAAgB,CAAU;IAC1B,aAAa,CAA4B;IACzC,QAAQ,CAAiC;IACzC,kBAAkB,CAAS;IAC3B,gBAAgB,CAAsB;IACtC,MAAM,CAAiC;IACxD;;;;;OAKG;IACc,iBAAiB,GAAG,IAAI,GAAG,EAAgC,CAAC;IAC7E;;;;;;;OAOG;IACc,eAAe,GAAG,IAAI,GAAG,EAAuB,CAAC;IAElE,YAAY,OAA4B;QACtC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,KAAK,IAAI,CAAC;QAC1D,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAC9B,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CACpF,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,CACvB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CACvE,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,gBAAgB;YACnB,OAAO,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC7D,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,WAAW,EAAE,QAAQ,IAAI,4BAA4B,CAAC;QACxF,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAC7B,CAAC,OAAO,CAAC,WAAW,EAAE,gBAAgB,IAAI,0BAA0B,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjF,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAC1B,CACF,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,SAAS,CACjB,oEAAoE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,QAA4B;QAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;gBAC7B,OAAO,EAAE,KAAK,CAAC,SAAS;gBACxB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB;gBACpC,SAAS,EAAE,KAAK,CAAC,QAAQ;aAC1B,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;gBAC7B,OAAO,EAAE,KAAK,CAAC,SAAS;gBACxB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe;gBACnC,SAAS,EAAE,KAAK,CAAC,QAAQ;aAC1B,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;gBAC7B,OAAO,EAAE,KAAK,CAAC,SAAS;gBACxB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAC/B,SAAS,EAAE,KAAK,CAAC,QAAQ;aAC1B,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;gBAC7B,OAAO,EAAE,KAAK,CAAC,SAAS;gBACxB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;gBAC5B,SAAS,EAAE,KAAK,CAAC,QAAQ;aAC1B,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,OAAO,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,yEAAyE;YACzE,+DAA+D;YAC/D,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACzF,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;oBACrC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YACD,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;gBAC7B,OAAO,EAAE,KAAK,CAAC,SAAS;gBACxB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;gBACjC,SAAS,EAAE,KAAK,CAAC,QAAQ;aAC1B,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC;QACJ,CAAC;QAED,sEAAsE;QACtE,0EAA0E;QAC1E,+EAA+E;QAC/E,6EAA6E;QAC7E,2CAA2C;QAC3C,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChD,8EAA8E;QAC9E,8EAA8E;QAC9E,8EAA8E;QAC9E,sEAAsE;QACtE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC5C,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,gEAAgE;gBAChE,qEAAqE;gBACrE,yEAAyE;gBACzE,2EAA2E;gBAC3E,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC9C,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;oBAC7B,OAAO,EAAE,KAAK,CAAC,SAAS;oBACxB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;oBAC5B,SAAS,EAAE,KAAK,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YAC9E,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE,CAAC;gBACrE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,KAAqB,EACrB,IAAY,EACZ,MAAc,EACd,UAA2B;QAE3B,MAAM,aAAa,GAA8B;YAC/C,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,4EAA4E;YAC5E,mEAAmE;YACnE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI;YAC/C,WAAW,EAAE,UAAU,CAAC,MAAM;SAC/B,CAAC;QACF,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACvD,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;QACzE,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACpD,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;QACnE,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACrD,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;QACrE,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACpD,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;QACnE,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAChD,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QAC3D,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACtD,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;QACvE,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC/C,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QACzD,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACrC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAErD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,IAAI,aAAa,CAAC,CAAC;YAC3E,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACjD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACnF,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YACnF,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACjD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACnF,CAAC;YAED,sEAAsE;YACtE,qEAAqE;YACrE,2EAA2E;YAC3E,gBAAgB;YAChB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBACnD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YAClH,CAAC;YAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC/E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE/D,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACjD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACnF,CAAC;YAED,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,MAAM,GAA6B;gBACvC,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;YACF,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACtC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,6BAA6B,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtE,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACnF,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,iCAAiC,EAAE;gBACtD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACjE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QACtF,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,mBAAmB,CAC/B,KAA2B,EAC3B,MAAmB;QAEnB,MAAM,WAAW,GAAsB,EAAE,CAAC;QAC1C,8EAA8E;QAC9E,8EAA8E;QAC9E,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YAChD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,yDAAyD,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3G,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM;YACR,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAChF,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,8CAA8C,EAAE;oBACnE,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,QAAQ;iBACT,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACzE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,4CAA4C,EAAE;oBACjE,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC;YAC1D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,2CAA2C,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnF,SAAS;YACX,CAAC;YAED,IAAI,KAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACrF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,4CAA4C,EAAE;oBAChE,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC/C,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,4CAA4C,EAAE;oBACjE,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,KAAK,CAAC,UAAU;iBACvB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,kBAAkB,CAAC,MAAc,EAAE,UAA2B;QACpE,IAAI,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;YACzC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAEO,oBAAoB,CAAC,MAAc,EAAE,UAA2B;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,sBAAsB,CAC5B,QAA4B;QAE5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;QAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC3F,OAAO,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3F,OAAO,OAAO,CAAC,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;QACD,IACE,SAAS,KAAK,SAAS;YACvB,QAAQ,CAAC,YAAY,KAAK,IAAI,EAC9B,CAAC;YACD,OAAO,OAAO,CAAC,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;QACD,6EAA6E;QAC7E,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5E,IACE,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;YACpC,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ;YAC/B,CAAC,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAChD,CAAC;YACD,OAAO,OAAO,CAAC,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAC7F,CAAC,CAAC,QAAQ,CAAC,SAAS;YACpB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChB,MAAM,KAAK,GAAmB;YAC5B,OAAO,EAAE,QAAQ,CAAC,QAAQ;YAC1B,SAAS,EAAE,QAAQ,CAAC,OAAO;YAC3B,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,SAAS,EAAE,QAAQ,CAAC,EAAE;YACtB,QAAQ;YACR,OAAO;YACP,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;SAC3D,CAAC;QACF,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;QAClC,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACtC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;QACvC,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACtC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC;QACxC,CAAC;QACD,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACxC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC5C,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACpC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3C,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAEO,YAAY,CAAC,SAAyB;QAC5C,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7F,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,KAAqB;IAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACjC,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QAC5D,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,OAAO,CACd,MAA+B,EAC/B,QAA4B,EAC5B,KAAqB;IAErB,MAAM,MAAM,GAA2D;QACrE,IAAI,EAAE,SAAS;QACf,MAAM;QACN,OAAO,EAAE,QAAQ,CAAC,QAAQ;KAC3B,CAAC;IACF,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAqB,EACrB,IAAY,EACZ,WAAwB,EACxB,WAAuC;IAEvC,MAAM,QAAQ,GAAyB;QACrC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE;YACP,EAAE,EAAE,KAAK,CAAC,SAAS;SACpB;QACD,OAAO,EAAE;YACP,EAAE,EAAE,KAAK,CAAC,SAAS;SACpB;QACD,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACrC,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACvC,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACpC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;IAC5C,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC7C,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC3C,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,OAAO,GAAiB;QAC5B,cAAc,EAAE,iBAAiB,CAAC,KAAK,CAAC;QACxC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI;QACJ,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW;QACX,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;KAC9B,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAChC,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAChC,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;IACpC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,iBAAiB,GAAG,iCAAiC,CAAC;AAE5D,yEAAyE;AACzE,SAAS,eAAe,CACtB,IAAe,EACf,QAAgB,EAChB,KAAiB;IAEjB,MAAM,UAAU,GAOZ;QACF,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;QACxE,QAAQ;QACR,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;QACrB,SAAS,EAAE,KAAK,CAAC,UAAU;KAC5B,CAAC;IAEF,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC,IAAI;QACX,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACvD,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,UAAU,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACxD,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,MAA0B,EAC1B,IAAY,EACZ,MAAsC;IAEtC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,CAAC,+CAA+C,EAAE;YAC/D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAqB;IACtC,OAAO,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,KAAqB;IAC9C,OAAO,SAAS,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|