openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
104 lines • 3.31 kB
TypeScript
import { i as OpenClawConfig } from "./types.openclaw-DBHlrrVj.js";
import { _ as GroupPolicy, h as DmPolicy, r as BlockStreamingCoalesceConfig, x as MarkdownConfig } from "./types.base-D238NWJT.js";
import { a as GroupToolPolicyBySenderConfig, o as GroupToolPolicyConfig } from "./types.tools-DZk2axJU.js";
import { A as DmConfig } from "./types.slack-BZcmYWK8.js";
import { t as BaseProbeResult } from "./types.core-CyK4WLl_.js";
import { t as ChannelPlugin } from "./types.plugin-BIHyhl5u.js";
//#region extensions/irc/src/types.d.ts
type IrcChannelConfig = {
requireMention?: boolean;
tools?: GroupToolPolicyConfig;
toolsBySender?: GroupToolPolicyBySenderConfig;
skills?: string[];
enabled?: boolean;
allowFrom?: Array<string | number>;
systemPrompt?: string;
};
type IrcNickServConfig = {
enabled?: boolean;
service?: string;
password?: string;
passwordFile?: string;
register?: boolean;
registerEmail?: string;
};
type IrcAccountConfig = {
name?: string;
enabled?: boolean;
/**
* Break-glass override: allow nick-only allowlist matching.
* Default behavior requires host/user-qualified identities.
*/
dangerouslyAllowNameMatching?: boolean;
host?: string;
port?: number;
tls?: boolean;
nick?: string;
username?: string;
realname?: string;
password?: string;
passwordFile?: string;
nickserv?: IrcNickServConfig;
dmPolicy?: DmPolicy;
allowFrom?: Array<string | number>;
defaultTo?: string;
groupPolicy?: GroupPolicy;
groupAllowFrom?: Array<string | number>;
groups?: Record<string, IrcChannelConfig>;
channels?: string[];
mentionPatterns?: string[];
markdown?: MarkdownConfig;
historyLimit?: number;
dmHistoryLimit?: number;
dms?: Record<string, DmConfig>;
textChunkLimit?: number;
chunkMode?: "length" | "newline";
blockStreaming?: boolean;
blockStreamingCoalesce?: BlockStreamingCoalesceConfig;
responsePrefix?: string;
mediaMaxMb?: number;
};
type IrcConfig = IrcAccountConfig & {
accounts?: Record<string, IrcAccountConfig>;
defaultAccount?: string;
};
type CoreConfig = OpenClawConfig & {
channels?: OpenClawConfig["channels"] & {
irc?: IrcConfig;
};
};
type IrcProbe = BaseProbeResult<string> & {
host: string;
port: number;
tls: boolean;
nick: string;
latencyMs?: number;
};
//#endregion
//#region extensions/irc/src/accounts.d.ts
type ResolvedIrcAccount = {
accountId: string;
enabled: boolean;
name?: string;
configured: boolean;
host: string;
port: number;
tls: boolean;
nick: string;
username: string;
realname: string;
password: string;
passwordSource: "env" | "passwordFile" | "config" | "none";
config: IrcAccountConfig;
};
declare const listIrcAccountIds: (cfg: OpenClawConfig) => string[], resolveDefaultIrcAccountId: (cfg: OpenClawConfig) => string;
declare function resolveIrcAccount(params: {
cfg: CoreConfig;
accountId?: string | null;
}): ResolvedIrcAccount;
declare function listEnabledIrcAccounts(cfg: CoreConfig): ResolvedIrcAccount[];
//#endregion
//#region extensions/irc/src/channel.d.ts
declare const ircPlugin: ChannelPlugin<ResolvedIrcAccount, IrcProbe>;
//#endregion
export { resolveDefaultIrcAccountId as a, listIrcAccountIds as i, ResolvedIrcAccount as n, resolveIrcAccount as o, listEnabledIrcAccounts as r, ircPlugin as t };