UNPKG

@gguf/claw

Version:

Multi-channel AI gateway with extensible messaging integrations

58 lines (54 loc) 2.42 kB
import type { BlockStreamingCoalesceConfig, DmPolicy, GroupPolicy } from "openclaw/plugin-sdk"; export type MattermostChatMode = "oncall" | "onmessage" | "onchar"; export 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[]; /** 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?: string; /** 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"; /** 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; /** Action toggles for this account. */ actions?: { /** Enable message reaction actions. Default: true. */ reactions?: boolean; }; }; export type MattermostConfig = { /** Optional per-account Mattermost configuration (multi-account). */ accounts?: Record<string, MattermostAccountConfig>; } & MattermostAccountConfig;