openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
96 lines • 5.49 kB
TypeScript
import { d as SecretInput } from "./types.secrets-rAcqRhcN.js";
import { _ as GroupPolicy, a as ChannelPreviewStreamingConfig, h as DmPolicy, r as BlockStreamingCoalesceConfig, z as StreamingMode } from "./types.base-D238NWJT.js";
//#region extensions/mattermost/src/types.d.ts
type MattermostReplyToMode = "off" | "first" | "all" | "batched";
type MattermostChatMode = "oncall" | "onmessage" | "onchar";
type MattermostNetworkConfig = {
/** Dangerous opt-in for self-hosted Mattermost on trusted private/internal hosts. */dangerouslyAllowPrivateNetwork?: boolean;
};
type MattermostAccountConfig = {
/** Optional display name for this account (used in CLI/UI lists). */name?: string; /** Optional provider capability tags used for agent/runtime guidance. */
capabilities?: string[];
/**
* Break-glass override: allow mutable identity matching (@username/display name) in allowlists.
* Default behavior is ID-only matching.
*/
dangerouslyAllowNameMatching?: boolean; /** Allow channel-initiated config writes (default: true). */
configWrites?: boolean; /** If false, do not start this Mattermost account. Default: true. */
enabled?: boolean; /** Bot token for Mattermost. */
botToken?: SecretInput; /** Base URL for the Mattermost server (e.g., https://chat.example.com). */
baseUrl?: string;
/**
* Controls when channel messages trigger replies.
* - "oncall": only respond when mentioned
* - "onmessage": respond to every channel message
* - "onchar": respond when a trigger character prefixes the message
*/
chatmode?: MattermostChatMode; /** Prefix characters that trigger onchar mode (default: [">", "!"]). */
oncharPrefixes?: string[]; /** Require @mention to respond in channels. Default: true. */
requireMention?: boolean; /** Direct message policy (pairing/allowlist/open/disabled). */
dmPolicy?: DmPolicy; /** Allowlist for direct messages (user ids or @usernames). */
allowFrom?: Array<string | number>; /** Allowlist for group messages (user ids or @usernames). */
groupAllowFrom?: Array<string | number>; /** Group message policy (allowlist/open/disabled). */
groupPolicy?: GroupPolicy; /** Outbound text chunk size (chars). Default: 4000. */
textChunkLimit?: number; /** Chunking mode: "length" (default) splits by size; "newline" splits on every newline. */
chunkMode?: "length" | "newline"; /** Preview streaming mode/config. */
streaming?: StreamingMode | boolean | ChannelPreviewStreamingConfig; /** Disable block streaming for this account. */
blockStreaming?: boolean; /** Merge streamed block replies before sending. */
blockStreamingCoalesce?: BlockStreamingCoalesceConfig; /** Outbound response prefix override for this channel/account. */
responsePrefix?: string;
/**
* Controls whether channel and group replies are sent as thread replies.
* - "off" (default): only thread-reply when incoming message is already a thread reply
* - "first": reply in a thread under the triggering message
* - "all": always reply in a thread; uses existing thread root or starts a new thread under the message
* Direct messages always behave as "off".
*/
replyToMode?: MattermostReplyToMode; /** Action toggles for this account. */
actions?: {
/** Enable message reaction actions. Default: true. */reactions?: boolean;
}; /** Native slash command configuration. */
commands?: {
/** Enable native slash commands. "auto" resolves to false (opt-in). */native?: boolean | "auto"; /** Also register skill-based commands. */
nativeSkills?: boolean | "auto"; /** Path for the callback endpoint on the gateway HTTP server. */
callbackPath?: string; /** Explicit callback URL (e.g. behind reverse proxy). */
callbackUrl?: string;
};
interactions?: {
/** External base URL used for Mattermost interaction callbacks. */callbackBaseUrl?: string;
/**
* IP/CIDR allowlist for callback request sources when Mattermost reaches the gateway
* over a non-loopback path. Keep this narrow to the Mattermost server or trusted ingress.
*/
allowedSourceIps?: string[];
}; /** Network policy overrides for self-hosted Mattermost on trusted private/internal hosts. */
network?: MattermostNetworkConfig; /** Retry configuration for DM channel creation */
dmChannelRetry?: {
/** Maximum number of retry attempts (default: 3) */maxRetries?: number; /** Initial delay in milliseconds before first retry (default: 1000) */
initialDelayMs?: number; /** Maximum delay in milliseconds between retries (default: 10000) */
maxDelayMs?: number; /** Timeout for each individual request in milliseconds (default: 30000) */
timeoutMs?: number;
};
};
//#endregion
//#region extensions/mattermost/src/mattermost/accounts.d.ts
type MattermostTokenSource = "env" | "config" | "none";
type MattermostBaseUrlSource = "env" | "config" | "none";
type ResolvedMattermostAccount = {
accountId: string;
enabled: boolean;
name?: string;
botToken?: string;
baseUrl?: string;
botTokenSource: MattermostTokenSource;
baseUrlSource: MattermostBaseUrlSource;
config: MattermostAccountConfig;
chatmode?: MattermostChatMode;
oncharPrefixes?: string[];
requireMention?: boolean;
textChunkLimit?: number;
chunkMode?: MattermostAccountConfig["chunkMode"];
streamingMode: StreamingMode;
blockStreaming?: boolean;
blockStreamingCoalesce?: MattermostAccountConfig["blockStreamingCoalesce"];
};
//#endregion
export { ResolvedMattermostAccount as t };