62 lines
2.2 KiB
TypeScript
62 lines
2.2 KiB
TypeScript
import type { CommonChannelMessagingConfig } from "./types.channel-messaging-common.js";
|
|
import type { GroupToolPolicyBySenderConfig, GroupToolPolicyConfig } from "./types.tools.js";
|
|
|
|
export type IrcAccountConfig = CommonChannelMessagingConfig & {
|
|
/** IRC server hostname (example: irc.libera.chat). */
|
|
host?: string;
|
|
/** IRC server port (default: 6697 with TLS, otherwise 6667). */
|
|
port?: number;
|
|
/** Use TLS for IRC connection (default: true). */
|
|
tls?: boolean;
|
|
/** IRC nickname to identify this bot. */
|
|
nick?: string;
|
|
/** IRC USER field username (defaults to nick). */
|
|
username?: string;
|
|
/** IRC USER field realname (default: OpenClaw). */
|
|
realname?: string;
|
|
/** Optional IRC server password (sensitive). */
|
|
password?: string;
|
|
/** Optional file path containing IRC server password. */
|
|
passwordFile?: string;
|
|
/** Optional NickServ identify/register settings. */
|
|
nickserv?: {
|
|
/** Enable NickServ identify/register after connect (default: enabled when password is set). */
|
|
enabled?: boolean;
|
|
/** NickServ service nick (default: NickServ). */
|
|
service?: string;
|
|
/** NickServ password (sensitive). */
|
|
password?: string;
|
|
/** Optional file path containing NickServ password. */
|
|
passwordFile?: string;
|
|
/** If true, send NickServ REGISTER on connect. */
|
|
register?: boolean;
|
|
/** Email used with NickServ REGISTER. */
|
|
registerEmail?: string;
|
|
};
|
|
/** Auto-join channel list at connect (example: ["#openclaw"]). */
|
|
channels?: string[];
|
|
/** Outbound text chunk size (chars). Default: 350. */
|
|
textChunkLimit?: number;
|
|
groups?: Record<
|
|
string,
|
|
{
|
|
requireMention?: boolean;
|
|
tools?: GroupToolPolicyConfig;
|
|
toolsBySender?: GroupToolPolicyBySenderConfig;
|
|
allowFrom?: Array<string | number>;
|
|
skills?: string[];
|
|
enabled?: boolean;
|
|
systemPrompt?: string;
|
|
}
|
|
>;
|
|
/** Optional mention patterns specific to IRC channel messages. */
|
|
mentionPatterns?: string[];
|
|
};
|
|
|
|
export type IrcConfig = {
|
|
/** Optional per-account IRC configuration (multi-account). */
|
|
accounts?: Record<string, IrcAccountConfig>;
|
|
/** Optional default account id when multiple accounts are configured. */
|
|
defaultAccount?: string;
|
|
} & IrcAccountConfig;
|