{
  "generatedBy": "scripts/generate-plugin-sdk-api-baseline.ts",
  "modules": [
    {
      "category": "legacy",
      "entrypoint": "index",
      "exports": [
        {
          "declaration": "export function delegateCompactionToRuntime(params: { sessionId: string; sessionKey?: string | undefined; sessionFile: string; tokenBudget?: number | undefined; force?: boolean | undefined; currentTokenCount?: number | undefined; compactionTarget?: \"budget\" | ... 1 more ... | undefined; customInstructions?: string | undefined; runtimeContext?: ContextEngineRuntimeContext | undefined; }): Promise<...>;",
          "exportName": "delegateCompactionToRuntime",
          "kind": "function",
          "source": {
            "line": 16,
            "path": "src/context-engine/delegate.ts"
          }
        },
        {
          "declaration": "export function emptyPluginConfigSchema(): OpenClawPluginConfigSchema;",
          "exportName": "emptyPluginConfigSchema",
          "kind": "function",
          "source": {
            "line": 108,
            "path": "src/plugins/config-schema.ts"
          }
        },
        {
          "declaration": "export function onDiagnosticEvent(listener: (evt: DiagnosticEventPayload) => void): () => void;",
          "exportName": "onDiagnosticEvent",
          "kind": "function",
          "source": {
            "line": 229,
            "path": "src/infra/diagnostic-events.ts"
          }
        },
        {
          "declaration": "export function registerContextEngine(id: string, factory: ContextEngineFactory): ContextEngineRegistrationResult;",
          "exportName": "registerContextEngine",
          "kind": "function",
          "source": {
            "line": 377,
            "path": "src/context-engine/registry.ts"
          }
        },
        {
          "declaration": "export type AnyAgentTool = AnyAgentTool;",
          "exportName": "AnyAgentTool",
          "kind": "type",
          "source": {
            "line": 9,
            "path": "src/agents/tools/common.ts"
          }
        },
        {
          "declaration": "export type ChannelAccountSnapshot = ChannelAccountSnapshot;",
          "exportName": "ChannelAccountSnapshot",
          "kind": "type",
          "source": {
            "line": 145,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelAgentTool = ChannelAgentTool;",
          "exportName": "ChannelAgentTool",
          "kind": "type",
          "source": {
            "line": 18,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelAgentToolFactory = ChannelAgentToolFactory;",
          "exportName": "ChannelAgentToolFactory",
          "kind": "type",
          "source": {
            "line": 23,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelCapabilities = ChannelCapabilities;",
          "exportName": "ChannelCapabilities",
          "kind": "type",
          "source": {
            "line": 231,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelConfigSchema = ChannelConfigSchema;",
          "exportName": "ChannelConfigSchema",
          "kind": "type",
          "source": {
            "line": 69,
            "path": "src/channels/plugins/types.plugin.ts"
          }
        },
        {
          "declaration": "export type ChannelConfigUiHint = ChannelConfigUiHint;",
          "exportName": "ChannelConfigUiHint",
          "kind": "type",
          "source": {
            "line": 38,
            "path": "src/channels/plugins/types.plugin.ts"
          }
        },
        {
          "declaration": "export type ChannelConfiguredBindingConversationRef = ChannelConfiguredBindingConversationRef;",
          "exportName": "ChannelConfiguredBindingConversationRef",
          "kind": "type",
          "source": {
            "line": 569,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelConfiguredBindingMatch = ChannelConfiguredBindingMatch;",
          "exportName": "ChannelConfiguredBindingMatch",
          "kind": "type",
          "source": {
            "line": 574,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelConfiguredBindingProvider = ChannelConfiguredBindingProvider;",
          "exportName": "ChannelConfiguredBindingProvider",
          "kind": "type",
          "source": {
            "line": 590,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelGatewayContext = ChannelGatewayContext<ResolvedAccount>;",
          "exportName": "ChannelGatewayContext",
          "kind": "type",
          "source": {
            "line": 243,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelId = ChannelId;",
          "exportName": "ChannelId",
          "kind": "type",
          "source": {
            "line": 13,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionAdapter = ChannelMessageActionAdapter;",
          "exportName": "ChannelMessageActionAdapter",
          "kind": "type",
          "source": {
            "line": 517,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionContext = ChannelMessageActionContext;",
          "exportName": "ChannelMessageActionContext",
          "kind": "type",
          "source": {
            "line": 483,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionName = \"send\" | \"broadcast\" | \"poll\" | \"poll-vote\" | \"react\" | \"reactions\" | \"read\" | \"edit\" | \"unsend\" | \"reply\" | \"sendWithEffect\" | \"renameGroup\" | \"setGroupIcon\" | \"addParticipant\" | \"removeParticipant\" | \"leaveGroup\" | \"sendAttachment\" | \"delete\" | \"pin\" | \"unpin\" | \"list-pins\" | \"permissions\" | \"thread-create\" | \"thread-list\" | \"thread-reply\" | \"search\" | \"sticker\" | \"sticker-search\" | \"member-info\" | \"role-info\" | \"emoji-list\" | \"emoji-upload\" | \"sticker-upload\" | \"role-add\" | \"role-remove\" | \"channel-info\" | \"channel-list\" | \"channel-create\" | \"channel-edit\" | \"channel-delete\" | \"channel-move\" | \"category-create\" | \"category-edit\" | \"category-delete\" | \"topic-create\" | \"topic-edit\" | \"voice-status\" | \"event-list\" | \"event-create\" | \"timeout\" | \"kick\" | \"ban\" | \"set-profile\" | \"set-presence\" | \"download-file\" | \"upload-file\";",
          "exportName": "ChannelMessageActionName",
          "kind": "type",
          "source": {
            "line": 6,
            "path": "src/channels/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ChannelPlugin = ChannelPlugin<ResolvedAccount, Probe, Audit>;",
          "exportName": "ChannelPlugin",
          "kind": "type",
          "source": {
            "line": 77,
            "path": "src/channels/plugins/types.plugin.ts"
          }
        },
        {
          "declaration": "export type ChannelSetupAdapter = ChannelSetupAdapter;",
          "exportName": "ChannelSetupAdapter",
          "kind": "type",
          "source": {
            "line": 60,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelSetupInput = ChannelSetupInput;",
          "exportName": "ChannelSetupInput",
          "kind": "type",
          "source": {
            "line": 63,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelSetupWizard = ChannelSetupWizard;",
          "exportName": "ChannelSetupWizard",
          "kind": "type",
          "source": {
            "line": 247,
            "path": "src/channels/plugins/setup-wizard.ts"
          }
        },
        {
          "declaration": "export type ChannelSetupWizardAllowFromEntry = ChannelSetupWizardAllowFromEntry;",
          "exportName": "ChannelSetupWizardAllowFromEntry",
          "kind": "type",
          "source": {
            "line": 154,
            "path": "src/channels/plugins/setup-wizard.ts"
          }
        },
        {
          "declaration": "export type ChannelStatusIssue = ChannelStatusIssue;",
          "exportName": "ChannelStatusIssue",
          "kind": "type",
          "source": {
            "line": 100,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type OpenClawConfig = OpenClawConfig;",
          "exportName": "ClawdbotConfig",
          "kind": "type",
          "source": {
            "line": 32,
            "path": "src/config/types.openclaw.ts"
          }
        },
        {
          "declaration": "export type CliBackendConfig = CliBackendConfig;",
          "exportName": "CliBackendConfig",
          "kind": "type",
          "source": {
            "line": 47,
            "path": "src/config/types.agent-defaults.ts"
          }
        },
        {
          "declaration": "export type CliBackendPlugin = CliBackendPlugin;",
          "exportName": "CliBackendPlugin",
          "kind": "type",
          "source": {
            "line": 1616,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type CompiledConfiguredBinding = CompiledConfiguredBinding;",
          "exportName": "CompiledConfiguredBinding",
          "kind": "type",
          "source": {
            "line": 38,
            "path": "src/channels/plugins/binding-types.ts"
          }
        },
        {
          "declaration": "export type ConfiguredBindingConversation = ConversationRef;",
          "exportName": "ConfiguredBindingConversation",
          "kind": "type",
          "source": {
            "line": 13,
            "path": "src/channels/plugins/binding-types.ts"
          }
        },
        {
          "declaration": "export type ConfiguredBindingResolution = ConfiguredBindingResolution;",
          "exportName": "ConfiguredBindingResolution",
          "kind": "type",
          "source": {
            "line": 49,
            "path": "src/channels/plugins/binding-types.ts"
          }
        },
        {
          "declaration": "export type ContextEngineFactory = ContextEngineFactory;",
          "exportName": "ContextEngineFactory",
          "kind": "type",
          "source": {
            "line": 10,
            "path": "src/context-engine/registry.ts"
          }
        },
        {
          "declaration": "export type ContextEngineInfo = ContextEngineInfo;",
          "exportName": "ContextEngineInfo",
          "kind": "type",
          "source": {
            "line": 46,
            "path": "src/context-engine/types.ts"
          }
        },
        {
          "declaration": "export type ContextEngineMaintenanceResult = TranscriptRewriteResult;",
          "exportName": "ContextEngineMaintenanceResult",
          "kind": "type",
          "source": {
            "line": 84,
            "path": "src/context-engine/types.ts"
          }
        },
        {
          "declaration": "export type ContextEngineRuntimeContext = ContextEngineRuntimeContext;",
          "exportName": "ContextEngineRuntimeContext",
          "kind": "type",
          "source": {
            "line": 86,
            "path": "src/context-engine/types.ts"
          }
        },
        {
          "declaration": "export type DiagnosticEventPayload = DiagnosticEventPayload;",
          "exportName": "DiagnosticEventPayload",
          "kind": "type",
          "source": {
            "line": 150,
            "path": "src/infra/diagnostic-events.ts"
          }
        },
        {
          "declaration": "export type GeneratedImageAsset = GeneratedImageAsset;",
          "exportName": "GeneratedImageAsset",
          "kind": "type",
          "source": {
            "line": 4,
            "path": "src/image-generation/types.ts"
          }
        },
        {
          "declaration": "export type HookEntry = HookEntry;",
          "exportName": "HookEntry",
          "kind": "type",
          "source": {
            "line": 47,
            "path": "src/hooks/types.ts"
          }
        },
        {
          "declaration": "export type ImageGenerationProvider = ImageGenerationProvider;",
          "exportName": "ImageGenerationProvider",
          "kind": "type",
          "source": {
            "line": 66,
            "path": "src/image-generation/types.ts"
          }
        },
        {
          "declaration": "export type ImageGenerationRequest = ImageGenerationRequest;",
          "exportName": "ImageGenerationRequest",
          "kind": "type",
          "source": {
            "line": 21,
            "path": "src/image-generation/types.ts"
          }
        },
        {
          "declaration": "export type ImageGenerationResolution = ImageGenerationResolution;",
          "exportName": "ImageGenerationResolution",
          "kind": "type",
          "source": {
            "line": 12,
            "path": "src/image-generation/types.ts"
          }
        },
        {
          "declaration": "export type ImageGenerationResult = ImageGenerationResult;",
          "exportName": "ImageGenerationResult",
          "kind": "type",
          "source": {
            "line": 36,
            "path": "src/image-generation/types.ts"
          }
        },
        {
          "declaration": "export type ImageGenerationSourceImage = ImageGenerationSourceImage;",
          "exportName": "ImageGenerationSourceImage",
          "kind": "type",
          "source": {
            "line": 14,
            "path": "src/image-generation/types.ts"
          }
        },
        {
          "declaration": "export type MediaUnderstandingProviderPlugin = MediaUnderstandingProvider;",
          "exportName": "MediaUnderstandingProviderPlugin",
          "kind": "type",
          "source": {
            "line": 1267,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawConfig = OpenClawConfig;",
          "exportName": "OpenClawConfig",
          "kind": "type",
          "source": {
            "line": 32,
            "path": "src/config/types.openclaw.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginApi = OpenClawPluginApi;",
          "exportName": "OpenClawPluginApi",
          "kind": "type",
          "source": {
            "line": 1660,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;",
          "exportName": "OpenClawPluginConfigSchema",
          "kind": "type",
          "source": {
            "line": 100,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginLogger = PluginLogger;",
          "exportName": "PluginLogger",
          "kind": "type",
          "source": {
            "line": 71,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginRuntime = PluginRuntime;",
          "exportName": "PluginRuntime",
          "kind": "type",
          "source": {
            "line": 54,
            "path": "src/plugins/runtime/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthContext = ProviderAuthContext;",
          "exportName": "ProviderAuthContext",
          "kind": "type",
          "source": {
            "line": 175,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthResult = ProviderAuthResult;",
          "exportName": "ProviderAuthResult",
          "kind": "type",
          "source": {
            "line": 160,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderRuntimeModel = ProviderRuntimeModel;",
          "exportName": "ProviderRuntimeModel",
          "kind": "type",
          "source": {
            "line": 316,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ReplyPayload = ReplyPayload;",
          "exportName": "ReplyPayload",
          "kind": "type",
          "source": {
            "line": 76,
            "path": "src/auto-reply/types.ts"
          }
        },
        {
          "declaration": "export type RuntimeEnv = RuntimeEnv;",
          "exportName": "RuntimeEnv",
          "kind": "type",
          "source": {
            "line": 4,
            "path": "src/runtime.ts"
          }
        },
        {
          "declaration": "export type RuntimeLogger = RuntimeLogger;",
          "exportName": "RuntimeLogger",
          "kind": "type",
          "source": {
            "line": 7,
            "path": "src/plugins/runtime/types-core.ts"
          }
        },
        {
          "declaration": "export type SecretInput = SecretInput;",
          "exportName": "SecretInput",
          "kind": "type",
          "source": {
            "line": 16,
            "path": "src/config/types.secrets.ts"
          }
        },
        {
          "declaration": "export type SecretRef = SecretRef;",
          "exportName": "SecretRef",
          "kind": "type",
          "source": {
            "line": 10,
            "path": "src/config/types.secrets.ts"
          }
        },
        {
          "declaration": "export type SpeechProviderPlugin = SpeechProviderPlugin;",
          "exportName": "SpeechProviderPlugin",
          "kind": "type",
          "source": {
            "line": 1242,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type StatefulBindingTargetDescriptor = StatefulBindingTargetDescriptor;",
          "exportName": "StatefulBindingTargetDescriptor",
          "kind": "type",
          "source": {
            "line": 17,
            "path": "src/channels/plugins/binding-types.ts"
          }
        },
        {
          "declaration": "export type StatefulBindingTargetDriver = StatefulBindingTargetDriver;",
          "exportName": "StatefulBindingTargetDriver",
          "kind": "type",
          "source": {
            "line": 15,
            "path": "src/channels/plugins/stateful-target-drivers.ts"
          }
        },
        {
          "declaration": "export type StatefulBindingTargetReadyResult = StatefulBindingTargetReadyResult;",
          "exportName": "StatefulBindingTargetReadyResult",
          "kind": "type",
          "source": {
            "line": 7,
            "path": "src/channels/plugins/stateful-target-drivers.ts"
          }
        },
        {
          "declaration": "export type StatefulBindingTargetResetResult = StatefulBindingTargetResetResult;",
          "exportName": "StatefulBindingTargetResetResult",
          "kind": "type",
          "source": {
            "line": 11,
            "path": "src/channels/plugins/stateful-target-drivers.ts"
          }
        },
        {
          "declaration": "export type StatefulBindingTargetSessionResult = StatefulBindingTargetSessionResult;",
          "exportName": "StatefulBindingTargetSessionResult",
          "kind": "type",
          "source": {
            "line": 8,
            "path": "src/channels/plugins/stateful-target-drivers.ts"
          }
        },
        {
          "declaration": "export type SubagentRunParams = SubagentRunParams;",
          "exportName": "SubagentRunParams",
          "kind": "type",
          "source": {
            "line": 8,
            "path": "src/plugins/runtime/types.ts"
          }
        },
        {
          "declaration": "export type SubagentRunResult = SubagentRunResult;",
          "exportName": "SubagentRunResult",
          "kind": "type",
          "source": {
            "line": 19,
            "path": "src/plugins/runtime/types.ts"
          }
        },
        {
          "declaration": "export type TranscriptRewriteReplacement = TranscriptRewriteReplacement;",
          "exportName": "TranscriptRewriteReplacement",
          "kind": "type",
          "source": {
            "line": 61,
            "path": "src/context-engine/types.ts"
          }
        },
        {
          "declaration": "export type TranscriptRewriteRequest = TranscriptRewriteRequest;",
          "exportName": "TranscriptRewriteRequest",
          "kind": "type",
          "source": {
            "line": 68,
            "path": "src/context-engine/types.ts"
          }
        },
        {
          "declaration": "export type TranscriptRewriteResult = TranscriptRewriteResult;",
          "exportName": "TranscriptRewriteResult",
          "kind": "type",
          "source": {
            "line": 73,
            "path": "src/context-engine/types.ts"
          }
        },
        {
          "declaration": "export type WizardPrompter = WizardPrompter;",
          "exportName": "WizardPrompter",
          "kind": "type",
          "source": {
            "line": 37,
            "path": "src/wizard/prompts.ts"
          }
        },
        {
          "declaration": "export interface ContextEngine",
          "exportName": "ContextEngine",
          "kind": "interface",
          "source": {
            "line": 104,
            "path": "src/context-engine/types.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/index.ts"
      }
    },
    {
      "category": "utilities",
      "entrypoint": "allow-from",
      "exports": [
        {
          "declaration": "export function addAllowlistUserEntriesFromConfigEntry(target: Set<string>, entry: unknown): void;",
          "exportName": "addAllowlistUserEntriesFromConfigEntry",
          "kind": "function",
          "source": {
            "line": 130,
            "path": "src/channels/allowlists/resolve-utils.ts"
          }
        },
        {
          "declaration": "export function buildAllowlistResolutionSummary<T extends AllowlistUserResolutionLike>(resolvedUsers: T[], opts?: { formatResolved?: ((entry: T) => string) | undefined; formatUnresolved?: ((entry: T) => string) | undefined; } | undefined): { ...; };",
          "exportName": "buildAllowlistResolutionSummary",
          "kind": "function",
          "source": {
            "line": 36,
            "path": "src/channels/allowlists/resolve-utils.ts"
          }
        },
        {
          "declaration": "export function canonicalizeAllowlistWithResolvedIds<T extends AllowlistUserResolutionLike>(params: { existing?: (string | number)[] | undefined; resolvedMap: Map<string, T>; }): string[];",
          "exportName": "canonicalizeAllowlistWithResolvedIds",
          "kind": "function",
          "source": {
            "line": 73,
            "path": "src/channels/allowlists/resolve-utils.ts"
          }
        },
        {
          "declaration": "export function compileAllowlist(entries: readonly string[]): CompiledAllowlist;",
          "exportName": "compileAllowlist",
          "kind": "function",
          "source": {
            "line": 30,
            "path": "src/channels/allowlist-match.ts"
          }
        },
        {
          "declaration": "export function firstDefined<T>(...values: (T | undefined)[]): (T & ({} | null)) | undefined;",
          "exportName": "firstDefined",
          "kind": "function",
          "source": {
            "line": 29,
            "path": "src/channels/allow-from.ts"
          }
        },
        {
          "declaration": "export function formatAllowFromLowercase(params: { allowFrom: (string | number)[]; stripPrefixRe?: RegExp | undefined; }): string[];",
          "exportName": "formatAllowFromLowercase",
          "kind": "function",
          "source": {
            "line": 31,
            "path": "src/plugin-sdk/allow-from.ts"
          }
        },
        {
          "declaration": "export function formatAllowlistMatchMeta(match?: { matchKey?: string | undefined; matchSource?: string | undefined; } | null | undefined): string;",
          "exportName": "formatAllowlistMatchMeta",
          "kind": "function",
          "source": {
            "line": 24,
            "path": "src/channels/allowlist-match.ts"
          }
        },
        {
          "declaration": "export function formatNormalizedAllowFromEntries(params: { allowFrom: (string | number)[]; normalizeEntry: (entry: string) => string | null | undefined; }): string[];",
          "exportName": "formatNormalizedAllowFromEntries",
          "kind": "function",
          "source": {
            "line": 43,
            "path": "src/plugin-sdk/allow-from.ts"
          }
        },
        {
          "declaration": "export function isAllowedParsedChatSender<TParsed extends ParsedChatAllowTarget>(params: { allowFrom: (string | number)[]; sender: string; chatId?: number | null | undefined; chatGuid?: string | null | undefined; chatIdentifier?: string | null | undefined; normalizeSender: (sender: string) => string; parseAllowTarget: (entry: string) => TParsed; }): boolean;",
          "exportName": "isAllowedParsedChatSender",
          "kind": "function",
          "source": {
            "line": 81,
            "path": "src/plugin-sdk/allow-from.ts"
          }
        },
        {
          "declaration": "export function isNormalizedSenderAllowed(params: { senderId: string | number; allowFrom: (string | number)[]; stripPrefixRe?: RegExp | undefined; }): boolean;",
          "exportName": "isNormalizedSenderAllowed",
          "kind": "function",
          "source": {
            "line": 55,
            "path": "src/plugin-sdk/allow-from.ts"
          }
        },
        {
          "declaration": "export function isSenderIdAllowed(allow: { entries: string[]; hasWildcard: boolean; hasEntries: boolean; }, senderId: string | undefined, allowWhenEmpty: boolean): boolean;",
          "exportName": "isSenderIdAllowed",
          "kind": "function",
          "source": {
            "line": 38,
            "path": "src/channels/allow-from.ts"
          }
        },
        {
          "declaration": "export function mapAllowlistResolutionInputs<T>(params: { inputs: string[]; mapInput: (input: string) => T | Promise<T>; }): Promise<T[]>;",
          "exportName": "mapAllowlistResolutionInputs",
          "kind": "function",
          "source": {
            "line": 151,
            "path": "src/plugin-sdk/allow-from.ts"
          }
        },
        {
          "declaration": "export function mapBasicAllowlistResolutionEntries(entries: BasicAllowlistResolutionEntry[]): BasicAllowlistResolutionEntry[];",
          "exportName": "mapBasicAllowlistResolutionEntries",
          "kind": "function",
          "source": {
            "line": 138,
            "path": "src/plugin-sdk/allow-from.ts"
          }
        },
        {
          "declaration": "export function mergeAllowlist(params: { existing?: (string | number)[] | undefined; additions: string[]; }): string[];",
          "exportName": "mergeAllowlist",
          "kind": "function",
          "source": {
            "line": 29,
            "path": "src/channels/allowlists/resolve-utils.ts"
          }
        },
        {
          "declaration": "export function mergeDmAllowFromSources(params: { allowFrom?: (string | number)[] | undefined; storeAllowFrom?: (string | number)[] | undefined; dmPolicy?: string | undefined; }): string[];",
          "exportName": "mergeDmAllowFromSources",
          "kind": "function",
          "source": {
            "line": 1,
            "path": "src/channels/allow-from.ts"
          }
        },
        {
          "declaration": "export function patchAllowlistUsersInConfigEntries<T extends AllowlistUserResolutionLike, TEntries extends Record<string, unknown>>(params: { entries: TEntries; resolvedMap: Map<string, T>; strategy?: \"merge\" | \"canonicalize\" | undefined; }): TEntries;",
          "exportName": "patchAllowlistUsersInConfigEntries",
          "kind": "function",
          "source": {
            "line": 92,
            "path": "src/channels/allowlists/resolve-utils.ts"
          }
        },
        {
          "declaration": "export function resolveAllowlistCandidates<TSource extends string>(params: { compiledAllowlist: CompiledAllowlist; candidates: { value?: string | undefined; source: TSource; }[]; }): AllowlistMatch<TSource>;",
          "exportName": "resolveAllowlistCandidates",
          "kind": "function",
          "source": {
            "line": 44,
            "path": "src/channels/allowlist-match.ts"
          }
        },
        {
          "declaration": "export function resolveAllowlistMatchByCandidates<TSource extends string>(params: { allowList: readonly string[]; candidates: { value?: string | undefined; source: TSource; }[]; }): AllowlistMatch<TSource>;",
          "exportName": "resolveAllowlistMatchByCandidates",
          "kind": "function",
          "source": {
            "line": 76,
            "path": "src/channels/allowlist-match.ts"
          }
        },
        {
          "declaration": "export function resolveAllowlistMatchSimple(params: { allowFrom: readonly (string | number)[]; senderId: string; senderName?: string | null | undefined; allowNameMatching?: boolean | undefined; }): AllowlistMatch<\"name\" | \"id\" | \"wildcard\">;",
          "exportName": "resolveAllowlistMatchSimple",
          "kind": "function",
          "source": {
            "line": 86,
            "path": "src/channels/allowlist-match.ts"
          }
        },
        {
          "declaration": "export function resolveCompiledAllowlistMatch<TSource extends string>(params: { compiledAllowlist: CompiledAllowlist; candidates: { value?: string | undefined; source: TSource; }[]; }): AllowlistMatch<TSource>;",
          "exportName": "resolveCompiledAllowlistMatch",
          "kind": "function",
          "source": {
            "line": 63,
            "path": "src/channels/allowlist-match.ts"
          }
        },
        {
          "declaration": "export function resolveGroupAllowFromSources(params: { allowFrom?: (string | number)[] | undefined; groupAllowFrom?: (string | number)[] | undefined; fallbackToAllowFrom?: boolean | undefined; }): string[];",
          "exportName": "resolveGroupAllowFromSources",
          "kind": "function",
          "source": {
            "line": 12,
            "path": "src/channels/allow-from.ts"
          }
        },
        {
          "declaration": "export function summarizeMapping(label: string, mapping: string[], unresolved: string[], runtime: RuntimeEnv): void;",
          "exportName": "summarizeMapping",
          "kind": "function",
          "source": {
            "line": 146,
            "path": "src/channels/allowlists/resolve-utils.ts"
          }
        },
        {
          "declaration": "export type AllowlistMatch = AllowlistMatch<TSource>;",
          "exportName": "AllowlistMatch",
          "kind": "type",
          "source": {
            "line": 13,
            "path": "src/channels/allowlist-match.ts"
          }
        },
        {
          "declaration": "export type AllowlistMatchSource = AllowlistMatchSource;",
          "exportName": "AllowlistMatchSource",
          "kind": "type",
          "source": {
            "line": 1,
            "path": "src/channels/allowlist-match.ts"
          }
        },
        {
          "declaration": "export type AllowlistUserResolutionLike = AllowlistUserResolutionLike;",
          "exportName": "AllowlistUserResolutionLike",
          "kind": "type",
          "source": {
            "line": 5,
            "path": "src/channels/allowlists/resolve-utils.ts"
          }
        },
        {
          "declaration": "export type BasicAllowlistResolutionEntry = BasicAllowlistResolutionEntry;",
          "exportName": "BasicAllowlistResolutionEntry",
          "kind": "type",
          "source": {
            "line": 129,
            "path": "src/plugin-sdk/allow-from.ts"
          }
        },
        {
          "declaration": "export type CompiledAllowlist = CompiledAllowlist;",
          "exportName": "CompiledAllowlist",
          "kind": "type",
          "source": {
            "line": 19,
            "path": "src/channels/allowlist-match.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/allow-from",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/allow-from.ts"
      }
    },
    {
      "category": "channel",
      "entrypoint": "channel-actions",
      "exports": [
        {
          "declaration": "export function createMessageToolButtonsSchema(): TSchema;",
          "exportName": "createMessageToolButtonsSchema",
          "kind": "function",
          "source": {
            "line": 12,
            "path": "src/plugin-sdk/channel-actions.ts"
          }
        },
        {
          "declaration": "export function createMessageToolCardSchema(): TSchema;",
          "exportName": "createMessageToolCardSchema",
          "kind": "function",
          "source": {
            "line": 30,
            "path": "src/plugin-sdk/channel-actions.ts"
          }
        },
        {
          "declaration": "export function createUnionActionGate<TAccount, TKey extends string>(accounts: readonly TAccount[], createGate: (account: TAccount) => OptionalDefaultGate<TKey>): OptionalDefaultGate<TKey>;",
          "exportName": "createUnionActionGate",
          "kind": "function",
          "source": {
            "line": 13,
            "path": "src/channels/plugins/actions/shared.ts"
          }
        },
        {
          "declaration": "export function listTokenSourcedAccounts<TAccount extends TokenSourcedAccount>(accounts: readonly TAccount[]): TAccount[];",
          "exportName": "listTokenSourcedAccounts",
          "kind": "function",
          "source": {
            "line": 7,
            "path": "src/channels/plugins/actions/shared.ts"
          }
        },
        {
          "declaration": "export function optionalStringEnum<T extends readonly string[]>(values: T, options?: StringEnumOptions<T>): TOptional<TUnsafe<T[number]>>;",
          "exportName": "optionalStringEnum",
          "kind": "function",
          "source": {
            "line": 31,
            "path": "src/agents/schema/typebox.ts"
          }
        },
        {
          "declaration": "export function resolveReactionMessageId(params: { args: Record<string, unknown>; toolContext?: ReactionToolContext | undefined; }): string | number | undefined;",
          "exportName": "resolveReactionMessageId",
          "kind": "function",
          "source": {
            "line": 7,
            "path": "src/channels/plugins/actions/reaction-message-id.ts"
          }
        },
        {
          "declaration": "export function stringEnum<T extends readonly string[]>(values: T, options?: StringEnumOptions<T>): TUnsafe<T[number]>;",
          "exportName": "stringEnum",
          "kind": "function",
          "source": {
            "line": 15,
            "path": "src/agents/schema/typebox.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/channel-actions",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/channel-actions.ts"
      }
    },
    {
      "category": "channel",
      "entrypoint": "channel-config-schema",
      "exports": [
        {
          "declaration": "export function buildCatchallMultiAccountChannelSchema<T extends ExtendableZodObject>(accountSchema: T): T;",
          "exportName": "buildCatchallMultiAccountChannelSchema",
          "kind": "function",
          "source": {
            "line": 31,
            "path": "src/channels/plugins/config-schema.ts"
          }
        },
        {
          "declaration": "export function buildChannelConfigSchema(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>, options?: BuildChannelConfigSchemaOptions | undefined): ChannelConfigSchema;",
          "exportName": "buildChannelConfigSchema",
          "kind": "function",
          "source": {
            "line": 75,
            "path": "src/channels/plugins/config-schema.ts"
          }
        },
        {
          "declaration": "export function buildNestedDmConfigSchema(): ZodOptional<ZodObject<{ enabled: ZodOptional<ZodBoolean>; policy: ZodOptional<ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>; allowFrom: ZodOptional<...>; }, $strip>>;",
          "exportName": "buildNestedDmConfigSchema",
          "kind": "function",
          "source": {
            "line": 21,
            "path": "src/channels/plugins/config-schema.ts"
          }
        },
        {
          "declaration": "export const AllowFromListSchema: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;",
          "exportName": "AllowFromListSchema",
          "kind": "const",
          "source": {
            "line": 19,
            "path": "src/channels/plugins/config-schema.ts"
          }
        },
        {
          "declaration": "export const BlockStreamingCoalesceSchema: z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>;",
          "exportName": "BlockStreamingCoalesceSchema",
          "kind": "const",
          "source": {
            "line": 340,
            "path": "src/config/zod-schema.core.ts"
          }
        },
        {
          "declaration": "export const DiscordConfigSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; enabled: z.ZodOptional<z.ZodBoolean>; commands: z.ZodOptional<z.ZodObject<{ native: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"auto\">]>>; nativeSkills: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"auto\">]>>; }, z.core.$strict>>; configWrites: z.ZodOptional<z.ZodBoolean>; token: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; proxy: z.ZodOptional<z.ZodString>; allowBots: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"mentions\">]>>; dangerouslyAllowNameMatching: z.ZodOptional<z.ZodBoolean>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; streaming: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{ off: \"off\"; partial: \"partial\"; block: \"block\"; progress: \"progress\"; }>]>>; streamMode: z.ZodOptional<z.ZodEnum<{ off: \"off\"; partial: \"partial\"; block: \"block\"; }>>; draftChunk: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; breakPreference: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"paragraph\">, z.ZodLiteral<\"newline\">, z.ZodLiteral<\"sentence\">]>>; }, z.core.$strict>>; maxLinesPerMessage: z.ZodOptional<z.ZodNumber>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; retry: z.ZodOptional<z.ZodObject<{ attempts: z.ZodOptional<z.ZodNumber>; minDelayMs: z.ZodOptional<z.ZodNumber>; maxDelayMs: z.ZodOptional<z.ZodNumber>; jitter: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; actions: z.ZodOptional<z.ZodObject<{ reactions: z.ZodOptional<z.ZodBoolean>; stickers: z.ZodOptional<z.ZodBoolean>; emojiUploads: z.ZodOptional<z.ZodBoolean>; stickerUploads: z.ZodOptional<z.ZodBoolean>; polls: z.ZodOptional<z.ZodBoolean>; permissions: z.ZodOptional<z.ZodBoolean>; messages: z.ZodOptional<z.ZodBoolean>; threads: z.ZodOptional<z.ZodBoolean>; pins: z.ZodOptional<z.ZodBoolean>; search: z.ZodOptional<z.ZodBoolean>; memberInfo: z.ZodOptional<z.ZodBoolean>; roleInfo: z.ZodOptional<z.ZodBoolean>; roles: z.ZodOptional<z.ZodBoolean>; channelInfo: z.ZodOptional<z.ZodBoolean>; voiceStatus: z.ZodOptional<z.ZodBoolean>; events: z.ZodOptional<z.ZodBoolean>; moderation: z.ZodOptional<z.ZodBoolean>; channels: z.ZodOptional<z.ZodBoolean>; presence: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; replyToMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; dmPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; defaultTo: z.ZodOptional<z.ZodString>; dm: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; policy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; groupEnabled: z.ZodOptional<z.ZodBoolean>; groupChannels: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; }, z.core.$strict>>; guilds: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ slug: z.ZodOptional<z.ZodString>; requireMention: z.ZodOptional<z.ZodBoolean>; ignoreOtherMentions: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; reactionNotifications: z.ZodOptional<z.ZodEnum<{ allowlist: \"allowlist\"; off: \"off\"; all: \"all\"; own: \"own\"; }>>; users: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; roles: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; channels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodBoolean>; requireMention: z.ZodOptional<z.ZodBoolean>; ignoreOtherMentions: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; skills: z.ZodOptional<z.ZodArray<z.ZodString>>; enabled: z.ZodOptional<z.ZodBoolean>; users: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; roles: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; systemPrompt: z.ZodOptional<z.ZodString>; includeThreadStarter: z.ZodOptional<z.ZodBoolean>; autoThread: z.ZodOptional<z.ZodBoolean>; autoThreadName: z.ZodOptional<z.ZodEnum<{ message: \"message\"; generated: \"generated\"; }>>; autoArchiveDuration: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{ 60: \"60\"; 1440: \"1440\"; 4320: \"4320\"; 10080: \"10080\"; }>, z.ZodLiteral<60>, z.ZodLiteral<1440>, z.ZodLiteral<4320>, z.ZodLiteral<10080>]>>; }, z.core.$strict>>>>; }, z.core.$strict>>>>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; execApprovals: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; approvers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; agentFilter: z.ZodOptional<z.ZodArray<z.ZodString>>; sessionFilter: z.ZodOptional<z.ZodArray<z.ZodString>>; cleanupAfterResolve: z.ZodOptional<z.ZodBoolean>; target: z.ZodOptional<z.ZodEnum<{ channel: \"channel\"; dm: \"dm\"; both: \"both\"; }>>; }, z.core.$strict>>; agentComponents: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; ui: z.ZodOptional<z.ZodObject<{ components: z.ZodOptional<z.ZodObject<{ accentColor: z.ZodOptional<z.ZodString>; }, z.core.$strict>>; }, z.core.$strict>>; slashCommand: z.ZodOptional<z.ZodObject<{ ephemeral: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; threadBindings: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; idleHours: z.ZodOptional<z.ZodNumber>; maxAgeHours: z.ZodOptional<z.ZodNumber>; spawnSubagentSessions: z.ZodOptional<z.ZodBoolean>; spawnAcpSessions: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; intents: z.ZodOptional<z.ZodObject<{ presence: z.ZodOptional<z.ZodBoolean>; guildMembers: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; voice: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; autoJoin: z.ZodOptional<z.ZodArray<z.ZodObject<{ guildId: z.ZodString; channelId: z.ZodString; }, z.core.$strict>>>; daveEncryption: z.ZodOptional<z.ZodBoolean>; decryptionFailureTolerance: z.ZodOptional<z.ZodNumber>; tts: z.ZodOptional<z.ZodOptional<z.ZodObject<{ auto: z.ZodOptional<z.ZodEnum<{ inbound: \"inbound\"; off: \"off\"; always: \"always\"; tagged: \"tagged\"; }>>; enabled: z.ZodOptional<z.ZodBoolean>; mode: z.ZodOptional<z.ZodEnum<{ all: \"all\"; final: \"final\"; }>>; provider: z.ZodOptional<z.ZodString>; summaryModel: z.ZodOptional<z.ZodString>; modelOverrides: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; allowText: z.ZodOptional<z.ZodBoolean>; allowProvider: z.ZodOptional<z.ZodBoolean>; allowVoice: z.ZodOptional<z.ZodBoolean>; allowModelId: z.ZodOptional<z.ZodBoolean>; allowVoiceSettings: z.ZodOptional<z.ZodBoolean>; allowNormalization: z.ZodOptional<z.ZodBoolean>; allowSeed: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ apiKey: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>; prefsPath: z.ZodOptional<z.ZodString>; maxTextLength: z.ZodOptional<z.ZodNumber>; timeoutMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>; }, z.core.$strict>>; pluralkit: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; token: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; }, z.core.$strict>>; responsePrefix: z.ZodOptional<z.ZodString>; ackReaction: z.ZodOptional<z.ZodString>; ackReactionScope: z.ZodOptional<z.ZodEnum<{ direct: \"direct\"; off: \"off\"; all: \"all\"; \"group-mentions\": \"group-mentions\"; \"group-all\": \"group-all\"; none: \"none\"; }>>; activity: z.ZodOptional<z.ZodString>; status: z.ZodOptional<z.ZodEnum<{ online: \"online\"; dnd: \"dnd\"; idle: \"idle\"; invisible: \"invisible\"; }>>; autoPresence: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; intervalMs: z.ZodOptional<z.ZodNumber>; minUpdateIntervalMs: z.ZodOptional<z.ZodNumber>; healthyText: z.ZodOptional<z.ZodString>; degradedText: z.ZodOptional<z.ZodString>; exhaustedText: z.ZodOptional<z.ZodString>; }, z.core.$strict>>; activityType: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>]>>; activityUrl: z.ZodOptional<z.ZodString>; inboundWorker: z.ZodOptional<z.ZodObject<{ runTimeoutMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; eventQueue: z.ZodOptional<z.ZodObject<{ listenerTimeout: z.ZodOptional<z.ZodNumber>; maxQueueSize: z.ZodOptional<z.ZodNumber>; maxConcurrency: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ name: z.ZodOptional<z.ZodString>; capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; enabled: z.ZodOptional<z.ZodBoolean>; commands: z.ZodOptional<z.ZodObject<{ native: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"auto\">]>>; nativeSkills: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"auto\">]>>; }, z.core.$strict>>; configWrites: z.ZodOptional<z.ZodBoolean>; token: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; proxy: z.ZodOptional<z.ZodString>; allowBots: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"mentions\">]>>; dangerouslyAllowNameMatching: z.ZodOptional<z.ZodBoolean>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; streaming: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{ off: \"off\"; partial: \"partial\"; block: \"block\"; progress: \"progress\"; }>]>>; streamMode: z.ZodOptional<z.ZodEnum<{ off: \"off\"; partial: \"partial\"; block: \"block\"; }>>; draftChunk: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; breakPreference: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"paragraph\">, z.ZodLiteral<\"newline\">, z.ZodLiteral<\"sentence\">]>>; }, z.core.$strict>>; maxLinesPerMessage: z.ZodOptional<z.ZodNumber>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; retry: z.ZodOptional<z.ZodObject<{ attempts: z.ZodOptional<z.ZodNumber>; minDelayMs: z.ZodOptional<z.ZodNumber>; maxDelayMs: z.ZodOptional<z.ZodNumber>; jitter: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; actions: z.ZodOptional<z.ZodObject<{ reactions: z.ZodOptional<z.ZodBoolean>; stickers: z.ZodOptional<z.ZodBoolean>; emojiUploads: z.ZodOptional<z.ZodBoolean>; stickerUploads: z.ZodOptional<z.ZodBoolean>; polls: z.ZodOptional<z.ZodBoolean>; permissions: z.ZodOptional<z.ZodBoolean>; messages: z.ZodOptional<z.ZodBoolean>; threads: z.ZodOptional<z.ZodBoolean>; pins: z.ZodOptional<z.ZodBoolean>; search: z.ZodOptional<z.ZodBoolean>; memberInfo: z.ZodOptional<z.ZodBoolean>; roleInfo: z.ZodOptional<z.ZodBoolean>; roles: z.ZodOptional<z.ZodBoolean>; channelInfo: z.ZodOptional<z.ZodBoolean>; voiceStatus: z.ZodOptional<z.ZodBoolean>; events: z.ZodOptional<z.ZodBoolean>; moderation: z.ZodOptional<z.ZodBoolean>; channels: z.ZodOptional<z.ZodBoolean>; presence: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; replyToMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; dmPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; defaultTo: z.ZodOptional<z.ZodString>; dm: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; policy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; groupEnabled: z.ZodOptional<z.ZodBoolean>; groupChannels: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; }, z.core.$strict>>; guilds: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ slug: z.ZodOptional<z.ZodString>; requireMention: z.ZodOptional<z.ZodBoolean>; ignoreOtherMentions: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; reactionNotifications: z.ZodOptional<z.ZodEnum<{ allowlist: \"allowlist\"; off: \"off\"; all: \"all\"; own: \"own\"; }>>; users: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; roles: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; channels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodBoolean>; requireMention: z.ZodOptional<z.ZodBoolean>; ignoreOtherMentions: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; skills: z.ZodOptional<z.ZodArray<z.ZodString>>; enabled: z.ZodOptional<z.ZodBoolean>; users: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; roles: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; systemPrompt: z.ZodOptional<z.ZodString>; includeThreadStarter: z.ZodOptional<z.ZodBoolean>; autoThread: z.ZodOptional<z.ZodBoolean>; autoThreadName: z.ZodOptional<z.ZodEnum<{ message: \"message\"; generated: \"generated\"; }>>; autoArchiveDuration: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{ 60: \"60\"; 1440: \"1440\"; 4320: \"4320\"; 10080: \"10080\"; }>, z.ZodLiteral<60>, z.ZodLiteral<1440>, z.ZodLiteral<4320>, z.ZodLiteral<10080>]>>; }, z.core.$strict>>>>; }, z.core.$strict>>>>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; execApprovals: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; approvers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]> & z.ZodType<string, string | number, z.core.$ZodTypeInternals<string, string | number>>>>; agentFilter: z.ZodOptional<z.ZodArray<z.ZodString>>; sessionFilter: z.ZodOptional<z.ZodArray<z.ZodString>>; cleanupAfterResolve: z.ZodOptional<z.ZodBoolean>; target: z.ZodOptional<z.ZodEnum<{ channel: \"channel\"; dm: \"dm\"; both: \"both\"; }>>; }, z.core.$strict>>; agentComponents: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; ui: z.ZodOptional<z.ZodObject<{ components: z.ZodOptional<z.ZodObject<{ accentColor: z.ZodOptional<z.ZodString>; }, z.core.$strict>>; }, z.core.$strict>>; slashCommand: z.ZodOptional<z.ZodObject<{ ephemeral: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; threadBindings: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; idleHours: z.ZodOptional<z.ZodNumber>; maxAgeHours: z.ZodOptional<z.ZodNumber>; spawnSubagentSessions: z.ZodOptional<z.ZodBoolean>; spawnAcpSessions: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; intents: z.ZodOptional<z.ZodObject<{ presence: z.ZodOptional<z.ZodBoolean>; guildMembers: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; voice: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; autoJoin: z.ZodOptional<z.ZodArray<z.ZodObject<{ guildId: z.ZodString; channelId: z.ZodString; }, z.core.$strict>>>; daveEncryption: z.ZodOptional<z.ZodBoolean>; decryptionFailureTolerance: z.ZodOptional<z.ZodNumber>; tts: z.ZodOptional<z.ZodOptional<z.ZodObject<{ auto: z.ZodOptional<z.ZodEnum<{ inbound: \"inbound\"; off: \"off\"; always: \"always\"; tagged: \"tagged\"; }>>; enabled: z.ZodOptional<z.ZodBoolean>; mode: z.ZodOptional<z.ZodEnum<{ all: \"all\"; final: \"final\"; }>>; provider: z.ZodOptional<z.ZodString>; summaryModel: z.ZodOptional<z.ZodString>; modelOverrides: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; allowText: z.ZodOptional<z.ZodBoolean>; allowProvider: z.ZodOptional<z.ZodBoolean>; allowVoice: z.ZodOptional<z.ZodBoolean>; allowModelId: z.ZodOptional<z.ZodBoolean>; allowVoiceSettings: z.ZodOptional<z.ZodBoolean>; allowNormalization: z.ZodOptional<z.ZodBoolean>; allowSeed: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ apiKey: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; }, z.core.$catchall<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnknown>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>>>; prefsPath: z.ZodOptional<z.ZodString>; maxTextLength: z.ZodOptional<z.ZodNumber>; timeoutMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>; }, z.core.$strict>>; pluralkit: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; token: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; }, z.core.$strict>>; responsePrefix: z.ZodOptional<z.ZodString>; ackReaction: z.ZodOptional<z.ZodString>; ackReactionScope: z.ZodOptional<z.ZodEnum<{ direct: \"direct\"; off: \"off\"; all: \"all\"; \"group-mentions\": \"group-mentions\"; \"group-all\": \"group-all\"; none: \"none\"; }>>; activity: z.ZodOptional<z.ZodString>; status: z.ZodOptional<z.ZodEnum<{ online: \"online\"; dnd: \"dnd\"; idle: \"idle\"; invisible: \"invisible\"; }>>; autoPresence: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; intervalMs: z.ZodOptional<z.ZodNumber>; minUpdateIntervalMs: z.ZodOptional<z.ZodNumber>; healthyText: z.ZodOptional<z.ZodString>; degradedText: z.ZodOptional<z.ZodString>; exhaustedText: z.ZodOptional<z.ZodString>; }, z.core.$strict>>; activityType: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>]>>; activityUrl: z.ZodOptional<z.ZodString>; inboundWorker: z.ZodOptional<z.ZodObject<{ runTimeoutMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; eventQueue: z.ZodOptional<z.ZodObject<{ listenerTimeout: z.ZodOptional<z.ZodNumber>; maxQueueSize: z.ZodOptional<z.ZodNumber>; maxConcurrency: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; }, z.core.$strict>>>>; defaultAccount: z.ZodOptional<z.ZodString>; }, z.core.$strict>;",
          "exportName": "DiscordConfigSchema",
          "kind": "const",
          "source": {
            "line": 677,
            "path": "src/config/zod-schema.providers-core.ts"
          }
        },
        {
          "declaration": "export const DmConfigSchema: z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>;",
          "exportName": "DmConfigSchema",
          "kind": "const",
          "source": {
            "line": 294,
            "path": "src/config/zod-schema.core.ts"
          }
        },
        {
          "declaration": "export const DmPolicySchema: z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>;",
          "exportName": "DmPolicySchema",
          "kind": "const",
          "source": {
            "line": 338,
            "path": "src/config/zod-schema.core.ts"
          }
        },
        {
          "declaration": "export const GoogleChatConfigSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>; enabled: z.ZodOptional<z.ZodBoolean>; configWrites: z.ZodOptional<z.ZodBoolean>; allowBots: z.ZodOptional<z.ZodBoolean>; dangerouslyAllowNameMatching: z.ZodOptional<z.ZodBoolean>; requireMention: z.ZodOptional<z.ZodBoolean>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; allow: z.ZodOptional<z.ZodBoolean>; requireMention: z.ZodOptional<z.ZodBoolean>; users: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; systemPrompt: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>>; defaultTo: z.ZodOptional<z.ZodString>; serviceAccount: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; serviceAccountRef: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">>; serviceAccountFile: z.ZodOptional<z.ZodString>; audienceType: z.ZodOptional<z.ZodEnum<{ \"app-url\": \"app-url\"; \"project-number\": \"project-number\"; }>>; audience: z.ZodOptional<z.ZodString>; appPrincipal: z.ZodOptional<z.ZodString>; webhookPath: z.ZodOptional<z.ZodString>; webhookUrl: z.ZodOptional<z.ZodString>; botUser: z.ZodOptional<z.ZodString>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; streamMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ replace: \"replace\"; status_final: \"status_final\"; append: \"append\"; }>>>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; replyToMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; actions: z.ZodOptional<z.ZodObject<{ reactions: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; dm: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; policy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; typingIndicator: z.ZodOptional<z.ZodEnum<{ message: \"message\"; none: \"none\"; reaction: \"reaction\"; }>>; responsePrefix: z.ZodOptional<z.ZodString>; accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ name: z.ZodOptional<z.ZodString>; capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>; enabled: z.ZodOptional<z.ZodBoolean>; configWrites: z.ZodOptional<z.ZodBoolean>; allowBots: z.ZodOptional<z.ZodBoolean>; dangerouslyAllowNameMatching: z.ZodOptional<z.ZodBoolean>; requireMention: z.ZodOptional<z.ZodBoolean>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; allow: z.ZodOptional<z.ZodBoolean>; requireMention: z.ZodOptional<z.ZodBoolean>; users: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; systemPrompt: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>>; defaultTo: z.ZodOptional<z.ZodString>; serviceAccount: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; serviceAccountRef: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">>; serviceAccountFile: z.ZodOptional<z.ZodString>; audienceType: z.ZodOptional<z.ZodEnum<{ \"app-url\": \"app-url\"; \"project-number\": \"project-number\"; }>>; audience: z.ZodOptional<z.ZodString>; appPrincipal: z.ZodOptional<z.ZodString>; webhookPath: z.ZodOptional<z.ZodString>; webhookUrl: z.ZodOptional<z.ZodString>; botUser: z.ZodOptional<z.ZodString>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; streamMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ replace: \"replace\"; status_final: \"status_final\"; append: \"append\"; }>>>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; replyToMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; actions: z.ZodOptional<z.ZodObject<{ reactions: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; dm: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; policy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; typingIndicator: z.ZodOptional<z.ZodEnum<{ message: \"message\"; none: \"none\"; reaction: \"reaction\"; }>>; responsePrefix: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>>; defaultAccount: z.ZodOptional<z.ZodString>; }, z.core.$strict>;",
          "exportName": "GoogleChatConfigSchema",
          "kind": "const",
          "source": {
            "line": 816,
            "path": "src/config/zod-schema.providers-core.ts"
          }
        },
        {
          "declaration": "export const GroupPolicySchema: z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>;",
          "exportName": "GroupPolicySchema",
          "kind": "const",
          "source": {
            "line": 336,
            "path": "src/config/zod-schema.core.ts"
          }
        },
        {
          "declaration": "export const IMessageConfigSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; enabled: z.ZodOptional<z.ZodBoolean>; configWrites: z.ZodOptional<z.ZodBoolean>; cliPath: z.ZodOptional<z.ZodString>; dbPath: z.ZodOptional<z.ZodString>; remoteHost: z.ZodOptional<z.ZodString>; service: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"imessage\">, z.ZodLiteral<\"sms\">, z.ZodLiteral<\"auto\">]>>; region: z.ZodOptional<z.ZodString>; dmPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; defaultTo: z.ZodOptional<z.ZodString>; groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; includeAttachments: z.ZodOptional<z.ZodBoolean>; attachmentRoots: z.ZodOptional<z.ZodArray<z.ZodString>>; remoteAttachmentRoots: z.ZodOptional<z.ZodArray<z.ZodString>>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; }, z.core.$strict>>>>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; responsePrefix: z.ZodOptional<z.ZodString>; accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ name: z.ZodOptional<z.ZodString>; capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; enabled: z.ZodOptional<z.ZodBoolean>; configWrites: z.ZodOptional<z.ZodBoolean>; cliPath: z.ZodOptional<z.ZodString>; dbPath: z.ZodOptional<z.ZodString>; remoteHost: z.ZodOptional<z.ZodString>; service: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"imessage\">, z.ZodLiteral<\"sms\">, z.ZodLiteral<\"auto\">]>>; region: z.ZodOptional<z.ZodString>; dmPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; defaultTo: z.ZodOptional<z.ZodString>; groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; includeAttachments: z.ZodOptional<z.ZodBoolean>; attachmentRoots: z.ZodOptional<z.ZodArray<z.ZodString>>; remoteAttachmentRoots: z.ZodOptional<z.ZodArray<z.ZodString>>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; }, z.core.$strict>>>>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; responsePrefix: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>>; defaultAccount: z.ZodOptional<z.ZodString>; }, z.core.$strict>;",
          "exportName": "IMessageConfigSchema",
          "kind": "const",
          "source": {
            "line": 1314,
            "path": "src/config/zod-schema.providers-core.ts"
          }
        },
        {
          "declaration": "export const MarkdownConfigSchema: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>;",
          "exportName": "MarkdownConfigSchema",
          "kind": "const",
          "source": {
            "line": 372,
            "path": "src/config/zod-schema.core.ts"
          }
        },
        {
          "declaration": "export const MSTeamsConfigSchema: z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>; dangerouslyAllowNameMatching: z.ZodOptional<z.ZodBoolean>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; configWrites: z.ZodOptional<z.ZodBoolean>; appId: z.ZodOptional<z.ZodString>; appPassword: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; tenantId: z.ZodOptional<z.ZodString>; webhook: z.ZodOptional<z.ZodObject<{ port: z.ZodOptional<z.ZodNumber>; path: z.ZodOptional<z.ZodString>; }, z.core.$strict>>; dmPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodString>>; defaultTo: z.ZodOptional<z.ZodString>; groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodString>>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; mediaAllowHosts: z.ZodOptional<z.ZodArray<z.ZodString>>; mediaAuthAllowHosts: z.ZodOptional<z.ZodArray<z.ZodString>>; requireMention: z.ZodOptional<z.ZodBoolean>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; replyStyle: z.ZodOptional<z.ZodEnum<{ thread: \"thread\"; \"top-level\": \"top-level\"; }>>; teams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; replyStyle: z.ZodOptional<z.ZodEnum<{ thread: \"thread\"; \"top-level\": \"top-level\"; }>>; channels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; replyStyle: z.ZodOptional<z.ZodEnum<{ thread: \"thread\"; \"top-level\": \"top-level\"; }>>; }, z.core.$strict>>>>; }, z.core.$strict>>>>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; sharePointSiteId: z.ZodOptional<z.ZodString>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; responsePrefix: z.ZodOptional<z.ZodString>; welcomeCard: z.ZodOptional<z.ZodBoolean>; promptStarters: z.ZodOptional<z.ZodArray<z.ZodString>>; groupWelcomeCard: z.ZodOptional<z.ZodBoolean>; feedbackEnabled: z.ZodOptional<z.ZodBoolean>; feedbackReflection: z.ZodOptional<z.ZodBoolean>; feedbackReflectionCooldownMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>;",
          "exportName": "MSTeamsConfigSchema",
          "kind": "const",
          "source": {
            "line": 1496,
            "path": "src/config/zod-schema.providers-core.ts"
          }
        },
        {
          "declaration": "export const ReplyRuntimeConfigSchemaShape: { historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; responsePrefix: z.ZodOptional<z.ZodString>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; };",
          "exportName": "ReplyRuntimeConfigSchemaShape",
          "kind": "const",
          "source": {
            "line": 348,
            "path": "src/config/zod-schema.core.ts"
          }
        },
        {
          "declaration": "export const requireOpenAllowFrom: (params: { policy?: string; allowFrom?: Array<string | number>; ctx: z.RefinementCtx; path: Array<string | number>; message: string; }) => void;",
          "exportName": "requireOpenAllowFrom",
          "kind": "const",
          "source": {
            "line": 487,
            "path": "src/config/zod-schema.core.ts"
          }
        },
        {
          "declaration": "export const SignalConfigSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; enabled: z.ZodOptional<z.ZodBoolean>; configWrites: z.ZodOptional<z.ZodBoolean>; account: z.ZodOptional<z.ZodString>; accountUuid: z.ZodOptional<z.ZodString>; httpUrl: z.ZodOptional<z.ZodString>; httpHost: z.ZodOptional<z.ZodString>; httpPort: z.ZodOptional<z.ZodNumber>; cliPath: z.ZodOptional<z.ZodString>; autoStart: z.ZodOptional<z.ZodBoolean>; startupTimeoutMs: z.ZodOptional<z.ZodNumber>; receiveMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"on-start\">, z.ZodLiteral<\"manual\">]>>; ignoreAttachments: z.ZodOptional<z.ZodBoolean>; ignoreStories: z.ZodOptional<z.ZodBoolean>; sendReadReceipts: z.ZodOptional<z.ZodBoolean>; dmPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; defaultTo: z.ZodOptional<z.ZodString>; groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; }, z.core.$strict>>>>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; reactionNotifications: z.ZodOptional<z.ZodEnum<{ allowlist: \"allowlist\"; off: \"off\"; all: \"all\"; own: \"own\"; }>>; reactionAllowlist: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; actions: z.ZodOptional<z.ZodObject<{ reactions: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; reactionLevel: z.ZodOptional<z.ZodEnum<{ off: \"off\"; ack: \"ack\"; minimal: \"minimal\"; extensive: \"extensive\"; }>>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; responsePrefix: z.ZodOptional<z.ZodString>; accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ name: z.ZodOptional<z.ZodString>; capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; enabled: z.ZodOptional<z.ZodBoolean>; configWrites: z.ZodOptional<z.ZodBoolean>; account: z.ZodOptional<z.ZodString>; accountUuid: z.ZodOptional<z.ZodString>; httpUrl: z.ZodOptional<z.ZodString>; httpHost: z.ZodOptional<z.ZodString>; httpPort: z.ZodOptional<z.ZodNumber>; cliPath: z.ZodOptional<z.ZodString>; autoStart: z.ZodOptional<z.ZodBoolean>; startupTimeoutMs: z.ZodOptional<z.ZodNumber>; receiveMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"on-start\">, z.ZodLiteral<\"manual\">]>>; ignoreAttachments: z.ZodOptional<z.ZodBoolean>; ignoreStories: z.ZodOptional<z.ZodBoolean>; sendReadReceipts: z.ZodOptional<z.ZodBoolean>; dmPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; defaultTo: z.ZodOptional<z.ZodString>; groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; }, z.core.$strict>>>>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; reactionNotifications: z.ZodOptional<z.ZodEnum<{ allowlist: \"allowlist\"; off: \"off\"; all: \"all\"; own: \"own\"; }>>; reactionAllowlist: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; actions: z.ZodOptional<z.ZodObject<{ reactions: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; reactionLevel: z.ZodOptional<z.ZodEnum<{ off: \"off\"; ack: \"ack\"; minimal: \"minimal\"; extensive: \"extensive\"; }>>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; responsePrefix: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>>; defaultAccount: z.ZodOptional<z.ZodString>; }, z.core.$strict>;",
          "exportName": "SignalConfigSchema",
          "kind": "const",
          "source": {
            "line": 1072,
            "path": "src/config/zod-schema.providers-core.ts"
          }
        },
        {
          "declaration": "export const SlackConfigSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; capabilities: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodObject<{ interactiveReplies: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>]>>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; enabled: z.ZodOptional<z.ZodBoolean>; commands: z.ZodOptional<z.ZodObject<{ native: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"auto\">]>>; nativeSkills: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"auto\">]>>; }, z.core.$strict>>; configWrites: z.ZodOptional<z.ZodBoolean>; botToken: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; appToken: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; userToken: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; userTokenReadOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; allowBots: z.ZodOptional<z.ZodBoolean>; dangerouslyAllowNameMatching: z.ZodOptional<z.ZodBoolean>; requireMention: z.ZodOptional<z.ZodBoolean>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; streaming: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{ off: \"off\"; partial: \"partial\"; block: \"block\"; progress: \"progress\"; }>]>>; nativeStreaming: z.ZodOptional<z.ZodBoolean>; streamMode: z.ZodOptional<z.ZodEnum<{ replace: \"replace\"; status_final: \"status_final\"; append: \"append\"; }>>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; reactionNotifications: z.ZodOptional<z.ZodEnum<{ allowlist: \"allowlist\"; off: \"off\"; all: \"all\"; own: \"own\"; }>>; reactionAllowlist: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; replyToMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; replyToModeByChatType: z.ZodOptional<z.ZodObject<{ direct: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; group: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; channel: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; }, z.core.$strict>>; thread: z.ZodOptional<z.ZodObject<{ historyScope: z.ZodOptional<z.ZodEnum<{ channel: \"channel\"; thread: \"thread\"; }>>; inheritParent: z.ZodOptional<z.ZodBoolean>; initialHistoryLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; actions: z.ZodOptional<z.ZodObject<{ reactions: z.ZodOptional<z.ZodBoolean>; messages: z.ZodOptional<z.ZodBoolean>; pins: z.ZodOptional<z.ZodBoolean>; search: z.ZodOptional<z.ZodBoolean>; permissions: z.ZodOptional<z.ZodBoolean>; memberInfo: z.ZodOptional<z.ZodBoolean>; channelInfo: z.ZodOptional<z.ZodBoolean>; emojiList: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; slashCommand: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; name: z.ZodOptional<z.ZodString>; sessionPrefix: z.ZodOptional<z.ZodString>; ephemeral: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; dmPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; defaultTo: z.ZodOptional<z.ZodString>; dm: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; policy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; groupEnabled: z.ZodOptional<z.ZodBoolean>; groupChannels: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; replyToMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; }, z.core.$strict>>; channels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; allow: z.ZodOptional<z.ZodBoolean>; requireMention: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; allowBots: z.ZodOptional<z.ZodBoolean>; users: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; skills: z.ZodOptional<z.ZodArray<z.ZodString>>; systemPrompt: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; responsePrefix: z.ZodOptional<z.ZodString>; ackReaction: z.ZodOptional<z.ZodString>; typingReaction: z.ZodOptional<z.ZodString>; mode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ socket: \"socket\"; http: \"http\"; }>>>; signingSecret: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; webhookPath: z.ZodDefault<z.ZodOptional<z.ZodString>>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ name: z.ZodOptional<z.ZodString>; mode: z.ZodOptional<z.ZodEnum<{ socket: \"socket\"; http: \"http\"; }>>; signingSecret: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; webhookPath: z.ZodOptional<z.ZodString>; capabilities: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodObject<{ interactiveReplies: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>]>>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; enabled: z.ZodOptional<z.ZodBoolean>; commands: z.ZodOptional<z.ZodObject<{ native: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"auto\">]>>; nativeSkills: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"auto\">]>>; }, z.core.$strict>>; configWrites: z.ZodOptional<z.ZodBoolean>; botToken: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; appToken: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; userToken: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; userTokenReadOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; allowBots: z.ZodOptional<z.ZodBoolean>; dangerouslyAllowNameMatching: z.ZodOptional<z.ZodBoolean>; requireMention: z.ZodOptional<z.ZodBoolean>; groupPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; streaming: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{ off: \"off\"; partial: \"partial\"; block: \"block\"; progress: \"progress\"; }>]>>; nativeStreaming: z.ZodOptional<z.ZodBoolean>; streamMode: z.ZodOptional<z.ZodEnum<{ replace: \"replace\"; status_final: \"status_final\"; append: \"append\"; }>>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; reactionNotifications: z.ZodOptional<z.ZodEnum<{ allowlist: \"allowlist\"; off: \"off\"; all: \"all\"; own: \"own\"; }>>; reactionAllowlist: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; replyToMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; replyToModeByChatType: z.ZodOptional<z.ZodObject<{ direct: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; group: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; channel: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; }, z.core.$strict>>; thread: z.ZodOptional<z.ZodObject<{ historyScope: z.ZodOptional<z.ZodEnum<{ channel: \"channel\"; thread: \"thread\"; }>>; inheritParent: z.ZodOptional<z.ZodBoolean>; initialHistoryLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; actions: z.ZodOptional<z.ZodObject<{ reactions: z.ZodOptional<z.ZodBoolean>; messages: z.ZodOptional<z.ZodBoolean>; pins: z.ZodOptional<z.ZodBoolean>; search: z.ZodOptional<z.ZodBoolean>; permissions: z.ZodOptional<z.ZodBoolean>; memberInfo: z.ZodOptional<z.ZodBoolean>; channelInfo: z.ZodOptional<z.ZodBoolean>; emojiList: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; slashCommand: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; name: z.ZodOptional<z.ZodString>; sessionPrefix: z.ZodOptional<z.ZodString>; ephemeral: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; dmPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; defaultTo: z.ZodOptional<z.ZodString>; dm: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; policy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; groupEnabled: z.ZodOptional<z.ZodBoolean>; groupChannels: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; replyToMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; }, z.core.$strict>>; channels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; allow: z.ZodOptional<z.ZodBoolean>; requireMention: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; allowBots: z.ZodOptional<z.ZodBoolean>; users: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; skills: z.ZodOptional<z.ZodArray<z.ZodString>>; systemPrompt: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; responsePrefix: z.ZodOptional<z.ZodString>; ackReaction: z.ZodOptional<z.ZodString>; typingReaction: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>>; defaultAccount: z.ZodOptional<z.ZodString>; }, z.core.$strict>;",
          "exportName": "SlackConfigSchema",
          "kind": "const",
          "source": {
            "line": 940,
            "path": "src/config/zod-schema.providers-core.ts"
          }
        },
        {
          "declaration": "export const TelegramConfigSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; capabilities: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodObject<{ inlineButtons: z.ZodOptional<z.ZodEnum<{ group: \"group\"; allowlist: \"allowlist\"; off: \"off\"; all: \"all\"; dm: \"dm\"; }>>; }, z.core.$strict>]>>; execApprovals: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; approvers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; agentFilter: z.ZodOptional<z.ZodArray<z.ZodString>>; sessionFilter: z.ZodOptional<z.ZodArray<z.ZodString>>; target: z.ZodOptional<z.ZodEnum<{ channel: \"channel\"; dm: \"dm\"; both: \"both\"; }>>; }, z.core.$strict>>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; enabled: z.ZodOptional<z.ZodBoolean>; commands: z.ZodOptional<z.ZodObject<{ native: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"auto\">]>>; nativeSkills: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"auto\">]>>; }, z.core.$strict>>; customCommands: z.ZodOptional<z.ZodArray<z.ZodObject<{ command: z.ZodString; description: z.ZodString; }, z.core.$strict>>>; configWrites: z.ZodOptional<z.ZodBoolean>; dmPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; botToken: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; tokenFile: z.ZodOptional<z.ZodString>; replyToMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; disableAudioPreflight: z.ZodOptional<z.ZodBoolean>; groupPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; skills: z.ZodOptional<z.ZodArray<z.ZodString>>; enabled: z.ZodOptional<z.ZodBoolean>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; systemPrompt: z.ZodOptional<z.ZodString>; topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; disableAudioPreflight: z.ZodOptional<z.ZodBoolean>; groupPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>; skills: z.ZodOptional<z.ZodArray<z.ZodString>>; enabled: z.ZodOptional<z.ZodBoolean>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; systemPrompt: z.ZodOptional<z.ZodString>; agentId: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>>; }, z.core.$strict>>>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; defaultTo: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>; groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; direct: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ dmPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; skills: z.ZodOptional<z.ZodArray<z.ZodString>>; enabled: z.ZodOptional<z.ZodBoolean>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; systemPrompt: z.ZodOptional<z.ZodString>; topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; disableAudioPreflight: z.ZodOptional<z.ZodBoolean>; groupPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>; skills: z.ZodOptional<z.ZodArray<z.ZodString>>; enabled: z.ZodOptional<z.ZodBoolean>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; systemPrompt: z.ZodOptional<z.ZodString>; agentId: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>>; requireTopic: z.ZodOptional<z.ZodBoolean>; autoTopicLabel: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; prompt: z.ZodOptional<z.ZodString>; }, z.core.$strict>]>>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; streaming: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{ off: \"off\"; partial: \"partial\"; block: \"block\"; progress: \"progress\"; }>]>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; draftChunk: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; breakPreference: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"paragraph\">, z.ZodLiteral<\"newline\">, z.ZodLiteral<\"sentence\">]>>; }, z.core.$strict>>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; streamMode: z.ZodOptional<z.ZodEnum<{ off: \"off\"; partial: \"partial\"; block: \"block\"; }>>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; timeoutSeconds: z.ZodOptional<z.ZodNumber>; retry: z.ZodOptional<z.ZodObject<{ attempts: z.ZodOptional<z.ZodNumber>; minDelayMs: z.ZodOptional<z.ZodNumber>; maxDelayMs: z.ZodOptional<z.ZodNumber>; jitter: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; network: z.ZodOptional<z.ZodObject<{ autoSelectFamily: z.ZodOptional<z.ZodBoolean>; dnsResultOrder: z.ZodOptional<z.ZodEnum<{ ipv4first: \"ipv4first\"; verbatim: \"verbatim\"; }>>; }, z.core.$strict>>; proxy: z.ZodOptional<z.ZodString>; webhookUrl: z.ZodOptional<z.ZodString>; webhookSecret: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; webhookPath: z.ZodOptional<z.ZodString>; webhookHost: z.ZodOptional<z.ZodString>; webhookPort: z.ZodOptional<z.ZodNumber>; webhookCertPath: z.ZodOptional<z.ZodString>; actions: z.ZodOptional<z.ZodObject<{ reactions: z.ZodOptional<z.ZodBoolean>; sendMessage: z.ZodOptional<z.ZodBoolean>; poll: z.ZodOptional<z.ZodBoolean>; deleteMessage: z.ZodOptional<z.ZodBoolean>; editMessage: z.ZodOptional<z.ZodBoolean>; sticker: z.ZodOptional<z.ZodBoolean>; createForumTopic: z.ZodOptional<z.ZodBoolean>; editForumTopic: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; threadBindings: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; idleHours: z.ZodOptional<z.ZodNumber>; maxAgeHours: z.ZodOptional<z.ZodNumber>; spawnSubagentSessions: z.ZodOptional<z.ZodBoolean>; spawnAcpSessions: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; reactionNotifications: z.ZodOptional<z.ZodEnum<{ off: \"off\"; all: \"all\"; own: \"own\"; }>>; reactionLevel: z.ZodOptional<z.ZodEnum<{ off: \"off\"; ack: \"ack\"; minimal: \"minimal\"; extensive: \"extensive\"; }>>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; linkPreview: z.ZodOptional<z.ZodBoolean>; silentErrorReplies: z.ZodOptional<z.ZodBoolean>; responsePrefix: z.ZodOptional<z.ZodString>; ackReaction: z.ZodOptional<z.ZodString>; apiRoot: z.ZodOptional<z.ZodString>; autoTopicLabel: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; prompt: z.ZodOptional<z.ZodString>; }, z.core.$strict>]>>; accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ name: z.ZodOptional<z.ZodString>; capabilities: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodObject<{ inlineButtons: z.ZodOptional<z.ZodEnum<{ group: \"group\"; allowlist: \"allowlist\"; off: \"off\"; all: \"all\"; dm: \"dm\"; }>>; }, z.core.$strict>]>>; execApprovals: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; approvers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; agentFilter: z.ZodOptional<z.ZodArray<z.ZodString>>; sessionFilter: z.ZodOptional<z.ZodArray<z.ZodString>>; target: z.ZodOptional<z.ZodEnum<{ channel: \"channel\"; dm: \"dm\"; both: \"both\"; }>>; }, z.core.$strict>>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; enabled: z.ZodOptional<z.ZodBoolean>; commands: z.ZodOptional<z.ZodObject<{ native: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"auto\">]>>; nativeSkills: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<\"auto\">]>>; }, z.core.$strict>>; customCommands: z.ZodOptional<z.ZodArray<z.ZodObject<{ command: z.ZodString; description: z.ZodString; }, z.core.$strict>>>; configWrites: z.ZodOptional<z.ZodBoolean>; dmPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; botToken: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; tokenFile: z.ZodOptional<z.ZodString>; replyToMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"off\">, z.ZodLiteral<\"first\">, z.ZodLiteral<\"all\">]>>; groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; disableAudioPreflight: z.ZodOptional<z.ZodBoolean>; groupPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; skills: z.ZodOptional<z.ZodArray<z.ZodString>>; enabled: z.ZodOptional<z.ZodBoolean>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; systemPrompt: z.ZodOptional<z.ZodString>; topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; disableAudioPreflight: z.ZodOptional<z.ZodBoolean>; groupPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>; skills: z.ZodOptional<z.ZodArray<z.ZodString>>; enabled: z.ZodOptional<z.ZodBoolean>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; systemPrompt: z.ZodOptional<z.ZodString>; agentId: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>>; }, z.core.$strict>>>>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; defaultTo: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>; groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; direct: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ dmPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; skills: z.ZodOptional<z.ZodArray<z.ZodString>>; enabled: z.ZodOptional<z.ZodBoolean>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; systemPrompt: z.ZodOptional<z.ZodString>; topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; disableAudioPreflight: z.ZodOptional<z.ZodBoolean>; groupPolicy: z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>; skills: z.ZodOptional<z.ZodArray<z.ZodString>>; enabled: z.ZodOptional<z.ZodBoolean>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>; systemPrompt: z.ZodOptional<z.ZodString>; agentId: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>>; requireTopic: z.ZodOptional<z.ZodBoolean>; autoTopicLabel: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; prompt: z.ZodOptional<z.ZodString>; }, z.core.$strict>]>>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; streaming: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{ off: \"off\"; partial: \"partial\"; block: \"block\"; progress: \"progress\"; }>]>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; draftChunk: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; breakPreference: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<\"paragraph\">, z.ZodLiteral<\"newline\">, z.ZodLiteral<\"sentence\">]>>; }, z.core.$strict>>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; streamMode: z.ZodOptional<z.ZodEnum<{ off: \"off\"; partial: \"partial\"; block: \"block\"; }>>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; timeoutSeconds: z.ZodOptional<z.ZodNumber>; retry: z.ZodOptional<z.ZodObject<{ attempts: z.ZodOptional<z.ZodNumber>; minDelayMs: z.ZodOptional<z.ZodNumber>; maxDelayMs: z.ZodOptional<z.ZodNumber>; jitter: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; network: z.ZodOptional<z.ZodObject<{ autoSelectFamily: z.ZodOptional<z.ZodBoolean>; dnsResultOrder: z.ZodOptional<z.ZodEnum<{ ipv4first: \"ipv4first\"; verbatim: \"verbatim\"; }>>; }, z.core.$strict>>; proxy: z.ZodOptional<z.ZodString>; webhookUrl: z.ZodOptional<z.ZodString>; webhookSecret: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{ source: z.ZodLiteral<\"env\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"file\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>, z.ZodObject<{ source: z.ZodLiteral<\"exec\">; provider: z.ZodString; id: z.ZodString; }, z.core.$strict>], \"source\">]>>; webhookPath: z.ZodOptional<z.ZodString>; webhookHost: z.ZodOptional<z.ZodString>; webhookPort: z.ZodOptional<z.ZodNumber>; webhookCertPath: z.ZodOptional<z.ZodString>; actions: z.ZodOptional<z.ZodObject<{ reactions: z.ZodOptional<z.ZodBoolean>; sendMessage: z.ZodOptional<z.ZodBoolean>; poll: z.ZodOptional<z.ZodBoolean>; deleteMessage: z.ZodOptional<z.ZodBoolean>; editMessage: z.ZodOptional<z.ZodBoolean>; sticker: z.ZodOptional<z.ZodBoolean>; createForumTopic: z.ZodOptional<z.ZodBoolean>; editForumTopic: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; threadBindings: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; idleHours: z.ZodOptional<z.ZodNumber>; maxAgeHours: z.ZodOptional<z.ZodNumber>; spawnSubagentSessions: z.ZodOptional<z.ZodBoolean>; spawnAcpSessions: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; reactionNotifications: z.ZodOptional<z.ZodEnum<{ off: \"off\"; all: \"all\"; own: \"own\"; }>>; reactionLevel: z.ZodOptional<z.ZodEnum<{ off: \"off\"; ack: \"ack\"; minimal: \"minimal\"; extensive: \"extensive\"; }>>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; linkPreview: z.ZodOptional<z.ZodBoolean>; silentErrorReplies: z.ZodOptional<z.ZodBoolean>; responsePrefix: z.ZodOptional<z.ZodString>; ackReaction: z.ZodOptional<z.ZodString>; apiRoot: z.ZodOptional<z.ZodString>; autoTopicLabel: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; prompt: z.ZodOptional<z.ZodString>; }, z.core.$strict>]>>; }, z.core.$strict>>>>; defaultAccount: z.ZodOptional<z.ZodString>; }, z.core.$strict>;",
          "exportName": "TelegramConfigSchema",
          "kind": "const",
          "source": {
            "line": 310,
            "path": "src/config/zod-schema.providers-core.ts"
          }
        },
        {
          "declaration": "export const ToolPolicySchema: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>;",
          "exportName": "ToolPolicySchema",
          "kind": "const",
          "source": {
            "line": 253,
            "path": "src/config/zod-schema.agent-runtime.ts"
          }
        },
        {
          "declaration": "export const WhatsAppConfigSchema: z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; configWrites: z.ZodOptional<z.ZodBoolean>; sendReadReceipts: z.ZodOptional<z.ZodBoolean>; messagePrefix: z.ZodOptional<z.ZodString>; responsePrefix: z.ZodOptional<z.ZodString>; dmPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; selfChatMode: z.ZodOptional<z.ZodBoolean>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodString>>; defaultTo: z.ZodOptional<z.ZodString>; groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodString>>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; }, z.core.$strict>>>>; ackReaction: z.ZodOptional<z.ZodObject<{ emoji: z.ZodOptional<z.ZodString>; direct: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; group: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ mentions: \"mentions\"; never: \"never\"; always: \"always\"; }>>>; }, z.core.$strict>>; debounceMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>; markdown: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodEnum<{ off: \"off\"; bullets: \"bullets\"; code: \"code\"; }>>; }, z.core.$strict>>; configWrites: z.ZodOptional<z.ZodBoolean>; sendReadReceipts: z.ZodOptional<z.ZodBoolean>; messagePrefix: z.ZodOptional<z.ZodString>; responsePrefix: z.ZodOptional<z.ZodString>; dmPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; selfChatMode: z.ZodOptional<z.ZodBoolean>; allowFrom: z.ZodOptional<z.ZodArray<z.ZodString>>; defaultTo: z.ZodOptional<z.ZodString>; groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodString>>; groupPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>>>; historyLimit: z.ZodOptional<z.ZodNumber>; dmHistoryLimit: z.ZodOptional<z.ZodNumber>; dms: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ historyLimit: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; textChunkLimit: z.ZodOptional<z.ZodNumber>; chunkMode: z.ZodOptional<z.ZodEnum<{ length: \"length\"; newline: \"newline\"; }>>; blockStreaming: z.ZodOptional<z.ZodBoolean>; blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{ minChars: z.ZodOptional<z.ZodNumber>; maxChars: z.ZodOptional<z.ZodNumber>; idleMs: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>; groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ requireMention: z.ZodOptional<z.ZodBoolean>; tools: z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>; toolsBySender: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodObject<{ allow: z.ZodOptional<z.ZodArray<z.ZodString>>; alsoAllow: z.ZodOptional<z.ZodArray<z.ZodString>>; deny: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>>; }, z.core.$strict>>>>; ackReaction: z.ZodOptional<z.ZodObject<{ emoji: z.ZodOptional<z.ZodString>; direct: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; group: z.ZodDefault<z.ZodOptional<z.ZodEnum<{ mentions: \"mentions\"; never: \"never\"; always: \"always\"; }>>>; }, z.core.$strict>>; debounceMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; heartbeat: z.ZodOptional<z.ZodObject<{ showOk: z.ZodOptional<z.ZodBoolean>; showAlerts: z.ZodOptional<z.ZodBoolean>; useIndicator: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; healthMonitor: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; name: z.ZodOptional<z.ZodString>; enabled: z.ZodOptional<z.ZodBoolean>; authDir: z.ZodOptional<z.ZodString>; mediaMaxMb: z.ZodOptional<z.ZodNumber>; }, z.core.$strict>>>>; defaultAccount: z.ZodOptional<z.ZodString>; mediaMaxMb: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; actions: z.ZodOptional<z.ZodObject<{ reactions: z.ZodOptional<z.ZodBoolean>; sendMessage: z.ZodOptional<z.ZodBoolean>; polls: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; }, z.core.$strict>;",
          "exportName": "WhatsAppConfigSchema",
          "kind": "const",
          "source": {
            "line": 119,
            "path": "src/config/zod-schema.providers-whatsapp.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/channel-config-schema",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/channel-config-schema.ts"
      }
    },
    {
      "category": "channel",
      "entrypoint": "channel-contract",
      "exports": [
        {
          "declaration": "export type BaseProbeResult = BaseProbeResult<TError>;",
          "exportName": "BaseProbeResult",
          "kind": "type",
          "source": {
            "line": 560,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type BaseTokenResolution = BaseTokenResolution;",
          "exportName": "BaseTokenResolution",
          "kind": "type",
          "source": {
            "line": 566,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelAccountSnapshot = ChannelAccountSnapshot;",
          "exportName": "ChannelAccountSnapshot",
          "kind": "type",
          "source": {
            "line": 145,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelAgentTool = ChannelAgentTool;",
          "exportName": "ChannelAgentTool",
          "kind": "type",
          "source": {
            "line": 18,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelCommandConversationContext = ChannelCommandConversationContext;",
          "exportName": "ChannelCommandConversationContext",
          "kind": "type",
          "source": {
            "line": 578,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelGroupContext = ChannelGroupContext;",
          "exportName": "ChannelGroupContext",
          "kind": "type",
          "source": {
            "line": 217,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionAdapter = ChannelMessageActionAdapter;",
          "exportName": "ChannelMessageActionAdapter",
          "kind": "type",
          "source": {
            "line": 517,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionContext = ChannelMessageActionContext;",
          "exportName": "ChannelMessageActionContext",
          "kind": "type",
          "source": {
            "line": 483,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionDiscoveryContext = ChannelMessageActionDiscoveryContext;",
          "exportName": "ChannelMessageActionDiscoveryContext",
          "kind": "type",
          "source": {
            "line": 31,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionName = \"send\" | \"broadcast\" | \"poll\" | \"poll-vote\" | \"react\" | \"reactions\" | \"read\" | \"edit\" | \"unsend\" | \"reply\" | \"sendWithEffect\" | \"renameGroup\" | \"setGroupIcon\" | \"addParticipant\" | \"removeParticipant\" | \"leaveGroup\" | \"sendAttachment\" | \"delete\" | \"pin\" | \"unpin\" | \"list-pins\" | \"permissions\" | \"thread-create\" | \"thread-list\" | \"thread-reply\" | \"search\" | \"sticker\" | \"sticker-search\" | \"member-info\" | \"role-info\" | \"emoji-list\" | \"emoji-upload\" | \"sticker-upload\" | \"role-add\" | \"role-remove\" | \"channel-info\" | \"channel-list\" | \"channel-create\" | \"channel-edit\" | \"channel-delete\" | \"channel-move\" | \"category-create\" | \"category-edit\" | \"category-delete\" | \"topic-create\" | \"topic-edit\" | \"voice-status\" | \"event-list\" | \"event-create\" | \"timeout\" | \"kick\" | \"ban\" | \"set-profile\" | \"set-presence\" | \"download-file\" | \"upload-file\";",
          "exportName": "ChannelMessageActionName",
          "kind": "type",
          "source": {
            "line": 6,
            "path": "src/channels/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageToolDiscovery = ChannelMessageToolDiscovery;",
          "exportName": "ChannelMessageToolDiscovery",
          "kind": "type",
          "source": {
            "line": 56,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageToolSchemaContribution = ChannelMessageToolSchemaContribution;",
          "exportName": "ChannelMessageToolSchemaContribution",
          "kind": "type",
          "source": {
            "line": 51,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelStatusIssue = ChannelStatusIssue;",
          "exportName": "ChannelStatusIssue",
          "kind": "type",
          "source": {
            "line": 100,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelThreadingContext = ChannelThreadingContext;",
          "exportName": "ChannelThreadingContext",
          "kind": "type",
          "source": {
            "line": 366,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelThreadingToolContext = ChannelThreadingToolContext;",
          "exportName": "ChannelThreadingToolContext",
          "kind": "type",
          "source": {
            "line": 380,
            "path": "src/channels/plugins/types.core.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/channel-contract",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/channel-contract.ts"
      }
    },
    {
      "category": "channel",
      "entrypoint": "channel-pairing",
      "exports": [
        {
          "declaration": "export function createChannelPairingChallengeIssuer(params: { channel: ChannelId; upsertPairingRequest: (params: { id: string; meta?: PairingMeta | undefined; }) => Promise<{ code: string; created: boolean; }>; }): (challenge: Omit<...>) => Promise<...>;",
          "exportName": "createChannelPairingChallengeIssuer",
          "kind": "function",
          "source": {
            "line": 21,
            "path": "src/plugin-sdk/channel-pairing.ts"
          }
        },
        {
          "declaration": "export function createChannelPairingController(params: { core: PluginRuntime; channel: ChannelId; accountId: string; }): ChannelPairingController;",
          "exportName": "createChannelPairingController",
          "kind": "function",
          "source": {
            "line": 39,
            "path": "src/plugin-sdk/channel-pairing.ts"
          }
        },
        {
          "declaration": "export function createLoggedPairingApprovalNotifier(format: string | ((params: { cfg: OpenClawConfig; id: string; accountId?: string | undefined; runtime?: RuntimeEnv | undefined; }) => string), log?: (message: string) => void): (params: { ...; }) => Promise<...>;",
          "exportName": "createLoggedPairingApprovalNotifier",
          "kind": "function",
          "source": {
            "line": 12,
            "path": "src/channels/plugins/pairing-adapters.ts"
          }
        },
        {
          "declaration": "export function createPairingPrefixStripper(prefixRe: RegExp, map?: (entry: string) => string): (entry: string) => string;",
          "exportName": "createPairingPrefixStripper",
          "kind": "function",
          "source": {
            "line": 5,
            "path": "src/channels/plugins/pairing-adapters.ts"
          }
        },
        {
          "declaration": "export function createTextPairingAdapter(params: { idLabel: string; message: string; normalizeAllowEntry?: ((entry: string) => string) | undefined; notify: (params: { cfg: OpenClawConfig; id: string; accountId?: string | undefined; runtime?: RuntimeEnv | undefined; } & { ...; }) => void | Promise<...>; }): ChannelPairingAdapter;",
          "exportName": "createTextPairingAdapter",
          "kind": "function",
          "source": {
            "line": 21,
            "path": "src/channels/plugins/pairing-adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelPairingController = ChannelPairingController;",
          "exportName": "ChannelPairingController",
          "kind": "type",
          "source": {
            "line": 14,
            "path": "src/plugin-sdk/channel-pairing.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/channel-pairing",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/channel-pairing.ts"
      }
    },
    {
      "category": "channel",
      "entrypoint": "channel-reply-pipeline",
      "exports": [
        {
          "declaration": "export function createChannelReplyPipeline(params: { cfg: OpenClawConfig; agentId: string; channel?: string | undefined; accountId?: string | undefined; typing?: CreateTypingCallbacksParams | undefined; typingCallbacks?: TypingCallbacks | undefined; }): ChannelReplyPipeline;",
          "exportName": "createChannelReplyPipeline",
          "kind": "function",
          "source": {
            "line": 20,
            "path": "src/plugin-sdk/channel-reply-pipeline.ts"
          }
        },
        {
          "declaration": "export type ChannelReplyPipeline = ChannelReplyPipeline;",
          "exportName": "ChannelReplyPipeline",
          "kind": "type",
          "source": {
            "line": 16,
            "path": "src/plugin-sdk/channel-reply-pipeline.ts"
          }
        },
        {
          "declaration": "export type CreateTypingCallbacksParams = CreateTypingCallbacksParams;",
          "exportName": "CreateTypingCallbacksParams",
          "kind": "type",
          "source": {
            "line": 11,
            "path": "src/channels/typing.ts"
          }
        },
        {
          "declaration": "export type ReplyPrefixContext = import(\"../auto-reply/reply/response-prefix-template.ts\").ResponsePrefixContext;",
          "exportName": "ReplyPrefixContext",
          "kind": "type",
          "source": {
            "line": 12,
            "path": "src/plugin-sdk/channel-reply-pipeline.ts"
          }
        },
        {
          "declaration": "export type ReplyPrefixContextBundle = ReplyPrefixContextBundle;",
          "exportName": "ReplyPrefixContextBundle",
          "kind": "type",
          "source": {
            "line": 12,
            "path": "src/channels/reply-prefix.ts"
          }
        },
        {
          "declaration": "export type ReplyPrefixOptions = ReplyPrefixOptions;",
          "exportName": "ReplyPrefixOptions",
          "kind": "type",
          "source": {
            "line": 20,
            "path": "src/channels/reply-prefix.ts"
          }
        },
        {
          "declaration": "export type TypingCallbacks = TypingCallbacks;",
          "exportName": "TypingCallbacks",
          "kind": "type",
          "source": {
            "line": 4,
            "path": "src/channels/typing.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/channel-reply-pipeline",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/channel-reply-pipeline.ts"
      }
    },
    {
      "category": "legacy",
      "entrypoint": "channel-runtime",
      "exports": [
        {
          "declaration": "export function createAccountStatusSink(params: { accountId: string; setStatus: (next: ChannelAccountSnapshot) => void; }): (patch: Omit<ChannelAccountSnapshot, \"accountId\">) => void;",
          "exportName": "createAccountStatusSink",
          "kind": "function",
          "source": {
            "line": 23,
            "path": "src/plugin-sdk/channel-lifecycle.ts"
          }
        },
        {
          "declaration": "export function createReplyPrefixContext(params: { cfg: OpenClawConfig; agentId: string; channel?: string | undefined; accountId?: string | undefined; }): ReplyPrefixContextBundle;",
          "exportName": "createReplyPrefixContext",
          "kind": "function",
          "source": {
            "line": 28,
            "path": "src/channels/reply-prefix.ts"
          }
        },
        {
          "declaration": "export function createReplyPrefixOptions(params: { cfg: OpenClawConfig; agentId: string; channel?: string | undefined; accountId?: string | undefined; }): ReplyPrefixOptions;",
          "exportName": "createReplyPrefixOptions",
          "kind": "function",
          "source": {
            "line": 64,
            "path": "src/channels/reply-prefix.ts"
          }
        },
        {
          "declaration": "export function createTypingCallbacks(params: CreateTypingCallbacksParams): TypingCallbacks;",
          "exportName": "createTypingCallbacks",
          "kind": "function",
          "source": {
            "line": 23,
            "path": "src/channels/typing.ts"
          }
        },
        {
          "declaration": "export function emitHeartbeatEvent(evt: Omit<HeartbeatEventPayload, \"ts\">): void;",
          "exportName": "emitHeartbeatEvent",
          "kind": "function",
          "source": {
            "line": 51,
            "path": "src/infra/heartbeat-events.ts"
          }
        },
        {
          "declaration": "export function enqueueSystemEvent(text: string, options: SystemEventOptions): boolean;",
          "exportName": "enqueueSystemEvent",
          "kind": "function",
          "source": {
            "line": 91,
            "path": "src/infra/system-events.ts"
          }
        },
        {
          "declaration": "export function getLastHeartbeatEvent(): HeartbeatEventPayload | null;",
          "exportName": "getLastHeartbeatEvent",
          "kind": "function",
          "source": {
            "line": 61,
            "path": "src/infra/heartbeat-events.ts"
          }
        },
        {
          "declaration": "export function isWhatsAppGroupJid(value: string): boolean;",
          "exportName": "isWhatsAppGroupJid",
          "kind": "function",
          "source": {
            "line": 17,
            "path": "extensions/whatsapp/src/normalize-target.ts"
          }
        },
        {
          "declaration": "export function isWhatsAppUserTarget(value: string): boolean;",
          "exportName": "isWhatsAppUserTarget",
          "kind": "function",
          "source": {
            "line": 30,
            "path": "extensions/whatsapp/src/normalize-target.ts"
          }
        },
        {
          "declaration": "export function keepHttpServerTaskAlive(params: { server: CloseAwareServer; abortSignal?: AbortSignal | undefined; onAbort?: (() => void | Promise<void>) | undefined; }): Promise<void>;",
          "exportName": "keepHttpServerTaskAlive",
          "kind": "function",
          "source": {
            "line": 79,
            "path": "src/plugin-sdk/channel-lifecycle.ts"
          }
        },
        {
          "declaration": "export function looksLikeSignalTargetId(raw: string, normalized?: string | undefined): boolean;",
          "exportName": "looksLikeSignalTargetId",
          "kind": "function",
          "source": {
            "line": 38,
            "path": "src/channels/plugins/normalize/signal.ts"
          }
        },
        {
          "declaration": "export function looksLikeWhatsAppTargetId(raw: string): boolean;",
          "exportName": "looksLikeWhatsAppTargetId",
          "kind": "function",
          "source": {
            "line": 20,
            "path": "src/channels/plugins/normalize/whatsapp.ts"
          }
        },
        {
          "declaration": "export function normalizeChannelId(raw?: string | null | undefined): ChannelId | null;",
          "exportName": "normalizeChannelId",
          "kind": "function",
          "source": {
            "line": 80,
            "path": "src/channels/plugins/registry.ts"
          }
        },
        {
          "declaration": "export function normalizeChatType(raw?: string | undefined): ChatType | undefined;",
          "exportName": "normalizeChatType",
          "kind": "function",
          "source": {
            "line": 3,
            "path": "src/channels/chat-type.ts"
          }
        },
        {
          "declaration": "export function normalizePollDurationHours(value: number | undefined, options: { defaultHours: number; maxHours: number; }): number;",
          "exportName": "normalizePollDurationHours",
          "kind": "function",
          "source": {
            "line": 93,
            "path": "src/polls.ts"
          }
        },
        {
          "declaration": "export function normalizePollInput(input: PollInput, options?: NormalizePollOptions): NormalizedPollInput;",
          "exportName": "normalizePollInput",
          "kind": "function",
          "source": {
            "line": 36,
            "path": "src/polls.ts"
          }
        },
        {
          "declaration": "export function normalizeSignalMessagingTarget(raw: string): string | undefined;",
          "exportName": "normalizeSignalMessagingTarget",
          "kind": "function",
          "source": {
            "line": 1,
            "path": "src/channels/plugins/normalize/signal.ts"
          }
        },
        {
          "declaration": "export function normalizeWhatsAppAllowFromEntries(allowFrom: (string | number)[]): string[];",
          "exportName": "normalizeWhatsAppAllowFromEntries",
          "kind": "function",
          "source": {
            "line": 12,
            "path": "src/channels/plugins/normalize/whatsapp.ts"
          }
        },
        {
          "declaration": "export function normalizeWhatsAppMessagingTarget(raw: string): string | undefined;",
          "exportName": "normalizeWhatsAppMessagingTarget",
          "kind": "function",
          "source": {
            "line": 4,
            "path": "src/channels/plugins/normalize/whatsapp.ts"
          }
        },
        {
          "declaration": "export function normalizeWhatsAppTarget(value: string): string | null;",
          "exportName": "normalizeWhatsAppTarget",
          "kind": "function",
          "source": {
            "line": 47,
            "path": "extensions/whatsapp/src/normalize-target.ts"
          }
        },
        {
          "declaration": "export function onHeartbeatEvent(listener: (evt: HeartbeatEventPayload) => void): () => void;",
          "exportName": "onHeartbeatEvent",
          "kind": "function",
          "source": {
            "line": 57,
            "path": "src/infra/heartbeat-events.ts"
          }
        },
        {
          "declaration": "export function recordChannelActivity(params: { channel: ChannelId; accountId?: string | null | undefined; direction: ChannelDirection; at?: number | undefined; }): void;",
          "exportName": "recordChannelActivity",
          "kind": "function",
          "source": {
            "line": 26,
            "path": "src/infra/channel-activity.ts"
          }
        },
        {
          "declaration": "export function reduceInteractiveReply<TState>(interactive: InteractiveReply | undefined, initialState: TState, reduce: (state: TState, block: InteractiveReplyBlock, index: number) => TState): TState;",
          "exportName": "reduceInteractiveReply",
          "kind": "function",
          "source": {
            "line": 3,
            "path": "src/channels/plugins/outbound/interactive.ts"
          }
        },
        {
          "declaration": "export function resetHeartbeatEventsForTest(): void;",
          "exportName": "resetHeartbeatEventsForTest",
          "kind": "function",
          "source": {
            "line": 65,
            "path": "src/infra/heartbeat-events.ts"
          }
        },
        {
          "declaration": "export function resetSystemEventsForTest(): void;",
          "exportName": "resetSystemEventsForTest",
          "kind": "function",
          "source": {
            "line": 157,
            "path": "src/infra/system-events.ts"
          }
        },
        {
          "declaration": "export function resolveHeartbeatVisibility(params: { cfg: OpenClawConfig; channel: GatewayMessageChannel; accountId?: string | undefined; }): ResolvedHeartbeatVisibility;",
          "exportName": "resolveHeartbeatVisibility",
          "kind": "function",
          "source": {
            "line": 22,
            "path": "src/infra/heartbeat-visibility.ts"
          }
        },
        {
          "declaration": "export function resolveIndicatorType(status: \"sent\" | \"ok-empty\" | \"ok-token\" | \"skipped\" | \"failed\"): HeartbeatIndicatorType | undefined;",
          "exportName": "resolveIndicatorType",
          "kind": "function",
          "source": {
            "line": 23,
            "path": "src/infra/heartbeat-events.ts"
          }
        },
        {
          "declaration": "export function resolvePollMaxSelections(optionCount: number, allowMultiselect: boolean | undefined): number;",
          "exportName": "resolvePollMaxSelections",
          "kind": "function",
          "source": {
            "line": 29,
            "path": "src/polls.ts"
          }
        },
        {
          "declaration": "export function resolveWhatsAppHeartbeatRecipients(cfg: OpenClawConfig, opts?: HeartbeatRecipientsOpts): HeartbeatRecipientsResult;",
          "exportName": "resolveWhatsAppHeartbeatRecipients",
          "kind": "function",
          "source": {
            "line": 48,
            "path": "src/channels/plugins/whatsapp-heartbeat.ts"
          }
        },
        {
          "declaration": "export function waitForTransportReady(params: WaitForTransportReadyParams): Promise<void>;",
          "exportName": "waitForTransportReady",
          "kind": "function",
          "source": {
            "line": 21,
            "path": "src/infra/transport-ready.ts"
          }
        },
        {
          "declaration": "export function waitUntilAbort(signal?: AbortSignal | undefined, onAbort?: (() => void | Promise<void>) | undefined): Promise<void>;",
          "exportName": "waitUntilAbort",
          "kind": "function",
          "source": {
            "line": 38,
            "path": "src/plugin-sdk/channel-lifecycle.ts"
          }
        },
        {
          "declaration": "export const CHANNEL_MESSAGE_ACTION_NAMES: readonly [\"send\", \"broadcast\", \"poll\", \"poll-vote\", \"react\", \"reactions\", \"read\", \"edit\", \"unsend\", \"reply\", \"sendWithEffect\", \"renameGroup\", \"setGroupIcon\", \"addParticipant\", \"removeParticipant\", \"leaveGroup\", \"sendAttachment\", \"delete\", \"pin\", \"unpin\", \"list-pins\", \"permissions\", \"thread-create\", \"thread-list\", \"thread-reply\", \"search\", \"sticker\", \"sticker-search\", \"member-info\", \"role-info\", \"emoji-list\", \"emoji-upload\", \"sticker-upload\", \"role-add\", \"role-remove\", \"channel-info\", \"channel-list\", \"channel-create\", \"channel-edit\", \"channel-delete\", \"channel-move\", \"category-create\", \"category-edit\", \"category-delete\", \"topic-create\", \"topic-edit\", \"voice-status\", \"event-list\", \"event-create\", \"timeout\", \"kick\", \"ban\", \"set-profile\", \"set-presence\", \"set-profile\", \"download-file\", \"upload-file\"];",
          "exportName": "CHANNEL_MESSAGE_ACTION_NAMES",
          "kind": "const",
          "source": {
            "line": 1,
            "path": "src/channels/plugins/message-action-names.ts"
          }
        },
        {
          "declaration": "export const CHANNEL_MESSAGE_CAPABILITIES: readonly [\"interactive\", \"buttons\", \"cards\", \"components\", \"blocks\"];",
          "exportName": "CHANNEL_MESSAGE_CAPABILITIES",
          "kind": "const",
          "source": {
            "line": 1,
            "path": "src/channels/plugins/message-capabilities.ts"
          }
        },
        {
          "declaration": "export type BaseProbeResult = BaseProbeResult<TError>;",
          "exportName": "BaseProbeResult",
          "kind": "type",
          "source": {
            "line": 560,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type BaseTokenResolution = BaseTokenResolution;",
          "exportName": "BaseTokenResolution",
          "kind": "type",
          "source": {
            "line": 566,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelAccountSnapshot = ChannelAccountSnapshot;",
          "exportName": "ChannelAccountSnapshot",
          "kind": "type",
          "source": {
            "line": 145,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelAccountState = ChannelAccountState;",
          "exportName": "ChannelAccountState",
          "kind": "type",
          "source": {
            "line": 108,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelAgentPromptAdapter = ChannelAgentPromptAdapter;",
          "exportName": "ChannelAgentPromptAdapter",
          "kind": "type",
          "source": {
            "line": 464,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelAgentTool = ChannelAgentTool;",
          "exportName": "ChannelAgentTool",
          "kind": "type",
          "source": {
            "line": 18,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelAgentToolFactory = ChannelAgentToolFactory;",
          "exportName": "ChannelAgentToolFactory",
          "kind": "type",
          "source": {
            "line": 23,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelAllowlistAdapter = ChannelAllowlistAdapter;",
          "exportName": "ChannelAllowlistAdapter",
          "kind": "type",
          "source": {
            "line": 513,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelAuthAdapter = ChannelAuthAdapter;",
          "exportName": "ChannelAuthAdapter",
          "kind": "type",
          "source": {
            "line": 367,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelCapabilities = ChannelCapabilities;",
          "exportName": "ChannelCapabilities",
          "kind": "type",
          "source": {
            "line": 231,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelCapabilitiesDiagnostics = ChannelCapabilitiesDiagnostics;",
          "exportName": "ChannelCapabilitiesDiagnostics",
          "kind": "type",
          "source": {
            "line": 51,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelCapabilitiesDisplayLine = ChannelCapabilitiesDisplayLine;",
          "exportName": "ChannelCapabilitiesDisplayLine",
          "kind": "type",
          "source": {
            "line": 46,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelCapabilitiesDisplayTone = ChannelCapabilitiesDisplayTone;",
          "exportName": "ChannelCapabilitiesDisplayTone",
          "kind": "type",
          "source": {
            "line": 44,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelCommandAdapter = ChannelCommandAdapter;",
          "exportName": "ChannelCommandAdapter",
          "kind": "type",
          "source": {
            "line": 449,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelCommandConversationContext = ChannelCommandConversationContext;",
          "exportName": "ChannelCommandConversationContext",
          "kind": "type",
          "source": {
            "line": 578,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelConfigAdapter = ChannelConfigAdapter<ResolvedAccount>;",
          "exportName": "ChannelConfigAdapter",
          "kind": "type",
          "source": {
            "line": 95,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelConfiguredBindingConversationRef = ChannelConfiguredBindingConversationRef;",
          "exportName": "ChannelConfiguredBindingConversationRef",
          "kind": "type",
          "source": {
            "line": 569,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelConfiguredBindingMatch = ChannelConfiguredBindingMatch;",
          "exportName": "ChannelConfiguredBindingMatch",
          "kind": "type",
          "source": {
            "line": 574,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelConfiguredBindingProvider = ChannelConfiguredBindingProvider;",
          "exportName": "ChannelConfiguredBindingProvider",
          "kind": "type",
          "source": {
            "line": 590,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelDirectoryAdapter = ChannelDirectoryAdapter;",
          "exportName": "ChannelDirectoryAdapter",
          "kind": "type",
          "source": {
            "line": 411,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelDirectoryEntry = ChannelDirectoryEntry;",
          "exportName": "ChannelDirectoryEntry",
          "kind": "type",
          "source": {
            "line": 470,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelDirectoryEntryKind = ChannelDirectoryEntryKind;",
          "exportName": "ChannelDirectoryEntryKind",
          "kind": "type",
          "source": {
            "line": 468,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelElevatedAdapter = ChannelElevatedAdapter;",
          "exportName": "ChannelElevatedAdapter",
          "kind": "type",
          "source": {
            "line": 442,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelExecApprovalAdapter = ChannelExecApprovalAdapter;",
          "exportName": "ChannelExecApprovalAdapter",
          "kind": "type",
          "source": {
            "line": 468,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelExecApprovalForwardTarget = ChannelExecApprovalForwardTarget;",
          "exportName": "ChannelExecApprovalForwardTarget",
          "kind": "type",
          "source": {
            "line": 36,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelExecApprovalInitiatingSurfaceState = ChannelExecApprovalInitiatingSurfaceState;",
          "exportName": "ChannelExecApprovalInitiatingSurfaceState",
          "kind": "type",
          "source": {
            "line": 31,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelGatewayAdapter = ChannelGatewayAdapter<ResolvedAccount>;",
          "exportName": "ChannelGatewayAdapter",
          "kind": "type",
          "source": {
            "line": 351,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelGatewayContext = ChannelGatewayContext<ResolvedAccount>;",
          "exportName": "ChannelGatewayContext",
          "kind": "type",
          "source": {
            "line": 243,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelGroupAdapter = ChannelGroupAdapter;",
          "exportName": "ChannelGroupAdapter",
          "kind": "type",
          "source": {
            "line": 126,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelGroupContext = ChannelGroupContext;",
          "exportName": "ChannelGroupContext",
          "kind": "type",
          "source": {
            "line": 217,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelHeartbeatAdapter = ChannelHeartbeatAdapter;",
          "exportName": "ChannelHeartbeatAdapter",
          "kind": "type",
          "source": {
            "line": 377,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelHeartbeatDeps = ChannelHeartbeatDeps;",
          "exportName": "ChannelHeartbeatDeps",
          "kind": "type",
          "source": {
            "line": 116,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelId = ChannelId;",
          "exportName": "ChannelId",
          "kind": "type",
          "source": {
            "line": 13,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelLifecycleAdapter = ChannelLifecycleAdapter;",
          "exportName": "ChannelLifecycleAdapter",
          "kind": "type",
          "source": {
            "line": 454,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelLoginWithQrStartResult = ChannelLoginWithQrStartResult;",
          "exportName": "ChannelLoginWithQrStartResult",
          "kind": "type",
          "source": {
            "line": 322,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelLoginWithQrWaitResult = ChannelLoginWithQrWaitResult;",
          "exportName": "ChannelLoginWithQrWaitResult",
          "kind": "type",
          "source": {
            "line": 327,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelLogoutContext = ChannelLogoutContext<ResolvedAccount>;",
          "exportName": "ChannelLogoutContext",
          "kind": "type",
          "source": {
            "line": 332,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelLogoutResult = ChannelLogoutResult;",
          "exportName": "ChannelLogoutResult",
          "kind": "type",
          "source": {
            "line": 316,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelLogSink = ChannelLogSink;",
          "exportName": "ChannelLogSink",
          "kind": "type",
          "source": {
            "line": 210,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMentionAdapter = ChannelMentionAdapter;",
          "exportName": "ChannelMentionAdapter",
          "kind": "type",
          "source": {
            "line": 261,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionAdapter = ChannelMessageActionAdapter;",
          "exportName": "ChannelMessageActionAdapter",
          "kind": "type",
          "source": {
            "line": 517,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionContext = ChannelMessageActionContext;",
          "exportName": "ChannelMessageActionContext",
          "kind": "type",
          "source": {
            "line": 483,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionDiscoveryContext = ChannelMessageActionDiscoveryContext;",
          "exportName": "ChannelMessageActionDiscoveryContext",
          "kind": "type",
          "source": {
            "line": 31,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionName = \"send\" | \"broadcast\" | \"poll\" | \"poll-vote\" | \"react\" | \"reactions\" | \"read\" | \"edit\" | \"unsend\" | \"reply\" | \"sendWithEffect\" | \"renameGroup\" | \"setGroupIcon\" | \"addParticipant\" | \"removeParticipant\" | \"leaveGroup\" | \"sendAttachment\" | \"delete\" | \"pin\" | \"unpin\" | \"list-pins\" | \"permissions\" | \"thread-create\" | \"thread-list\" | \"thread-reply\" | \"search\" | \"sticker\" | \"sticker-search\" | \"member-info\" | \"role-info\" | \"emoji-list\" | \"emoji-upload\" | \"sticker-upload\" | \"role-add\" | \"role-remove\" | \"channel-info\" | \"channel-list\" | \"channel-create\" | \"channel-edit\" | \"channel-delete\" | \"channel-move\" | \"category-create\" | \"category-edit\" | \"category-delete\" | \"topic-create\" | \"topic-edit\" | \"voice-status\" | \"event-list\" | \"event-create\" | \"timeout\" | \"kick\" | \"ban\" | \"set-profile\" | \"set-presence\" | \"download-file\" | \"upload-file\";",
          "exportName": "ChannelMessageActionName",
          "kind": "type",
          "source": {
            "line": 6,
            "path": "src/channels/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageCapability = \"interactive\" | \"buttons\" | \"cards\" | \"components\" | \"blocks\";",
          "exportName": "ChannelMessageCapability",
          "kind": "type",
          "source": {
            "line": 9,
            "path": "src/channels/plugins/message-capabilities.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageToolDiscovery = ChannelMessageToolDiscovery;",
          "exportName": "ChannelMessageToolDiscovery",
          "kind": "type",
          "source": {
            "line": 56,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageToolSchemaContribution = ChannelMessageToolSchemaContribution;",
          "exportName": "ChannelMessageToolSchemaContribution",
          "kind": "type",
          "source": {
            "line": 51,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessagingAdapter = ChannelMessagingAdapter;",
          "exportName": "ChannelMessagingAdapter",
          "kind": "type",
          "source": {
            "line": 396,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMeta = ChannelMeta;",
          "exportName": "ChannelMeta",
          "kind": "type",
          "source": {
            "line": 122,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelOutboundAdapter = ChannelOutboundAdapter;",
          "exportName": "ChannelOutboundAdapter",
          "kind": "type",
          "source": {
            "line": 159,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelOutboundContext = ChannelOutboundContext;",
          "exportName": "ChannelOutboundContext",
          "kind": "type",
          "source": {
            "line": 132,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelOutboundTargetMode = ChannelOutboundTargetMode;",
          "exportName": "ChannelOutboundTargetMode",
          "kind": "type",
          "source": {
            "line": 15,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelPairingAdapter = ChannelPairingAdapter;",
          "exportName": "ChannelPairingAdapter",
          "kind": "type",
          "source": {
            "line": 340,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelPlugin = ChannelPlugin<ResolvedAccount, Probe, Audit>;",
          "exportName": "ChannelPlugin",
          "kind": "type",
          "source": {
            "line": 77,
            "path": "src/channels/plugins/types.plugin.ts"
          }
        },
        {
          "declaration": "export type ChannelPollContext = ChannelPollContext;",
          "exportName": "ChannelPollContext",
          "kind": "type",
          "source": {
            "line": 548,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelPollResult = ChannelPollResult;",
          "exportName": "ChannelPollResult",
          "kind": "type",
          "source": {
            "line": 539,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelResolveKind = ChannelResolveKind;",
          "exportName": "ChannelResolveKind",
          "kind": "type",
          "source": {
            "line": 422,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelResolverAdapter = ChannelResolverAdapter;",
          "exportName": "ChannelResolverAdapter",
          "kind": "type",
          "source": {
            "line": 432,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelResolveResult = ChannelResolveResult;",
          "exportName": "ChannelResolveResult",
          "kind": "type",
          "source": {
            "line": 424,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelSecurityAdapter = ChannelSecurityAdapter<ResolvedAccount>;",
          "exportName": "ChannelSecurityAdapter",
          "kind": "type",
          "source": {
            "line": 610,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelSecurityContext = ChannelSecurityContext<ResolvedAccount>;",
          "exportName": "ChannelSecurityContext",
          "kind": "type",
          "source": {
            "line": 255,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelSecurityDmPolicy = ChannelSecurityDmPolicy;",
          "exportName": "ChannelSecurityDmPolicy",
          "kind": "type",
          "source": {
            "line": 246,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelSetupAdapter = ChannelSetupAdapter;",
          "exportName": "ChannelSetupAdapter",
          "kind": "type",
          "source": {
            "line": 60,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelSetupInput = ChannelSetupInput;",
          "exportName": "ChannelSetupInput",
          "kind": "type",
          "source": {
            "line": 63,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelStatusAdapter = ChannelStatusAdapter<ResolvedAccount, Probe, Audit>;",
          "exportName": "ChannelStatusAdapter",
          "kind": "type",
          "source": {
            "line": 189,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelStatusIssue = ChannelStatusIssue;",
          "exportName": "ChannelStatusIssue",
          "kind": "type",
          "source": {
            "line": 100,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelStreamingAdapter = ChannelStreamingAdapter;",
          "exportName": "ChannelStreamingAdapter",
          "kind": "type",
          "source": {
            "line": 280,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelStructuredComponents = ChannelStructuredComponents;",
          "exportName": "ChannelStructuredComponents",
          "kind": "type",
          "source": {
            "line": 289,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelThreadingAdapter = ChannelThreadingAdapter;",
          "exportName": "ChannelThreadingAdapter",
          "kind": "type",
          "source": {
            "line": 323,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelThreadingContext = ChannelThreadingContext;",
          "exportName": "ChannelThreadingContext",
          "kind": "type",
          "source": {
            "line": 366,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelThreadingToolContext = ChannelThreadingToolContext;",
          "exportName": "ChannelThreadingToolContext",
          "kind": "type",
          "source": {
            "line": 380,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelToolSend = ChannelToolSend;",
          "exportName": "ChannelToolSend",
          "kind": "type",
          "source": {
            "line": 510,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChatType = ChatType;",
          "exportName": "ChatType",
          "kind": "type",
          "source": {
            "line": 1,
            "path": "src/channels/chat-type.ts"
          }
        },
        {
          "declaration": "export type CreateTypingCallbacksParams = CreateTypingCallbacksParams;",
          "exportName": "CreateTypingCallbacksParams",
          "kind": "type",
          "source": {
            "line": 11,
            "path": "src/channels/typing.ts"
          }
        },
        {
          "declaration": "export type HeartbeatEventPayload = HeartbeatEventPayload;",
          "exportName": "HeartbeatEventPayload",
          "kind": "type",
          "source": {
            "line": 6,
            "path": "src/infra/heartbeat-events.ts"
          }
        },
        {
          "declaration": "export type HeartbeatIndicatorType = HeartbeatIndicatorType;",
          "exportName": "HeartbeatIndicatorType",
          "kind": "type",
          "source": {
            "line": 4,
            "path": "src/infra/heartbeat-events.ts"
          }
        },
        {
          "declaration": "export type NormalizedPollInput = NormalizedPollInput;",
          "exportName": "NormalizedPollInput",
          "kind": "type",
          "source": {
            "line": 17,
            "path": "src/polls.ts"
          }
        },
        {
          "declaration": "export type PollInput = PollInput;",
          "exportName": "PollInput",
          "kind": "type",
          "source": {
            "line": 1,
            "path": "src/polls.ts"
          }
        },
        {
          "declaration": "export type ReplyPrefixContextBundle = ReplyPrefixContextBundle;",
          "exportName": "ReplyPrefixContextBundle",
          "kind": "type",
          "source": {
            "line": 12,
            "path": "src/channels/reply-prefix.ts"
          }
        },
        {
          "declaration": "export type ReplyPrefixOptions = ReplyPrefixOptions;",
          "exportName": "ReplyPrefixOptions",
          "kind": "type",
          "source": {
            "line": 20,
            "path": "src/channels/reply-prefix.ts"
          }
        },
        {
          "declaration": "export type ResolvedHeartbeatVisibility = ResolvedHeartbeatVisibility;",
          "exportName": "ResolvedHeartbeatVisibility",
          "kind": "type",
          "source": {
            "line": 5,
            "path": "src/infra/heartbeat-visibility.ts"
          }
        },
        {
          "declaration": "export type TransportReadyResult = TransportReadyResult;",
          "exportName": "TransportReadyResult",
          "kind": "type",
          "source": {
            "line": 5,
            "path": "src/infra/transport-ready.ts"
          }
        },
        {
          "declaration": "export type TypingCallbacks = TypingCallbacks;",
          "exportName": "TypingCallbacks",
          "kind": "type",
          "source": {
            "line": 4,
            "path": "src/channels/typing.ts"
          }
        },
        {
          "declaration": "export type WaitForTransportReadyParams = WaitForTransportReadyParams;",
          "exportName": "WaitForTransportReadyParams",
          "kind": "type",
          "source": {
            "line": 10,
            "path": "src/infra/transport-ready.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/channel-runtime",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/channel-runtime.ts"
      }
    },
    {
      "category": "channel",
      "entrypoint": "channel-setup",
      "exports": [
        {
          "declaration": "export function createOptionalChannelSetupAdapter(params: OptionalChannelSetupParams): ChannelSetupAdapter;",
          "exportName": "createOptionalChannelSetupAdapter",
          "kind": "function",
          "source": {
            "line": 22,
            "path": "src/plugin-sdk/optional-channel-setup.ts"
          }
        },
        {
          "declaration": "export function createOptionalChannelSetupSurface(params: OptionalChannelSetupParams): OptionalChannelSetupSurface;",
          "exportName": "createOptionalChannelSetupSurface",
          "kind": "function",
          "source": {
            "line": 40,
            "path": "src/plugin-sdk/channel-setup.ts"
          }
        },
        {
          "declaration": "export function createOptionalChannelSetupWizard(params: OptionalChannelSetupParams): ChannelSetupWizard;",
          "exportName": "createOptionalChannelSetupWizard",
          "kind": "function",
          "source": {
            "line": 35,
            "path": "src/plugin-sdk/optional-channel-setup.ts"
          }
        },
        {
          "declaration": "export function createTopLevelChannelDmPolicy(params: { label: string; channel: string; policyKey: string; allowFromKey: string; getCurrent: (cfg: OpenClawConfig) => DmPolicy; promptAllowFrom?: ((params: { cfg: OpenClawConfig; prompter: WizardPrompter; accountId?: string | undefined; }) => Promise<...>) | undefined; getAllowFrom?: ((cfg: OpenClawConfig) => (string | number)[] | undefined) | undefined; }): ChannelSetupDmPolicy;",
          "exportName": "createTopLevelChannelDmPolicy",
          "kind": "function",
          "source": {
            "line": 411,
            "path": "src/channels/plugins/setup-wizard-helpers.ts"
          }
        },
        {
          "declaration": "export function formatDocsLink(path: string, label?: string | undefined, opts?: { fallback?: string | undefined; force?: boolean | undefined; } | undefined): string;",
          "exportName": "formatDocsLink",
          "kind": "function",
          "source": {
            "line": 9,
            "path": "src/terminal/links.ts"
          }
        },
        {
          "declaration": "export function setSetupChannelEnabled(cfg: OpenClawConfig, channel: string, enabled: boolean): OpenClawConfig;",
          "exportName": "setSetupChannelEnabled",
          "kind": "function",
          "source": {
            "line": 813,
            "path": "src/channels/plugins/setup-wizard-helpers.ts"
          }
        },
        {
          "declaration": "export function splitSetupEntries(raw: string): string[];",
          "exportName": "splitSetupEntries",
          "kind": "function",
          "source": {
            "line": 80,
            "path": "src/channels/plugins/setup-wizard-helpers.ts"
          }
        },
        {
          "declaration": "export const DEFAULT_ACCOUNT_ID: \"default\";",
          "exportName": "DEFAULT_ACCOUNT_ID",
          "kind": "const",
          "source": {
            "line": 3,
            "path": "src/routing/account-id.ts"
          }
        },
        {
          "declaration": "export type ChannelSetupAdapter = ChannelSetupAdapter;",
          "exportName": "ChannelSetupAdapter",
          "kind": "type",
          "source": {
            "line": 60,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelSetupDmPolicy = ChannelSetupDmPolicy;",
          "exportName": "ChannelSetupDmPolicy",
          "kind": "type",
          "source": {
            "line": 93,
            "path": "src/channels/plugins/setup-wizard-types.ts"
          }
        },
        {
          "declaration": "export type ChannelSetupInput = ChannelSetupInput;",
          "exportName": "ChannelSetupInput",
          "kind": "type",
          "source": {
            "line": 63,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelSetupWizard = ChannelSetupWizard;",
          "exportName": "ChannelSetupWizard",
          "kind": "type",
          "source": {
            "line": 247,
            "path": "src/channels/plugins/setup-wizard.ts"
          }
        },
        {
          "declaration": "export type OptionalChannelSetupSurface = OptionalChannelSetupSurface;",
          "exportName": "OptionalChannelSetupSurface",
          "kind": "type",
          "source": {
            "line": 29,
            "path": "src/plugin-sdk/channel-setup.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/channel-setup",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/channel-setup.ts"
      }
    },
    {
      "category": "channel",
      "entrypoint": "command-auth",
      "exports": [
        {
          "declaration": "export function buildCommandsMessage(cfg?: OpenClawConfig | undefined, skillCommands?: SkillCommandSpec[] | undefined, options?: CommandsMessageOptions | undefined): string;",
          "exportName": "buildCommandsMessage",
          "kind": "function",
          "source": {
            "line": 1043,
            "path": "src/auto-reply/status.ts"
          }
        },
        {
          "declaration": "export function buildCommandsMessagePaginated(cfg?: OpenClawConfig | undefined, skillCommands?: SkillCommandSpec[] | undefined, options?: CommandsMessageOptions | undefined): CommandsMessageResult;",
          "exportName": "buildCommandsMessagePaginated",
          "kind": "function",
          "source": {
            "line": 1052,
            "path": "src/auto-reply/status.ts"
          }
        },
        {
          "declaration": "export function buildCommandsPaginationKeyboard(currentPage: number, totalPages: number, agentId?: string | undefined): { text: string; callback_data: string; }[][];",
          "exportName": "buildCommandsPaginationKeyboard",
          "kind": "function",
          "source": {
            "line": 175,
            "path": "src/auto-reply/reply/commands-info.ts"
          }
        },
        {
          "declaration": "export function buildCommandText(commandName: string, args?: string | undefined): string;",
          "exportName": "buildCommandText",
          "kind": "function",
          "source": {
            "line": 199,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function buildCommandTextFromArgs(command: ChatCommandDefinition, args?: CommandArgs | undefined): string;",
          "exportName": "buildCommandTextFromArgs",
          "kind": "function",
          "source": {
            "line": 291,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function buildHelpMessage(cfg?: OpenClawConfig | undefined): string;",
          "exportName": "buildHelpMessage",
          "kind": "function",
          "source": {
            "line": 838,
            "path": "src/auto-reply/status.ts"
          }
        },
        {
          "declaration": "export function buildModelsProviderData(cfg: OpenClawConfig, agentId?: string | undefined): Promise<ModelsProviderData>;",
          "exportName": "buildModelsProviderData",
          "kind": "function",
          "source": {
            "line": 39,
            "path": "src/auto-reply/reply/commands-models.ts"
          }
        },
        {
          "declaration": "export function createPreCryptoDirectDmAuthorizer(params: { resolveAccess: (senderId: string) => Promise<ResolvedInboundDirectDmAccess | Pick<ResolvedInboundDirectDmAccess, \"access\">>; issuePairingChallenge?: ((params: { ...; }) => Promise<...>) | undefined; onBlocked?: ((params: { ...; }) => void) | undefined; }): (input: { ...; }) => Promise<...>;",
          "exportName": "createPreCryptoDirectDmAuthorizer",
          "kind": "function",
          "source": {
            "line": 105,
            "path": "src/plugin-sdk/direct-dm.ts"
          }
        },
        {
          "declaration": "export function findCommandByNativeName(name: string, provider?: string | undefined): ChatCommandDefinition | undefined;",
          "exportName": "findCommandByNativeName",
          "kind": "function",
          "source": {
            "line": 187,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function formatModelsAvailableHeader(params: { provider: string; total: number; cfg: OpenClawConfig; agentDir?: string | undefined; sessionEntry?: SessionEntry | undefined; }): string;",
          "exportName": "formatModelsAvailableHeader",
          "kind": "function",
          "source": {
            "line": 215,
            "path": "src/auto-reply/reply/commands-models.ts"
          }
        },
        {
          "declaration": "export function getCommandDetection(_cfg?: OpenClawConfig | undefined): CommandDetection;",
          "exportName": "getCommandDetection",
          "kind": "function",
          "source": {
            "line": 440,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function hasControlCommand(text?: string | undefined, cfg?: OpenClawConfig | undefined, options?: CommandNormalizeOptions | undefined): boolean;",
          "exportName": "hasControlCommand",
          "kind": "function",
          "source": {
            "line": 10,
            "path": "src/auto-reply/command-detection.ts"
          }
        },
        {
          "declaration": "export function hasInlineCommandTokens(text?: string | undefined): boolean;",
          "exportName": "hasInlineCommandTokens",
          "kind": "function",
          "source": {
            "line": 74,
            "path": "src/auto-reply/command-detection.ts"
          }
        },
        {
          "declaration": "export function isCommandEnabled(cfg: OpenClawConfig, commandKey: string): boolean;",
          "exportName": "isCommandEnabled",
          "kind": "function",
          "source": {
            "line": 98,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function isCommandMessage(raw: string): boolean;",
          "exportName": "isCommandMessage",
          "kind": "function",
          "source": {
            "line": 435,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function isControlCommandMessage(text?: string | undefined, cfg?: OpenClawConfig | undefined, options?: CommandNormalizeOptions | undefined): boolean;",
          "exportName": "isControlCommandMessage",
          "kind": "function",
          "source": {
            "line": 48,
            "path": "src/auto-reply/command-detection.ts"
          }
        },
        {
          "declaration": "export function isNativeCommandSurface(surface?: string | undefined): boolean;",
          "exportName": "isNativeCommandSurface",
          "kind": "function",
          "source": {
            "line": 521,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function listChatCommands(params?: { skillCommands?: SkillCommandSpec[] | undefined; } | undefined): ChatCommandDefinition[];",
          "exportName": "listChatCommands",
          "kind": "function",
          "source": {
            "line": 88,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function listChatCommandsForConfig(cfg: OpenClawConfig, params?: { skillCommands?: SkillCommandSpec[] | undefined; } | undefined): ChatCommandDefinition[];",
          "exportName": "listChatCommandsForConfig",
          "kind": "function",
          "source": {
            "line": 117,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function listNativeCommandSpecs(params?: { skillCommands?: SkillCommandSpec[] | undefined; provider?: string | undefined; } | undefined): NativeCommandSpec[];",
          "exportName": "listNativeCommandSpecs",
          "kind": "function",
          "source": {
            "line": 170,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function listNativeCommandSpecsForConfig(cfg: OpenClawConfig, params?: { skillCommands?: SkillCommandSpec[] | undefined; provider?: string | undefined; } | undefined): NativeCommandSpec[];",
          "exportName": "listNativeCommandSpecsForConfig",
          "kind": "function",
          "source": {
            "line": 180,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function listReservedChatSlashCommandNames(extraNames?: string[]): Set<string>;",
          "exportName": "listReservedChatSlashCommandNames",
          "kind": "function",
          "source": {
            "line": 4,
            "path": "src/auto-reply/skill-commands-base.ts"
          }
        },
        {
          "declaration": "export function listSkillCommandsForAgents(params: { cfg: OpenClawConfig; agentIds?: string[] | undefined; }): SkillCommandSpec[];",
          "exportName": "listSkillCommandsForAgents",
          "kind": "function",
          "source": {
            "line": 46,
            "path": "src/auto-reply/skill-commands.ts"
          }
        },
        {
          "declaration": "export function listSkillCommandsForWorkspace(params: { workspaceDir: string; cfg: OpenClawConfig; skillFilter?: string[] | undefined; }): SkillCommandSpec[];",
          "exportName": "listSkillCommandsForWorkspace",
          "kind": "function",
          "source": {
            "line": 17,
            "path": "src/auto-reply/skill-commands.ts"
          }
        },
        {
          "declaration": "export function maybeResolveTextAlias(raw: string, cfg?: OpenClawConfig | undefined): string | null;",
          "exportName": "maybeResolveTextAlias",
          "kind": "function",
          "source": {
            "line": 473,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function normalizeCommandBody(raw: string, options?: CommandNormalizeOptions | undefined): string;",
          "exportName": "normalizeCommandBody",
          "kind": "function",
          "source": {
            "line": 384,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function parseCommandArgs(command: ChatCommandDefinition, raw?: string | undefined): CommandArgs | undefined;",
          "exportName": "parseCommandArgs",
          "kind": "function",
          "source": {
            "line": 254,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function resolveCommandArgChoices(params: { command: ChatCommandDefinition; arg: CommandArgDefinition; cfg?: OpenClawConfig | undefined; provider?: string | undefined; model?: string | undefined; }): ResolvedCommandArgChoice[];",
          "exportName": "resolveCommandArgChoices",
          "kind": "function",
          "source": {
            "line": 316,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function resolveCommandArgMenu(params: { command: ChatCommandDefinition; args?: CommandArgs | undefined; cfg?: OpenClawConfig | undefined; }): { arg: CommandArgDefinition; choices: ResolvedCommandArgChoice[]; title?: string | undefined; } | null;",
          "exportName": "resolveCommandArgMenu",
          "kind": "function",
          "source": {
            "line": 346,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function resolveCommandAuthorization(params: { ctx: MsgContext; cfg: OpenClawConfig; commandAuthorized: boolean; }): CommandAuthorization;",
          "exportName": "resolveCommandAuthorization",
          "kind": "function",
          "source": {
            "line": 463,
            "path": "src/auto-reply/command-auth.ts"
          }
        },
        {
          "declaration": "export function resolveCommandAuthorizedFromAuthorizers(params: { useAccessGroups: boolean; authorizers: CommandAuthorizer[]; modeWhenAccessGroupsOff?: CommandGatingModeWhenAccessGroupsOff | undefined; }): boolean;",
          "exportName": "resolveCommandAuthorizedFromAuthorizers",
          "kind": "function",
          "source": {
            "line": 8,
            "path": "src/channels/command-gating.ts"
          }
        },
        {
          "declaration": "export function resolveControlCommandGate(params: { useAccessGroups: boolean; authorizers: CommandAuthorizer[]; allowTextCommands: boolean; hasControlCommand: boolean; modeWhenAccessGroupsOff?: CommandGatingModeWhenAccessGroupsOff | undefined; }): { ...; };",
          "exportName": "resolveControlCommandGate",
          "kind": "function",
          "source": {
            "line": 31,
            "path": "src/channels/command-gating.ts"
          }
        },
        {
          "declaration": "export function resolveDirectDmAuthorizationOutcome(params: { isGroup: boolean; dmPolicy: string; senderAllowedForCommands: boolean; }): \"disabled\" | \"unauthorized\" | \"allowed\";",
          "exportName": "resolveDirectDmAuthorizationOutcome",
          "kind": "function",
          "source": {
            "line": 120,
            "path": "src/plugin-sdk/command-auth.ts"
          }
        },
        {
          "declaration": "export function resolveDualTextControlCommandGate(params: { useAccessGroups: boolean; primaryConfigured: boolean; primaryAllowed: boolean; secondaryConfigured: boolean; secondaryAllowed: boolean; hasControlCommand: boolean; modeWhenAccessGroupsOff?: CommandGatingModeWhenAccessGroupsOff | undefined; }): { ...; };",
          "exportName": "resolveDualTextControlCommandGate",
          "kind": "function",
          "source": {
            "line": 47,
            "path": "src/channels/command-gating.ts"
          }
        },
        {
          "declaration": "export function resolveInboundDirectDmAccessWithRuntime(params: { cfg: OpenClawConfig; channel: ChannelId; accountId: string; dmPolicy?: string | null | undefined; allowFrom?: (string | number)[] | null | undefined; senderId: string; ... 4 more ...; readStoreAllowFrom?: ((provider: ChannelId, accountId: string) => Promise<...>) | undefined; }): Promise<...>;",
          "exportName": "resolveInboundDirectDmAccessWithRuntime",
          "kind": "function",
          "source": {
            "line": 35,
            "path": "src/plugin-sdk/direct-dm.ts"
          }
        },
        {
          "declaration": "export function resolveModelsCommandReply(params: { cfg: OpenClawConfig; commandBodyNormalized: string; surface?: string | undefined; currentModel?: string | undefined; agentId?: string | undefined; agentDir?: string | undefined; sessionEntry?: SessionEntry | undefined; }): Promise<...>;",
          "exportName": "resolveModelsCommandReply",
          "kind": "function",
          "source": {
            "line": 231,
            "path": "src/auto-reply/reply/commands-models.ts"
          }
        },
        {
          "declaration": "export function resolveNativeCommandSessionTargets(params: ResolveNativeCommandSessionTargetsParams): { sessionKey: string; commandTargetSessionKey: string; };",
          "exportName": "resolveNativeCommandSessionTargets",
          "kind": "function",
          "source": {
            "line": 10,
            "path": "src/channels/native-command-session-targets.ts"
          }
        },
        {
          "declaration": "export function resolveSenderCommandAuthorization(params: ResolveSenderCommandAuthorizationParams): Promise<{ shouldComputeAuth: boolean; effectiveAllowFrom: string[]; effectiveGroupAllowFrom: string[]; senderAllowedForCommands: boolean; commandAuthorized: boolean | undefined; }>;",
          "exportName": "resolveSenderCommandAuthorization",
          "kind": "function",
          "source": {
            "line": 149,
            "path": "src/plugin-sdk/command-auth.ts"
          }
        },
        {
          "declaration": "export function resolveSenderCommandAuthorizationWithRuntime(params: ResolveSenderCommandAuthorizationWithRuntimeParams): Promise<{ shouldComputeAuth: boolean; effectiveAllowFrom: string[]; effectiveGroupAllowFrom: string[]; senderAllowedForCommands: boolean; commandAuthorized: boolean | undefined; }>;",
          "exportName": "resolveSenderCommandAuthorizationWithRuntime",
          "kind": "function",
          "source": {
            "line": 138,
            "path": "src/plugin-sdk/command-auth.ts"
          }
        },
        {
          "declaration": "export function resolveSkillCommandInvocation(params: { commandBodyNormalized: string; skillCommands: SkillCommandSpec[]; }): { command: SkillCommandSpec; args?: string | undefined; } | null;",
          "exportName": "resolveSkillCommandInvocation",
          "kind": "function",
          "source": {
            "line": 58,
            "path": "src/auto-reply/skill-commands-base.ts"
          }
        },
        {
          "declaration": "export function resolveStoredModelOverride(params: { sessionEntry?: SessionEntry | undefined; sessionStore?: Record<string, SessionEntry> | undefined; sessionKey?: string | undefined; parentSessionKey?: string | undefined; }): StoredModelOverride | null;",
          "exportName": "resolveStoredModelOverride",
          "kind": "function",
          "source": {
            "line": 156,
            "path": "src/auto-reply/reply/model-selection.ts"
          }
        },
        {
          "declaration": "export function resolveTextCommand(raw: string, cfg?: OpenClawConfig | undefined): { command: ChatCommandDefinition; args?: string | undefined; } | null;",
          "exportName": "resolveTextCommand",
          "kind": "function",
          "source": {
            "line": 494,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function serializeCommandArgs(command: ChatCommandDefinition, args?: CommandArgs | undefined): string | undefined;",
          "exportName": "serializeCommandArgs",
          "kind": "function",
          "source": {
            "line": 271,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export function shouldComputeCommandAuthorized(text?: string | undefined, cfg?: OpenClawConfig | undefined, options?: CommandNormalizeOptions | undefined): boolean;",
          "exportName": "shouldComputeCommandAuthorized",
          "kind": "function",
          "source": {
            "line": 82,
            "path": "src/auto-reply/command-detection.ts"
          }
        },
        {
          "declaration": "export function shouldHandleTextCommands(params: ShouldHandleTextCommandsParams): boolean;",
          "exportName": "shouldHandleTextCommands",
          "kind": "function",
          "source": {
            "line": 528,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export type ChatCommandDefinition = ChatCommandDefinition;",
          "exportName": "ChatCommandDefinition",
          "kind": "type",
          "source": {
            "line": 53,
            "path": "src/auto-reply/commands-registry.types.ts"
          }
        },
        {
          "declaration": "export type CommandArgChoiceContext = CommandArgChoiceContext;",
          "exportName": "CommandArgChoiceContext",
          "kind": "type",
          "source": {
            "line": 16,
            "path": "src/auto-reply/commands-registry.types.ts"
          }
        },
        {
          "declaration": "export type CommandArgDefinition = CommandArgDefinition;",
          "exportName": "CommandArgDefinition",
          "kind": "type",
          "source": {
            "line": 28,
            "path": "src/auto-reply/commands-registry.types.ts"
          }
        },
        {
          "declaration": "export type CommandArgMenuSpec = CommandArgMenuSpec;",
          "exportName": "CommandArgMenuSpec",
          "kind": "type",
          "source": {
            "line": 38,
            "path": "src/auto-reply/commands-registry.types.ts"
          }
        },
        {
          "declaration": "export type CommandArgs = CommandArgs;",
          "exportName": "CommandArgs",
          "kind": "type",
          "source": {
            "line": 46,
            "path": "src/auto-reply/commands-registry.types.ts"
          }
        },
        {
          "declaration": "export type CommandArgValues = CommandArgValues;",
          "exportName": "CommandArgValues",
          "kind": "type",
          "source": {
            "line": 44,
            "path": "src/auto-reply/commands-registry.types.ts"
          }
        },
        {
          "declaration": "export type CommandAuthorization = CommandAuthorization;",
          "exportName": "CommandAuthorization",
          "kind": "type",
          "source": {
            "line": 13,
            "path": "src/auto-reply/command-auth.ts"
          }
        },
        {
          "declaration": "export type CommandAuthorizationRuntime = CommandAuthorizationRuntime;",
          "exportName": "CommandAuthorizationRuntime",
          "kind": "type",
          "source": {
            "line": 104,
            "path": "src/plugin-sdk/command-auth.ts"
          }
        },
        {
          "declaration": "export type CommandAuthorizer = CommandAuthorizer;",
          "exportName": "CommandAuthorizer",
          "kind": "type",
          "source": {
            "line": 1,
            "path": "src/channels/command-gating.ts"
          }
        },
        {
          "declaration": "export type CommandDetection = CommandDetection;",
          "exportName": "CommandDetection",
          "kind": "type",
          "source": {
            "line": 78,
            "path": "src/auto-reply/commands-registry.types.ts"
          }
        },
        {
          "declaration": "export type CommandGatingModeWhenAccessGroupsOff = CommandGatingModeWhenAccessGroupsOff;",
          "exportName": "CommandGatingModeWhenAccessGroupsOff",
          "kind": "type",
          "source": {
            "line": 6,
            "path": "src/channels/command-gating.ts"
          }
        },
        {
          "declaration": "export type CommandNormalizeOptions = CommandNormalizeOptions;",
          "exportName": "CommandNormalizeOptions",
          "kind": "type",
          "source": {
            "line": 74,
            "path": "src/auto-reply/commands-registry.types.ts"
          }
        },
        {
          "declaration": "export type CommandScope = CommandScope;",
          "exportName": "CommandScope",
          "kind": "type",
          "source": {
            "line": 3,
            "path": "src/auto-reply/commands-registry.types.ts"
          }
        },
        {
          "declaration": "export type DirectDmCommandAuthorizationRuntime = DirectDmCommandAuthorizationRuntime;",
          "exportName": "DirectDmCommandAuthorizationRuntime",
          "kind": "type",
          "source": {
            "line": 13,
            "path": "src/plugin-sdk/direct-dm.ts"
          }
        },
        {
          "declaration": "export type ModelsProviderData = ModelsProviderData;",
          "exportName": "ModelsProviderData",
          "kind": "type",
          "source": {
            "line": 27,
            "path": "src/auto-reply/reply/commands-models.ts"
          }
        },
        {
          "declaration": "export type NativeCommandSpec = NativeCommandSpec;",
          "exportName": "NativeCommandSpec",
          "kind": "type",
          "source": {
            "line": 67,
            "path": "src/auto-reply/commands-registry.types.ts"
          }
        },
        {
          "declaration": "export type ResolvedCommandArgChoice = ResolvedCommandArgChoice;",
          "exportName": "ResolvedCommandArgChoice",
          "kind": "type",
          "source": {
            "line": 314,
            "path": "src/auto-reply/commands-registry.ts"
          }
        },
        {
          "declaration": "export type ResolvedInboundDirectDmAccess = ResolvedInboundDirectDmAccess;",
          "exportName": "ResolvedInboundDirectDmAccess",
          "kind": "type",
          "source": {
            "line": 22,
            "path": "src/plugin-sdk/direct-dm.ts"
          }
        },
        {
          "declaration": "export type ResolveNativeCommandSessionTargetsParams = ResolveNativeCommandSessionTargetsParams;",
          "exportName": "ResolveNativeCommandSessionTargetsParams",
          "kind": "type",
          "source": {
            "line": 1,
            "path": "src/channels/native-command-session-targets.ts"
          }
        },
        {
          "declaration": "export type ResolveSenderCommandAuthorizationParams = ResolveSenderCommandAuthorizationParams;",
          "exportName": "ResolveSenderCommandAuthorizationParams",
          "kind": "type",
          "source": {
            "line": 87,
            "path": "src/plugin-sdk/command-auth.ts"
          }
        },
        {
          "declaration": "export type ResolveSenderCommandAuthorizationWithRuntimeParams = ResolveSenderCommandAuthorizationWithRuntimeParams;",
          "exportName": "ResolveSenderCommandAuthorizationWithRuntimeParams",
          "kind": "type",
          "source": {
            "line": 112,
            "path": "src/plugin-sdk/command-auth.ts"
          }
        },
        {
          "declaration": "export type ShouldHandleTextCommandsParams = ShouldHandleTextCommandsParams;",
          "exportName": "ShouldHandleTextCommandsParams",
          "kind": "type",
          "source": {
            "line": 83,
            "path": "src/auto-reply/commands-registry.types.ts"
          }
        },
        {
          "declaration": "export type StoredModelOverride = StoredModelOverride;",
          "exportName": "StoredModelOverride",
          "kind": "type",
          "source": {
            "line": 123,
            "path": "src/auto-reply/reply/model-selection.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/command-auth",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/command-auth.ts"
      }
    },
    {
      "category": "core",
      "entrypoint": "core",
      "exports": [
        {
          "declaration": "export function applyAccountNameToChannelSection(params: { cfg: OpenClawConfig; channelKey: string; accountId: string; name?: string | undefined; alwaysUseAccounts?: boolean | undefined; }): OpenClawConfig;",
          "exportName": "applyAccountNameToChannelSection",
          "kind": "function",
          "source": {
            "line": 34,
            "path": "src/channels/plugins/setup-helpers.ts"
          }
        },
        {
          "declaration": "export function buildAgentSessionKey(params: { agentId: string; channel: string; accountId?: string | null | undefined; peer?: RoutePeer | null | undefined; dmScope?: \"main\" | \"per-peer\" | \"per-channel-peer\" | \"per-account-channel-peer\" | undefined; identityLinks?: Record<...> | undefined; }): string;",
          "exportName": "buildAgentSessionKey",
          "kind": "function",
          "source": {
            "line": 91,
            "path": "src/routing/resolve-route.ts"
          }
        },
        {
          "declaration": "export function buildChannelConfigSchema(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>, options?: BuildChannelConfigSchemaOptions | undefined): ChannelConfigSchema;",
          "exportName": "buildChannelConfigSchema",
          "kind": "function",
          "source": {
            "line": 75,
            "path": "src/channels/plugins/config-schema.ts"
          }
        },
        {
          "declaration": "export function buildChannelOutboundSessionRoute(params: { cfg: OpenClawConfig; agentId: string; channel: string; accountId?: string | null | undefined; peer: { kind: \"direct\" | \"group\" | \"channel\"; id: string; }; chatType: \"direct\" | \"group\" | \"channel\"; from: string; to: string; threadId?: string | ... 1 more ... | undefined; }): ChannelOutboundSessionRoute;",
          "exportName": "buildChannelOutboundSessionRoute",
          "kind": "function",
          "source": {
            "line": 184,
            "path": "src/plugin-sdk/core.ts"
          }
        },
        {
          "declaration": "export function buildPluginConfigSchema(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>, options?: BuildPluginConfigSchemaOptions | undefined): OpenClawPluginConfigSchema;",
          "exportName": "buildPluginConfigSchema",
          "kind": "function",
          "source": {
            "line": 78,
            "path": "src/plugins/config-schema.ts"
          }
        },
        {
          "declaration": "export function channelTargetSchema(options?: { description?: string | undefined; } | undefined): TString;",
          "exportName": "channelTargetSchema",
          "kind": "function",
          "source": {
            "line": 38,
            "path": "src/agents/schema/typebox.ts"
          }
        },
        {
          "declaration": "export function channelTargetsSchema(options?: { description?: string | undefined; } | undefined): TArray<TString>;",
          "exportName": "channelTargetsSchema",
          "kind": "function",
          "source": {
            "line": 44,
            "path": "src/agents/schema/typebox.ts"
          }
        },
        {
          "declaration": "export function clearAccountEntryFields<TAccountEntry extends object>(params: { accounts?: Record<string, TAccountEntry> | undefined; accountId: string; fields: string[]; isValueSet?: ((value: unknown) => boolean) | undefined; markClearedOnFieldPresence?: boolean | undefined; }): { ...; };",
          "exportName": "clearAccountEntryFields",
          "kind": "function",
          "source": {
            "line": 122,
            "path": "src/channels/plugins/config-helpers.ts"
          }
        },
        {
          "declaration": "export function createChannelPluginBase<TResolvedAccount>(params: CreateChannelPluginBaseOptions<TResolvedAccount>): CreatedChannelPluginBase<TResolvedAccount>;",
          "exportName": "createChannelPluginBase",
          "kind": "function",
          "source": {
            "line": 534,
            "path": "src/plugin-sdk/core.ts"
          }
        },
        {
          "declaration": "export function createChatChannelPlugin<TResolvedAccount extends { accountId?: string | null; }, Probe = unknown, Audit = unknown>(params: { base: ChatChannelPluginBase<TResolvedAccount, Probe, Audit>; security?: ChannelSecurityAdapter<TResolvedAccount> | ChatChannelSecurityOptions<...> | undefined; pairing?: ChannelPairingAdapter | ... 1 more ... | undefined; threading?: ChannelThreadingAdapter | ... 1 more ... | undefined; outbound?: ChannelOutboundAdapter | ... 1 more ... | undefined; }): ChannelPlugin<...>;",
          "exportName": "createChatChannelPlugin",
          "kind": "function",
          "source": {
            "line": 507,
            "path": "src/plugin-sdk/core.ts"
          }
        },
        {
          "declaration": "export function createDedupeCache(options: DedupeCacheOptions): DedupeCache;",
          "exportName": "createDedupeCache",
          "kind": "function",
          "source": {
            "line": 17,
            "path": "src/infra/dedupe.ts"
          }
        },
        {
          "declaration": "export function createSubsystemLogger(subsystem: string): SubsystemLogger;",
          "exportName": "createSubsystemLogger",
          "kind": "function",
          "source": {
            "line": 308,
            "path": "src/logging/subsystem.ts"
          }
        },
        {
          "declaration": "export function defineChannelPluginEntry<TPlugin>({ id, name, description, plugin, configSchema, setRuntime, registerFull, }: DefineChannelPluginEntryOptions<TPlugin>): DefinedChannelPluginEntry<TPlugin>;",
          "exportName": "defineChannelPluginEntry",
          "kind": "function",
          "source": {
            "line": 277,
            "path": "src/plugin-sdk/core.ts"
          }
        },
        {
          "declaration": "export function definePluginEntry({ id, name, description, kind, configSchema, register, }: DefinePluginEntryOptions): DefinedPluginEntry;",
          "exportName": "definePluginEntry",
          "kind": "function",
          "source": {
            "line": 137,
            "path": "src/plugin-sdk/plugin-entry.ts"
          }
        },
        {
          "declaration": "export function defineSetupPluginEntry<TPlugin>(plugin: TPlugin): { plugin: TPlugin; };",
          "exportName": "defineSetupPluginEntry",
          "kind": "function",
          "source": {
            "line": 314,
            "path": "src/plugin-sdk/core.ts"
          }
        },
        {
          "declaration": "export function delegateCompactionToRuntime(params: { sessionId: string; sessionKey?: string | undefined; sessionFile: string; tokenBudget?: number | undefined; force?: boolean | undefined; currentTokenCount?: number | undefined; compactionTarget?: \"budget\" | ... 1 more ... | undefined; customInstructions?: string | undefined; runtimeContext?: ContextEngineRuntimeContext | undefined; }): Promise<...>;",
          "exportName": "delegateCompactionToRuntime",
          "kind": "function",
          "source": {
            "line": 16,
            "path": "src/context-engine/delegate.ts"
          }
        },
        {
          "declaration": "export function deleteAccountFromConfigSection(params: { cfg: OpenClawConfig; sectionKey: string; accountId: string; clearBaseFields?: string[] | undefined; }): OpenClawConfig;",
          "exportName": "deleteAccountFromConfigSection",
          "kind": "function",
          "source": {
            "line": 60,
            "path": "src/channels/plugins/config-helpers.ts"
          }
        },
        {
          "declaration": "export function emptyPluginConfigSchema(): OpenClawPluginConfigSchema;",
          "exportName": "emptyPluginConfigSchema",
          "kind": "function",
          "source": {
            "line": 108,
            "path": "src/plugins/config-schema.ts"
          }
        },
        {
          "declaration": "export function enqueueKeyedTask<T>(params: { tails: Map<string, Promise<void>>; key: string; task: () => Promise<T>; hooks?: KeyedAsyncQueueHooks | undefined; }): Promise<...>;",
          "exportName": "enqueueKeyedTask",
          "kind": "function",
          "source": {
            "line": 7,
            "path": "src/plugin-sdk/keyed-async-queue.ts"
          }
        },
        {
          "declaration": "export function formatPairingApproveHint(channelId: string): string;",
          "exportName": "formatPairingApproveHint",
          "kind": "function",
          "source": {
            "line": 17,
            "path": "src/channels/plugins/helpers.ts"
          }
        },
        {
          "declaration": "export function generateSecureToken(bytes?: number): string;",
          "exportName": "generateSecureToken",
          "kind": "function",
          "source": {
            "line": 7,
            "path": "src/infra/secure-random.ts"
          }
        },
        {
          "declaration": "export function generateSecureUuid(): string;",
          "exportName": "generateSecureUuid",
          "kind": "function",
          "source": {
            "line": 3,
            "path": "src/infra/secure-random.ts"
          }
        },
        {
          "declaration": "export function getChatChannelMeta(id: \"telegram\" | \"whatsapp\" | \"discord\" | \"irc\" | \"googlechat\" | \"slack\" | \"signal\" | \"imessage\" | \"line\"): ChannelMeta;",
          "exportName": "getChatChannelMeta",
          "kind": "function",
          "source": {
            "line": 123,
            "path": "src/channels/chat-meta.ts"
          }
        },
        {
          "declaration": "export function isSecretRef(value: unknown): value is SecretRef;",
          "exportName": "isSecretRef",
          "kind": "function",
          "source": {
            "line": 34,
            "path": "src/config/types.secrets.ts"
          }
        },
        {
          "declaration": "export function loadSecretFileSync(filePath: string, label: string, options?: SecretFileReadOptions): SecretFileReadResult;",
          "exportName": "loadSecretFileSync",
          "kind": "function",
          "source": {
            "line": 29,
            "path": "src/infra/secret-file.ts"
          }
        },
        {
          "declaration": "export function migrateBaseNameToDefaultAccount(params: { cfg: OpenClawConfig; channelKey: string; alwaysUseAccounts?: boolean | undefined; }): OpenClawConfig;",
          "exportName": "migrateBaseNameToDefaultAccount",
          "kind": "function",
          "source": {
            "line": 93,
            "path": "src/channels/plugins/setup-helpers.ts"
          }
        },
        {
          "declaration": "export function normalizeAccountId(value: string | null | undefined): string;",
          "exportName": "normalizeAccountId",
          "kind": "function",
          "source": {
            "line": 34,
            "path": "src/routing/account-id.ts"
          }
        },
        {
          "declaration": "export function normalizeAtHashSlug(raw?: string | null | undefined): string;",
          "exportName": "normalizeAtHashSlug",
          "kind": "function",
          "source": {
            "line": 19,
            "path": "src/shared/string-normalization.ts"
          }
        },
        {
          "declaration": "export function normalizeHyphenSlug(raw?: string | null | undefined): string;",
          "exportName": "normalizeHyphenSlug",
          "kind": "function",
          "source": {
            "line": 9,
            "path": "src/shared/string-normalization.ts"
          }
        },
        {
          "declaration": "export function optionalStringEnum<T extends readonly string[]>(values: T, options?: StringEnumOptions<T>): TOptional<TUnsafe<T[number]>>;",
          "exportName": "optionalStringEnum",
          "kind": "function",
          "source": {
            "line": 31,
            "path": "src/agents/schema/typebox.ts"
          }
        },
        {
          "declaration": "export function parseOptionalDelimitedEntries(value?: string | undefined): string[] | undefined;",
          "exportName": "parseOptionalDelimitedEntries",
          "kind": "function",
          "source": {
            "line": 23,
            "path": "src/channels/plugins/helpers.ts"
          }
        },
        {
          "declaration": "export function readSecretFileSync(filePath: string, label: string, options?: SecretFileReadOptions): string;",
          "exportName": "readSecretFileSync",
          "kind": "function",
          "source": {
            "line": 118,
            "path": "src/infra/secret-file.ts"
          }
        },
        {
          "declaration": "export function resolveGatewayBindUrl(params: { bind?: string | undefined; customBindHost?: string | undefined; scheme: \"ws\" | \"wss\"; port: number; pickTailnetHost: () => string | null; pickLanHost: () => string | null; }): GatewayBindUrlResult;",
          "exportName": "resolveGatewayBindUrl",
          "kind": "function",
          "source": {
            "line": 11,
            "path": "src/shared/gateway-bind-url.ts"
          }
        },
        {
          "declaration": "export function resolveGatewayPort(cfg?: OpenClawConfig | undefined, env?: ProcessEnv): number;",
          "exportName": "resolveGatewayPort",
          "kind": "function",
          "source": {
            "line": 285,
            "path": "src/config/paths.ts"
          }
        },
        {
          "declaration": "export function resolveGlobalDedupeCache(key: symbol, options: DedupeCacheOptions): DedupeCache;",
          "exportName": "resolveGlobalDedupeCache",
          "kind": "function",
          "source": {
            "line": 89,
            "path": "src/infra/dedupe.ts"
          }
        },
        {
          "declaration": "export function resolveTailnetHostWithRunner(runCommandWithTimeout?: TailscaleStatusCommandRunner | undefined): Promise<string | null>;",
          "exportName": "resolveTailnetHostWithRunner",
          "kind": "function",
          "source": {
            "line": 47,
            "path": "src/shared/tailscale-status.ts"
          }
        },
        {
          "declaration": "export function resolveThreadSessionKeys(params: { baseSessionKey: string; threadId?: string | null | undefined; parentSessionKey?: string | undefined; useSuffix?: boolean | undefined; normalizeThreadId?: ((threadId: string) => string) | undefined; }): { ...; };",
          "exportName": "resolveThreadSessionKeys",
          "kind": "function",
          "source": {
            "line": 234,
            "path": "src/routing/session-key.ts"
          }
        },
        {
          "declaration": "export function setAccountEnabledInConfigSection(params: { cfg: OpenClawConfig; sectionKey: string; accountId: string; enabled: boolean; allowTopLevel?: boolean | undefined; }): OpenClawConfig;",
          "exportName": "setAccountEnabledInConfigSection",
          "kind": "function",
          "source": {
            "line": 16,
            "path": "src/channels/plugins/config-helpers.ts"
          }
        },
        {
          "declaration": "export function stringEnum<T extends readonly string[]>(values: T, options?: StringEnumOptions<T>): TUnsafe<T[number]>;",
          "exportName": "stringEnum",
          "kind": "function",
          "source": {
            "line": 15,
            "path": "src/agents/schema/typebox.ts"
          }
        },
        {
          "declaration": "export function stripChannelTargetPrefix(raw: string, ...providers: string[]): string;",
          "exportName": "stripChannelTargetPrefix",
          "kind": "function",
          "source": {
            "line": 164,
            "path": "src/plugin-sdk/core.ts"
          }
        },
        {
          "declaration": "export function stripTargetKindPrefix(raw: string): string;",
          "exportName": "stripTargetKindPrefix",
          "kind": "function",
          "source": {
            "line": 176,
            "path": "src/plugin-sdk/core.ts"
          }
        },
        {
          "declaration": "export function tryReadSecretFileSync(filePath: string | undefined, label: string, options?: SecretFileReadOptions): string | undefined;",
          "exportName": "tryReadSecretFileSync",
          "kind": "function",
          "source": {
            "line": 130,
            "path": "src/infra/secret-file.ts"
          }
        },
        {
          "declaration": "export const DEFAULT_ACCOUNT_ID: \"default\";",
          "exportName": "DEFAULT_ACCOUNT_ID",
          "kind": "const",
          "source": {
            "line": 3,
            "path": "src/routing/account-id.ts"
          }
        },
        {
          "declaration": "export const DEFAULT_SECRET_FILE_MAX_BYTES: number;",
          "exportName": "DEFAULT_SECRET_FILE_MAX_BYTES",
          "kind": "const",
          "source": {
            "line": 5,
            "path": "src/infra/secret-file.ts"
          }
        },
        {
          "declaration": "export type AnyAgentTool = AnyAgentTool;",
          "exportName": "AnyAgentTool",
          "kind": "type",
          "source": {
            "line": 9,
            "path": "src/agents/tools/common.ts"
          }
        },
        {
          "declaration": "export type ChannelConfigUiHint = ChannelConfigUiHint;",
          "exportName": "ChannelConfigUiHint",
          "kind": "type",
          "source": {
            "line": 38,
            "path": "src/channels/plugins/types.plugin.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionContext = ChannelMessageActionContext;",
          "exportName": "ChannelMessageActionContext",
          "kind": "type",
          "source": {
            "line": 483,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessagingAdapter = ChannelMessagingAdapter;",
          "exportName": "ChannelMessagingAdapter",
          "kind": "type",
          "source": {
            "line": 396,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelOutboundSessionRoute = ChannelOutboundSessionRoute;",
          "exportName": "ChannelOutboundSessionRoute",
          "kind": "type",
          "source": {
            "line": 310,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelOutboundSessionRouteParams = {    cfg: OpenClawConfig;    agentId: string;    accountId?: string | null;    target: string;    resolvedTarget?: {        to: string;        kind: import(\"../channels/plugins/types.core.js\").ChannelDirectoryEntryKind | \"channel\";        display?: string;        source: \"normalized\" | \"directory\";    };    replyToId?: string | null;    threadId?: string | number | null;};",
          "exportName": "ChannelOutboundSessionRouteParams",
          "kind": "type",
          "source": {
            "line": 159,
            "path": "src/plugin-sdk/core.ts"
          }
        },
        {
          "declaration": "export type ChannelPlugin = ChannelPlugin<ResolvedAccount, Probe, Audit>;",
          "exportName": "ChannelPlugin",
          "kind": "type",
          "source": {
            "line": 77,
            "path": "src/channels/plugins/types.plugin.ts"
          }
        },
        {
          "declaration": "export type GatewayBindUrlResult = GatewayBindUrlResult;",
          "exportName": "GatewayBindUrlResult",
          "kind": "type",
          "source": {
            "line": 1,
            "path": "src/shared/gateway-bind-url.ts"
          }
        },
        {
          "declaration": "export type GatewayRequestHandlerOptions = GatewayRequestHandlerOptions;",
          "exportName": "GatewayRequestHandlerOptions",
          "kind": "type",
          "source": {
            "line": 115,
            "path": "src/gateway/server-methods/types.ts"
          }
        },
        {
          "declaration": "export type MediaUnderstandingProviderPlugin = MediaUnderstandingProvider;",
          "exportName": "MediaUnderstandingProviderPlugin",
          "kind": "type",
          "source": {
            "line": 1267,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawConfig = OpenClawConfig;",
          "exportName": "OpenClawConfig",
          "kind": "type",
          "source": {
            "line": 32,
            "path": "src/config/types.openclaw.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginApi = OpenClawPluginApi;",
          "exportName": "OpenClawPluginApi",
          "kind": "type",
          "source": {
            "line": 1660,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginCommandDefinition = OpenClawPluginCommandDefinition;",
          "exportName": "OpenClawPluginCommandDefinition",
          "kind": "type",
          "source": {
            "line": 1386,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;",
          "exportName": "OpenClawPluginConfigSchema",
          "kind": "type",
          "source": {
            "line": 100,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginDefinition = OpenClawPluginDefinition;",
          "exportName": "OpenClawPluginDefinition",
          "kind": "type",
          "source": {
            "line": 1642,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginService = OpenClawPluginService;",
          "exportName": "OpenClawPluginService",
          "kind": "type",
          "source": {
            "line": 1609,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginServiceContext = OpenClawPluginServiceContext;",
          "exportName": "OpenClawPluginServiceContext",
          "kind": "type",
          "source": {
            "line": 1601,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginToolContext = OpenClawPluginToolContext;",
          "exportName": "OpenClawPluginToolContext",
          "kind": "type",
          "source": {
            "line": 115,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginToolFactory = OpenClawPluginToolFactory;",
          "exportName": "OpenClawPluginToolFactory",
          "kind": "type",
          "source": {
            "line": 140,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginCommandContext = PluginCommandContext;",
          "exportName": "PluginCommandContext",
          "kind": "type",
          "source": {
            "line": 1282,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginInteractiveTelegramHandlerContext = PluginInteractiveTelegramHandlerContext;",
          "exportName": "PluginInteractiveTelegramHandlerContext",
          "kind": "type",
          "source": {
            "line": 1415,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginLogger = PluginLogger;",
          "exportName": "PluginLogger",
          "kind": "type",
          "source": {
            "line": 71,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginRuntime = PluginRuntime;",
          "exportName": "PluginRuntime",
          "kind": "type",
          "source": {
            "line": 54,
            "path": "src/plugins/runtime/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAugmentModelCatalogContext = ProviderAugmentModelCatalogContext;",
          "exportName": "ProviderAugmentModelCatalogContext",
          "kind": "type",
          "source": {
            "line": 709,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthContext = ProviderAuthContext;",
          "exportName": "ProviderAuthContext",
          "kind": "type",
          "source": {
            "line": 175,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthDoctorHintContext = ProviderAuthDoctorHintContext;",
          "exportName": "ProviderAuthDoctorHintContext",
          "kind": "type",
          "source": {
            "line": 513,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthMethod = ProviderAuthMethod;",
          "exportName": "ProviderAuthMethod",
          "kind": "type",
          "source": {
            "line": 254,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthMethodNonInteractiveContext = ProviderAuthMethodNonInteractiveContext;",
          "exportName": "ProviderAuthMethodNonInteractiveContext",
          "kind": "type",
          "source": {
            "line": 238,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthResult = ProviderAuthResult;",
          "exportName": "ProviderAuthResult",
          "kind": "type",
          "source": {
            "line": 160,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuildMissingAuthMessageContext = ProviderBuildMissingAuthMessageContext;",
          "exportName": "ProviderBuildMissingAuthMessageContext",
          "kind": "type",
          "source": {
            "line": 621,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuildUnknownModelHintContext = ProviderBuildUnknownModelHintContext;",
          "exportName": "ProviderBuildUnknownModelHintContext",
          "kind": "type",
          "source": {
            "line": 637,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuiltInModelSuppressionContext = ProviderBuiltInModelSuppressionContext;",
          "exportName": "ProviderBuiltInModelSuppressionContext",
          "kind": "type",
          "source": {
            "line": 653,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuiltInModelSuppressionResult = ProviderBuiltInModelSuppressionResult;",
          "exportName": "ProviderBuiltInModelSuppressionResult",
          "kind": "type",
          "source": {
            "line": 662,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderCacheTtlEligibilityContext = ProviderCacheTtlEligibilityContext;",
          "exportName": "ProviderCacheTtlEligibilityContext",
          "kind": "type",
          "source": {
            "line": 609,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderCatalogContext = ProviderCatalogContext;",
          "exportName": "ProviderCatalogContext",
          "kind": "type",
          "source": {
            "line": 275,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderCatalogResult = ProviderCatalogResult;",
          "exportName": "ProviderCatalogResult",
          "kind": "type",
          "source": {
            "line": 298,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderDefaultThinkingPolicyContext = ProviderDefaultThinkingPolicyContext;",
          "exportName": "ProviderDefaultThinkingPolicyContext",
          "kind": "type",
          "source": {
            "line": 686,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderDiscoveryContext = ProviderCatalogContext;",
          "exportName": "ProviderDiscoveryContext",
          "kind": "type",
          "source": {
            "line": 725,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderFetchUsageSnapshotContext = ProviderFetchUsageSnapshotContext;",
          "exportName": "ProviderFetchUsageSnapshotContext",
          "kind": "type",
          "source": {
            "line": 494,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderModernModelPolicyContext = ProviderModernModelPolicyContext;",
          "exportName": "ProviderModernModelPolicyContext",
          "kind": "type",
          "source": {
            "line": 696,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderNormalizeResolvedModelContext = ProviderNormalizeResolvedModelContext;",
          "exportName": "ProviderNormalizeResolvedModelContext",
          "kind": "type",
          "source": {
            "line": 359,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPreparedRuntimeAuth = ProviderPreparedRuntimeAuth;",
          "exportName": "ProviderPreparedRuntimeAuth",
          "kind": "type",
          "source": {
            "line": 441,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPrepareDynamicModelContext = ProviderResolveDynamicModelContext;",
          "exportName": "ProviderPrepareDynamicModelContext",
          "kind": "type",
          "source": {
            "line": 350,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPrepareExtraParamsContext = ProviderPrepareExtraParamsContext;",
          "exportName": "ProviderPrepareExtraParamsContext",
          "kind": "type",
          "source": {
            "line": 527,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPrepareRuntimeAuthContext = ProviderPrepareRuntimeAuthContext;",
          "exportName": "ProviderPrepareRuntimeAuthContext",
          "kind": "type",
          "source": {
            "line": 420,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolvedUsageAuth = ProviderResolvedUsageAuth;",
          "exportName": "ProviderResolvedUsageAuth",
          "kind": "type",
          "source": {
            "line": 481,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolveDynamicModelContext = ProviderResolveDynamicModelContext;",
          "exportName": "ProviderResolveDynamicModelContext",
          "kind": "type",
          "source": {
            "line": 333,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolveUsageAuthContext = ProviderResolveUsageAuthContext;",
          "exportName": "ProviderResolveUsageAuthContext",
          "kind": "type",
          "source": {
            "line": 462,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderRuntimeModel = ProviderRuntimeModel;",
          "exportName": "ProviderRuntimeModel",
          "kind": "type",
          "source": {
            "line": 316,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderThinkingPolicyContext = ProviderThinkingPolicyContext;",
          "exportName": "ProviderThinkingPolicyContext",
          "kind": "type",
          "source": {
            "line": 674,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderUsageSnapshot = ProviderUsageSnapshot;",
          "exportName": "ProviderUsageSnapshot",
          "kind": "type",
          "source": {
            "line": 7,
            "path": "src/infra/provider-usage.types.ts"
          }
        },
        {
          "declaration": "export type ProviderWrapStreamFnContext = ProviderWrapStreamFnContext;",
          "exportName": "ProviderWrapStreamFnContext",
          "kind": "type",
          "source": {
            "line": 560,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type RoutePeer = RoutePeer;",
          "exportName": "RoutePeer",
          "kind": "type",
          "source": {
            "line": 21,
            "path": "src/routing/resolve-route.ts"
          }
        },
        {
          "declaration": "export type RoutePeerKind = ChatType;",
          "exportName": "RoutePeerKind",
          "kind": "type",
          "source": {
            "line": 19,
            "path": "src/routing/resolve-route.ts"
          }
        },
        {
          "declaration": "export type SecretFileReadOptions = SecretFileReadOptions;",
          "exportName": "SecretFileReadOptions",
          "kind": "type",
          "source": {
            "line": 7,
            "path": "src/infra/secret-file.ts"
          }
        },
        {
          "declaration": "export type SecretFileReadResult = SecretFileReadResult;",
          "exportName": "SecretFileReadResult",
          "kind": "type",
          "source": {
            "line": 12,
            "path": "src/infra/secret-file.ts"
          }
        },
        {
          "declaration": "export type SpeechProviderPlugin = SpeechProviderPlugin;",
          "exportName": "SpeechProviderPlugin",
          "kind": "type",
          "source": {
            "line": 1242,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type TailscaleStatusCommandResult = TailscaleStatusCommandResult;",
          "exportName": "TailscaleStatusCommandResult",
          "kind": "type",
          "source": {
            "line": 4,
            "path": "src/shared/tailscale-status.ts"
          }
        },
        {
          "declaration": "export type TailscaleStatusCommandRunner = TailscaleStatusCommandRunner;",
          "exportName": "TailscaleStatusCommandRunner",
          "kind": "type",
          "source": {
            "line": 9,
            "path": "src/shared/tailscale-status.ts"
          }
        },
        {
          "declaration": "export type UsageProviderId = UsageProviderId;",
          "exportName": "UsageProviderId",
          "kind": "type",
          "source": {
            "line": 20,
            "path": "src/infra/provider-usage.types.ts"
          }
        },
        {
          "declaration": "export type UsageWindow = UsageWindow;",
          "exportName": "UsageWindow",
          "kind": "type",
          "source": {
            "line": 1,
            "path": "src/infra/provider-usage.types.ts"
          }
        },
        {
          "declaration": "export class KeyedAsyncQueue",
          "exportName": "KeyedAsyncQueue",
          "kind": "class",
          "source": {
            "line": 34,
            "path": "src/plugin-sdk/keyed-async-queue.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/core",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/core.ts"
      }
    },
    {
      "category": "core",
      "entrypoint": "plugin-entry",
      "exports": [
        {
          "declaration": "export function definePluginEntry({ id, name, description, kind, configSchema, register, }: DefinePluginEntryOptions): DefinedPluginEntry;",
          "exportName": "definePluginEntry",
          "kind": "function",
          "source": {
            "line": 137,
            "path": "src/plugin-sdk/plugin-entry.ts"
          }
        },
        {
          "declaration": "export function emptyPluginConfigSchema(): OpenClawPluginConfigSchema;",
          "exportName": "emptyPluginConfigSchema",
          "kind": "function",
          "source": {
            "line": 108,
            "path": "src/plugins/config-schema.ts"
          }
        },
        {
          "declaration": "export type AnyAgentTool = AnyAgentTool;",
          "exportName": "AnyAgentTool",
          "kind": "type",
          "source": {
            "line": 9,
            "path": "src/agents/tools/common.ts"
          }
        },
        {
          "declaration": "export type MediaUnderstandingProviderPlugin = MediaUnderstandingProvider;",
          "exportName": "MediaUnderstandingProviderPlugin",
          "kind": "type",
          "source": {
            "line": 1267,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawConfig = OpenClawConfig;",
          "exportName": "OpenClawConfig",
          "kind": "type",
          "source": {
            "line": 32,
            "path": "src/config/types.openclaw.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginApi = OpenClawPluginApi;",
          "exportName": "OpenClawPluginApi",
          "kind": "type",
          "source": {
            "line": 1660,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginCommandDefinition = OpenClawPluginCommandDefinition;",
          "exportName": "OpenClawPluginCommandDefinition",
          "kind": "type",
          "source": {
            "line": 1386,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;",
          "exportName": "OpenClawPluginConfigSchema",
          "kind": "type",
          "source": {
            "line": 100,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginDefinition = OpenClawPluginDefinition;",
          "exportName": "OpenClawPluginDefinition",
          "kind": "type",
          "source": {
            "line": 1642,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginService = OpenClawPluginService;",
          "exportName": "OpenClawPluginService",
          "kind": "type",
          "source": {
            "line": 1609,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginServiceContext = OpenClawPluginServiceContext;",
          "exportName": "OpenClawPluginServiceContext",
          "kind": "type",
          "source": {
            "line": 1601,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginToolContext = OpenClawPluginToolContext;",
          "exportName": "OpenClawPluginToolContext",
          "kind": "type",
          "source": {
            "line": 115,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginToolFactory = OpenClawPluginToolFactory;",
          "exportName": "OpenClawPluginToolFactory",
          "kind": "type",
          "source": {
            "line": 140,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginCommandContext = PluginCommandContext;",
          "exportName": "PluginCommandContext",
          "kind": "type",
          "source": {
            "line": 1282,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginInteractiveTelegramHandlerContext = PluginInteractiveTelegramHandlerContext;",
          "exportName": "PluginInteractiveTelegramHandlerContext",
          "kind": "type",
          "source": {
            "line": 1415,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginLogger = PluginLogger;",
          "exportName": "PluginLogger",
          "kind": "type",
          "source": {
            "line": 71,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAugmentModelCatalogContext = ProviderAugmentModelCatalogContext;",
          "exportName": "ProviderAugmentModelCatalogContext",
          "kind": "type",
          "source": {
            "line": 709,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthContext = ProviderAuthContext;",
          "exportName": "ProviderAuthContext",
          "kind": "type",
          "source": {
            "line": 175,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthDoctorHintContext = ProviderAuthDoctorHintContext;",
          "exportName": "ProviderAuthDoctorHintContext",
          "kind": "type",
          "source": {
            "line": 513,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthMethod = ProviderAuthMethod;",
          "exportName": "ProviderAuthMethod",
          "kind": "type",
          "source": {
            "line": 254,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthMethodNonInteractiveContext = ProviderAuthMethodNonInteractiveContext;",
          "exportName": "ProviderAuthMethodNonInteractiveContext",
          "kind": "type",
          "source": {
            "line": 238,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthResult = ProviderAuthResult;",
          "exportName": "ProviderAuthResult",
          "kind": "type",
          "source": {
            "line": 160,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuildMissingAuthMessageContext = ProviderBuildMissingAuthMessageContext;",
          "exportName": "ProviderBuildMissingAuthMessageContext",
          "kind": "type",
          "source": {
            "line": 621,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuildUnknownModelHintContext = ProviderBuildUnknownModelHintContext;",
          "exportName": "ProviderBuildUnknownModelHintContext",
          "kind": "type",
          "source": {
            "line": 637,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuiltInModelSuppressionContext = ProviderBuiltInModelSuppressionContext;",
          "exportName": "ProviderBuiltInModelSuppressionContext",
          "kind": "type",
          "source": {
            "line": 653,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuiltInModelSuppressionResult = ProviderBuiltInModelSuppressionResult;",
          "exportName": "ProviderBuiltInModelSuppressionResult",
          "kind": "type",
          "source": {
            "line": 662,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderCacheTtlEligibilityContext = ProviderCacheTtlEligibilityContext;",
          "exportName": "ProviderCacheTtlEligibilityContext",
          "kind": "type",
          "source": {
            "line": 609,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderCatalogContext = ProviderCatalogContext;",
          "exportName": "ProviderCatalogContext",
          "kind": "type",
          "source": {
            "line": 275,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderCatalogResult = ProviderCatalogResult;",
          "exportName": "ProviderCatalogResult",
          "kind": "type",
          "source": {
            "line": 298,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderDefaultThinkingPolicyContext = ProviderDefaultThinkingPolicyContext;",
          "exportName": "ProviderDefaultThinkingPolicyContext",
          "kind": "type",
          "source": {
            "line": 686,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderDiscoveryContext = ProviderCatalogContext;",
          "exportName": "ProviderDiscoveryContext",
          "kind": "type",
          "source": {
            "line": 725,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderFetchUsageSnapshotContext = ProviderFetchUsageSnapshotContext;",
          "exportName": "ProviderFetchUsageSnapshotContext",
          "kind": "type",
          "source": {
            "line": 494,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderModernModelPolicyContext = ProviderModernModelPolicyContext;",
          "exportName": "ProviderModernModelPolicyContext",
          "kind": "type",
          "source": {
            "line": 696,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderNormalizeConfigContext = ProviderNormalizeConfigContext;",
          "exportName": "ProviderNormalizeConfigContext",
          "kind": "type",
          "source": {
            "line": 385,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderNormalizeModelIdContext = ProviderNormalizeModelIdContext;",
          "exportName": "ProviderNormalizeModelIdContext",
          "kind": "type",
          "source": {
            "line": 374,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderNormalizeResolvedModelContext = ProviderNormalizeResolvedModelContext;",
          "exportName": "ProviderNormalizeResolvedModelContext",
          "kind": "type",
          "source": {
            "line": 359,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderNormalizeTransportContext = ProviderNormalizeTransportContext;",
          "exportName": "ProviderNormalizeTransportContext",
          "kind": "type",
          "source": {
            "line": 397,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPreparedRuntimeAuth = ProviderPreparedRuntimeAuth;",
          "exportName": "ProviderPreparedRuntimeAuth",
          "kind": "type",
          "source": {
            "line": 441,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPrepareDynamicModelContext = ProviderResolveDynamicModelContext;",
          "exportName": "ProviderPrepareDynamicModelContext",
          "kind": "type",
          "source": {
            "line": 350,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPrepareExtraParamsContext = ProviderPrepareExtraParamsContext;",
          "exportName": "ProviderPrepareExtraParamsContext",
          "kind": "type",
          "source": {
            "line": 527,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPrepareRuntimeAuthContext = ProviderPrepareRuntimeAuthContext;",
          "exportName": "ProviderPrepareRuntimeAuthContext",
          "kind": "type",
          "source": {
            "line": 420,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolveConfigApiKeyContext = ProviderResolveConfigApiKeyContext;",
          "exportName": "ProviderResolveConfigApiKeyContext",
          "kind": "type",
          "source": {
            "line": 409,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolvedUsageAuth = ProviderResolvedUsageAuth;",
          "exportName": "ProviderResolvedUsageAuth",
          "kind": "type",
          "source": {
            "line": 481,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolveDynamicModelContext = ProviderResolveDynamicModelContext;",
          "exportName": "ProviderResolveDynamicModelContext",
          "kind": "type",
          "source": {
            "line": 333,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolveUsageAuthContext = ProviderResolveUsageAuthContext;",
          "exportName": "ProviderResolveUsageAuthContext",
          "kind": "type",
          "source": {
            "line": 462,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderRuntimeModel = ProviderRuntimeModel;",
          "exportName": "ProviderRuntimeModel",
          "kind": "type",
          "source": {
            "line": 316,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderThinkingPolicyContext = ProviderThinkingPolicyContext;",
          "exportName": "ProviderThinkingPolicyContext",
          "kind": "type",
          "source": {
            "line": 674,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderWrapStreamFnContext = ProviderWrapStreamFnContext;",
          "exportName": "ProviderWrapStreamFnContext",
          "kind": "type",
          "source": {
            "line": 560,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type SpeechProviderPlugin = SpeechProviderPlugin;",
          "exportName": "SpeechProviderPlugin",
          "kind": "type",
          "source": {
            "line": 1242,
            "path": "src/plugins/types.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/plugin-entry",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/plugin-entry.ts"
      }
    },
    {
      "category": "provider",
      "entrypoint": "provider-onboard",
      "exports": [
        {
          "declaration": "export function applyAgentDefaultModelPrimary(cfg: OpenClawConfig, primary: string): OpenClawConfig;",
          "exportName": "applyAgentDefaultModelPrimary",
          "kind": "function",
          "source": {
            "line": 267,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export function applyOnboardAuthAgentModelsAndProviders(cfg: OpenClawConfig, params: { agentModels: Record<string, AgentModelEntryConfig>; providers: Record<string, ModelProviderConfig>; }): OpenClawConfig;",
          "exportName": "applyOnboardAuthAgentModelsAndProviders",
          "kind": "function",
          "source": {
            "line": 244,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export function applyProviderConfigWithDefaultModel(cfg: OpenClawConfig, params: { agentModels: Record<string, AgentModelEntryConfig>; providerId: string; api: \"github-copilot\" | \"openai-completions\" | ... 5 more ... | \"ollama\"; baseUrl: string; defaultModel: ModelDefinitionConfig; defaultModelId?: string | undefined; }): OpenClawConfig;",
          "exportName": "applyProviderConfigWithDefaultModel",
          "kind": "function",
          "source": {
            "line": 321,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export function applyProviderConfigWithDefaultModelPreset(cfg: OpenClawConfig, params: { providerId: string; api: \"github-copilot\" | \"openai-completions\" | \"openai-responses\" | \"openai-codex-responses\" | \"anthropic-messages\" | \"google-generative-ai\" | \"bedrock-converse-stream\" | \"ollama\"; ... 4 more ...; primaryModelRef?: string | undefined; }): OpenClawConfig;",
          "exportName": "applyProviderConfigWithDefaultModelPreset",
          "kind": "function",
          "source": {
            "line": 342,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export function applyProviderConfigWithDefaultModels(cfg: OpenClawConfig, params: { agentModels: Record<string, AgentModelEntryConfig>; providerId: string; api: \"github-copilot\" | \"openai-completions\" | ... 5 more ... | \"ollama\"; baseUrl: string; defaultModels: ModelDefinitionConfig[]; defaultModelId?: string | undefined; }): OpenClawConfig;",
          "exportName": "applyProviderConfigWithDefaultModels",
          "kind": "function",
          "source": {
            "line": 287,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export function applyProviderConfigWithDefaultModelsPreset(cfg: OpenClawConfig, params: { providerId: string; api: \"github-copilot\" | \"openai-completions\" | \"openai-responses\" | \"openai-codex-responses\" | \"anthropic-messages\" | \"google-generative-ai\" | \"bedrock-converse-stream\" | \"ollama\"; ... 4 more ...; primaryModelRef?: string | undefined; }): OpenClawConfig;",
          "exportName": "applyProviderConfigWithDefaultModelsPreset",
          "kind": "function",
          "source": {
            "line": 384,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export function applyProviderConfigWithModelCatalog(cfg: OpenClawConfig, params: { agentModels: Record<string, AgentModelEntryConfig>; providerId: string; api: \"github-copilot\" | \"openai-completions\" | ... 5 more ... | \"ollama\"; baseUrl: string; catalogModels: ModelDefinitionConfig[]; }): OpenClawConfig;",
          "exportName": "applyProviderConfigWithModelCatalog",
          "kind": "function",
          "source": {
            "line": 426,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export function applyProviderConfigWithModelCatalogPreset(cfg: OpenClawConfig, params: { providerId: string; api: \"github-copilot\" | \"openai-completions\" | \"openai-responses\" | \"openai-codex-responses\" | \"anthropic-messages\" | \"google-generative-ai\" | \"bedrock-converse-stream\" | \"ollama\"; baseUrl: string; catalogModels: ModelDefinitionConfig[]; aliases?: readonly AgentModelAliasEntry[] | undefined; primaryModelRef?: string | undefined; }): OpenClawConfig;",
          "exportName": "applyProviderConfigWithModelCatalogPreset",
          "kind": "function",
          "source": {
            "line": 458,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export function createDefaultModelPresetAppliers<TArgs extends unknown[]>(params: { resolveParams: (cfg: OpenClawConfig, ...args: TArgs) => Omit<{ providerId: string; api: \"github-copilot\" | \"openai-completions\" | \"openai-responses\" | ... 4 more ... | \"ollama\"; ... 4 more ...; primaryModelRef?: string | undefined; }, \"primaryModelRef\"> | null | undefined; primaryModelRef: string; }): ProviderOnboardPresetAppliers<...>;",
          "exportName": "createDefaultModelPresetAppliers",
          "kind": "function",
          "source": {
            "line": 367,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export function createDefaultModelsPresetAppliers<TArgs extends unknown[]>(params: { resolveParams: (cfg: OpenClawConfig, ...args: TArgs) => Omit<{ providerId: string; api: \"github-copilot\" | \"openai-completions\" | \"openai-responses\" | ... 4 more ... | \"ollama\"; ... 4 more ...; primaryModelRef?: string | undefined; }, \"primaryModelRef\"> | null | undefined; primaryModelRef: string; }): ProviderOnboardPresetAppliers<...>;",
          "exportName": "createDefaultModelsPresetAppliers",
          "kind": "function",
          "source": {
            "line": 409,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export function createModelCatalogPresetAppliers<TArgs extends unknown[]>(params: { resolveParams: (cfg: OpenClawConfig, ...args: TArgs) => Omit<{ providerId: string; api: \"github-copilot\" | \"openai-completions\" | \"openai-responses\" | ... 4 more ... | \"ollama\"; baseUrl: string; catalogModels: ModelDefinitionConfig[]; aliases?: readonly AgentModelAliasEntry[] | undefined; primaryModelRef?: string | undefined; }, \"primaryModelRef\"> | null | undefined; primaryModelRef: string; }): ProviderOnboardPresetAppliers<...>;",
          "exportName": "createModelCatalogPresetAppliers",
          "kind": "function",
          "source": {
            "line": 481,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export function ensureModelAllowlistEntry(params: { cfg: OpenClawConfig; modelRef: string; defaultProvider?: string | undefined; }): OpenClawConfig;",
          "exportName": "ensureModelAllowlistEntry",
          "kind": "function",
          "source": {
            "line": 498,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export function withAgentModelAliases(existing: Record<string, AgentModelEntryConfig> | undefined, aliases: readonly AgentModelAliasEntry[]): Record<string, AgentModelEntryConfig>;",
          "exportName": "withAgentModelAliases",
          "kind": "function",
          "source": {
            "line": 229,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export type AgentModelAliasEntry = AgentModelAliasEntry;",
          "exportName": "AgentModelAliasEntry",
          "kind": "type",
          "source": {
            "line": 21,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        },
        {
          "declaration": "export type ModelApi = \"github-copilot\" | \"openai-completions\" | \"openai-responses\" | \"openai-codex-responses\" | \"anthropic-messages\" | \"google-generative-ai\" | \"bedrock-converse-stream\" | \"ollama\";",
          "exportName": "ModelApi",
          "kind": "type",
          "source": {
            "line": 15,
            "path": "src/config/types.models.ts"
          }
        },
        {
          "declaration": "export type ModelDefinitionConfig = ModelDefinitionConfig;",
          "exportName": "ModelDefinitionConfig",
          "kind": "type",
          "source": {
            "line": 48,
            "path": "src/config/types.models.ts"
          }
        },
        {
          "declaration": "export type ModelProviderConfig = ModelProviderConfig;",
          "exportName": "ModelProviderConfig",
          "kind": "type",
          "source": {
            "line": 66,
            "path": "src/config/types.models.ts"
          }
        },
        {
          "declaration": "export type OpenClawConfig = OpenClawConfig;",
          "exportName": "OpenClawConfig",
          "kind": "type",
          "source": {
            "line": 32,
            "path": "src/config/types.openclaw.ts"
          }
        },
        {
          "declaration": "export type ProviderOnboardPresetAppliers = ProviderOnboardPresetAppliers<TArgs>;",
          "exportName": "ProviderOnboardPresetAppliers",
          "kind": "type",
          "source": {
            "line": 28,
            "path": "src/plugin-sdk/provider-onboard.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/provider-onboard",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/provider-onboard.ts"
      }
    },
    {
      "category": "utilities",
      "entrypoint": "reply-payload",
      "exports": [
        {
          "declaration": "export function buildMediaPayload(mediaList: MediaPayloadInput[], opts?: { preserveMediaTypeCardinality?: boolean | undefined; } | undefined): MediaPayload;",
          "exportName": "buildMediaPayload",
          "kind": "function",
          "source": {
            "line": 15,
            "path": "src/channels/plugins/media-payload.ts"
          }
        },
        {
          "declaration": "export function countOutboundMedia(payload: { mediaUrls?: string[] | undefined; mediaUrl?: string | undefined; }): number;",
          "exportName": "countOutboundMedia",
          "kind": "function",
          "source": {
            "line": 83,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function createNormalizedOutboundDeliverer(handler: (payload: OutboundReplyPayload) => Promise<void>): (payload: unknown) => Promise<void>;",
          "exportName": "createNormalizedOutboundDeliverer",
          "kind": "function",
          "source": {
            "line": 51,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function deliverFormattedTextWithAttachments(params: { payload: OutboundReplyPayload; send: (params: { text: string; replyToId?: string | undefined; }) => Promise<void>; }): Promise<boolean>;",
          "exportName": "deliverFormattedTextWithAttachments",
          "kind": "function",
          "source": {
            "line": 386,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function deliverTextOrMediaReply(params: { payload: OutboundReplyPayload; text: string; chunkText?: ((text: string) => readonly string[]) | undefined; sendText: (text: string) => Promise<void>; sendMedia: (payload: { ...; }) => Promise<...>; onMediaError?: ((params: { ...; }) => void | Promise<...>) | undefined; }): Promise<...>;",
          "exportName": "deliverTextOrMediaReply",
          "kind": "function",
          "source": {
            "line": 345,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function formatTextWithAttachmentLinks(text: string | undefined, mediaUrls: string[]): string;",
          "exportName": "formatTextWithAttachmentLinks",
          "kind": "function",
          "source": {
            "line": 286,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function hasOutboundMedia(payload: { mediaUrls?: string[] | undefined; mediaUrl?: string | undefined; }): boolean;",
          "exportName": "hasOutboundMedia",
          "kind": "function",
          "source": {
            "line": 88,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function hasOutboundReplyContent(payload: { text?: string | undefined; mediaUrls?: string[] | undefined; mediaUrl?: string | undefined; }, options?: { trimText?: boolean | undefined; } | undefined): boolean;",
          "exportName": "hasOutboundReplyContent",
          "kind": "function",
          "source": {
            "line": 99,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function hasOutboundText(payload: { text?: string | undefined; }, options?: { trim?: boolean | undefined; } | undefined): boolean;",
          "exportName": "hasOutboundText",
          "kind": "function",
          "source": {
            "line": 93,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function isNumericTargetId(raw: string): boolean;",
          "exportName": "isNumericTargetId",
          "kind": "function",
          "source": {
            "line": 277,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function normalizeOutboundReplyPayload(payload: Record<string, unknown>): OutboundReplyPayload;",
          "exportName": "normalizeOutboundReplyPayload",
          "kind": "function",
          "source": {
            "line": 31,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function resolveOutboundMediaUrls(payload: { mediaUrls?: string[] | undefined; mediaUrl?: string | undefined; }): string[];",
          "exportName": "resolveOutboundMediaUrls",
          "kind": "function",
          "source": {
            "line": 64,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function resolvePayloadMediaUrls(payload: ReplyPayload): string[];",
          "exportName": "resolvePayloadMediaUrls",
          "kind": "function",
          "source": {
            "line": 78,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function resolveSendableOutboundReplyParts(payload: { text?: string | undefined; mediaUrls?: string[] | undefined; mediaUrl?: string | undefined; }, options?: { text?: string | undefined; } | undefined): SendableOutboundReplyParts;",
          "exportName": "resolveSendableOutboundReplyParts",
          "kind": "function",
          "source": {
            "line": 107,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function resolveTextChunksWithFallback(text: string, chunks: readonly string[]): string[];",
          "exportName": "resolveTextChunksWithFallback",
          "kind": "function",
          "source": {
            "line": 131,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function sendMediaWithLeadingCaption(params: { mediaUrls: string[]; caption: string; send: (payload: { mediaUrl: string; caption?: string | undefined; }) => Promise<void>; onError?: ((params: { error: unknown; mediaUrl: string; caption?: string | undefined; index: number; isFirst: boolean; }) => void | Promise<...>) | undefined; }): Promise<...>;",
          "exportName": "sendMediaWithLeadingCaption",
          "kind": "function",
          "source": {
            "line": 307,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function sendPayloadMediaSequence<TResult>(params: { text: string; mediaUrls: readonly string[]; send: (input: { text: string; mediaUrl: string; index: number; isFirst: boolean; }) => Promise<TResult>; }): Promise<TResult | undefined>;",
          "exportName": "sendPayloadMediaSequence",
          "kind": "function",
          "source": {
            "line": 183,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function sendPayloadMediaSequenceAndFinalize<TMediaResult, TResult>(params: { text: string; mediaUrls: readonly string[]; send: (input: { text: string; mediaUrl: string; index: number; isFirst: boolean; }) => Promise<TMediaResult>; finalize: () => Promise<TResult>; }): Promise<...>;",
          "exportName": "sendPayloadMediaSequenceAndFinalize",
          "kind": "function",
          "source": {
            "line": 227,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function sendPayloadMediaSequenceOrFallback<TResult>(params: { text: string; mediaUrls: readonly string[]; send: (input: { text: string; mediaUrl: string; index: number; isFirst: boolean; }) => Promise<TResult>; fallbackResult: TResult; sendNoMedia?: (() => Promise<...>) | undefined; }): Promise<...>;",
          "exportName": "sendPayloadMediaSequenceOrFallback",
          "kind": "function",
          "source": {
            "line": 209,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function sendPayloadWithChunkedTextAndMedia<TContext extends { payload: object; }, TResult>(params: { ctx: TContext; textChunkLimit?: number | undefined; chunker?: ((text: string, limit: number) => string[]) | null | undefined; sendText: (ctx: TContext & { ...; }) => Promise<...>; sendMedia: (ctx: TContext & { ...; }) => Promise<...>; emptyResult: TResult; }): Promise<...>;",
          "exportName": "sendPayloadWithChunkedTextAndMedia",
          "kind": "function",
          "source": {
            "line": 142,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export function sendTextMediaPayload(params: { channel: string; ctx: ChannelOutboundPayloadContext; adapter: SendPayloadAdapter; }): Promise<OutboundDeliveryResult>;",
          "exportName": "sendTextMediaPayload",
          "kind": "function",
          "source": {
            "line": 244,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export type MediaPayload = MediaPayload;",
          "exportName": "MediaPayload",
          "kind": "type",
          "source": {
            "line": 6,
            "path": "src/channels/plugins/media-payload.ts"
          }
        },
        {
          "declaration": "export type MediaPayloadInput = MediaPayloadInput;",
          "exportName": "MediaPayloadInput",
          "kind": "type",
          "source": {
            "line": 1,
            "path": "src/channels/plugins/media-payload.ts"
          }
        },
        {
          "declaration": "export type OutboundReplyPayload = OutboundReplyPayload;",
          "exportName": "OutboundReplyPayload",
          "kind": "type",
          "source": {
            "line": 6,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        },
        {
          "declaration": "export type SendableOutboundReplyParts = SendableOutboundReplyParts;",
          "exportName": "SendableOutboundReplyParts",
          "kind": "type",
          "source": {
            "line": 13,
            "path": "src/plugin-sdk/reply-payload.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/reply-payload",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/reply-payload.ts"
      }
    },
    {
      "category": "runtime",
      "entrypoint": "runtime-store",
      "exports": [
        {
          "declaration": "export function createPluginRuntimeStore<T>(errorMessage: string): { setRuntime: (next: T) => void; clearRuntime: () => void; tryGetRuntime: () => T | null; getRuntime: () => T; };",
          "exportName": "createPluginRuntimeStore",
          "kind": "function",
          "source": {
            "line": 4,
            "path": "src/plugin-sdk/runtime-store.ts"
          }
        },
        {
          "declaration": "export type PluginRuntime = PluginRuntime;",
          "exportName": "PluginRuntime",
          "kind": "type",
          "source": {
            "line": 54,
            "path": "src/plugins/runtime/types.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/runtime-store",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/runtime-store.ts"
      }
    },
    {
      "category": "channel",
      "entrypoint": "secret-input",
      "exports": [
        {
          "declaration": "export function buildOptionalSecretInputSchema(): ZodOptional<ZodUnion<readonly [ZodString, ZodDiscriminatedUnion<[ZodObject<{ source: ZodLiteral<\"env\">; provider: ZodString; id: ZodString; }, $strip>, ZodObject<...>, ZodObject<...>], \"source\">]>>;",
          "exportName": "buildOptionalSecretInputSchema",
          "kind": "function",
          "source": {
            "line": 20,
            "path": "src/plugin-sdk/secret-input.ts"
          }
        },
        {
          "declaration": "export function buildSecretInputArraySchema(): ZodArray<ZodUnion<readonly [ZodString, ZodDiscriminatedUnion<[ZodObject<{ source: ZodLiteral<\"env\">; provider: ZodString; id: ZodString; }, $strip>, ZodObject<...>, ZodObject<...>], \"source\">]>>;",
          "exportName": "buildSecretInputArraySchema",
          "kind": "function",
          "source": {
            "line": 25,
            "path": "src/plugin-sdk/secret-input.ts"
          }
        },
        {
          "declaration": "export function buildSecretInputSchema(): ZodUnion<readonly [ZodString, ZodDiscriminatedUnion<[ZodObject<{ source: ZodLiteral<\"env\">; provider: ZodString; id: ZodString; }, $strip>, ZodObject<...>, ZodObject<...>], \"source\">]>;",
          "exportName": "buildSecretInputSchema",
          "kind": "function",
          "source": {
            "line": 11,
            "path": "src/plugin-sdk/secret-input-schema.ts"
          }
        },
        {
          "declaration": "export function hasConfiguredSecretInput(value: unknown, defaults?: SecretDefaults | undefined): boolean;",
          "exportName": "hasConfiguredSecretInput",
          "kind": "function",
          "source": {
            "line": 106,
            "path": "src/config/types.secrets.ts"
          }
        },
        {
          "declaration": "export function normalizeResolvedSecretInputString(params: { value: unknown; refValue?: unknown; defaults?: SecretDefaults | undefined; path: string; }): string | undefined;",
          "exportName": "normalizeResolvedSecretInputString",
          "kind": "function",
          "source": {
            "line": 144,
            "path": "src/config/types.secrets.ts"
          }
        },
        {
          "declaration": "export function normalizeSecretInput(value: unknown): string;",
          "exportName": "normalizeSecretInput",
          "kind": "function",
          "source": {
            "line": 16,
            "path": "src/utils/normalize-secret-input.ts"
          }
        },
        {
          "declaration": "export function normalizeSecretInputString(value: unknown): string | undefined;",
          "exportName": "normalizeSecretInputString",
          "kind": "function",
          "source": {
            "line": 113,
            "path": "src/config/types.secrets.ts"
          }
        },
        {
          "declaration": "export type SecretInput = SecretInput;",
          "exportName": "SecretInput",
          "kind": "type",
          "source": {
            "line": 16,
            "path": "src/config/types.secrets.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/secret-input",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/secret-input.ts"
      }
    },
    {
      "category": "utilities",
      "entrypoint": "testing",
      "exports": [
        {
          "declaration": "export function createWindowsCmdShimFixture(params: { shimPath: string; scriptPath: string; shimLine: string; }): Promise<void>;",
          "exportName": "createWindowsCmdShimFixture",
          "kind": "function",
          "source": {
            "line": 16,
            "path": "src/plugin-sdk/testing.ts"
          }
        },
        {
          "declaration": "export function installCommonResolveTargetErrorCases(params: { resolveTarget: ResolveTargetFn; implicitAllowFrom: string[]; }): void;",
          "exportName": "installCommonResolveTargetErrorCases",
          "kind": "function",
          "source": {
            "line": 42,
            "path": "src/plugin-sdk/testing.ts"
          }
        },
        {
          "declaration": "export function removeAckReactionAfterReply(params: { removeAfterReply: boolean; ackReactionPromise: Promise<boolean> | null; ackReactionValue: string | null; remove: () => Promise<void>; onError?: ((err: unknown) => void) | undefined; }): void;",
          "exportName": "removeAckReactionAfterReply",
          "kind": "function",
          "source": {
            "line": 81,
            "path": "src/channels/ack-reactions.ts"
          }
        },
        {
          "declaration": "export function shouldAckReaction(params: AckReactionGateParams): boolean;",
          "exportName": "shouldAckReaction",
          "kind": "function",
          "source": {
            "line": 16,
            "path": "src/channels/ack-reactions.ts"
          }
        },
        {
          "declaration": "export type ChannelAccountSnapshot = ChannelAccountSnapshot;",
          "exportName": "ChannelAccountSnapshot",
          "kind": "type",
          "source": {
            "line": 145,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelGatewayContext = ChannelGatewayContext<ResolvedAccount>;",
          "exportName": "ChannelGatewayContext",
          "kind": "type",
          "source": {
            "line": 243,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type MockFn = MockFn<T>;",
          "exportName": "MockFn",
          "kind": "type",
          "source": {
            "line": 5,
            "path": "src/test-utils/vitest-mock-fn.ts"
          }
        },
        {
          "declaration": "export type OpenClawConfig = OpenClawConfig;",
          "exportName": "OpenClawConfig",
          "kind": "type",
          "source": {
            "line": 32,
            "path": "src/config/types.openclaw.ts"
          }
        },
        {
          "declaration": "export type PluginRuntime = PluginRuntime;",
          "exportName": "PluginRuntime",
          "kind": "type",
          "source": {
            "line": 54,
            "path": "src/plugins/runtime/types.ts"
          }
        },
        {
          "declaration": "export type RuntimeEnv = RuntimeEnv;",
          "exportName": "RuntimeEnv",
          "kind": "type",
          "source": {
            "line": 4,
            "path": "src/runtime.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/testing",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/testing.ts"
      }
    },
    {
      "category": "channel",
      "entrypoint": "webhook-ingress",
      "exports": [
        {
          "declaration": "export function applyBasicWebhookRequestGuards(params: { req: IncomingMessage; res: ServerResponse<IncomingMessage>; allowMethods?: readonly string[] | undefined; rateLimiter?: FixedWindowRateLimiter | undefined; rateLimitKey?: string | undefined; nowMs?: number | undefined; requireJsonContentType?: boolean | undefined; }): boolean;",
          "exportName": "applyBasicWebhookRequestGuards",
          "kind": "function",
          "source": {
            "line": 151,
            "path": "src/plugin-sdk/webhook-request-guards.ts"
          }
        },
        {
          "declaration": "export function beginWebhookRequestPipelineOrReject(params: { req: IncomingMessage; res: ServerResponse<IncomingMessage>; allowMethods?: readonly string[] | undefined; rateLimiter?: FixedWindowRateLimiter | undefined; ... 6 more ...; inFlightLimitMessage?: string | undefined; }): { ...; } | { ...; };",
          "exportName": "beginWebhookRequestPipelineOrReject",
          "kind": "function",
          "source": {
            "line": 192,
            "path": "src/plugin-sdk/webhook-request-guards.ts"
          }
        },
        {
          "declaration": "export function createBoundedCounter(options: { maxTrackedKeys: number; ttlMs?: number | undefined; pruneIntervalMs?: number | undefined; }): BoundedCounter;",
          "exportName": "createBoundedCounter",
          "kind": "function",
          "source": {
            "line": 109,
            "path": "src/plugin-sdk/webhook-memory-guards.ts"
          }
        },
        {
          "declaration": "export function createFixedWindowRateLimiter(options: { windowMs: number; maxRequests: number; maxTrackedKeys: number; pruneIntervalMs?: number | undefined; }): FixedWindowRateLimiter;",
          "exportName": "createFixedWindowRateLimiter",
          "kind": "function",
          "source": {
            "line": 52,
            "path": "src/plugin-sdk/webhook-memory-guards.ts"
          }
        },
        {
          "declaration": "export function createWebhookAnomalyTracker(options?: { maxTrackedKeys?: number | undefined; ttlMs?: number | undefined; logEvery?: number | undefined; trackedStatusCodes?: readonly number[] | undefined; } | undefined): WebhookAnomalyTracker;",
          "exportName": "createWebhookAnomalyTracker",
          "kind": "function",
          "source": {
            "line": 167,
            "path": "src/plugin-sdk/webhook-memory-guards.ts"
          }
        },
        {
          "declaration": "export function createWebhookInFlightLimiter(options?: { maxInFlightPerKey?: number | undefined; maxTrackedKeys?: number | undefined; } | undefined): WebhookInFlightLimiter;",
          "exportName": "createWebhookInFlightLimiter",
          "kind": "function",
          "source": {
            "line": 94,
            "path": "src/plugin-sdk/webhook-request-guards.ts"
          }
        },
        {
          "declaration": "export function isJsonContentType(value: string | string[] | undefined): boolean;",
          "exportName": "isJsonContentType",
          "kind": "function",
          "source": {
            "line": 141,
            "path": "src/plugin-sdk/webhook-request-guards.ts"
          }
        },
        {
          "declaration": "export function isRequestBodyLimitError(error: unknown, code?: RequestBodyLimitErrorCode | undefined): error is RequestBodyLimitError;",
          "exportName": "isRequestBodyLimitError",
          "kind": "function",
          "source": {
            "line": 47,
            "path": "src/infra/http-body.ts"
          }
        },
        {
          "declaration": "export function normalizePluginHttpPath(path?: string | null | undefined, fallback?: string | null | undefined): string | null;",
          "exportName": "normalizePluginHttpPath",
          "kind": "function",
          "source": {
            "line": 1,
            "path": "src/plugins/http-path.ts"
          }
        },
        {
          "declaration": "export function normalizeWebhookPath(raw: string): string;",
          "exportName": "normalizeWebhookPath",
          "kind": "function",
          "source": {
            "line": 2,
            "path": "src/plugin-sdk/webhook-path.ts"
          }
        },
        {
          "declaration": "export function readJsonWebhookBodyOrReject(params: { req: IncomingMessage; res: ServerResponse<IncomingMessage>; maxBytes?: number | undefined; timeoutMs?: number | undefined; profile?: WebhookBodyReadProfile | undefined; emptyObjectOnEmpty?: boolean | undefined; invalidJsonMessage?: string | undefined; }): Promise<...>;",
          "exportName": "readJsonWebhookBodyOrReject",
          "kind": "function",
          "source": {
            "line": 278,
            "path": "src/plugin-sdk/webhook-request-guards.ts"
          }
        },
        {
          "declaration": "export function readRequestBodyWithLimit(req: IncomingMessage, options: ReadRequestBodyOptions): Promise<string>;",
          "exportName": "readRequestBodyWithLimit",
          "kind": "function",
          "source": {
            "line": 122,
            "path": "src/infra/http-body.ts"
          }
        },
        {
          "declaration": "export function readWebhookBodyOrReject(params: { req: IncomingMessage; res: ServerResponse<IncomingMessage>; maxBytes?: number | undefined; timeoutMs?: number | undefined; profile?: WebhookBodyReadProfile | undefined; invalidBodyMessage?: string | undefined; }): Promise<...>;",
          "exportName": "readWebhookBodyOrReject",
          "kind": "function",
          "source": {
            "line": 243,
            "path": "src/plugin-sdk/webhook-request-guards.ts"
          }
        },
        {
          "declaration": "export function registerPluginHttpRoute(params: { path?: string | null | undefined; fallbackPath?: string | null | undefined; handler: PluginHttpRouteHandler; auth: OpenClawPluginHttpRouteAuth; ... 6 more ...; registry?: PluginRegistry | undefined; }): () => void;",
          "exportName": "registerPluginHttpRoute",
          "kind": "function",
          "source": {
            "line": 12,
            "path": "src/plugins/http-registry.ts"
          }
        },
        {
          "declaration": "export function registerWebhookTarget<T extends { path: string; }>(targetsByPath: Map<string, T[]>, target: T, opts?: RegisterWebhookTargetOptions<T> | undefined): RegisteredWebhookTarget<T>;",
          "exportName": "registerWebhookTarget",
          "kind": "function",
          "source": {
            "line": 61,
            "path": "src/plugin-sdk/webhook-targets.ts"
          }
        },
        {
          "declaration": "export function registerWebhookTargetWithPluginRoute<T extends { path: string; }>(params: { targetsByPath: Map<string, T[]>; target: T; route: RegisterWebhookPluginRouteOptions; onLastPathTargetRemoved?: ((params: { ...; }) => void) | undefined; }): RegisteredWebhookTarget<...>;",
          "exportName": "registerWebhookTargetWithPluginRoute",
          "kind": "function",
          "source": {
            "line": 30,
            "path": "src/plugin-sdk/webhook-targets.ts"
          }
        },
        {
          "declaration": "export function requestBodyErrorToText(code: RequestBodyLimitErrorCode): string;",
          "exportName": "requestBodyErrorToText",
          "kind": "function",
          "source": {
            "line": 60,
            "path": "src/infra/http-body.ts"
          }
        },
        {
          "declaration": "export function resolveRequestClientIp(req?: IncomingMessage | undefined, trustedProxies?: string[] | undefined, allowRealIpFallback?: boolean): string | undefined;",
          "exportName": "resolveRequestClientIp",
          "kind": "function",
          "source": {
            "line": 186,
            "path": "src/gateway/net.ts"
          }
        },
        {
          "declaration": "export function resolveSingleWebhookTarget<T>(targets: readonly T[], isMatch: (target: T) => boolean): WebhookTargetMatchResult<T>;",
          "exportName": "resolveSingleWebhookTarget",
          "kind": "function",
          "source": {
            "line": 193,
            "path": "src/plugin-sdk/webhook-targets.ts"
          }
        },
        {
          "declaration": "export function resolveSingleWebhookTargetAsync<T>(targets: readonly T[], isMatch: (target: T) => Promise<boolean>): Promise<WebhookTargetMatchResult<T>>;",
          "exportName": "resolveSingleWebhookTargetAsync",
          "kind": "function",
          "source": {
            "line": 212,
            "path": "src/plugin-sdk/webhook-targets.ts"
          }
        },
        {
          "declaration": "export function resolveWebhookPath(params: { webhookPath?: string | undefined; webhookUrl?: string | undefined; defaultPath?: string | null | undefined; }): string | null;",
          "exportName": "resolveWebhookPath",
          "kind": "function",
          "source": {
            "line": 15,
            "path": "src/plugin-sdk/webhook-path.ts"
          }
        },
        {
          "declaration": "export function resolveWebhookTargets<T>(req: IncomingMessage, targetsByPath: Map<string, T[]>): { path: string; targets: T[]; } | null;",
          "exportName": "resolveWebhookTargets",
          "kind": "function",
          "source": {
            "line": 107,
            "path": "src/plugin-sdk/webhook-targets.ts"
          }
        },
        {
          "declaration": "export function resolveWebhookTargetWithAuthOrReject<T>(params: { targets: readonly T[]; res: ServerResponse<IncomingMessage>; isMatch: (target: T) => boolean | Promise<boolean>; unauthorizedStatusCode?: number | undefined; unauthorizedMessage?: string | undefined; ambiguousStatusCode?: number | undefined; ambiguousMessage?: string | undefined; }): Promise<...>;",
          "exportName": "resolveWebhookTargetWithAuthOrReject",
          "kind": "function",
          "source": {
            "line": 231,
            "path": "src/plugin-sdk/webhook-targets.ts"
          }
        },
        {
          "declaration": "export function resolveWebhookTargetWithAuthOrRejectSync<T>(params: { targets: readonly T[]; res: ServerResponse<IncomingMessage>; isMatch: (target: T) => boolean; unauthorizedStatusCode?: number | undefined; unauthorizedMessage?: string | undefined; ambiguousStatusCode?: number | undefined; ambiguousMessage?: string | undefined; }): T | null;",
          "exportName": "resolveWebhookTargetWithAuthOrRejectSync",
          "kind": "function",
          "source": {
            "line": 247,
            "path": "src/plugin-sdk/webhook-targets.ts"
          }
        },
        {
          "declaration": "export function withResolvedWebhookRequestPipeline<T>(params: { req: IncomingMessage; res: ServerResponse<IncomingMessage>; targetsByPath: Map<string, T[]>; allowMethods?: readonly string[] | undefined; ... 8 more ...; handle: (args: { ...; }) => boolean | ... 1 more ... | Promise<...>; }): Promise<...>;",
          "exportName": "withResolvedWebhookRequestPipeline",
          "kind": "function",
          "source": {
            "line": 121,
            "path": "src/plugin-sdk/webhook-targets.ts"
          }
        },
        {
          "declaration": "export const WEBHOOK_ANOMALY_COUNTER_DEFAULTS: Readonly<{ maxTrackedKeys: 4096; ttlMs: number; logEvery: 25; }>;",
          "exportName": "WEBHOOK_ANOMALY_COUNTER_DEFAULTS",
          "kind": "const",
          "source": {
            "line": 31,
            "path": "src/plugin-sdk/webhook-memory-guards.ts"
          }
        },
        {
          "declaration": "export const WEBHOOK_ANOMALY_STATUS_CODES: readonly number[];",
          "exportName": "WEBHOOK_ANOMALY_STATUS_CODES",
          "kind": "const",
          "source": {
            "line": 37,
            "path": "src/plugin-sdk/webhook-memory-guards.ts"
          }
        },
        {
          "declaration": "export const WEBHOOK_BODY_READ_DEFAULTS: Readonly<{ preAuth: { maxBytes: number; timeoutMs: number; }; postAuth: { maxBytes: number; timeoutMs: number; }; }>;",
          "exportName": "WEBHOOK_BODY_READ_DEFAULTS",
          "kind": "const",
          "source": {
            "line": 22,
            "path": "src/plugin-sdk/webhook-request-guards.ts"
          }
        },
        {
          "declaration": "export const WEBHOOK_IN_FLIGHT_DEFAULTS: Readonly<{ maxInFlightPerKey: 8; maxTrackedKeys: 4096; }>;",
          "exportName": "WEBHOOK_IN_FLIGHT_DEFAULTS",
          "kind": "const",
          "source": {
            "line": 33,
            "path": "src/plugin-sdk/webhook-request-guards.ts"
          }
        },
        {
          "declaration": "export const WEBHOOK_RATE_LIMIT_DEFAULTS: Readonly<{ windowMs: 60000; maxRequests: 120; maxTrackedKeys: 4096; }>;",
          "exportName": "WEBHOOK_RATE_LIMIT_DEFAULTS",
          "kind": "const",
          "source": {
            "line": 25,
            "path": "src/plugin-sdk/webhook-memory-guards.ts"
          }
        },
        {
          "declaration": "export type BoundedCounter = BoundedCounter;",
          "exportName": "BoundedCounter",
          "kind": "type",
          "source": {
            "line": 19,
            "path": "src/plugin-sdk/webhook-memory-guards.ts"
          }
        },
        {
          "declaration": "export type FixedWindowRateLimiter = FixedWindowRateLimiter;",
          "exportName": "FixedWindowRateLimiter",
          "kind": "type",
          "source": {
            "line": 13,
            "path": "src/plugin-sdk/webhook-memory-guards.ts"
          }
        },
        {
          "declaration": "export type RegisteredWebhookTarget = RegisteredWebhookTarget<T>;",
          "exportName": "RegisteredWebhookTarget",
          "kind": "type",
          "source": {
            "line": 10,
            "path": "src/plugin-sdk/webhook-targets.ts"
          }
        },
        {
          "declaration": "export type RegisterWebhookPluginRouteOptions = RegisterWebhookPluginRouteOptions;",
          "exportName": "RegisterWebhookPluginRouteOptions",
          "kind": "type",
          "source": {
            "line": 24,
            "path": "src/plugin-sdk/webhook-targets.ts"
          }
        },
        {
          "declaration": "export type RegisterWebhookTargetOptions = RegisterWebhookTargetOptions<T>;",
          "exportName": "RegisterWebhookTargetOptions",
          "kind": "type",
          "source": {
            "line": 15,
            "path": "src/plugin-sdk/webhook-targets.ts"
          }
        },
        {
          "declaration": "export type WebhookAnomalyTracker = WebhookAnomalyTracker;",
          "exportName": "WebhookAnomalyTracker",
          "kind": "type",
          "source": {
            "line": 39,
            "path": "src/plugin-sdk/webhook-memory-guards.ts"
          }
        },
        {
          "declaration": "export type WebhookBodyReadProfile = WebhookBodyReadProfile;",
          "exportName": "WebhookBodyReadProfile",
          "kind": "type",
          "source": {
            "line": 12,
            "path": "src/plugin-sdk/webhook-request-guards.ts"
          }
        },
        {
          "declaration": "export type WebhookInFlightLimiter = WebhookInFlightLimiter;",
          "exportName": "WebhookInFlightLimiter",
          "kind": "type",
          "source": {
            "line": 38,
            "path": "src/plugin-sdk/webhook-request-guards.ts"
          }
        },
        {
          "declaration": "export type WebhookTargetMatchResult = WebhookTargetMatchResult<T>;",
          "exportName": "WebhookTargetMatchResult",
          "kind": "type",
          "source": {
            "line": 170,
            "path": "src/plugin-sdk/webhook-targets.ts"
          }
        }
      ],
      "importSpecifier": "openclaw/plugin-sdk/webhook-ingress",
      "source": {
        "line": 1,
        "path": "src/plugin-sdk/webhook-ingress.ts"
      }
    }
  ]
}
