{
  "generatedBy": "scripts/generate-plugin-sdk-api-baseline.ts",
  "modules": [
    {
      "category": "legacy",
      "entrypoint": "index",
      "exports": [
        {
          "declaration": "export function buildFalImageGenerationProvider(): ImageGenerationProvider;",
          "exportName": "buildFalImageGenerationProvider",
          "kind": "function",
          "source": {
            "line": 190,
            "path": "extensions/fal/image-generation-provider.ts"
          }
        },
        {
          "declaration": "export function buildGoogleImageGenerationProvider(): ImageGenerationProvider;",
          "exportName": "buildGoogleImageGenerationProvider",
          "kind": "function",
          "source": {
            "line": 95,
            "path": "extensions/google/image-generation-provider.ts"
          }
        },
        {
          "declaration": "export function buildOpenAIImageGenerationProvider(): ImageGenerationProvider;",
          "exportName": "buildOpenAIImageGenerationProvider",
          "kind": "function",
          "source": {
            "line": 22,
            "path": "extensions/openai/image-generation-provider.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 emptyPluginConfigSchema(): OpenClawPluginConfigSchema;",
          "exportName": "emptyPluginConfigSchema",
          "kind": "function",
          "source": {
            "line": 13,
            "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": 144,
            "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": 230,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelConfigSchema = ChannelConfigSchema;",
          "exportName": "ChannelConfigSchema",
          "kind": "type",
          "source": {
            "line": 48,
            "path": "src/channels/plugins/types.plugin.ts"
          }
        },
        {
          "declaration": "export type ChannelConfiguredBindingConversationRef = ChannelConfiguredBindingConversationRef;",
          "exportName": "ChannelConfiguredBindingConversationRef",
          "kind": "type",
          "source": {
            "line": 553,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelConfiguredBindingMatch = ChannelConfiguredBindingMatch;",
          "exportName": "ChannelConfiguredBindingMatch",
          "kind": "type",
          "source": {
            "line": 558,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelConfiguredBindingProvider = ChannelConfiguredBindingProvider;",
          "exportName": "ChannelConfiguredBindingProvider",
          "kind": "type",
          "source": {
            "line": 562,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelGatewayContext = ChannelGatewayContext<ResolvedAccount>;",
          "exportName": "ChannelGatewayContext",
          "kind": "type",
          "source": {
            "line": 238,
            "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": 516,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionContext = ChannelMessageActionContext;",
          "exportName": "ChannelMessageActionContext",
          "kind": "type",
          "source": {
            "line": 482,
            "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\";",
          "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": 55,
            "path": "src/channels/plugins/types.plugin.ts"
          }
        },
        {
          "declaration": "export type ChannelSetupAdapter = ChannelSetupAdapter;",
          "exportName": "ChannelSetupAdapter",
          "kind": "type",
          "source": {
            "line": 56,
            "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 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": 951,
            "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": 1314,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;",
          "exportName": "OpenClawPluginConfigSchema",
          "kind": "type",
          "source": {
            "line": 88,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginLogger = PluginLogger;",
          "exportName": "PluginLogger",
          "kind": "type",
          "source": {
            "line": 59,
            "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": 155,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthResult = ProviderAuthResult;",
          "exportName": "ProviderAuthResult",
          "kind": "type",
          "source": {
            "line": 140,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderRuntimeModel = ProviderRuntimeModel;",
          "exportName": "ProviderRuntimeModel",
          "kind": "type",
          "source": {
            "line": 295,
            "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": 4,
            "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": 933,
            "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": 11,
            "path": "src/plugin-sdk/channel-actions.ts"
          }
        },
        {
          "declaration": "export function createMessageToolCardSchema(): TSchema;",
          "exportName": "createMessageToolCardSchema",
          "kind": "function",
          "source": {
            "line": 27,
            "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 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"
          }
        }
      ],
      "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": 26,
            "path": "src/channels/plugins/config-schema.ts"
          }
        },
        {
          "declaration": "export function buildChannelConfigSchema(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): ChannelConfigSchema;",
          "exportName": "buildChannelConfigSchema",
          "kind": "function",
          "source": {
            "line": 35,
            "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": 16,
            "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": 14,
            "path": "src/channels/plugins/config-schema.ts"
          }
        },
        {
          "declaration": "export const DmPolicySchema: z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>;",
          "exportName": "DmPolicySchema",
          "kind": "const",
          "source": {
            "line": 337,
            "path": "src/config/zod-schema.core.ts"
          }
        },
        {
          "declaration": "export const GroupPolicySchema: z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>;",
          "exportName": "GroupPolicySchema",
          "kind": "const",
          "source": {
            "line": 335,
            "path": "src/config/zod-schema.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": 371,
            "path": "src/config/zod-schema.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"
          }
        }
      ],
      "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": 558,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type BaseTokenResolution = BaseTokenResolution;",
          "exportName": "BaseTokenResolution",
          "kind": "type",
          "source": {
            "line": 564,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelAccountSnapshot = ChannelAccountSnapshot;",
          "exportName": "ChannelAccountSnapshot",
          "kind": "type",
          "source": {
            "line": 144,
            "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 ChannelGroupContext = ChannelGroupContext;",
          "exportName": "ChannelGroupContext",
          "kind": "type",
          "source": {
            "line": 216,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionAdapter = ChannelMessageActionAdapter;",
          "exportName": "ChannelMessageActionAdapter",
          "kind": "type",
          "source": {
            "line": 516,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionContext = ChannelMessageActionContext;",
          "exportName": "ChannelMessageActionContext",
          "kind": "type",
          "source": {
            "line": 482,
            "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\";",
          "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": 365,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelThreadingToolContext = ChannelThreadingToolContext;",
          "exportName": "ChannelThreadingToolContext",
          "kind": "type",
          "source": {
            "line": 379,
            "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(\"src/auto-reply/reply/response-prefix-template\").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 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 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 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 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 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\"];",
          "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": 558,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type BaseTokenResolution = BaseTokenResolution;",
          "exportName": "BaseTokenResolution",
          "kind": "type",
          "source": {
            "line": 564,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelAccountSnapshot = ChannelAccountSnapshot;",
          "exportName": "ChannelAccountSnapshot",
          "kind": "type",
          "source": {
            "line": 144,
            "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": 463,
            "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": 497,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelAuthAdapter = ChannelAuthAdapter;",
          "exportName": "ChannelAuthAdapter",
          "kind": "type",
          "source": {
            "line": 362,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelCapabilities = ChannelCapabilities;",
          "exportName": "ChannelCapabilities",
          "kind": "type",
          "source": {
            "line": 230,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelCapabilitiesDiagnostics = ChannelCapabilitiesDiagnostics;",
          "exportName": "ChannelCapabilitiesDiagnostics",
          "kind": "type",
          "source": {
            "line": 47,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelCapabilitiesDisplayLine = ChannelCapabilitiesDisplayLine;",
          "exportName": "ChannelCapabilitiesDisplayLine",
          "kind": "type",
          "source": {
            "line": 42,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelCapabilitiesDisplayTone = ChannelCapabilitiesDisplayTone;",
          "exportName": "ChannelCapabilitiesDisplayTone",
          "kind": "type",
          "source": {
            "line": 40,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelCommandAdapter = ChannelCommandAdapter;",
          "exportName": "ChannelCommandAdapter",
          "kind": "type",
          "source": {
            "line": 444,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelConfigAdapter = ChannelConfigAdapter<ResolvedAccount>;",
          "exportName": "ChannelConfigAdapter",
          "kind": "type",
          "source": {
            "line": 91,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelConfiguredBindingConversationRef = ChannelConfiguredBindingConversationRef;",
          "exportName": "ChannelConfiguredBindingConversationRef",
          "kind": "type",
          "source": {
            "line": 553,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelConfiguredBindingMatch = ChannelConfiguredBindingMatch;",
          "exportName": "ChannelConfiguredBindingMatch",
          "kind": "type",
          "source": {
            "line": 558,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelConfiguredBindingProvider = ChannelConfiguredBindingProvider;",
          "exportName": "ChannelConfiguredBindingProvider",
          "kind": "type",
          "source": {
            "line": 562,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelDirectoryAdapter = ChannelDirectoryAdapter;",
          "exportName": "ChannelDirectoryAdapter",
          "kind": "type",
          "source": {
            "line": 406,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelDirectoryEntry = ChannelDirectoryEntry;",
          "exportName": "ChannelDirectoryEntry",
          "kind": "type",
          "source": {
            "line": 469,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelDirectoryEntryKind = ChannelDirectoryEntryKind;",
          "exportName": "ChannelDirectoryEntryKind",
          "kind": "type",
          "source": {
            "line": 467,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelElevatedAdapter = ChannelElevatedAdapter;",
          "exportName": "ChannelElevatedAdapter",
          "kind": "type",
          "source": {
            "line": 437,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelExecApprovalAdapter = ChannelExecApprovalAdapter;",
          "exportName": "ChannelExecApprovalAdapter",
          "kind": "type",
          "source": {
            "line": 463,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelExecApprovalForwardTarget = ChannelExecApprovalForwardTarget;",
          "exportName": "ChannelExecApprovalForwardTarget",
          "kind": "type",
          "source": {
            "line": 32,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelExecApprovalInitiatingSurfaceState = ChannelExecApprovalInitiatingSurfaceState;",
          "exportName": "ChannelExecApprovalInitiatingSurfaceState",
          "kind": "type",
          "source": {
            "line": 27,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelGatewayAdapter = ChannelGatewayAdapter<ResolvedAccount>;",
          "exportName": "ChannelGatewayAdapter",
          "kind": "type",
          "source": {
            "line": 346,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelGatewayContext = ChannelGatewayContext<ResolvedAccount>;",
          "exportName": "ChannelGatewayContext",
          "kind": "type",
          "source": {
            "line": 238,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelGroupAdapter = ChannelGroupAdapter;",
          "exportName": "ChannelGroupAdapter",
          "kind": "type",
          "source": {
            "line": 122,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelGroupContext = ChannelGroupContext;",
          "exportName": "ChannelGroupContext",
          "kind": "type",
          "source": {
            "line": 216,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelHeartbeatAdapter = ChannelHeartbeatAdapter;",
          "exportName": "ChannelHeartbeatAdapter",
          "kind": "type",
          "source": {
            "line": 372,
            "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": 449,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelLoginWithQrStartResult = ChannelLoginWithQrStartResult;",
          "exportName": "ChannelLoginWithQrStartResult",
          "kind": "type",
          "source": {
            "line": 317,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelLoginWithQrWaitResult = ChannelLoginWithQrWaitResult;",
          "exportName": "ChannelLoginWithQrWaitResult",
          "kind": "type",
          "source": {
            "line": 322,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelLogoutContext = ChannelLogoutContext<ResolvedAccount>;",
          "exportName": "ChannelLogoutContext",
          "kind": "type",
          "source": {
            "line": 327,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelLogoutResult = ChannelLogoutResult;",
          "exportName": "ChannelLogoutResult",
          "kind": "type",
          "source": {
            "line": 311,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelLogSink = ChannelLogSink;",
          "exportName": "ChannelLogSink",
          "kind": "type",
          "source": {
            "line": 209,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMentionAdapter = ChannelMentionAdapter;",
          "exportName": "ChannelMentionAdapter",
          "kind": "type",
          "source": {
            "line": 260,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionAdapter = ChannelMessageActionAdapter;",
          "exportName": "ChannelMessageActionAdapter",
          "kind": "type",
          "source": {
            "line": 516,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessageActionContext = ChannelMessageActionContext;",
          "exportName": "ChannelMessageActionContext",
          "kind": "type",
          "source": {
            "line": 482,
            "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\";",
          "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": 395,
            "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": 154,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelOutboundContext = ChannelOutboundContext;",
          "exportName": "ChannelOutboundContext",
          "kind": "type",
          "source": {
            "line": 128,
            "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": 335,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelPlugin = ChannelPlugin<ResolvedAccount, Probe, Audit>;",
          "exportName": "ChannelPlugin",
          "kind": "type",
          "source": {
            "line": 55,
            "path": "src/channels/plugins/types.plugin.ts"
          }
        },
        {
          "declaration": "export type ChannelPollContext = ChannelPollContext;",
          "exportName": "ChannelPollContext",
          "kind": "type",
          "source": {
            "line": 547,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelPollResult = ChannelPollResult;",
          "exportName": "ChannelPollResult",
          "kind": "type",
          "source": {
            "line": 538,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelResolveKind = ChannelResolveKind;",
          "exportName": "ChannelResolveKind",
          "kind": "type",
          "source": {
            "line": 417,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelResolverAdapter = ChannelResolverAdapter;",
          "exportName": "ChannelResolverAdapter",
          "kind": "type",
          "source": {
            "line": 427,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelResolveResult = ChannelResolveResult;",
          "exportName": "ChannelResolveResult",
          "kind": "type",
          "source": {
            "line": 419,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelSecurityAdapter = ChannelSecurityAdapter<ResolvedAccount>;",
          "exportName": "ChannelSecurityAdapter",
          "kind": "type",
          "source": {
            "line": 575,
            "path": "src/channels/plugins/types.adapters.ts"
          }
        },
        {
          "declaration": "export type ChannelSecurityContext = ChannelSecurityContext<ResolvedAccount>;",
          "exportName": "ChannelSecurityContext",
          "kind": "type",
          "source": {
            "line": 254,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelSecurityDmPolicy = ChannelSecurityDmPolicy;",
          "exportName": "ChannelSecurityDmPolicy",
          "kind": "type",
          "source": {
            "line": 245,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelSetupAdapter = ChannelSetupAdapter;",
          "exportName": "ChannelSetupAdapter",
          "kind": "type",
          "source": {
            "line": 56,
            "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": 184,
            "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": 279,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelStructuredComponents = ChannelStructuredComponents;",
          "exportName": "ChannelStructuredComponents",
          "kind": "type",
          "source": {
            "line": 288,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelThreadingAdapter = ChannelThreadingAdapter;",
          "exportName": "ChannelThreadingAdapter",
          "kind": "type",
          "source": {
            "line": 322,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelThreadingContext = ChannelThreadingContext;",
          "exportName": "ChannelThreadingContext",
          "kind": "type",
          "source": {
            "line": 365,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelThreadingToolContext = ChannelThreadingToolContext;",
          "exportName": "ChannelThreadingToolContext",
          "kind": "type",
          "source": {
            "line": 379,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelToolSend = ChannelToolSend;",
          "exportName": "ChannelToolSend",
          "kind": "type",
          "source": {
            "line": 509,
            "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 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 TypingCallbacks = TypingCallbacks;",
          "exportName": "TypingCallbacks",
          "kind": "type",
          "source": {
            "line": 4,
            "path": "src/channels/typing.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": 5,
            "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": 56,
            "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": 961,
            "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": 970,
            "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": 89,
            "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": 841,
            "path": "src/auto-reply/status.ts"
          }
        },
        {
          "declaration": "export function buildModelsProviderData(cfg: OpenClawConfig, agentId?: string | undefined): Promise<ModelsProviderData>;",
          "exportName": "buildModelsProviderData",
          "kind": "function",
          "source": {
            "line": 37,
            "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": 204,
            "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": 303,
            "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": 220,
            "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": 33,
            "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>>): ChannelConfigSchema;",
          "exportName": "buildChannelConfigSchema",
          "kind": "function",
          "source": {
            "line": 35,
            "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": 162,
            "path": "src/plugin-sdk/core.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": 436,
            "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": 413,
            "path": "src/plugin-sdk/core.ts"
          }
        },
        {
          "declaration": "export function defineChannelPluginEntry<TPlugin>({ id, name, description, plugin, configSchema, setRuntime, registerFull, }: DefineChannelPluginEntryOptions<TPlugin>): DefinedPluginEntry;",
          "exportName": "defineChannelPluginEntry",
          "kind": "function",
          "source": {
            "line": 245,
            "path": "src/plugin-sdk/core.ts"
          }
        },
        {
          "declaration": "export function definePluginEntry({ id, name, description, kind, configSchema, register, }: DefinePluginEntryOptions): DefinedPluginEntry;",
          "exportName": "definePluginEntry",
          "kind": "function",
          "source": {
            "line": 88,
            "path": "src/plugin-sdk/plugin-entry.ts"
          }
        },
        {
          "declaration": "export function defineSetupPluginEntry<TPlugin>(plugin: TPlugin): { plugin: TPlugin; };",
          "exportName": "defineSetupPluginEntry",
          "kind": "function",
          "source": {
            "line": 276,
            "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": 13,
            "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 getChatChannelMeta(id: \"telegram\" | \"whatsapp\" | \"discord\" | \"irc\" | \"googlechat\" | \"slack\" | \"signal\" | \"imessage\" | \"line\"): ChannelMeta;",
          "exportName": "getChatChannelMeta",
          "kind": "function",
          "source": {
            "line": 158,
            "path": "src/channels/registry.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": 92,
            "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 resolveTailnetHostWithRunner(runCommandWithTimeout?: TailscaleStatusCommandRunner | undefined): Promise<string | null>;",
          "exportName": "resolveTailnetHostWithRunner",
          "kind": "function",
          "source": {
            "line": 43,
            "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": 142,
            "path": "src/plugin-sdk/core.ts"
          }
        },
        {
          "declaration": "export function stripTargetKindPrefix(raw: string): string;",
          "exportName": "stripTargetKindPrefix",
          "kind": "function",
          "source": {
            "line": 154,
            "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 ChannelMessageActionContext = ChannelMessageActionContext;",
          "exportName": "ChannelMessageActionContext",
          "kind": "type",
          "source": {
            "line": 482,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelMessagingAdapter = ChannelMessagingAdapter;",
          "exportName": "ChannelMessagingAdapter",
          "kind": "type",
          "source": {
            "line": 395,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelOutboundSessionRoute = ChannelOutboundSessionRoute;",
          "exportName": "ChannelOutboundSessionRoute",
          "kind": "type",
          "source": {
            "line": 309,
            "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(\"src/channels/plugins/types.core\").ChannelDirectoryEntryKind | \"channel\";        display?: string;        source: \"normalized\" | \"directory\";    };    replyToId?: string | null;    threadId?: string | number | null;};",
          "exportName": "ChannelOutboundSessionRouteParams",
          "kind": "type",
          "source": {
            "line": 137,
            "path": "src/plugin-sdk/core.ts"
          }
        },
        {
          "declaration": "export type ChannelPlugin = ChannelPlugin<ResolvedAccount, Probe, Audit>;",
          "exportName": "ChannelPlugin",
          "kind": "type",
          "source": {
            "line": 55,
            "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": 112,
            "path": "src/gateway/server-methods/types.ts"
          }
        },
        {
          "declaration": "export type MediaUnderstandingProviderPlugin = MediaUnderstandingProvider;",
          "exportName": "MediaUnderstandingProviderPlugin",
          "kind": "type",
          "source": {
            "line": 951,
            "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": 1314,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginCommandDefinition = OpenClawPluginCommandDefinition;",
          "exportName": "OpenClawPluginCommandDefinition",
          "kind": "type",
          "source": {
            "line": 1068,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;",
          "exportName": "OpenClawPluginConfigSchema",
          "kind": "type",
          "source": {
            "line": 88,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginDefinition = OpenClawPluginDefinition;",
          "exportName": "OpenClawPluginDefinition",
          "kind": "type",
          "source": {
            "line": 1296,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginService = OpenClawPluginService;",
          "exportName": "OpenClawPluginService",
          "kind": "type",
          "source": {
            "line": 1285,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginServiceContext = OpenClawPluginServiceContext;",
          "exportName": "OpenClawPluginServiceContext",
          "kind": "type",
          "source": {
            "line": 1277,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginToolContext = OpenClawPluginToolContext;",
          "exportName": "OpenClawPluginToolContext",
          "kind": "type",
          "source": {
            "line": 103,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginToolFactory = OpenClawPluginToolFactory;",
          "exportName": "OpenClawPluginToolFactory",
          "kind": "type",
          "source": {
            "line": 120,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginCommandContext = PluginCommandContext;",
          "exportName": "PluginCommandContext",
          "kind": "type",
          "source": {
            "line": 966,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginInteractiveTelegramHandlerContext = PluginInteractiveTelegramHandlerContext;",
          "exportName": "PluginInteractiveTelegramHandlerContext",
          "kind": "type",
          "source": {
            "line": 1097,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginLogger = PluginLogger;",
          "exportName": "PluginLogger",
          "kind": "type",
          "source": {
            "line": 59,
            "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": 571,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthContext = ProviderAuthContext;",
          "exportName": "ProviderAuthContext",
          "kind": "type",
          "source": {
            "line": 155,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthDoctorHintContext = ProviderAuthDoctorHintContext;",
          "exportName": "ProviderAuthDoctorHintContext",
          "kind": "type",
          "source": {
            "line": 446,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthMethod = ProviderAuthMethod;",
          "exportName": "ProviderAuthMethod",
          "kind": "type",
          "source": {
            "line": 233,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthMethodNonInteractiveContext = ProviderAuthMethodNonInteractiveContext;",
          "exportName": "ProviderAuthMethodNonInteractiveContext",
          "kind": "type",
          "source": {
            "line": 217,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthResult = ProviderAuthResult;",
          "exportName": "ProviderAuthResult",
          "kind": "type",
          "source": {
            "line": 140,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuildMissingAuthMessageContext = ProviderBuildMissingAuthMessageContext;",
          "exportName": "ProviderBuildMissingAuthMessageContext",
          "kind": "type",
          "source": {
            "line": 499,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuiltInModelSuppressionContext = ProviderBuiltInModelSuppressionContext;",
          "exportName": "ProviderBuiltInModelSuppressionContext",
          "kind": "type",
          "source": {
            "line": 515,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuiltInModelSuppressionResult = ProviderBuiltInModelSuppressionResult;",
          "exportName": "ProviderBuiltInModelSuppressionResult",
          "kind": "type",
          "source": {
            "line": 524,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderCacheTtlEligibilityContext = ProviderCacheTtlEligibilityContext;",
          "exportName": "ProviderCacheTtlEligibilityContext",
          "kind": "type",
          "source": {
            "line": 487,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderCatalogContext = ProviderCatalogContext;",
          "exportName": "ProviderCatalogContext",
          "kind": "type",
          "source": {
            "line": 254,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderCatalogResult = ProviderCatalogResult;",
          "exportName": "ProviderCatalogResult",
          "kind": "type",
          "source": {
            "line": 277,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderDefaultThinkingPolicyContext = ProviderDefaultThinkingPolicyContext;",
          "exportName": "ProviderDefaultThinkingPolicyContext",
          "kind": "type",
          "source": {
            "line": 548,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderDiscoveryContext = ProviderCatalogContext;",
          "exportName": "ProviderDiscoveryContext",
          "kind": "type",
          "source": {
            "line": 587,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderFetchUsageSnapshotContext = ProviderFetchUsageSnapshotContext;",
          "exportName": "ProviderFetchUsageSnapshotContext",
          "kind": "type",
          "source": {
            "line": 427,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderModernModelPolicyContext = ProviderModernModelPolicyContext;",
          "exportName": "ProviderModernModelPolicyContext",
          "kind": "type",
          "source": {
            "line": 558,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderNormalizeResolvedModelContext = ProviderNormalizeResolvedModelContext;",
          "exportName": "ProviderNormalizeResolvedModelContext",
          "kind": "type",
          "source": {
            "line": 338,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPreparedRuntimeAuth = ProviderPreparedRuntimeAuth;",
          "exportName": "ProviderPreparedRuntimeAuth",
          "kind": "type",
          "source": {
            "line": 374,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPrepareDynamicModelContext = ProviderResolveDynamicModelContext;",
          "exportName": "ProviderPrepareDynamicModelContext",
          "kind": "type",
          "source": {
            "line": 329,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPrepareExtraParamsContext = ProviderPrepareExtraParamsContext;",
          "exportName": "ProviderPrepareExtraParamsContext",
          "kind": "type",
          "source": {
            "line": 460,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPrepareRuntimeAuthContext = ProviderPrepareRuntimeAuthContext;",
          "exportName": "ProviderPrepareRuntimeAuthContext",
          "kind": "type",
          "source": {
            "line": 353,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolvedUsageAuth = ProviderResolvedUsageAuth;",
          "exportName": "ProviderResolvedUsageAuth",
          "kind": "type",
          "source": {
            "line": 414,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolveDynamicModelContext = ProviderResolveDynamicModelContext;",
          "exportName": "ProviderResolveDynamicModelContext",
          "kind": "type",
          "source": {
            "line": 312,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolveUsageAuthContext = ProviderResolveUsageAuthContext;",
          "exportName": "ProviderResolveUsageAuthContext",
          "kind": "type",
          "source": {
            "line": 395,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderRuntimeModel = ProviderRuntimeModel;",
          "exportName": "ProviderRuntimeModel",
          "kind": "type",
          "source": {
            "line": 295,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderThinkingPolicyContext = ProviderThinkingPolicyContext;",
          "exportName": "ProviderThinkingPolicyContext",
          "kind": "type",
          "source": {
            "line": 536,
            "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": 477,
            "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": 933,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type TailscaleStatusCommandResult = TailscaleStatusCommandResult;",
          "exportName": "TailscaleStatusCommandResult",
          "kind": "type",
          "source": {
            "line": 1,
            "path": "src/shared/tailscale-status.ts"
          }
        },
        {
          "declaration": "export type TailscaleStatusCommandRunner = TailscaleStatusCommandRunner;",
          "exportName": "TailscaleStatusCommandRunner",
          "kind": "type",
          "source": {
            "line": 6,
            "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": 88,
            "path": "src/plugin-sdk/plugin-entry.ts"
          }
        },
        {
          "declaration": "export function emptyPluginConfigSchema(): OpenClawPluginConfigSchema;",
          "exportName": "emptyPluginConfigSchema",
          "kind": "function",
          "source": {
            "line": 13,
            "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": 951,
            "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": 1314,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginCommandDefinition = OpenClawPluginCommandDefinition;",
          "exportName": "OpenClawPluginCommandDefinition",
          "kind": "type",
          "source": {
            "line": 1068,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;",
          "exportName": "OpenClawPluginConfigSchema",
          "kind": "type",
          "source": {
            "line": 88,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginDefinition = OpenClawPluginDefinition;",
          "exportName": "OpenClawPluginDefinition",
          "kind": "type",
          "source": {
            "line": 1296,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginService = OpenClawPluginService;",
          "exportName": "OpenClawPluginService",
          "kind": "type",
          "source": {
            "line": 1285,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type OpenClawPluginServiceContext = OpenClawPluginServiceContext;",
          "exportName": "OpenClawPluginServiceContext",
          "kind": "type",
          "source": {
            "line": 1277,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginCommandContext = PluginCommandContext;",
          "exportName": "PluginCommandContext",
          "kind": "type",
          "source": {
            "line": 966,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginInteractiveTelegramHandlerContext = PluginInteractiveTelegramHandlerContext;",
          "exportName": "PluginInteractiveTelegramHandlerContext",
          "kind": "type",
          "source": {
            "line": 1097,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type PluginLogger = PluginLogger;",
          "exportName": "PluginLogger",
          "kind": "type",
          "source": {
            "line": 59,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAugmentModelCatalogContext = ProviderAugmentModelCatalogContext;",
          "exportName": "ProviderAugmentModelCatalogContext",
          "kind": "type",
          "source": {
            "line": 571,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthContext = ProviderAuthContext;",
          "exportName": "ProviderAuthContext",
          "kind": "type",
          "source": {
            "line": 155,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthDoctorHintContext = ProviderAuthDoctorHintContext;",
          "exportName": "ProviderAuthDoctorHintContext",
          "kind": "type",
          "source": {
            "line": 446,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthMethod = ProviderAuthMethod;",
          "exportName": "ProviderAuthMethod",
          "kind": "type",
          "source": {
            "line": 233,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthMethodNonInteractiveContext = ProviderAuthMethodNonInteractiveContext;",
          "exportName": "ProviderAuthMethodNonInteractiveContext",
          "kind": "type",
          "source": {
            "line": 217,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderAuthResult = ProviderAuthResult;",
          "exportName": "ProviderAuthResult",
          "kind": "type",
          "source": {
            "line": 140,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuildMissingAuthMessageContext = ProviderBuildMissingAuthMessageContext;",
          "exportName": "ProviderBuildMissingAuthMessageContext",
          "kind": "type",
          "source": {
            "line": 499,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuiltInModelSuppressionContext = ProviderBuiltInModelSuppressionContext;",
          "exportName": "ProviderBuiltInModelSuppressionContext",
          "kind": "type",
          "source": {
            "line": 515,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderBuiltInModelSuppressionResult = ProviderBuiltInModelSuppressionResult;",
          "exportName": "ProviderBuiltInModelSuppressionResult",
          "kind": "type",
          "source": {
            "line": 524,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderCacheTtlEligibilityContext = ProviderCacheTtlEligibilityContext;",
          "exportName": "ProviderCacheTtlEligibilityContext",
          "kind": "type",
          "source": {
            "line": 487,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderCatalogContext = ProviderCatalogContext;",
          "exportName": "ProviderCatalogContext",
          "kind": "type",
          "source": {
            "line": 254,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderCatalogResult = ProviderCatalogResult;",
          "exportName": "ProviderCatalogResult",
          "kind": "type",
          "source": {
            "line": 277,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderDefaultThinkingPolicyContext = ProviderDefaultThinkingPolicyContext;",
          "exportName": "ProviderDefaultThinkingPolicyContext",
          "kind": "type",
          "source": {
            "line": 548,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderDiscoveryContext = ProviderCatalogContext;",
          "exportName": "ProviderDiscoveryContext",
          "kind": "type",
          "source": {
            "line": 587,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderFetchUsageSnapshotContext = ProviderFetchUsageSnapshotContext;",
          "exportName": "ProviderFetchUsageSnapshotContext",
          "kind": "type",
          "source": {
            "line": 427,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderModernModelPolicyContext = ProviderModernModelPolicyContext;",
          "exportName": "ProviderModernModelPolicyContext",
          "kind": "type",
          "source": {
            "line": 558,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderNormalizeResolvedModelContext = ProviderNormalizeResolvedModelContext;",
          "exportName": "ProviderNormalizeResolvedModelContext",
          "kind": "type",
          "source": {
            "line": 338,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPreparedRuntimeAuth = ProviderPreparedRuntimeAuth;",
          "exportName": "ProviderPreparedRuntimeAuth",
          "kind": "type",
          "source": {
            "line": 374,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPrepareDynamicModelContext = ProviderResolveDynamicModelContext;",
          "exportName": "ProviderPrepareDynamicModelContext",
          "kind": "type",
          "source": {
            "line": 329,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPrepareExtraParamsContext = ProviderPrepareExtraParamsContext;",
          "exportName": "ProviderPrepareExtraParamsContext",
          "kind": "type",
          "source": {
            "line": 460,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderPrepareRuntimeAuthContext = ProviderPrepareRuntimeAuthContext;",
          "exportName": "ProviderPrepareRuntimeAuthContext",
          "kind": "type",
          "source": {
            "line": 353,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolvedUsageAuth = ProviderResolvedUsageAuth;",
          "exportName": "ProviderResolvedUsageAuth",
          "kind": "type",
          "source": {
            "line": 414,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolveDynamicModelContext = ProviderResolveDynamicModelContext;",
          "exportName": "ProviderResolveDynamicModelContext",
          "kind": "type",
          "source": {
            "line": 312,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderResolveUsageAuthContext = ProviderResolveUsageAuthContext;",
          "exportName": "ProviderResolveUsageAuthContext",
          "kind": "type",
          "source": {
            "line": 395,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderRuntimeModel = ProviderRuntimeModel;",
          "exportName": "ProviderRuntimeModel",
          "kind": "type",
          "source": {
            "line": 295,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderThinkingPolicyContext = ProviderThinkingPolicyContext;",
          "exportName": "ProviderThinkingPolicyContext",
          "kind": "type",
          "source": {
            "line": 536,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type ProviderWrapStreamFnContext = ProviderWrapStreamFnContext;",
          "exportName": "ProviderWrapStreamFnContext",
          "kind": "type",
          "source": {
            "line": 477,
            "path": "src/plugins/types.ts"
          }
        },
        {
          "declaration": "export type SpeechProviderPlugin = SpeechProviderPlugin;",
          "exportName": "SpeechProviderPlugin",
          "kind": "type",
          "source": {
            "line": 933,
            "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": 76,
            "path": "src/plugins/provider-onboarding-config.ts"
          }
        },
        {
          "declaration": "export function applyCloudflareAiGatewayConfig(cfg: OpenClawConfig, params?: { accountId?: string | undefined; gatewayId?: string | undefined; } | undefined): OpenClawConfig;",
          "exportName": "applyCloudflareAiGatewayConfig",
          "kind": "function",
          "source": {
            "line": 85,
            "path": "extensions/cloudflare-ai-gateway/onboard.ts"
          }
        },
        {
          "declaration": "export function applyCloudflareAiGatewayProviderConfig(cfg: OpenClawConfig, params?: { accountId?: string | undefined; gatewayId?: string | undefined; } | undefined): OpenClawConfig;",
          "exportName": "applyCloudflareAiGatewayProviderConfig",
          "kind": "function",
          "source": {
            "line": 41,
            "path": "extensions/cloudflare-ai-gateway/onboard.ts"
          }
        },
        {
          "declaration": "export function applyOnboardAuthAgentModelsAndProviders(cfg: OpenClawConfig, params: { agentModels: Record<string, AgentModelEntryConfig>; providers: Record<string, ModelProviderConfig>; }): OpenClawConfig;",
          "exportName": "applyOnboardAuthAgentModelsAndProviders",
          "kind": "function",
          "source": {
            "line": 53,
            "path": "src/plugins/provider-onboarding-config.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": 131,
            "path": "src/plugins/provider-onboarding-config.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": 152,
            "path": "src/plugins/provider-onboarding-config.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": 96,
            "path": "src/plugins/provider-onboarding-config.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": 230,
            "path": "src/plugins/provider-onboarding-config.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": 272,
            "path": "src/plugins/provider-onboarding-config.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": 304,
            "path": "src/plugins/provider-onboarding-config.ts"
          }
        },
        {
          "declaration": "export function applyVercelAiGatewayConfig(cfg: OpenClawConfig): OpenClawConfig;",
          "exportName": "applyVercelAiGatewayConfig",
          "kind": "function",
          "source": {
            "line": 27,
            "path": "extensions/vercel-ai-gateway/onboard.ts"
          }
        },
        {
          "declaration": "export function applyVercelAiGatewayProviderConfig(cfg: OpenClawConfig): OpenClawConfig;",
          "exportName": "applyVercelAiGatewayProviderConfig",
          "kind": "function",
          "source": {
            "line": 8,
            "path": "extensions/vercel-ai-gateway/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": 213,
            "path": "src/plugins/provider-onboarding-config.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": 255,
            "path": "src/plugins/provider-onboarding-config.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": 327,
            "path": "src/plugins/provider-onboarding-config.ts"
          }
        },
        {
          "declaration": "export function ensureModelAllowlistEntry(params: { cfg: OpenClawConfig; modelRef: string; defaultProvider?: string | undefined; }): OpenClawConfig;",
          "exportName": "ensureModelAllowlistEntry",
          "kind": "function",
          "source": {
            "line": 5,
            "path": "src/plugins/provider-model-allowlist.ts"
          }
        },
        {
          "declaration": "export function withAgentModelAliases(existing: Record<string, AgentModelEntryConfig> | undefined, aliases: readonly AgentModelAliasEntry[]): Record<string, AgentModelEntryConfig>;",
          "exportName": "withAgentModelAliases",
          "kind": "function",
          "source": {
            "line": 38,
            "path": "src/plugins/provider-onboarding-config.ts"
          }
        },
        {
          "declaration": "export const CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF: \"cloudflare-ai-gateway/claude-sonnet-4-5\";",
          "exportName": "CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF",
          "kind": "const",
          "source": {
            "line": 5,
            "path": "src/agents/cloudflare-ai-gateway.ts"
          }
        },
        {
          "declaration": "export const VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF: \"vercel-ai-gateway/anthropic/claude-opus-4.6\";",
          "exportName": "VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF",
          "kind": "const",
          "source": {
            "line": 6,
            "path": "extensions/vercel-ai-gateway/onboard.ts"
          }
        },
        {
          "declaration": "export type AgentModelAliasEntry = AgentModelAliasEntry;",
          "exportName": "AgentModelAliasEntry",
          "kind": "type",
          "source": {
            "line": 21,
            "path": "src/plugins/provider-onboarding-config.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": 47,
            "path": "src/config/types.models.ts"
          }
        },
        {
          "declaration": "export type ModelProviderConfig = ModelProviderConfig;",
          "exportName": "ModelProviderConfig",
          "kind": "type",
          "source": {
            "line": 65,
            "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": 177,
            "path": "src/plugins/provider-onboarding-config.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": 18,
            "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": 23,
            "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 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": 144,
            "path": "src/channels/plugins/types.core.ts"
          }
        },
        {
          "declaration": "export type ChannelGatewayContext = ChannelGatewayContext<ResolvedAccount>;",
          "exportName": "ChannelGatewayContext",
          "kind": "type",
          "source": {
            "line": 238,
            "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": 148,
            "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": 189,
            "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": 91,
            "path": "src/plugin-sdk/webhook-request-guards.ts"
          }
        },
        {
          "declaration": "export function isJsonContentType(value: string | string[] | undefined): boolean;",
          "exportName": "isJsonContentType",
          "kind": "function",
          "source": {
            "line": 138,
            "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": 275,
            "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": 240,
            "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 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": 19,
            "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": 30,
            "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": 11,
            "path": "src/plugin-sdk/webhook-request-guards.ts"
          }
        },
        {
          "declaration": "export type WebhookInFlightLimiter = WebhookInFlightLimiter;",
          "exportName": "WebhookInFlightLimiter",
          "kind": "type",
          "source": {
            "line": 35,
            "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"
      }
    }
  ]
}
