Table of Contents

Class SignalChannel

Namespace
JD.AI.Channels.Signal
Assembly
JD.AI.Channels.Signal.dll

Signal channel adapter that bridges to signal-cli via JSON-RPC over stdin/stdout. Requires signal-cli to be installed and registered with a phone number. Supports prefix-based commands via ICommandAwareChannel.

public sealed class SignalChannel : IChannel, IAsyncDisposable, ICommandAwareChannel
Inheritance
SignalChannel
Implements
Inherited Members

Constructors

SignalChannel(string, string?)

public SignalChannel(string account, string? signalCliPath = null)

Parameters

account string
signalCliPath string

Fields

CommandPrefix

Prefix for Signal commands (e.g., "!jdai-help").

public const string CommandPrefix = "!jdai-"

Field Value

string

SlashPrefix

Alternate slash prefix (e.g., "/jdai-help").

public const string SlashPrefix = "/jdai-"

Field Value

string

Properties

ChannelType

Unique channel type identifier (e.g., "discord", "signal", "web").

public string ChannelType { get; }

Property Value

string

DisplayName

Display name for this channel instance.

public string DisplayName { get; }

Property Value

string

IsConnected

Whether the channel is currently connected and healthy.

public bool IsConnected { get; }

Property Value

bool

Methods

ConnectAsync(CancellationToken)

Connects to the messaging platform.

public Task ConnectAsync(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task

DisconnectAsync(CancellationToken)

Gracefully disconnects.

public Task DisconnectAsync(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task

DisposeAsync()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.

public ValueTask DisposeAsync()

Returns

ValueTask

A task that represents the asynchronous dispose operation.

RegisterCommandsAsync(ICommandRegistry, CancellationToken)

Registers commands from the registry as platform-native commands. Called after ConnectAsync when commands are available.

public Task RegisterCommandsAsync(ICommandRegistry registry, CancellationToken ct = default)

Parameters

registry ICommandRegistry
ct CancellationToken

Returns

Task

SendMessageAsync(string, string, CancellationToken)

Sends a message to the specified conversation/thread.

public Task SendMessageAsync(string conversationId, string content, CancellationToken ct = default)

Parameters

conversationId string
content string
ct CancellationToken

Returns

Task

Events

MessageReceived

Raised when a new inbound message arrives.

public event Func<ChannelMessage, Task>? MessageReceived

Event Type

Func<ChannelMessage, Task>

Remarks

Uses Func<ChannelMessage, Task> instead of EventHandler to support async handlers.