import { d as SecretInput } from "./types.secrets-C15Z_eLX.js"; import { _ as GroupPolicy, a as ChannelPreviewStreamingConfig, h as DmPolicy, r as BlockStreamingCoalesceConfig, z as StreamingMode } from "./types.base-iHeWRS8q.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; /** Allowlist for group messages (user ids or @usernames). */ groupAllowFrom?: Array; /** 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 };