Skip to main content

Class: SlackChannelAdapter

Defined in: packages/agentos/src/io/channels/adapters/SlackChannelAdapter.ts:73

Channel adapter for Slack using the @slack/bolt SDK.

Uses dynamic import so @slack/bolt is only required at runtime when the adapter is actually initialized.

When appToken is provided, the adapter uses Socket Mode (no public endpoint required). Otherwise, it starts an HTTP server for receiving Slack events.

Capabilities: text, rich_text, images, documents, reactions, threads, mentions, buttons, group_chat, channels, editing, deletion.

Extends​

Constructors​

Constructor​

new SlackChannelAdapter(retryConfig?): SlackChannelAdapter

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:111

Parameters​

retryConfig?​

Partial<RetryConfig>

Returns​

SlackChannelAdapter

Inherited from​

BaseChannelAdapter.constructor

Properties​

auth​

protected auth: ChannelAuthConfig & object | undefined

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:97

Stored auth config so reconnect() can re-use it.

Inherited from​

BaseChannelAdapter.auth


capabilities​

readonly capabilities: readonly ChannelCapability[]

Defined in: packages/agentos/src/io/channels/adapters/SlackChannelAdapter.ts:76

Declared capabilities of this adapter.

Overrides​

BaseChannelAdapter.capabilities


connectedSince​

protected connectedSince: string | undefined

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:92

Inherited from​

BaseChannelAdapter.connectedSince


displayName​

readonly displayName: "Slack" = 'Slack'

Defined in: packages/agentos/src/io/channels/adapters/SlackChannelAdapter.ts:75

Human-readable display name (e.g., "WhatsApp Business").

Overrides​

BaseChannelAdapter.displayName


errorMessage​

protected errorMessage: string | undefined

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:93

Inherited from​

BaseChannelAdapter.errorMessage


platform​

readonly platform: ChannelPlatform = 'slack'

Defined in: packages/agentos/src/io/channels/adapters/SlackChannelAdapter.ts:74

Platform this adapter serves.

Overrides​

BaseChannelAdapter.platform


platformInfo​

protected platformInfo: Record<string, unknown> = {}

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:94

Inherited from​

BaseChannelAdapter.platformInfo


retryConfig​

protected readonly retryConfig: RetryConfig

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:101

Inherited from​

BaseChannelAdapter.retryConfig


status​

protected status: ChannelConnectionStatus = 'disconnected'

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:91

Inherited from​

BaseChannelAdapter.status

Methods​

addReaction()​

addReaction(conversationId, messageId, emoji): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/SlackChannelAdapter.ts:244

Parameters​

conversationId​

string

messageId​

string

emoji​

string

Returns​

Promise<void>


deleteMessage()​

deleteMessage(conversationId, messageId): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/SlackChannelAdapter.ts:232

Parameters​

conversationId​

string

messageId​

string

Returns​

Promise<void>


doConnect()​

protected doConnect(auth): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/SlackChannelAdapter.ts:103

Establish the platform connection using the supplied credentials. Called by initialize after state has been set to connecting. Must throw on failure — the base class handles retry and state changes.

Parameters​

auth​

ChannelAuthConfig & object

Returns​

Promise<void>

Overrides​

BaseChannelAdapter.doConnect


doSendMessage()​

protected doSendMessage(conversationId, content): Promise<ChannelSendResult>

Defined in: packages/agentos/src/io/channels/adapters/SlackChannelAdapter.ts:177

Deliver a message to the external platform. Called by sendMessage only when the adapter is connected.

Parameters​

conversationId​

string

content​

MessageContent

Returns​

Promise<ChannelSendResult>

Overrides​

BaseChannelAdapter.doSendMessage


doShutdown()​

protected doShutdown(): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/SlackChannelAdapter.ts:198

Release platform resources (close WebSocket, stop polling, etc.). Called by shutdown before the state transitions to disconnected.

Returns​

Promise<void>

Overrides​

BaseChannelAdapter.doShutdown


editMessage()​

editMessage(conversationId, messageId, content): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/SlackChannelAdapter.ts:213

Parameters​

conversationId​

string

messageId​

string

content​

MessageContent

Returns​

Promise<void>


emit()​

protected emit(event): void

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:265

Emit an event to all matching subscribers. Subclasses call this when the platform SDK receives an inbound event.

Parameters​

event​

ChannelEvent

Returns​

void

Inherited from​

BaseChannelAdapter.emit


emitConnectionChange()​

protected emitConnectionChange(): void

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:296

Convenience helper: emit a connection_change event with the current status. Called automatically by setStatus.

Returns​

void

Inherited from​

BaseChannelAdapter.emitConnectionChange


getConnectionInfo()​

getConnectionInfo(): ChannelConnectionInfo

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:205

Get the current connection status and metadata.

Returns​

ChannelConnectionInfo

Inherited from​

BaseChannelAdapter.getConnectionInfo


getConversationInfo()​

getConversationInfo(conversationId): Promise<{ isGroup: boolean; memberCount?: number; metadata?: Record<string, unknown>; name?: string; }>

Defined in: packages/agentos/src/io/channels/adapters/SlackChannelAdapter.ts:268

Parameters​

conversationId​

string

Returns​

Promise<{ isGroup: boolean; memberCount?: number; metadata?: Record<string, unknown>; name?: string; }>


hasCapability()​

protected hasCapability(cap): boolean

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:312

Check whether this adapter declares a specific capability.

Parameters​

cap​

ChannelCapability

Returns​

boolean

Inherited from​

BaseChannelAdapter.hasCapability


initialize()​

initialize(auth): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:151

Initialize the adapter with auth credentials. If already connected this will shut down the existing connection first (idempotent).

Parameters​

auth​

ChannelAuthConfig

Returns​

Promise<void>

Inherited from​

BaseChannelAdapter.initialize


on()​

on(handler, eventTypes?): () => void

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:248

Register an event handler. Returns an unsubscribe function.

Parameters​

handler​

ChannelEventHandler

eventTypes?​

ChannelEventType[]

Returns​

(): void

Returns​

void

Inherited from​

BaseChannelAdapter.on


reconnect()​

reconnect(): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:186

Manually trigger a reconnection attempt using stored credentials. Useful for UI-driven "reconnect" buttons.

Returns​

Promise<void>

Inherited from​

BaseChannelAdapter.reconnect


sendMessage()​

sendMessage(conversationId, content): Promise<ChannelSendResult>

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:218

Send a message to a conversation on the external platform.

Parameters​

conversationId​

string

Platform-native conversation/chat ID.

content​

MessageContent

Message content to send.

Returns​

Promise<ChannelSendResult>

The platform-assigned message ID.

Inherited from​

BaseChannelAdapter.sendMessage


sendTypingIndicator()​

sendTypingIndicator(_conversationId, _isTyping): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/SlackChannelAdapter.ts:260

Default stub — platforms that support typing indicators should override.

Parameters​

_conversationId​

string

_isTyping​

boolean

Returns​

Promise<void>

Overrides​

BaseChannelAdapter.sendTypingIndicator


setStatus()​

protected setStatus(newStatus, error?): void

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:319

Transition to a new connection status and emit an event.

Parameters​

newStatus​

ChannelConnectionStatus

error?​

string

Returns​

void

Inherited from​

BaseChannelAdapter.setStatus


shutdown()​

shutdown(): Promise<void>

Defined in: packages/agentos/src/io/channels/adapters/BaseChannelAdapter.ts:166

Gracefully shut down the adapter and release all resources.

Returns​

Promise<void>

Inherited from​

BaseChannelAdapter.shutdown