@mono-agent/slack-adapter 0.4.0 → 0.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/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?.(conversationIdFor(event), new Error("Cancelled by Slack user."));
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
- const conversationId = conversationIdFor(event);
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
- async respondToEvent(event, text, runKey, controller) {
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: conversationIdFor(event),
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
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}