65 lines
2.6 KiB
TypeScript
65 lines
2.6 KiB
TypeScript
import type { BlockStreamingCoalesceConfig, DmPolicy, GroupPolicy } from "./types.base.js";
|
|
import type { DmConfig } from "./types.messages.js";
|
|
|
|
export type SignalReactionNotificationMode = "off" | "own" | "all" | "allowlist";
|
|
|
|
export type SignalAccountConfig = {
|
|
/** Optional display name for this account (used in CLI/UI lists). */
|
|
name?: string;
|
|
/** Optional provider capability tags used for agent/runtime guidance. */
|
|
capabilities?: string[];
|
|
/** Allow channel-initiated config writes (default: true). */
|
|
configWrites?: boolean;
|
|
/** If false, do not start this Signal account. Default: true. */
|
|
enabled?: boolean;
|
|
/** Optional explicit E.164 account for signal-cli. */
|
|
account?: string;
|
|
/** Optional full base URL for signal-cli HTTP daemon. */
|
|
httpUrl?: string;
|
|
/** HTTP host for signal-cli daemon (default 127.0.0.1). */
|
|
httpHost?: string;
|
|
/** HTTP port for signal-cli daemon (default 8080). */
|
|
httpPort?: number;
|
|
/** signal-cli binary path (default: signal-cli). */
|
|
cliPath?: string;
|
|
/** Auto-start signal-cli daemon (default: true if httpUrl not set). */
|
|
autoStart?: boolean;
|
|
receiveMode?: "on-start" | "manual";
|
|
ignoreAttachments?: boolean;
|
|
ignoreStories?: boolean;
|
|
sendReadReceipts?: boolean;
|
|
/** Direct message access policy (default: pairing). */
|
|
dmPolicy?: DmPolicy;
|
|
allowFrom?: Array<string | number>;
|
|
/** Optional allowlist for Signal group senders (E.164). */
|
|
groupAllowFrom?: Array<string | number>;
|
|
/**
|
|
* Controls how group messages are handled:
|
|
* - "open": groups bypass allowFrom, no extra gating
|
|
* - "disabled": block all group messages
|
|
* - "allowlist": only allow group messages from senders in groupAllowFrom/allowFrom
|
|
*/
|
|
groupPolicy?: GroupPolicy;
|
|
/** Max group messages to keep as history context (0 disables). */
|
|
historyLimit?: number;
|
|
/** Max DM turns to keep as history context. */
|
|
dmHistoryLimit?: number;
|
|
/** Per-DM config overrides keyed by user ID. */
|
|
dms?: Record<string, DmConfig>;
|
|
/** Outbound text chunk size (chars). Default: 4000. */
|
|
textChunkLimit?: number;
|
|
blockStreaming?: boolean;
|
|
/** Merge streamed block replies before sending. */
|
|
blockStreamingCoalesce?: BlockStreamingCoalesceConfig;
|
|
mediaMaxMb?: number;
|
|
/** Reaction notification mode (off|own|all|allowlist). Default: own. */
|
|
reactionNotifications?: SignalReactionNotificationMode;
|
|
/** Allowlist for reaction notifications when mode is allowlist. */
|
|
reactionAllowlist?: Array<string | number>;
|
|
};
|
|
|
|
export type SignalConfig = {
|
|
/** Optional per-account Signal configuration (multi-account). */
|
|
accounts?: Record<string, SignalAccountConfig>;
|
|
} & SignalAccountConfig;
|