diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b245e9b6bd0..35d12aac6e2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -379,6 +379,11 @@ jobs: continue-on-error: true run: pnpm config:docs:check + - name: Check plugin SDK API baseline drift + id: plugin_sdk_api_drift + continue-on-error: true + run: pnpm plugin-sdk:api:check + - name: Upload gateway watch regression artifacts if: always() uses: actions/upload-artifact@v7 @@ -397,6 +402,7 @@ jobs: NO_RAW_WINDOW_OPEN_OUTCOME: ${{ steps.no_raw_window_open.outcome }} GATEWAY_WATCH_REGRESSION_OUTCOME: ${{ steps.gateway_watch_regression.outcome }} CONFIG_DOCS_DRIFT_OUTCOME: ${{ steps.config_docs_drift.outcome }} + PLUGIN_SDK_API_DRIFT_OUTCOME: ${{ steps.plugin_sdk_api_drift.outcome }} run: | failures=0 for result in \ @@ -406,7 +412,8 @@ jobs: "extension-plugin-sdk-internal-boundary|$EXTENSION_PLUGIN_SDK_INTERNAL_BOUNDARY_OUTCOME" \ "lint:ui:no-raw-window-open|$NO_RAW_WINDOW_OPEN_OUTCOME" \ "gateway-watch-regression|$GATEWAY_WATCH_REGRESSION_OUTCOME" \ - "config-docs-drift|$CONFIG_DOCS_DRIFT_OUTCOME"; do + "config-docs-drift|$CONFIG_DOCS_DRIFT_OUTCOME" \ + "plugin-sdk-api-drift|$PLUGIN_SDK_API_DRIFT_OUTCOME"; do name="${result%%|*}" outcome="${result#*|}" if [ "$outcome" != "success" ]; then diff --git a/.github/workflows/workflow-sanity.yml b/.github/workflows/workflow-sanity.yml index 72b6874a5c1..a2e6bb74e01 100644 --- a/.github/workflows/workflow-sanity.yml +++ b/.github/workflows/workflow-sanity.yml @@ -72,7 +72,7 @@ jobs: - name: Disallow direct inputs interpolation in composite run blocks run: python3 scripts/check-composite-action-input-interpolation.py - config-docs-drift: + generated-doc-baselines: if: github.event_name == 'workflow_dispatch' runs-on: blacksmith-16vcpu-ubuntu-2404 steps: @@ -87,3 +87,6 @@ jobs: - name: Check config docs drift statefile run: pnpm config:docs:check + + - name: Check plugin SDK API baseline drift + run: pnpm plugin-sdk:api:check diff --git a/AGENTS.md b/AGENTS.md index 6df75f20ad2..afb807208ac 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -71,6 +71,10 @@ - Format check: `pnpm format` (oxfmt --check) - Format fix: `pnpm format:fix` (oxfmt --write) - Tests: `pnpm test` (vitest); coverage: `pnpm test:coverage` +- Generated baseline artifacts live together under `docs/.generated/`. +- Config schema drift uses `pnpm config:docs:gen` / `pnpm config:docs:check`. +- Plugin SDK API drift uses `pnpm plugin-sdk:api:gen` / `pnpm plugin-sdk:api:check`. +- If you change config schema/help or the public Plugin SDK surface, update the matching baseline artifact and keep the two drift-check flows adjacent in scripts/workflows/docs guidance rather than inventing a third pattern. - For narrowly scoped changes, prefer narrowly scoped tests that directly validate the touched behavior. If no meaningful scoped test exists, say so explicitly and use the next most direct validation available. - Preferred landing bar for pushes to `main`: `pnpm check` and `pnpm test`, with a green result when feasible. - Scoped tests prove the change itself. `pnpm test` remains the default `main` landing bar; scoped tests do not replace full-suite gates by default. diff --git a/docs/.generated/README.md b/docs/.generated/README.md index a2218ab3855..b676e3fea5e 100644 --- a/docs/.generated/README.md +++ b/docs/.generated/README.md @@ -4,5 +4,9 @@ These baseline artifacts are generated from the repo-owned OpenClaw config schem - Do not edit `config-baseline.json` by hand. - Do not edit `config-baseline.jsonl` by hand. -- Regenerate it with `pnpm config:docs:gen`. -- Validate it in CI or locally with `pnpm config:docs:check`. +- Do not edit `plugin-sdk-api-baseline.json` by hand. +- Do not edit `plugin-sdk-api-baseline.jsonl` by hand. +- Regenerate config baseline artifacts with `pnpm config:docs:gen`. +- Validate config baseline artifacts in CI or locally with `pnpm config:docs:check`. +- Regenerate Plugin SDK API baseline artifacts with `pnpm plugin-sdk:api:gen`. +- Validate Plugin SDK API baseline artifacts in CI or locally with `pnpm plugin-sdk:api:check`. diff --git a/docs/.generated/plugin-sdk-api-baseline.json b/docs/.generated/plugin-sdk-api-baseline.json new file mode 100644 index 00000000000..0c820726678 --- /dev/null +++ b/docs/.generated/plugin-sdk-api-baseline.json @@ -0,0 +1,5126 @@ +{ + "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": 188, + "path": "src/image-generation/providers/fal.ts" + } + }, + { + "declaration": "export function buildGoogleImageGenerationProvider(): ImageGenerationProvider;", + "exportName": "buildGoogleImageGenerationProvider", + "kind": "function", + "source": { + "line": 96, + "path": "src/image-generation/providers/google.ts" + } + }, + { + "declaration": "export function buildOpenAIImageGenerationProvider(): ImageGenerationProvider;", + "exportName": "buildOpenAIImageGenerationProvider", + "kind": "function", + "source": { + "line": 22, + "path": "src/image-generation/providers/openai.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": 139, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelAgentTool = ChannelAgentTool;", + "exportName": "ChannelAgentTool", + "kind": "type", + "source": { + "line": 17, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelAgentToolFactory = ChannelAgentToolFactory;", + "exportName": "ChannelAgentToolFactory", + "kind": "type", + "source": { + "line": 21, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelCapabilities = ChannelCapabilities;", + "exportName": "ChannelCapabilities", + "kind": "type", + "source": { + "line": 223, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelConfigSchema = ChannelConfigSchema;", + "exportName": "ChannelConfigSchema", + "kind": "type", + "source": { + "line": 47, + "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;", + "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": 506, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMessageActionContext = ChannelMessageActionContext;", + "exportName": "ChannelMessageActionContext", + "kind": "type", + "source": { + "line": 473, + "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;", + "exportName": "ChannelPlugin", + "kind": "type", + "source": { + "line": 53, + "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": 60, + "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": 97, + "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": 9, + "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": 935, + "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": 1292, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;", + "exportName": "OpenClawPluginConfigSchema", + "kind": "type", + "source": { + "line": 80, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type PluginLogger = PluginLogger;", + "exportName": "PluginLogger", + "kind": "type", + "source": { + "line": 58, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type PluginRuntime = PluginRuntime;", + "exportName": "PluginRuntime", + "kind": "type", + "source": { + "line": 53, + "path": "src/plugins/runtime/types.ts" + } + }, + { + "declaration": "export type ProviderAuthContext = ProviderAuthContext;", + "exportName": "ProviderAuthContext", + "kind": "type", + "source": { + "line": 144, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderAuthResult = ProviderAuthResult;", + "exportName": "ProviderAuthResult", + "kind": "type", + "source": { + "line": 130, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderRuntimeModel = ProviderRuntimeModel;", + "exportName": "ProviderRuntimeModel", + "kind": "type", + "source": { + "line": 284, + "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": 3, + "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": 917, + "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, entry: unknown): void;", + "exportName": "addAllowlistUserEntriesFromConfigEntry", + "kind": "function", + "source": { + "line": 130, + "path": "src/channels/allowlists/resolve-utils.ts" + } + }, + { + "declaration": "export function buildAllowlistResolutionSummary(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(params: { existing?: (string | number)[] | undefined; resolvedMap: Map; }): 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(...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(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(params: { inputs: string[]; mapInput: (input: string) => T | Promise; }): Promise;", + "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>(params: { entries: TEntries; resolvedMap: Map; strategy?: \"merge\" | \"canonicalize\" | undefined; }): TEntries;", + "exportName": "patchAllowlistUsersInConfigEntries", + "kind": "function", + "source": { + "line": 92, + "path": "src/channels/allowlists/resolve-utils.ts" + } + }, + { + "declaration": "export function resolveAllowlistCandidates(params: { compiledAllowlist: CompiledAllowlist; candidates: { value?: string | undefined; source: TSource; }[]; }): AllowlistMatch;", + "exportName": "resolveAllowlistCandidates", + "kind": "function", + "source": { + "line": 44, + "path": "src/channels/allowlist-match.ts" + } + }, + { + "declaration": "export function resolveAllowlistMatchByCandidates(params: { allowList: readonly string[]; candidates: { value?: string | undefined; source: TSource; }[]; }): AllowlistMatch;", + "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(params: { compiledAllowlist: CompiledAllowlist; candidates: { value?: string | undefined; source: TSource; }[]; }): AllowlistMatch;", + "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;", + "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": 10, + "path": "src/plugin-sdk/channel-actions.ts" + } + }, + { + "declaration": "export function createMessageToolCardSchema(): TSchema;", + "exportName": "createMessageToolCardSchema", + "kind": "function", + "source": { + "line": 25, + "path": "src/plugin-sdk/channel-actions.ts" + } + }, + { + "declaration": "export function createUnionActionGate(accounts: readonly TAccount[], createGate: (account: TAccount) => OptionalDefaultGate): OptionalDefaultGate;", + "exportName": "createUnionActionGate", + "kind": "function", + "source": { + "line": 13, + "path": "src/channels/plugins/actions/shared.ts" + } + }, + { + "declaration": "export function listTokenSourcedAccounts(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; 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(accountSchema: T): T;", + "exportName": "buildCatchallMultiAccountChannelSchema", + "kind": "function", + "source": { + "line": 26, + "path": "src/channels/plugins/config-schema.ts" + } + }, + { + "declaration": "export function buildChannelConfigSchema(schema: ZodType>): ChannelConfigSchema;", + "exportName": "buildChannelConfigSchema", + "kind": "function", + "source": { + "line": 35, + "path": "src/channels/plugins/config-schema.ts" + } + }, + { + "declaration": "export function buildNestedDmConfigSchema(): ZodOptional; policy: ZodOptional>; allowFrom: ZodOptional<...>; }, $strip>>;", + "exportName": "buildNestedDmConfigSchema", + "kind": "function", + "source": { + "line": 16, + "path": "src/channels/plugins/config-schema.ts" + } + }, + { + "declaration": "export const AllowFromListSchema: z.ZodOptional>>;", + "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.core.$strict>>;", + "exportName": "MarkdownConfigSchema", + "kind": "const", + "source": { + "line": 371, + "path": "src/config/zod-schema.core.ts" + } + }, + { + "declaration": "export const ToolPolicySchema: z.ZodOptional>; alsoAllow: z.ZodOptional>; deny: z.ZodOptional>; }, 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;", + "exportName": "BaseProbeResult", + "kind": "type", + "source": { + "line": 547, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type BaseTokenResolution = BaseTokenResolution;", + "exportName": "BaseTokenResolution", + "kind": "type", + "source": { + "line": 553, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelAccountSnapshot = ChannelAccountSnapshot;", + "exportName": "ChannelAccountSnapshot", + "kind": "type", + "source": { + "line": 139, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelAgentTool = ChannelAgentTool;", + "exportName": "ChannelAgentTool", + "kind": "type", + "source": { + "line": 17, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelGroupContext = ChannelGroupContext;", + "exportName": "ChannelGroupContext", + "kind": "type", + "source": { + "line": 210, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMessageActionAdapter = ChannelMessageActionAdapter;", + "exportName": "ChannelMessageActionAdapter", + "kind": "type", + "source": { + "line": 506, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMessageActionContext = ChannelMessageActionContext;", + "exportName": "ChannelMessageActionContext", + "kind": "type", + "source": { + "line": 473, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMessageActionDiscoveryContext = ChannelMessageActionDiscoveryContext;", + "exportName": "ChannelMessageActionDiscoveryContext", + "kind": "type", + "source": { + "line": 29, + "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": 54, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMessageToolSchemaContribution = ChannelMessageToolSchemaContribution;", + "exportName": "ChannelMessageToolSchemaContribution", + "kind": "type", + "source": { + "line": 49, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelStatusIssue = ChannelStatusIssue;", + "exportName": "ChannelStatusIssue", + "kind": "type", + "source": { + "line": 97, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelThreadingContext = ChannelThreadingContext;", + "exportName": "ChannelThreadingContext", + "kind": "type", + "source": { + "line": 358, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelThreadingToolContext = ChannelThreadingToolContext;", + "exportName": "ChannelThreadingToolContext", + "kind": "type", + "source": { + "line": 372, + "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": 19, + "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": 36, + "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": 13, + "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(\"/Users/vincentkoc/GIT/_Perso/openclaw/.worktrees/pr-51877/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) => 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": "src/whatsapp/normalize.ts" + } + }, + { + "declaration": "export function isWhatsAppUserTarget(value: string): boolean;", + "exportName": "isWhatsAppUserTarget", + "kind": "function", + "source": { + "line": 33, + "path": "src/whatsapp/normalize.ts" + } + }, + { + "declaration": "export function keepHttpServerTaskAlive(params: { server: CloseAwareServer; abortSignal?: AbortSignal | undefined; onAbort?: (() => void | Promise) | undefined; }): Promise;", + "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": 55, + "path": "src/whatsapp/normalize.ts" + } + }, + { + "declaration": "export function reduceInteractiveReply(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) | undefined): Promise;", + "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;", + "exportName": "BaseProbeResult", + "kind": "type", + "source": { + "line": 547, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type BaseTokenResolution = BaseTokenResolution;", + "exportName": "BaseTokenResolution", + "kind": "type", + "source": { + "line": 553, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelAccountSnapshot = ChannelAccountSnapshot;", + "exportName": "ChannelAccountSnapshot", + "kind": "type", + "source": { + "line": 139, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelAccountState = ChannelAccountState;", + "exportName": "ChannelAccountState", + "kind": "type", + "source": { + "line": 105, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelAgentPromptAdapter = ChannelAgentPromptAdapter;", + "exportName": "ChannelAgentPromptAdapter", + "kind": "type", + "source": { + "line": 455, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelAgentTool = ChannelAgentTool;", + "exportName": "ChannelAgentTool", + "kind": "type", + "source": { + "line": 17, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelAgentToolFactory = ChannelAgentToolFactory;", + "exportName": "ChannelAgentToolFactory", + "kind": "type", + "source": { + "line": 21, + "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": 223, + "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;", + "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": 461, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelDirectoryEntryKind = ChannelDirectoryEntryKind;", + "exportName": "ChannelDirectoryEntryKind", + "kind": "type", + "source": { + "line": 459, + "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;", + "exportName": "ChannelGatewayAdapter", + "kind": "type", + "source": { + "line": 346, + "path": "src/channels/plugins/types.adapters.ts" + } + }, + { + "declaration": "export type ChannelGatewayContext = ChannelGatewayContext;", + "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": 210, + "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": 113, + "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;", + "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": 203, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMentionAdapter = ChannelMentionAdapter;", + "exportName": "ChannelMentionAdapter", + "kind": "type", + "source": { + "line": 253, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMessageActionAdapter = ChannelMessageActionAdapter;", + "exportName": "ChannelMessageActionAdapter", + "kind": "type", + "source": { + "line": 506, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMessageActionContext = ChannelMessageActionContext;", + "exportName": "ChannelMessageActionContext", + "kind": "type", + "source": { + "line": 473, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMessageActionDiscoveryContext = ChannelMessageActionDiscoveryContext;", + "exportName": "ChannelMessageActionDiscoveryContext", + "kind": "type", + "source": { + "line": 29, + "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": 54, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMessageToolSchemaContribution = ChannelMessageToolSchemaContribution;", + "exportName": "ChannelMessageToolSchemaContribution", + "kind": "type", + "source": { + "line": 49, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMessagingAdapter = ChannelMessagingAdapter;", + "exportName": "ChannelMessagingAdapter", + "kind": "type", + "source": { + "line": 387, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMeta = ChannelMeta;", + "exportName": "ChannelMeta", + "kind": "type", + "source": { + "line": 118, + "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;", + "exportName": "ChannelPlugin", + "kind": "type", + "source": { + "line": 53, + "path": "src/channels/plugins/types.plugin.ts" + } + }, + { + "declaration": "export type ChannelPollContext = ChannelPollContext;", + "exportName": "ChannelPollContext", + "kind": "type", + "source": { + "line": 536, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelPollResult = ChannelPollResult;", + "exportName": "ChannelPollResult", + "kind": "type", + "source": { + "line": 528, + "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;", + "exportName": "ChannelSecurityAdapter", + "kind": "type", + "source": { + "line": 575, + "path": "src/channels/plugins/types.adapters.ts" + } + }, + { + "declaration": "export type ChannelSecurityContext = ChannelSecurityContext;", + "exportName": "ChannelSecurityContext", + "kind": "type", + "source": { + "line": 247, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelSecurityDmPolicy = ChannelSecurityDmPolicy;", + "exportName": "ChannelSecurityDmPolicy", + "kind": "type", + "source": { + "line": 238, + "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": 60, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelStatusAdapter = ChannelStatusAdapter;", + "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": 97, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelStreamingAdapter = ChannelStreamingAdapter;", + "exportName": "ChannelStreamingAdapter", + "kind": "type", + "source": { + "line": 272, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelStructuredComponents = ChannelStructuredComponents;", + "exportName": "ChannelStructuredComponents", + "kind": "type", + "source": { + "line": 281, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelThreadingAdapter = ChannelThreadingAdapter;", + "exportName": "ChannelThreadingAdapter", + "kind": "type", + "source": { + "line": 315, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelThreadingContext = ChannelThreadingContext;", + "exportName": "ChannelThreadingContext", + "kind": "type", + "source": { + "line": 358, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelThreadingToolContext = ChannelThreadingToolContext;", + "exportName": "ChannelThreadingToolContext", + "kind": "type", + "source": { + "line": 372, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelToolSend = ChannelToolSend;", + "exportName": "ChannelToolSend", + "kind": "type", + "source": { + "line": 500, + "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": 37, + "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": 363, + "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": 765, + "path": "src/channels/plugins/setup-wizard-helpers.ts" + } + }, + { + "declaration": "export function splitSetupEntries(raw: string): string[];", + "exportName": "splitSetupEntries", + "kind": "function", + "source": { + "line": 76, + "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": 60, + "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": 27, + "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": 847, + "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": 856, + "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": 727, + "path": "src/auto-reply/status.ts" + } + }, + { + "declaration": "export function buildModelsProviderData(cfg: OpenClawConfig, agentId?: string | undefined): Promise;", + "exportName": "buildModelsProviderData", + "kind": "function", + "source": { + "line": 37, + "path": "src/auto-reply/reply/commands-models.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;", + "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": 114, + "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 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": 143, + "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": 132, + "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 | 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": 98, + "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 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 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": 81, + "path": "src/plugin-sdk/command-auth.ts" + } + }, + { + "declaration": "export type ResolveSenderCommandAuthorizationWithRuntimeParams = ResolveSenderCommandAuthorizationWithRuntimeParams;", + "exportName": "ResolveSenderCommandAuthorizationWithRuntimeParams", + "kind": "type", + "source": { + "line": 106, + "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>): 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": 155, + "path": "src/plugin-sdk/core.ts" + } + }, + { + "declaration": "export function channelTargetSchema(options?: { description?: string | undefined; } | undefined): TString;", + "exportName": "channelTargetSchema", + "kind": "function", + "source": { + "line": 33, + "path": "src/agents/schema/typebox.ts" + } + }, + { + "declaration": "export function channelTargetsSchema(options?: { description?: string | undefined; } | undefined): TArray;", + "exportName": "channelTargetsSchema", + "kind": "function", + "source": { + "line": 39, + "path": "src/agents/schema/typebox.ts" + } + }, + { + "declaration": "export function clearAccountEntryFields(params: { accounts?: Record | 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(params: CreateChannelPluginBaseOptions): CreatedChannelPluginBase;", + "exportName": "createChannelPluginBase", + "kind": "function", + "source": { + "line": 417, + "path": "src/plugin-sdk/core.ts" + } + }, + { + "declaration": "export function createChatChannelPlugin(params: { base: ChatChannelPluginBase; security?: ChannelSecurityAdapter | ChatChannelSecurityOptions<...> | undefined; pairing?: ChannelPairingAdapter | ... 1 more ... | undefined; threading?: ChannelThreadingAdapter | ... 1 more ... | undefined; outbound?: ChannelOutboundAdapter | ... 1 more ... | undefined; }): ChannelPlugin<...>;", + "exportName": "createChatChannelPlugin", + "kind": "function", + "source": { + "line": 394, + "path": "src/plugin-sdk/core.ts" + } + }, + { + "declaration": "export function defineChannelPluginEntry({ id, name, description, plugin, configSchema, setRuntime, registerFull, }: DefineChannelPluginEntryOptions): DefinedPluginEntry;", + "exportName": "defineChannelPluginEntry", + "kind": "function", + "source": { + "line": 231, + "path": "src/plugin-sdk/core.ts" + } + }, + { + "declaration": "export function definePluginEntry({ id, name, description, kind, configSchema, register, }: DefinePluginEntryOptions): DefinedPluginEntry;", + "exportName": "definePluginEntry", + "kind": "function", + "source": { + "line": 79, + "path": "src/plugin-sdk/plugin-entry.ts" + } + }, + { + "declaration": "export function defineSetupPluginEntry(plugin: TPlugin): { plugin: TPlugin; };", + "exportName": "defineSetupPluginEntry", + "kind": "function", + "source": { + "line": 257, + "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 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": 142, + "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(values: T, options?: StringEnumOptions): TOptional>;", + "exportName": "optionalStringEnum", + "kind": "function", + "source": { + "line": 26, + "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;", + "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(values: T, options?: StringEnumOptions): TUnsafe;", + "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": 140, + "path": "src/plugin-sdk/core.ts" + } + }, + { + "declaration": "export function stripTargetKindPrefix(raw: string): string;", + "exportName": "stripTargetKindPrefix", + "kind": "function", + "source": { + "line": 151, + "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": 473, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelMessagingAdapter = ChannelMessagingAdapter;", + "exportName": "ChannelMessagingAdapter", + "kind": "type", + "source": { + "line": 387, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelOutboundSessionRoute = ChannelOutboundSessionRoute;", + "exportName": "ChannelOutboundSessionRoute", + "kind": "type", + "source": { + "line": 302, + "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(\"/Users/vincentkoc/GIT/_Perso/openclaw/.worktrees/pr-51877/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": 136, + "path": "src/plugin-sdk/core.ts" + } + }, + { + "declaration": "export type ChannelPlugin = ChannelPlugin;", + "exportName": "ChannelPlugin", + "kind": "type", + "source": { + "line": 53, + "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": 111, + "path": "src/gateway/server-methods/types.ts" + } + }, + { + "declaration": "export type MediaUnderstandingProviderPlugin = MediaUnderstandingProvider;", + "exportName": "MediaUnderstandingProviderPlugin", + "kind": "type", + "source": { + "line": 935, + "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": 1292, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginCommandDefinition = OpenClawPluginCommandDefinition;", + "exportName": "OpenClawPluginCommandDefinition", + "kind": "type", + "source": { + "line": 1050, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;", + "exportName": "OpenClawPluginConfigSchema", + "kind": "type", + "source": { + "line": 80, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginDefinition = OpenClawPluginDefinition;", + "exportName": "OpenClawPluginDefinition", + "kind": "type", + "source": { + "line": 1275, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginService = OpenClawPluginService;", + "exportName": "OpenClawPluginService", + "kind": "type", + "source": { + "line": 1265, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginServiceContext = OpenClawPluginServiceContext;", + "exportName": "OpenClawPluginServiceContext", + "kind": "type", + "source": { + "line": 1258, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginToolContext = OpenClawPluginToolContext;", + "exportName": "OpenClawPluginToolContext", + "kind": "type", + "source": { + "line": 94, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginToolFactory = OpenClawPluginToolFactory;", + "exportName": "OpenClawPluginToolFactory", + "kind": "type", + "source": { + "line": 111, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type PluginCommandContext = PluginCommandContext;", + "exportName": "PluginCommandContext", + "kind": "type", + "source": { + "line": 950, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type PluginInteractiveTelegramHandlerContext = PluginInteractiveTelegramHandlerContext;", + "exportName": "PluginInteractiveTelegramHandlerContext", + "kind": "type", + "source": { + "line": 1079, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type PluginLogger = PluginLogger;", + "exportName": "PluginLogger", + "kind": "type", + "source": { + "line": 58, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type PluginRuntime = PluginRuntime;", + "exportName": "PluginRuntime", + "kind": "type", + "source": { + "line": 53, + "path": "src/plugins/runtime/types.ts" + } + }, + { + "declaration": "export type ProviderAugmentModelCatalogContext = ProviderAugmentModelCatalogContext;", + "exportName": "ProviderAugmentModelCatalogContext", + "kind": "type", + "source": { + "line": 560, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderAuthContext = ProviderAuthContext;", + "exportName": "ProviderAuthContext", + "kind": "type", + "source": { + "line": 144, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderAuthDoctorHintContext = ProviderAuthDoctorHintContext;", + "exportName": "ProviderAuthDoctorHintContext", + "kind": "type", + "source": { + "line": 435, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderAuthMethod = ProviderAuthMethod;", + "exportName": "ProviderAuthMethod", + "kind": "type", + "source": { + "line": 222, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderAuthMethodNonInteractiveContext = ProviderAuthMethodNonInteractiveContext;", + "exportName": "ProviderAuthMethodNonInteractiveContext", + "kind": "type", + "source": { + "line": 206, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderAuthResult = ProviderAuthResult;", + "exportName": "ProviderAuthResult", + "kind": "type", + "source": { + "line": 130, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderBuildMissingAuthMessageContext = ProviderBuildMissingAuthMessageContext;", + "exportName": "ProviderBuildMissingAuthMessageContext", + "kind": "type", + "source": { + "line": 488, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderBuiltInModelSuppressionContext = ProviderBuiltInModelSuppressionContext;", + "exportName": "ProviderBuiltInModelSuppressionContext", + "kind": "type", + "source": { + "line": 504, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderBuiltInModelSuppressionResult = ProviderBuiltInModelSuppressionResult;", + "exportName": "ProviderBuiltInModelSuppressionResult", + "kind": "type", + "source": { + "line": 513, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderCacheTtlEligibilityContext = ProviderCacheTtlEligibilityContext;", + "exportName": "ProviderCacheTtlEligibilityContext", + "kind": "type", + "source": { + "line": 476, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderCatalogContext = ProviderCatalogContext;", + "exportName": "ProviderCatalogContext", + "kind": "type", + "source": { + "line": 243, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderCatalogResult = ProviderCatalogResult;", + "exportName": "ProviderCatalogResult", + "kind": "type", + "source": { + "line": 266, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderDefaultThinkingPolicyContext = ProviderDefaultThinkingPolicyContext;", + "exportName": "ProviderDefaultThinkingPolicyContext", + "kind": "type", + "source": { + "line": 537, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderDiscoveryContext = ProviderCatalogContext;", + "exportName": "ProviderDiscoveryContext", + "kind": "type", + "source": { + "line": 576, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderFetchUsageSnapshotContext = ProviderFetchUsageSnapshotContext;", + "exportName": "ProviderFetchUsageSnapshotContext", + "kind": "type", + "source": { + "line": 416, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderModernModelPolicyContext = ProviderModernModelPolicyContext;", + "exportName": "ProviderModernModelPolicyContext", + "kind": "type", + "source": { + "line": 547, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderNormalizeResolvedModelContext = ProviderNormalizeResolvedModelContext;", + "exportName": "ProviderNormalizeResolvedModelContext", + "kind": "type", + "source": { + "line": 327, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderPreparedRuntimeAuth = ProviderPreparedRuntimeAuth;", + "exportName": "ProviderPreparedRuntimeAuth", + "kind": "type", + "source": { + "line": 363, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderPrepareDynamicModelContext = ProviderResolveDynamicModelContext;", + "exportName": "ProviderPrepareDynamicModelContext", + "kind": "type", + "source": { + "line": 318, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderPrepareExtraParamsContext = ProviderPrepareExtraParamsContext;", + "exportName": "ProviderPrepareExtraParamsContext", + "kind": "type", + "source": { + "line": 449, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderPrepareRuntimeAuthContext = ProviderPrepareRuntimeAuthContext;", + "exportName": "ProviderPrepareRuntimeAuthContext", + "kind": "type", + "source": { + "line": 342, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderResolvedUsageAuth = ProviderResolvedUsageAuth;", + "exportName": "ProviderResolvedUsageAuth", + "kind": "type", + "source": { + "line": 403, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderResolveDynamicModelContext = ProviderResolveDynamicModelContext;", + "exportName": "ProviderResolveDynamicModelContext", + "kind": "type", + "source": { + "line": 301, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderResolveUsageAuthContext = ProviderResolveUsageAuthContext;", + "exportName": "ProviderResolveUsageAuthContext", + "kind": "type", + "source": { + "line": 384, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderRuntimeModel = ProviderRuntimeModel;", + "exportName": "ProviderRuntimeModel", + "kind": "type", + "source": { + "line": 284, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderThinkingPolicyContext = ProviderThinkingPolicyContext;", + "exportName": "ProviderThinkingPolicyContext", + "kind": "type", + "source": { + "line": 525, + "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": 466, + "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": 917, + "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" + } + } + ], + "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": 79, + "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": 935, + "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": 1292, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginCommandDefinition = OpenClawPluginCommandDefinition;", + "exportName": "OpenClawPluginCommandDefinition", + "kind": "type", + "source": { + "line": 1050, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;", + "exportName": "OpenClawPluginConfigSchema", + "kind": "type", + "source": { + "line": 80, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginDefinition = OpenClawPluginDefinition;", + "exportName": "OpenClawPluginDefinition", + "kind": "type", + "source": { + "line": 1275, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginService = OpenClawPluginService;", + "exportName": "OpenClawPluginService", + "kind": "type", + "source": { + "line": 1265, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type OpenClawPluginServiceContext = OpenClawPluginServiceContext;", + "exportName": "OpenClawPluginServiceContext", + "kind": "type", + "source": { + "line": 1258, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type PluginCommandContext = PluginCommandContext;", + "exportName": "PluginCommandContext", + "kind": "type", + "source": { + "line": 950, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type PluginInteractiveTelegramHandlerContext = PluginInteractiveTelegramHandlerContext;", + "exportName": "PluginInteractiveTelegramHandlerContext", + "kind": "type", + "source": { + "line": 1079, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type PluginLogger = PluginLogger;", + "exportName": "PluginLogger", + "kind": "type", + "source": { + "line": 58, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderAugmentModelCatalogContext = ProviderAugmentModelCatalogContext;", + "exportName": "ProviderAugmentModelCatalogContext", + "kind": "type", + "source": { + "line": 560, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderAuthContext = ProviderAuthContext;", + "exportName": "ProviderAuthContext", + "kind": "type", + "source": { + "line": 144, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderAuthDoctorHintContext = ProviderAuthDoctorHintContext;", + "exportName": "ProviderAuthDoctorHintContext", + "kind": "type", + "source": { + "line": 435, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderAuthMethod = ProviderAuthMethod;", + "exportName": "ProviderAuthMethod", + "kind": "type", + "source": { + "line": 222, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderAuthMethodNonInteractiveContext = ProviderAuthMethodNonInteractiveContext;", + "exportName": "ProviderAuthMethodNonInteractiveContext", + "kind": "type", + "source": { + "line": 206, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderAuthResult = ProviderAuthResult;", + "exportName": "ProviderAuthResult", + "kind": "type", + "source": { + "line": 130, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderBuildMissingAuthMessageContext = ProviderBuildMissingAuthMessageContext;", + "exportName": "ProviderBuildMissingAuthMessageContext", + "kind": "type", + "source": { + "line": 488, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderBuiltInModelSuppressionContext = ProviderBuiltInModelSuppressionContext;", + "exportName": "ProviderBuiltInModelSuppressionContext", + "kind": "type", + "source": { + "line": 504, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderBuiltInModelSuppressionResult = ProviderBuiltInModelSuppressionResult;", + "exportName": "ProviderBuiltInModelSuppressionResult", + "kind": "type", + "source": { + "line": 513, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderCacheTtlEligibilityContext = ProviderCacheTtlEligibilityContext;", + "exportName": "ProviderCacheTtlEligibilityContext", + "kind": "type", + "source": { + "line": 476, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderCatalogContext = ProviderCatalogContext;", + "exportName": "ProviderCatalogContext", + "kind": "type", + "source": { + "line": 243, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderCatalogResult = ProviderCatalogResult;", + "exportName": "ProviderCatalogResult", + "kind": "type", + "source": { + "line": 266, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderDefaultThinkingPolicyContext = ProviderDefaultThinkingPolicyContext;", + "exportName": "ProviderDefaultThinkingPolicyContext", + "kind": "type", + "source": { + "line": 537, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderDiscoveryContext = ProviderCatalogContext;", + "exportName": "ProviderDiscoveryContext", + "kind": "type", + "source": { + "line": 576, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderFetchUsageSnapshotContext = ProviderFetchUsageSnapshotContext;", + "exportName": "ProviderFetchUsageSnapshotContext", + "kind": "type", + "source": { + "line": 416, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderModernModelPolicyContext = ProviderModernModelPolicyContext;", + "exportName": "ProviderModernModelPolicyContext", + "kind": "type", + "source": { + "line": 547, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderNormalizeResolvedModelContext = ProviderNormalizeResolvedModelContext;", + "exportName": "ProviderNormalizeResolvedModelContext", + "kind": "type", + "source": { + "line": 327, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderPreparedRuntimeAuth = ProviderPreparedRuntimeAuth;", + "exportName": "ProviderPreparedRuntimeAuth", + "kind": "type", + "source": { + "line": 363, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderPrepareDynamicModelContext = ProviderResolveDynamicModelContext;", + "exportName": "ProviderPrepareDynamicModelContext", + "kind": "type", + "source": { + "line": 318, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderPrepareExtraParamsContext = ProviderPrepareExtraParamsContext;", + "exportName": "ProviderPrepareExtraParamsContext", + "kind": "type", + "source": { + "line": 449, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderPrepareRuntimeAuthContext = ProviderPrepareRuntimeAuthContext;", + "exportName": "ProviderPrepareRuntimeAuthContext", + "kind": "type", + "source": { + "line": 342, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderResolvedUsageAuth = ProviderResolvedUsageAuth;", + "exportName": "ProviderResolvedUsageAuth", + "kind": "type", + "source": { + "line": 403, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderResolveDynamicModelContext = ProviderResolveDynamicModelContext;", + "exportName": "ProviderResolveDynamicModelContext", + "kind": "type", + "source": { + "line": 301, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderResolveUsageAuthContext = ProviderResolveUsageAuthContext;", + "exportName": "ProviderResolveUsageAuthContext", + "kind": "type", + "source": { + "line": 384, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderRuntimeModel = ProviderRuntimeModel;", + "exportName": "ProviderRuntimeModel", + "kind": "type", + "source": { + "line": 284, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderThinkingPolicyContext = ProviderThinkingPolicyContext;", + "exportName": "ProviderThinkingPolicyContext", + "kind": "type", + "source": { + "line": 525, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type ProviderWrapStreamFnContext = ProviderWrapStreamFnContext;", + "exportName": "ProviderWrapStreamFnContext", + "kind": "type", + "source": { + "line": 466, + "path": "src/plugins/types.ts" + } + }, + { + "declaration": "export type SpeechProviderPlugin = SpeechProviderPlugin;", + "exportName": "SpeechProviderPlugin", + "kind": "type", + "source": { + "line": 917, + "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 applyOnboardAuthAgentModelsAndProviders(cfg: OpenClawConfig, params: { agentModels: Record; providers: Record; }): OpenClawConfig;", + "exportName": "applyOnboardAuthAgentModelsAndProviders", + "kind": "function", + "source": { + "line": 53, + "path": "src/plugins/provider-onboarding-config.ts" + } + }, + { + "declaration": "export function applyProviderConfigWithDefaultModel(cfg: OpenClawConfig, params: { agentModels: Record; 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; 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": 177, + "path": "src/plugins/provider-onboarding-config.ts" + } + }, + { + "declaration": "export function applyProviderConfigWithModelCatalog(cfg: OpenClawConfig, params: { agentModels: Record; providerId: string; api: \"github-copilot\" | \"openai-completions\" | ... 5 more ... | \"ollama\"; baseUrl: string; catalogModels: ModelDefinitionConfig[]; }): OpenClawConfig;", + "exportName": "applyProviderConfigWithModelCatalog", + "kind": "function", + "source": { + "line": 202, + "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": 234, + "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 | undefined, aliases: readonly AgentModelAliasEntry[]): Record;", + "exportName": "withAgentModelAliases", + "kind": "function", + "source": { + "line": 38, + "path": "src/plugins/provider-onboarding-config.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": 46, + "path": "src/config/types.models.ts" + } + }, + { + "declaration": "export type ModelProviderConfig = ModelProviderConfig;", + "exportName": "ModelProviderConfig", + "kind": "type", + "source": { + "line": 64, + "path": "src/config/types.models.ts" + } + }, + { + "declaration": "export type OpenClawConfig = OpenClawConfig;", + "exportName": "OpenClawConfig", + "kind": "type", + "source": { + "line": 32, + "path": "src/config/types.openclaw.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): (payload: unknown) => Promise;", + "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; }): Promise;", + "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; 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): 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; 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(params: { text: string; mediaUrls: readonly string[]; send: (input: { text: string; mediaUrl: string; index: number; isFirst: boolean; }) => Promise; }): Promise;", + "exportName": "sendPayloadMediaSequence", + "kind": "function", + "source": { + "line": 183, + "path": "src/plugin-sdk/reply-payload.ts" + } + }, + { + "declaration": "export function sendPayloadMediaSequenceAndFinalize(params: { text: string; mediaUrls: readonly string[]; send: (input: { text: string; mediaUrl: string; index: number; isFirst: boolean; }) => Promise; finalize: () => Promise; }): Promise<...>;", + "exportName": "sendPayloadMediaSequenceAndFinalize", + "kind": "function", + "source": { + "line": 227, + "path": "src/plugin-sdk/reply-payload.ts" + } + }, + { + "declaration": "export function sendPayloadMediaSequenceOrFallback(params: { text: string; mediaUrls: readonly string[]; send: (input: { text: string; mediaUrl: string; index: number; isFirst: boolean; }) => Promise; fallbackResult: TResult; sendNoMedia?: (() => Promise<...>) | undefined; }): Promise<...>;", + "exportName": "sendPayloadMediaSequenceOrFallback", + "kind": "function", + "source": { + "line": 209, + "path": "src/plugin-sdk/reply-payload.ts" + } + }, + { + "declaration": "export function sendPayloadWithChunkedTextAndMedia(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;", + "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(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": 53, + "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; provider: ZodString; id: ZodString; }, $strip>, ZodObject<...>, ZodObject<...>], \"source\">]>>;", + "exportName": "buildOptionalSecretInputSchema", + "kind": "function", + "source": { + "line": 17, + "path": "src/plugin-sdk/secret-input.ts" + } + }, + { + "declaration": "export function buildSecretInputArraySchema(): ZodArray; provider: ZodString; id: ZodString; }, $strip>, ZodObject<...>, ZodObject<...>], \"source\">]>>;", + "exportName": "buildSecretInputArraySchema", + "kind": "function", + "source": { + "line": 21, + "path": "src/plugin-sdk/secret-input.ts" + } + }, + { + "declaration": "export function buildSecretInputSchema(): ZodUnion; 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;", + "exportName": "createWindowsCmdShimFixture", + "kind": "function", + "source": { + "line": 15, + "path": "src/plugin-sdk/testing.ts" + } + }, + { + "declaration": "export function installCommonResolveTargetErrorCases(params: { resolveTarget: ResolveTargetFn; implicitAllowFrom: string[]; }): void;", + "exportName": "installCommonResolveTargetErrorCases", + "kind": "function", + "source": { + "line": 40, + "path": "src/plugin-sdk/testing.ts" + } + }, + { + "declaration": "export function removeAckReactionAfterReply(params: { removeAfterReply: boolean; ackReactionPromise: Promise | null; ackReactionValue: string | null; remove: () => Promise; 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": 139, + "path": "src/channels/plugins/types.core.ts" + } + }, + { + "declaration": "export type ChannelGatewayContext = ChannelGatewayContext;", + "exportName": "ChannelGatewayContext", + "kind": "type", + "source": { + "line": 238, + "path": "src/channels/plugins/types.adapters.ts" + } + }, + { + "declaration": "export type MockFn = MockFn;", + "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": 53, + "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; 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; 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": 46, + "path": "src/infra/http-body.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; 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;", + "exportName": "readRequestBodyWithLimit", + "kind": "function", + "source": { + "line": 121, + "path": "src/infra/http-body.ts" + } + }, + { + "declaration": "export function readWebhookBodyOrReject(params: { req: IncomingMessage; res: ServerResponse; 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(targetsByPath: Map, target: T, opts?: RegisterWebhookTargetOptions | undefined): RegisteredWebhookTarget;", + "exportName": "registerWebhookTarget", + "kind": "function", + "source": { + "line": 61, + "path": "src/plugin-sdk/webhook-targets.ts" + } + }, + { + "declaration": "export function registerWebhookTargetWithPluginRoute(params: { targetsByPath: Map; 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": 59, + "path": "src/infra/http-body.ts" + } + }, + { + "declaration": "export function resolveSingleWebhookTarget(targets: readonly T[], isMatch: (target: T) => boolean): WebhookTargetMatchResult;", + "exportName": "resolveSingleWebhookTarget", + "kind": "function", + "source": { + "line": 193, + "path": "src/plugin-sdk/webhook-targets.ts" + } + }, + { + "declaration": "export function resolveSingleWebhookTargetAsync(targets: readonly T[], isMatch: (target: T) => Promise): Promise>;", + "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(req: IncomingMessage, targetsByPath: Map): { path: string; targets: T[]; } | null;", + "exportName": "resolveWebhookTargets", + "kind": "function", + "source": { + "line": 107, + "path": "src/plugin-sdk/webhook-targets.ts" + } + }, + { + "declaration": "export function resolveWebhookTargetWithAuthOrReject(params: { targets: readonly T[]; res: ServerResponse; isMatch: (target: T) => boolean | Promise; 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(params: { targets: readonly T[]; res: ServerResponse; 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(params: { req: IncomingMessage; res: ServerResponse; targetsByPath: Map; 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;", + "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;", + "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;", + "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" + } + } + ] +} diff --git a/docs/.generated/plugin-sdk-api-baseline.jsonl b/docs/.generated/plugin-sdk-api-baseline.jsonl new file mode 100644 index 00000000000..a36e8fe8fc2 --- /dev/null +++ b/docs/.generated/plugin-sdk-api-baseline.jsonl @@ -0,0 +1,565 @@ +{"category":"legacy","entrypoint":"index","importSpecifier":"openclaw/plugin-sdk","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/index.ts"} +{"declaration":"export function buildFalImageGenerationProvider(): ImageGenerationProvider;","entrypoint":"index","exportName":"buildFalImageGenerationProvider","importSpecifier":"openclaw/plugin-sdk","kind":"function","recordType":"export","sourceLine":188,"sourcePath":"src/image-generation/providers/fal.ts"} +{"declaration":"export function buildGoogleImageGenerationProvider(): ImageGenerationProvider;","entrypoint":"index","exportName":"buildGoogleImageGenerationProvider","importSpecifier":"openclaw/plugin-sdk","kind":"function","recordType":"export","sourceLine":96,"sourcePath":"src/image-generation/providers/google.ts"} +{"declaration":"export function buildOpenAIImageGenerationProvider(): ImageGenerationProvider;","entrypoint":"index","exportName":"buildOpenAIImageGenerationProvider","importSpecifier":"openclaw/plugin-sdk","kind":"function","recordType":"export","sourceLine":22,"sourcePath":"src/image-generation/providers/openai.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<...>;","entrypoint":"index","exportName":"delegateCompactionToRuntime","importSpecifier":"openclaw/plugin-sdk","kind":"function","recordType":"export","sourceLine":16,"sourcePath":"src/context-engine/delegate.ts"} +{"declaration":"export function emptyPluginConfigSchema(): OpenClawPluginConfigSchema;","entrypoint":"index","exportName":"emptyPluginConfigSchema","importSpecifier":"openclaw/plugin-sdk","kind":"function","recordType":"export","sourceLine":13,"sourcePath":"src/plugins/config-schema.ts"} +{"declaration":"export function onDiagnosticEvent(listener: (evt: DiagnosticEventPayload) => void): () => void;","entrypoint":"index","exportName":"onDiagnosticEvent","importSpecifier":"openclaw/plugin-sdk","kind":"function","recordType":"export","sourceLine":229,"sourcePath":"src/infra/diagnostic-events.ts"} +{"declaration":"export function registerContextEngine(id: string, factory: ContextEngineFactory): ContextEngineRegistrationResult;","entrypoint":"index","exportName":"registerContextEngine","importSpecifier":"openclaw/plugin-sdk","kind":"function","recordType":"export","sourceLine":377,"sourcePath":"src/context-engine/registry.ts"} +{"declaration":"export type AnyAgentTool = AnyAgentTool;","entrypoint":"index","exportName":"AnyAgentTool","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":9,"sourcePath":"src/agents/tools/common.ts"} +{"declaration":"export type ChannelAccountSnapshot = ChannelAccountSnapshot;","entrypoint":"index","exportName":"ChannelAccountSnapshot","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":139,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelAgentTool = ChannelAgentTool;","entrypoint":"index","exportName":"ChannelAgentTool","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":17,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelAgentToolFactory = ChannelAgentToolFactory;","entrypoint":"index","exportName":"ChannelAgentToolFactory","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":21,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelCapabilities = ChannelCapabilities;","entrypoint":"index","exportName":"ChannelCapabilities","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":223,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelConfigSchema = ChannelConfigSchema;","entrypoint":"index","exportName":"ChannelConfigSchema","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":47,"sourcePath":"src/channels/plugins/types.plugin.ts"} +{"declaration":"export type ChannelConfiguredBindingConversationRef = ChannelConfiguredBindingConversationRef;","entrypoint":"index","exportName":"ChannelConfiguredBindingConversationRef","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":553,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelConfiguredBindingMatch = ChannelConfiguredBindingMatch;","entrypoint":"index","exportName":"ChannelConfiguredBindingMatch","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":558,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelConfiguredBindingProvider = ChannelConfiguredBindingProvider;","entrypoint":"index","exportName":"ChannelConfiguredBindingProvider","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":562,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelGatewayContext = ChannelGatewayContext;","entrypoint":"index","exportName":"ChannelGatewayContext","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":238,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelId = ChannelId;","entrypoint":"index","exportName":"ChannelId","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":13,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMessageActionAdapter = ChannelMessageActionAdapter;","entrypoint":"index","exportName":"ChannelMessageActionAdapter","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":506,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMessageActionContext = ChannelMessageActionContext;","entrypoint":"index","exportName":"ChannelMessageActionContext","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":473,"sourcePath":"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\";","entrypoint":"index","exportName":"ChannelMessageActionName","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":6,"sourcePath":"src/channels/plugins/types.ts"} +{"declaration":"export type ChannelPlugin = ChannelPlugin;","entrypoint":"index","exportName":"ChannelPlugin","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":53,"sourcePath":"src/channels/plugins/types.plugin.ts"} +{"declaration":"export type ChannelSetupAdapter = ChannelSetupAdapter;","entrypoint":"index","exportName":"ChannelSetupAdapter","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":56,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelSetupInput = ChannelSetupInput;","entrypoint":"index","exportName":"ChannelSetupInput","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":60,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelSetupWizard = ChannelSetupWizard;","entrypoint":"index","exportName":"ChannelSetupWizard","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":247,"sourcePath":"src/channels/plugins/setup-wizard.ts"} +{"declaration":"export type ChannelSetupWizardAllowFromEntry = ChannelSetupWizardAllowFromEntry;","entrypoint":"index","exportName":"ChannelSetupWizardAllowFromEntry","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":154,"sourcePath":"src/channels/plugins/setup-wizard.ts"} +{"declaration":"export type ChannelStatusIssue = ChannelStatusIssue;","entrypoint":"index","exportName":"ChannelStatusIssue","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":97,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type OpenClawConfig = OpenClawConfig;","entrypoint":"index","exportName":"ClawdbotConfig","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":32,"sourcePath":"src/config/types.openclaw.ts"} +{"declaration":"export type CompiledConfiguredBinding = CompiledConfiguredBinding;","entrypoint":"index","exportName":"CompiledConfiguredBinding","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":38,"sourcePath":"src/channels/plugins/binding-types.ts"} +{"declaration":"export type ConfiguredBindingConversation = ConversationRef;","entrypoint":"index","exportName":"ConfiguredBindingConversation","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":13,"sourcePath":"src/channels/plugins/binding-types.ts"} +{"declaration":"export type ConfiguredBindingResolution = ConfiguredBindingResolution;","entrypoint":"index","exportName":"ConfiguredBindingResolution","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":49,"sourcePath":"src/channels/plugins/binding-types.ts"} +{"declaration":"export type ContextEngineFactory = ContextEngineFactory;","entrypoint":"index","exportName":"ContextEngineFactory","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":9,"sourcePath":"src/context-engine/registry.ts"} +{"declaration":"export type ContextEngineInfo = ContextEngineInfo;","entrypoint":"index","exportName":"ContextEngineInfo","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":46,"sourcePath":"src/context-engine/types.ts"} +{"declaration":"export type ContextEngineMaintenanceResult = TranscriptRewriteResult;","entrypoint":"index","exportName":"ContextEngineMaintenanceResult","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":84,"sourcePath":"src/context-engine/types.ts"} +{"declaration":"export type ContextEngineRuntimeContext = ContextEngineRuntimeContext;","entrypoint":"index","exportName":"ContextEngineRuntimeContext","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":86,"sourcePath":"src/context-engine/types.ts"} +{"declaration":"export type DiagnosticEventPayload = DiagnosticEventPayload;","entrypoint":"index","exportName":"DiagnosticEventPayload","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":150,"sourcePath":"src/infra/diagnostic-events.ts"} +{"declaration":"export type GeneratedImageAsset = GeneratedImageAsset;","entrypoint":"index","exportName":"GeneratedImageAsset","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":4,"sourcePath":"src/image-generation/types.ts"} +{"declaration":"export type HookEntry = HookEntry;","entrypoint":"index","exportName":"HookEntry","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":47,"sourcePath":"src/hooks/types.ts"} +{"declaration":"export type ImageGenerationProvider = ImageGenerationProvider;","entrypoint":"index","exportName":"ImageGenerationProvider","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":66,"sourcePath":"src/image-generation/types.ts"} +{"declaration":"export type ImageGenerationRequest = ImageGenerationRequest;","entrypoint":"index","exportName":"ImageGenerationRequest","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":21,"sourcePath":"src/image-generation/types.ts"} +{"declaration":"export type ImageGenerationResolution = ImageGenerationResolution;","entrypoint":"index","exportName":"ImageGenerationResolution","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":12,"sourcePath":"src/image-generation/types.ts"} +{"declaration":"export type ImageGenerationResult = ImageGenerationResult;","entrypoint":"index","exportName":"ImageGenerationResult","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":36,"sourcePath":"src/image-generation/types.ts"} +{"declaration":"export type ImageGenerationSourceImage = ImageGenerationSourceImage;","entrypoint":"index","exportName":"ImageGenerationSourceImage","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":14,"sourcePath":"src/image-generation/types.ts"} +{"declaration":"export type MediaUnderstandingProviderPlugin = MediaUnderstandingProvider;","entrypoint":"index","exportName":"MediaUnderstandingProviderPlugin","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":935,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawConfig = OpenClawConfig;","entrypoint":"index","exportName":"OpenClawConfig","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":32,"sourcePath":"src/config/types.openclaw.ts"} +{"declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"index","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":1292,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;","entrypoint":"index","exportName":"OpenClawPluginConfigSchema","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":80,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type PluginLogger = PluginLogger;","entrypoint":"index","exportName":"PluginLogger","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":58,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"index","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":53,"sourcePath":"src/plugins/runtime/types.ts"} +{"declaration":"export type ProviderAuthContext = ProviderAuthContext;","entrypoint":"index","exportName":"ProviderAuthContext","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":144,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderAuthResult = ProviderAuthResult;","entrypoint":"index","exportName":"ProviderAuthResult","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":130,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderRuntimeModel = ProviderRuntimeModel;","entrypoint":"index","exportName":"ProviderRuntimeModel","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":284,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ReplyPayload = ReplyPayload;","entrypoint":"index","exportName":"ReplyPayload","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":76,"sourcePath":"src/auto-reply/types.ts"} +{"declaration":"export type RuntimeEnv = RuntimeEnv;","entrypoint":"index","exportName":"RuntimeEnv","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":4,"sourcePath":"src/runtime.ts"} +{"declaration":"export type RuntimeLogger = RuntimeLogger;","entrypoint":"index","exportName":"RuntimeLogger","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":3,"sourcePath":"src/plugins/runtime/types-core.ts"} +{"declaration":"export type SecretInput = SecretInput;","entrypoint":"index","exportName":"SecretInput","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":16,"sourcePath":"src/config/types.secrets.ts"} +{"declaration":"export type SecretRef = SecretRef;","entrypoint":"index","exportName":"SecretRef","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":10,"sourcePath":"src/config/types.secrets.ts"} +{"declaration":"export type SpeechProviderPlugin = SpeechProviderPlugin;","entrypoint":"index","exportName":"SpeechProviderPlugin","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":917,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type StatefulBindingTargetDescriptor = StatefulBindingTargetDescriptor;","entrypoint":"index","exportName":"StatefulBindingTargetDescriptor","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":17,"sourcePath":"src/channels/plugins/binding-types.ts"} +{"declaration":"export type StatefulBindingTargetDriver = StatefulBindingTargetDriver;","entrypoint":"index","exportName":"StatefulBindingTargetDriver","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":15,"sourcePath":"src/channels/plugins/stateful-target-drivers.ts"} +{"declaration":"export type StatefulBindingTargetReadyResult = StatefulBindingTargetReadyResult;","entrypoint":"index","exportName":"StatefulBindingTargetReadyResult","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":7,"sourcePath":"src/channels/plugins/stateful-target-drivers.ts"} +{"declaration":"export type StatefulBindingTargetResetResult = StatefulBindingTargetResetResult;","entrypoint":"index","exportName":"StatefulBindingTargetResetResult","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":11,"sourcePath":"src/channels/plugins/stateful-target-drivers.ts"} +{"declaration":"export type StatefulBindingTargetSessionResult = StatefulBindingTargetSessionResult;","entrypoint":"index","exportName":"StatefulBindingTargetSessionResult","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":8,"sourcePath":"src/channels/plugins/stateful-target-drivers.ts"} +{"declaration":"export type SubagentRunParams = SubagentRunParams;","entrypoint":"index","exportName":"SubagentRunParams","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":8,"sourcePath":"src/plugins/runtime/types.ts"} +{"declaration":"export type SubagentRunResult = SubagentRunResult;","entrypoint":"index","exportName":"SubagentRunResult","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":19,"sourcePath":"src/plugins/runtime/types.ts"} +{"declaration":"export type TranscriptRewriteReplacement = TranscriptRewriteReplacement;","entrypoint":"index","exportName":"TranscriptRewriteReplacement","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":61,"sourcePath":"src/context-engine/types.ts"} +{"declaration":"export type TranscriptRewriteRequest = TranscriptRewriteRequest;","entrypoint":"index","exportName":"TranscriptRewriteRequest","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":68,"sourcePath":"src/context-engine/types.ts"} +{"declaration":"export type TranscriptRewriteResult = TranscriptRewriteResult;","entrypoint":"index","exportName":"TranscriptRewriteResult","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":73,"sourcePath":"src/context-engine/types.ts"} +{"declaration":"export type WizardPrompter = WizardPrompter;","entrypoint":"index","exportName":"WizardPrompter","importSpecifier":"openclaw/plugin-sdk","kind":"type","recordType":"export","sourceLine":37,"sourcePath":"src/wizard/prompts.ts"} +{"declaration":"export interface ContextEngine","entrypoint":"index","exportName":"ContextEngine","importSpecifier":"openclaw/plugin-sdk","kind":"interface","recordType":"export","sourceLine":104,"sourcePath":"src/context-engine/types.ts"} +{"category":"utilities","entrypoint":"allow-from","importSpecifier":"openclaw/plugin-sdk/allow-from","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/allow-from.ts"} +{"declaration":"export function addAllowlistUserEntriesFromConfigEntry(target: Set, entry: unknown): void;","entrypoint":"allow-from","exportName":"addAllowlistUserEntriesFromConfigEntry","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":130,"sourcePath":"src/channels/allowlists/resolve-utils.ts"} +{"declaration":"export function buildAllowlistResolutionSummary(resolvedUsers: T[], opts?: { formatResolved?: ((entry: T) => string) | undefined; formatUnresolved?: ((entry: T) => string) | undefined; } | undefined): { ...; };","entrypoint":"allow-from","exportName":"buildAllowlistResolutionSummary","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":36,"sourcePath":"src/channels/allowlists/resolve-utils.ts"} +{"declaration":"export function canonicalizeAllowlistWithResolvedIds(params: { existing?: (string | number)[] | undefined; resolvedMap: Map; }): string[];","entrypoint":"allow-from","exportName":"canonicalizeAllowlistWithResolvedIds","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":73,"sourcePath":"src/channels/allowlists/resolve-utils.ts"} +{"declaration":"export function compileAllowlist(entries: readonly string[]): CompiledAllowlist;","entrypoint":"allow-from","exportName":"compileAllowlist","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":30,"sourcePath":"src/channels/allowlist-match.ts"} +{"declaration":"export function firstDefined(...values: (T | undefined)[]): (T & ({} | null)) | undefined;","entrypoint":"allow-from","exportName":"firstDefined","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":29,"sourcePath":"src/channels/allow-from.ts"} +{"declaration":"export function formatAllowFromLowercase(params: { allowFrom: (string | number)[]; stripPrefixRe?: RegExp | undefined; }): string[];","entrypoint":"allow-from","exportName":"formatAllowFromLowercase","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":31,"sourcePath":"src/plugin-sdk/allow-from.ts"} +{"declaration":"export function formatAllowlistMatchMeta(match?: { matchKey?: string | undefined; matchSource?: string | undefined; } | null | undefined): string;","entrypoint":"allow-from","exportName":"formatAllowlistMatchMeta","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":24,"sourcePath":"src/channels/allowlist-match.ts"} +{"declaration":"export function formatNormalizedAllowFromEntries(params: { allowFrom: (string | number)[]; normalizeEntry: (entry: string) => string | null | undefined; }): string[];","entrypoint":"allow-from","exportName":"formatNormalizedAllowFromEntries","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":43,"sourcePath":"src/plugin-sdk/allow-from.ts"} +{"declaration":"export function isAllowedParsedChatSender(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;","entrypoint":"allow-from","exportName":"isAllowedParsedChatSender","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":81,"sourcePath":"src/plugin-sdk/allow-from.ts"} +{"declaration":"export function isNormalizedSenderAllowed(params: { senderId: string | number; allowFrom: (string | number)[]; stripPrefixRe?: RegExp | undefined; }): boolean;","entrypoint":"allow-from","exportName":"isNormalizedSenderAllowed","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":55,"sourcePath":"src/plugin-sdk/allow-from.ts"} +{"declaration":"export function isSenderIdAllowed(allow: { entries: string[]; hasWildcard: boolean; hasEntries: boolean; }, senderId: string | undefined, allowWhenEmpty: boolean): boolean;","entrypoint":"allow-from","exportName":"isSenderIdAllowed","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":38,"sourcePath":"src/channels/allow-from.ts"} +{"declaration":"export function mapAllowlistResolutionInputs(params: { inputs: string[]; mapInput: (input: string) => T | Promise; }): Promise;","entrypoint":"allow-from","exportName":"mapAllowlistResolutionInputs","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":151,"sourcePath":"src/plugin-sdk/allow-from.ts"} +{"declaration":"export function mapBasicAllowlistResolutionEntries(entries: BasicAllowlistResolutionEntry[]): BasicAllowlistResolutionEntry[];","entrypoint":"allow-from","exportName":"mapBasicAllowlistResolutionEntries","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":138,"sourcePath":"src/plugin-sdk/allow-from.ts"} +{"declaration":"export function mergeAllowlist(params: { existing?: (string | number)[] | undefined; additions: string[]; }): string[];","entrypoint":"allow-from","exportName":"mergeAllowlist","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":29,"sourcePath":"src/channels/allowlists/resolve-utils.ts"} +{"declaration":"export function mergeDmAllowFromSources(params: { allowFrom?: (string | number)[] | undefined; storeAllowFrom?: (string | number)[] | undefined; dmPolicy?: string | undefined; }): string[];","entrypoint":"allow-from","exportName":"mergeDmAllowFromSources","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":1,"sourcePath":"src/channels/allow-from.ts"} +{"declaration":"export function patchAllowlistUsersInConfigEntries>(params: { entries: TEntries; resolvedMap: Map; strategy?: \"merge\" | \"canonicalize\" | undefined; }): TEntries;","entrypoint":"allow-from","exportName":"patchAllowlistUsersInConfigEntries","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":92,"sourcePath":"src/channels/allowlists/resolve-utils.ts"} +{"declaration":"export function resolveAllowlistCandidates(params: { compiledAllowlist: CompiledAllowlist; candidates: { value?: string | undefined; source: TSource; }[]; }): AllowlistMatch;","entrypoint":"allow-from","exportName":"resolveAllowlistCandidates","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":44,"sourcePath":"src/channels/allowlist-match.ts"} +{"declaration":"export function resolveAllowlistMatchByCandidates(params: { allowList: readonly string[]; candidates: { value?: string | undefined; source: TSource; }[]; }): AllowlistMatch;","entrypoint":"allow-from","exportName":"resolveAllowlistMatchByCandidates","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":76,"sourcePath":"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\">;","entrypoint":"allow-from","exportName":"resolveAllowlistMatchSimple","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":86,"sourcePath":"src/channels/allowlist-match.ts"} +{"declaration":"export function resolveCompiledAllowlistMatch(params: { compiledAllowlist: CompiledAllowlist; candidates: { value?: string | undefined; source: TSource; }[]; }): AllowlistMatch;","entrypoint":"allow-from","exportName":"resolveCompiledAllowlistMatch","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":63,"sourcePath":"src/channels/allowlist-match.ts"} +{"declaration":"export function resolveGroupAllowFromSources(params: { allowFrom?: (string | number)[] | undefined; groupAllowFrom?: (string | number)[] | undefined; fallbackToAllowFrom?: boolean | undefined; }): string[];","entrypoint":"allow-from","exportName":"resolveGroupAllowFromSources","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":12,"sourcePath":"src/channels/allow-from.ts"} +{"declaration":"export function summarizeMapping(label: string, mapping: string[], unresolved: string[], runtime: RuntimeEnv): void;","entrypoint":"allow-from","exportName":"summarizeMapping","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"function","recordType":"export","sourceLine":146,"sourcePath":"src/channels/allowlists/resolve-utils.ts"} +{"declaration":"export type AllowlistMatch = AllowlistMatch;","entrypoint":"allow-from","exportName":"AllowlistMatch","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"type","recordType":"export","sourceLine":13,"sourcePath":"src/channels/allowlist-match.ts"} +{"declaration":"export type AllowlistMatchSource = AllowlistMatchSource;","entrypoint":"allow-from","exportName":"AllowlistMatchSource","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"type","recordType":"export","sourceLine":1,"sourcePath":"src/channels/allowlist-match.ts"} +{"declaration":"export type AllowlistUserResolutionLike = AllowlistUserResolutionLike;","entrypoint":"allow-from","exportName":"AllowlistUserResolutionLike","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"type","recordType":"export","sourceLine":5,"sourcePath":"src/channels/allowlists/resolve-utils.ts"} +{"declaration":"export type BasicAllowlistResolutionEntry = BasicAllowlistResolutionEntry;","entrypoint":"allow-from","exportName":"BasicAllowlistResolutionEntry","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"type","recordType":"export","sourceLine":129,"sourcePath":"src/plugin-sdk/allow-from.ts"} +{"declaration":"export type CompiledAllowlist = CompiledAllowlist;","entrypoint":"allow-from","exportName":"CompiledAllowlist","importSpecifier":"openclaw/plugin-sdk/allow-from","kind":"type","recordType":"export","sourceLine":19,"sourcePath":"src/channels/allowlist-match.ts"} +{"category":"channel","entrypoint":"channel-actions","importSpecifier":"openclaw/plugin-sdk/channel-actions","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/channel-actions.ts"} +{"declaration":"export function createMessageToolButtonsSchema(): TSchema;","entrypoint":"channel-actions","exportName":"createMessageToolButtonsSchema","importSpecifier":"openclaw/plugin-sdk/channel-actions","kind":"function","recordType":"export","sourceLine":10,"sourcePath":"src/plugin-sdk/channel-actions.ts"} +{"declaration":"export function createMessageToolCardSchema(): TSchema;","entrypoint":"channel-actions","exportName":"createMessageToolCardSchema","importSpecifier":"openclaw/plugin-sdk/channel-actions","kind":"function","recordType":"export","sourceLine":25,"sourcePath":"src/plugin-sdk/channel-actions.ts"} +{"declaration":"export function createUnionActionGate(accounts: readonly TAccount[], createGate: (account: TAccount) => OptionalDefaultGate): OptionalDefaultGate;","entrypoint":"channel-actions","exportName":"createUnionActionGate","importSpecifier":"openclaw/plugin-sdk/channel-actions","kind":"function","recordType":"export","sourceLine":13,"sourcePath":"src/channels/plugins/actions/shared.ts"} +{"declaration":"export function listTokenSourcedAccounts(accounts: readonly TAccount[]): TAccount[];","entrypoint":"channel-actions","exportName":"listTokenSourcedAccounts","importSpecifier":"openclaw/plugin-sdk/channel-actions","kind":"function","recordType":"export","sourceLine":7,"sourcePath":"src/channels/plugins/actions/shared.ts"} +{"declaration":"export function resolveReactionMessageId(params: { args: Record; toolContext?: ReactionToolContext | undefined; }): string | number | undefined;","entrypoint":"channel-actions","exportName":"resolveReactionMessageId","importSpecifier":"openclaw/plugin-sdk/channel-actions","kind":"function","recordType":"export","sourceLine":7,"sourcePath":"src/channels/plugins/actions/reaction-message-id.ts"} +{"category":"channel","entrypoint":"channel-config-schema","importSpecifier":"openclaw/plugin-sdk/channel-config-schema","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/channel-config-schema.ts"} +{"declaration":"export function buildCatchallMultiAccountChannelSchema(accountSchema: T): T;","entrypoint":"channel-config-schema","exportName":"buildCatchallMultiAccountChannelSchema","importSpecifier":"openclaw/plugin-sdk/channel-config-schema","kind":"function","recordType":"export","sourceLine":26,"sourcePath":"src/channels/plugins/config-schema.ts"} +{"declaration":"export function buildChannelConfigSchema(schema: ZodType>): ChannelConfigSchema;","entrypoint":"channel-config-schema","exportName":"buildChannelConfigSchema","importSpecifier":"openclaw/plugin-sdk/channel-config-schema","kind":"function","recordType":"export","sourceLine":35,"sourcePath":"src/channels/plugins/config-schema.ts"} +{"declaration":"export function buildNestedDmConfigSchema(): ZodOptional; policy: ZodOptional>; allowFrom: ZodOptional<...>; }, $strip>>;","entrypoint":"channel-config-schema","exportName":"buildNestedDmConfigSchema","importSpecifier":"openclaw/plugin-sdk/channel-config-schema","kind":"function","recordType":"export","sourceLine":16,"sourcePath":"src/channels/plugins/config-schema.ts"} +{"declaration":"export const AllowFromListSchema: z.ZodOptional>>;","entrypoint":"channel-config-schema","exportName":"AllowFromListSchema","importSpecifier":"openclaw/plugin-sdk/channel-config-schema","kind":"const","recordType":"export","sourceLine":14,"sourcePath":"src/channels/plugins/config-schema.ts"} +{"declaration":"export const DmPolicySchema: z.ZodEnum<{ disabled: \"disabled\"; pairing: \"pairing\"; allowlist: \"allowlist\"; open: \"open\"; }>;","entrypoint":"channel-config-schema","exportName":"DmPolicySchema","importSpecifier":"openclaw/plugin-sdk/channel-config-schema","kind":"const","recordType":"export","sourceLine":337,"sourcePath":"src/config/zod-schema.core.ts"} +{"declaration":"export const GroupPolicySchema: z.ZodEnum<{ disabled: \"disabled\"; allowlist: \"allowlist\"; open: \"open\"; }>;","entrypoint":"channel-config-schema","exportName":"GroupPolicySchema","importSpecifier":"openclaw/plugin-sdk/channel-config-schema","kind":"const","recordType":"export","sourceLine":335,"sourcePath":"src/config/zod-schema.core.ts"} +{"declaration":"export const MarkdownConfigSchema: z.ZodOptional>; }, z.core.$strict>>;","entrypoint":"channel-config-schema","exportName":"MarkdownConfigSchema","importSpecifier":"openclaw/plugin-sdk/channel-config-schema","kind":"const","recordType":"export","sourceLine":371,"sourcePath":"src/config/zod-schema.core.ts"} +{"declaration":"export const ToolPolicySchema: z.ZodOptional>; alsoAllow: z.ZodOptional>; deny: z.ZodOptional>; }, z.core.$strict>>;","entrypoint":"channel-config-schema","exportName":"ToolPolicySchema","importSpecifier":"openclaw/plugin-sdk/channel-config-schema","kind":"const","recordType":"export","sourceLine":253,"sourcePath":"src/config/zod-schema.agent-runtime.ts"} +{"category":"channel","entrypoint":"channel-contract","importSpecifier":"openclaw/plugin-sdk/channel-contract","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/channel-contract.ts"} +{"declaration":"export type BaseProbeResult = BaseProbeResult;","entrypoint":"channel-contract","exportName":"BaseProbeResult","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":547,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type BaseTokenResolution = BaseTokenResolution;","entrypoint":"channel-contract","exportName":"BaseTokenResolution","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":553,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelAccountSnapshot = ChannelAccountSnapshot;","entrypoint":"channel-contract","exportName":"ChannelAccountSnapshot","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":139,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelAgentTool = ChannelAgentTool;","entrypoint":"channel-contract","exportName":"ChannelAgentTool","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":17,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelGroupContext = ChannelGroupContext;","entrypoint":"channel-contract","exportName":"ChannelGroupContext","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":210,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMessageActionAdapter = ChannelMessageActionAdapter;","entrypoint":"channel-contract","exportName":"ChannelMessageActionAdapter","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":506,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMessageActionContext = ChannelMessageActionContext;","entrypoint":"channel-contract","exportName":"ChannelMessageActionContext","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":473,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMessageActionDiscoveryContext = ChannelMessageActionDiscoveryContext;","entrypoint":"channel-contract","exportName":"ChannelMessageActionDiscoveryContext","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":29,"sourcePath":"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\";","entrypoint":"channel-contract","exportName":"ChannelMessageActionName","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":6,"sourcePath":"src/channels/plugins/types.ts"} +{"declaration":"export type ChannelMessageToolDiscovery = ChannelMessageToolDiscovery;","entrypoint":"channel-contract","exportName":"ChannelMessageToolDiscovery","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":54,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMessageToolSchemaContribution = ChannelMessageToolSchemaContribution;","entrypoint":"channel-contract","exportName":"ChannelMessageToolSchemaContribution","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":49,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelStatusIssue = ChannelStatusIssue;","entrypoint":"channel-contract","exportName":"ChannelStatusIssue","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":97,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelThreadingContext = ChannelThreadingContext;","entrypoint":"channel-contract","exportName":"ChannelThreadingContext","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":358,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelThreadingToolContext = ChannelThreadingToolContext;","entrypoint":"channel-contract","exportName":"ChannelThreadingToolContext","importSpecifier":"openclaw/plugin-sdk/channel-contract","kind":"type","recordType":"export","sourceLine":372,"sourcePath":"src/channels/plugins/types.core.ts"} +{"category":"channel","entrypoint":"channel-pairing","importSpecifier":"openclaw/plugin-sdk/channel-pairing","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/channel-pairing.ts"} +{"declaration":"export function createChannelPairingChallengeIssuer(params: { channel: ChannelId; upsertPairingRequest: (params: { id: string; meta?: PairingMeta | undefined; }) => Promise<{ code: string; created: boolean; }>; }): (challenge: Omit<...>) => Promise<...>;","entrypoint":"channel-pairing","exportName":"createChannelPairingChallengeIssuer","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export","sourceLine":19,"sourcePath":"src/plugin-sdk/channel-pairing.ts"} +{"declaration":"export function createChannelPairingController(params: { core: PluginRuntime; channel: ChannelId; accountId: string; }): ChannelPairingController;","entrypoint":"channel-pairing","exportName":"createChannelPairingController","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export","sourceLine":36,"sourcePath":"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<...>;","entrypoint":"channel-pairing","exportName":"createLoggedPairingApprovalNotifier","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export","sourceLine":12,"sourcePath":"src/channels/plugins/pairing-adapters.ts"} +{"declaration":"export function createPairingPrefixStripper(prefixRe: RegExp, map?: (entry: string) => string): (entry: string) => string;","entrypoint":"channel-pairing","exportName":"createPairingPrefixStripper","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export","sourceLine":5,"sourcePath":"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;","entrypoint":"channel-pairing","exportName":"createTextPairingAdapter","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export","sourceLine":21,"sourcePath":"src/channels/plugins/pairing-adapters.ts"} +{"declaration":"export type ChannelPairingController = ChannelPairingController;","entrypoint":"channel-pairing","exportName":"ChannelPairingController","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"type","recordType":"export","sourceLine":13,"sourcePath":"src/plugin-sdk/channel-pairing.ts"} +{"category":"channel","entrypoint":"channel-reply-pipeline","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/channel-reply-pipeline.ts"} +{"declaration":"export function createChannelReplyPipeline(params: { cfg: OpenClawConfig; agentId: string; channel?: string | undefined; accountId?: string | undefined; typing?: CreateTypingCallbacksParams | undefined; typingCallbacks?: TypingCallbacks | undefined; }): ChannelReplyPipeline;","entrypoint":"channel-reply-pipeline","exportName":"createChannelReplyPipeline","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"function","recordType":"export","sourceLine":20,"sourcePath":"src/plugin-sdk/channel-reply-pipeline.ts"} +{"declaration":"export type ChannelReplyPipeline = ChannelReplyPipeline;","entrypoint":"channel-reply-pipeline","exportName":"ChannelReplyPipeline","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export","sourceLine":16,"sourcePath":"src/plugin-sdk/channel-reply-pipeline.ts"} +{"declaration":"export type CreateTypingCallbacksParams = CreateTypingCallbacksParams;","entrypoint":"channel-reply-pipeline","exportName":"CreateTypingCallbacksParams","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export","sourceLine":11,"sourcePath":"src/channels/typing.ts"} +{"declaration":"export type ReplyPrefixContext = import(\"/Users/vincentkoc/GIT/_Perso/openclaw/.worktrees/pr-51877/src/auto-reply/reply/response-prefix-template\").ResponsePrefixContext;","entrypoint":"channel-reply-pipeline","exportName":"ReplyPrefixContext","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export","sourceLine":12,"sourcePath":"src/plugin-sdk/channel-reply-pipeline.ts"} +{"declaration":"export type ReplyPrefixContextBundle = ReplyPrefixContextBundle;","entrypoint":"channel-reply-pipeline","exportName":"ReplyPrefixContextBundle","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export","sourceLine":12,"sourcePath":"src/channels/reply-prefix.ts"} +{"declaration":"export type ReplyPrefixOptions = ReplyPrefixOptions;","entrypoint":"channel-reply-pipeline","exportName":"ReplyPrefixOptions","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export","sourceLine":20,"sourcePath":"src/channels/reply-prefix.ts"} +{"declaration":"export type TypingCallbacks = TypingCallbacks;","entrypoint":"channel-reply-pipeline","exportName":"TypingCallbacks","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export","sourceLine":4,"sourcePath":"src/channels/typing.ts"} +{"category":"legacy","entrypoint":"channel-runtime","importSpecifier":"openclaw/plugin-sdk/channel-runtime","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/channel-runtime.ts"} +{"declaration":"export function createAccountStatusSink(params: { accountId: string; setStatus: (next: ChannelAccountSnapshot) => void; }): (patch: Omit) => void;","entrypoint":"channel-runtime","exportName":"createAccountStatusSink","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":23,"sourcePath":"src/plugin-sdk/channel-lifecycle.ts"} +{"declaration":"export function createReplyPrefixContext(params: { cfg: OpenClawConfig; agentId: string; channel?: string | undefined; accountId?: string | undefined; }): ReplyPrefixContextBundle;","entrypoint":"channel-runtime","exportName":"createReplyPrefixContext","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":28,"sourcePath":"src/channels/reply-prefix.ts"} +{"declaration":"export function createReplyPrefixOptions(params: { cfg: OpenClawConfig; agentId: string; channel?: string | undefined; accountId?: string | undefined; }): ReplyPrefixOptions;","entrypoint":"channel-runtime","exportName":"createReplyPrefixOptions","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":64,"sourcePath":"src/channels/reply-prefix.ts"} +{"declaration":"export function createTypingCallbacks(params: CreateTypingCallbacksParams): TypingCallbacks;","entrypoint":"channel-runtime","exportName":"createTypingCallbacks","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":23,"sourcePath":"src/channels/typing.ts"} +{"declaration":"export function isWhatsAppGroupJid(value: string): boolean;","entrypoint":"channel-runtime","exportName":"isWhatsAppGroupJid","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":17,"sourcePath":"src/whatsapp/normalize.ts"} +{"declaration":"export function isWhatsAppUserTarget(value: string): boolean;","entrypoint":"channel-runtime","exportName":"isWhatsAppUserTarget","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":33,"sourcePath":"src/whatsapp/normalize.ts"} +{"declaration":"export function keepHttpServerTaskAlive(params: { server: CloseAwareServer; abortSignal?: AbortSignal | undefined; onAbort?: (() => void | Promise) | undefined; }): Promise;","entrypoint":"channel-runtime","exportName":"keepHttpServerTaskAlive","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":79,"sourcePath":"src/plugin-sdk/channel-lifecycle.ts"} +{"declaration":"export function looksLikeSignalTargetId(raw: string, normalized?: string | undefined): boolean;","entrypoint":"channel-runtime","exportName":"looksLikeSignalTargetId","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":38,"sourcePath":"src/channels/plugins/normalize/signal.ts"} +{"declaration":"export function looksLikeWhatsAppTargetId(raw: string): boolean;","entrypoint":"channel-runtime","exportName":"looksLikeWhatsAppTargetId","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":20,"sourcePath":"src/channels/plugins/normalize/whatsapp.ts"} +{"declaration":"export function normalizeChatType(raw?: string | undefined): ChatType | undefined;","entrypoint":"channel-runtime","exportName":"normalizeChatType","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":3,"sourcePath":"src/channels/chat-type.ts"} +{"declaration":"export function normalizePollDurationHours(value: number | undefined, options: { defaultHours: number; maxHours: number; }): number;","entrypoint":"channel-runtime","exportName":"normalizePollDurationHours","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":93,"sourcePath":"src/polls.ts"} +{"declaration":"export function normalizePollInput(input: PollInput, options?: NormalizePollOptions): NormalizedPollInput;","entrypoint":"channel-runtime","exportName":"normalizePollInput","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":36,"sourcePath":"src/polls.ts"} +{"declaration":"export function normalizeSignalMessagingTarget(raw: string): string | undefined;","entrypoint":"channel-runtime","exportName":"normalizeSignalMessagingTarget","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":1,"sourcePath":"src/channels/plugins/normalize/signal.ts"} +{"declaration":"export function normalizeWhatsAppAllowFromEntries(allowFrom: (string | number)[]): string[];","entrypoint":"channel-runtime","exportName":"normalizeWhatsAppAllowFromEntries","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":12,"sourcePath":"src/channels/plugins/normalize/whatsapp.ts"} +{"declaration":"export function normalizeWhatsAppMessagingTarget(raw: string): string | undefined;","entrypoint":"channel-runtime","exportName":"normalizeWhatsAppMessagingTarget","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":4,"sourcePath":"src/channels/plugins/normalize/whatsapp.ts"} +{"declaration":"export function normalizeWhatsAppTarget(value: string): string | null;","entrypoint":"channel-runtime","exportName":"normalizeWhatsAppTarget","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":55,"sourcePath":"src/whatsapp/normalize.ts"} +{"declaration":"export function reduceInteractiveReply(interactive: InteractiveReply | undefined, initialState: TState, reduce: (state: TState, block: InteractiveReplyBlock, index: number) => TState): TState;","entrypoint":"channel-runtime","exportName":"reduceInteractiveReply","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":3,"sourcePath":"src/channels/plugins/outbound/interactive.ts"} +{"declaration":"export function resolvePollMaxSelections(optionCount: number, allowMultiselect: boolean | undefined): number;","entrypoint":"channel-runtime","exportName":"resolvePollMaxSelections","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":29,"sourcePath":"src/polls.ts"} +{"declaration":"export function resolveWhatsAppHeartbeatRecipients(cfg: OpenClawConfig, opts?: HeartbeatRecipientsOpts): HeartbeatRecipientsResult;","entrypoint":"channel-runtime","exportName":"resolveWhatsAppHeartbeatRecipients","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":48,"sourcePath":"src/channels/plugins/whatsapp-heartbeat.ts"} +{"declaration":"export function waitUntilAbort(signal?: AbortSignal | undefined, onAbort?: (() => void | Promise) | undefined): Promise;","entrypoint":"channel-runtime","exportName":"waitUntilAbort","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"function","recordType":"export","sourceLine":38,"sourcePath":"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\"];","entrypoint":"channel-runtime","exportName":"CHANNEL_MESSAGE_ACTION_NAMES","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"const","recordType":"export","sourceLine":1,"sourcePath":"src/channels/plugins/message-action-names.ts"} +{"declaration":"export const CHANNEL_MESSAGE_CAPABILITIES: readonly [\"interactive\", \"buttons\", \"cards\", \"components\", \"blocks\"];","entrypoint":"channel-runtime","exportName":"CHANNEL_MESSAGE_CAPABILITIES","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"const","recordType":"export","sourceLine":1,"sourcePath":"src/channels/plugins/message-capabilities.ts"} +{"declaration":"export type BaseProbeResult = BaseProbeResult;","entrypoint":"channel-runtime","exportName":"BaseProbeResult","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":547,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type BaseTokenResolution = BaseTokenResolution;","entrypoint":"channel-runtime","exportName":"BaseTokenResolution","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":553,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelAccountSnapshot = ChannelAccountSnapshot;","entrypoint":"channel-runtime","exportName":"ChannelAccountSnapshot","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":139,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelAccountState = ChannelAccountState;","entrypoint":"channel-runtime","exportName":"ChannelAccountState","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":105,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelAgentPromptAdapter = ChannelAgentPromptAdapter;","entrypoint":"channel-runtime","exportName":"ChannelAgentPromptAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":455,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelAgentTool = ChannelAgentTool;","entrypoint":"channel-runtime","exportName":"ChannelAgentTool","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":17,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelAgentToolFactory = ChannelAgentToolFactory;","entrypoint":"channel-runtime","exportName":"ChannelAgentToolFactory","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":21,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelAllowlistAdapter = ChannelAllowlistAdapter;","entrypoint":"channel-runtime","exportName":"ChannelAllowlistAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":497,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelAuthAdapter = ChannelAuthAdapter;","entrypoint":"channel-runtime","exportName":"ChannelAuthAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":362,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelCapabilities = ChannelCapabilities;","entrypoint":"channel-runtime","exportName":"ChannelCapabilities","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":223,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelCapabilitiesDiagnostics = ChannelCapabilitiesDiagnostics;","entrypoint":"channel-runtime","exportName":"ChannelCapabilitiesDiagnostics","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":47,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelCapabilitiesDisplayLine = ChannelCapabilitiesDisplayLine;","entrypoint":"channel-runtime","exportName":"ChannelCapabilitiesDisplayLine","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":42,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelCapabilitiesDisplayTone = ChannelCapabilitiesDisplayTone;","entrypoint":"channel-runtime","exportName":"ChannelCapabilitiesDisplayTone","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":40,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelCommandAdapter = ChannelCommandAdapter;","entrypoint":"channel-runtime","exportName":"ChannelCommandAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":444,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelConfigAdapter = ChannelConfigAdapter;","entrypoint":"channel-runtime","exportName":"ChannelConfigAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":91,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelConfiguredBindingConversationRef = ChannelConfiguredBindingConversationRef;","entrypoint":"channel-runtime","exportName":"ChannelConfiguredBindingConversationRef","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":553,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelConfiguredBindingMatch = ChannelConfiguredBindingMatch;","entrypoint":"channel-runtime","exportName":"ChannelConfiguredBindingMatch","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":558,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelConfiguredBindingProvider = ChannelConfiguredBindingProvider;","entrypoint":"channel-runtime","exportName":"ChannelConfiguredBindingProvider","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":562,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelDirectoryAdapter = ChannelDirectoryAdapter;","entrypoint":"channel-runtime","exportName":"ChannelDirectoryAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":406,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelDirectoryEntry = ChannelDirectoryEntry;","entrypoint":"channel-runtime","exportName":"ChannelDirectoryEntry","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":461,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelDirectoryEntryKind = ChannelDirectoryEntryKind;","entrypoint":"channel-runtime","exportName":"ChannelDirectoryEntryKind","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":459,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelElevatedAdapter = ChannelElevatedAdapter;","entrypoint":"channel-runtime","exportName":"ChannelElevatedAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":437,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelExecApprovalAdapter = ChannelExecApprovalAdapter;","entrypoint":"channel-runtime","exportName":"ChannelExecApprovalAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":463,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelExecApprovalForwardTarget = ChannelExecApprovalForwardTarget;","entrypoint":"channel-runtime","exportName":"ChannelExecApprovalForwardTarget","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":32,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelExecApprovalInitiatingSurfaceState = ChannelExecApprovalInitiatingSurfaceState;","entrypoint":"channel-runtime","exportName":"ChannelExecApprovalInitiatingSurfaceState","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":27,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelGatewayAdapter = ChannelGatewayAdapter;","entrypoint":"channel-runtime","exportName":"ChannelGatewayAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":346,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelGatewayContext = ChannelGatewayContext;","entrypoint":"channel-runtime","exportName":"ChannelGatewayContext","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":238,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelGroupAdapter = ChannelGroupAdapter;","entrypoint":"channel-runtime","exportName":"ChannelGroupAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":122,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelGroupContext = ChannelGroupContext;","entrypoint":"channel-runtime","exportName":"ChannelGroupContext","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":210,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelHeartbeatAdapter = ChannelHeartbeatAdapter;","entrypoint":"channel-runtime","exportName":"ChannelHeartbeatAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":372,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelHeartbeatDeps = ChannelHeartbeatDeps;","entrypoint":"channel-runtime","exportName":"ChannelHeartbeatDeps","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":113,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelId = ChannelId;","entrypoint":"channel-runtime","exportName":"ChannelId","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":13,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelLifecycleAdapter = ChannelLifecycleAdapter;","entrypoint":"channel-runtime","exportName":"ChannelLifecycleAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":449,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelLoginWithQrStartResult = ChannelLoginWithQrStartResult;","entrypoint":"channel-runtime","exportName":"ChannelLoginWithQrStartResult","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":317,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelLoginWithQrWaitResult = ChannelLoginWithQrWaitResult;","entrypoint":"channel-runtime","exportName":"ChannelLoginWithQrWaitResult","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":322,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelLogoutContext = ChannelLogoutContext;","entrypoint":"channel-runtime","exportName":"ChannelLogoutContext","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":327,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelLogoutResult = ChannelLogoutResult;","entrypoint":"channel-runtime","exportName":"ChannelLogoutResult","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":311,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelLogSink = ChannelLogSink;","entrypoint":"channel-runtime","exportName":"ChannelLogSink","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":203,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMentionAdapter = ChannelMentionAdapter;","entrypoint":"channel-runtime","exportName":"ChannelMentionAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":253,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMessageActionAdapter = ChannelMessageActionAdapter;","entrypoint":"channel-runtime","exportName":"ChannelMessageActionAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":506,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMessageActionContext = ChannelMessageActionContext;","entrypoint":"channel-runtime","exportName":"ChannelMessageActionContext","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":473,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMessageActionDiscoveryContext = ChannelMessageActionDiscoveryContext;","entrypoint":"channel-runtime","exportName":"ChannelMessageActionDiscoveryContext","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":29,"sourcePath":"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\";","entrypoint":"channel-runtime","exportName":"ChannelMessageActionName","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":6,"sourcePath":"src/channels/plugins/types.ts"} +{"declaration":"export type ChannelMessageCapability = \"interactive\" | \"buttons\" | \"cards\" | \"components\" | \"blocks\";","entrypoint":"channel-runtime","exportName":"ChannelMessageCapability","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":9,"sourcePath":"src/channels/plugins/message-capabilities.ts"} +{"declaration":"export type ChannelMessageToolDiscovery = ChannelMessageToolDiscovery;","entrypoint":"channel-runtime","exportName":"ChannelMessageToolDiscovery","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":54,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMessageToolSchemaContribution = ChannelMessageToolSchemaContribution;","entrypoint":"channel-runtime","exportName":"ChannelMessageToolSchemaContribution","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":49,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMessagingAdapter = ChannelMessagingAdapter;","entrypoint":"channel-runtime","exportName":"ChannelMessagingAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":387,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMeta = ChannelMeta;","entrypoint":"channel-runtime","exportName":"ChannelMeta","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":118,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelOutboundAdapter = ChannelOutboundAdapter;","entrypoint":"channel-runtime","exportName":"ChannelOutboundAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":154,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelOutboundContext = ChannelOutboundContext;","entrypoint":"channel-runtime","exportName":"ChannelOutboundContext","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":128,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelOutboundTargetMode = ChannelOutboundTargetMode;","entrypoint":"channel-runtime","exportName":"ChannelOutboundTargetMode","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":15,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelPairingAdapter = ChannelPairingAdapter;","entrypoint":"channel-runtime","exportName":"ChannelPairingAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":335,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelPlugin = ChannelPlugin;","entrypoint":"channel-runtime","exportName":"ChannelPlugin","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":53,"sourcePath":"src/channels/plugins/types.plugin.ts"} +{"declaration":"export type ChannelPollContext = ChannelPollContext;","entrypoint":"channel-runtime","exportName":"ChannelPollContext","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":536,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelPollResult = ChannelPollResult;","entrypoint":"channel-runtime","exportName":"ChannelPollResult","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":528,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelResolveKind = ChannelResolveKind;","entrypoint":"channel-runtime","exportName":"ChannelResolveKind","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":417,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelResolverAdapter = ChannelResolverAdapter;","entrypoint":"channel-runtime","exportName":"ChannelResolverAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":427,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelResolveResult = ChannelResolveResult;","entrypoint":"channel-runtime","exportName":"ChannelResolveResult","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":419,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelSecurityAdapter = ChannelSecurityAdapter;","entrypoint":"channel-runtime","exportName":"ChannelSecurityAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":575,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelSecurityContext = ChannelSecurityContext;","entrypoint":"channel-runtime","exportName":"ChannelSecurityContext","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":247,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelSecurityDmPolicy = ChannelSecurityDmPolicy;","entrypoint":"channel-runtime","exportName":"ChannelSecurityDmPolicy","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":238,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelSetupAdapter = ChannelSetupAdapter;","entrypoint":"channel-runtime","exportName":"ChannelSetupAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":56,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelSetupInput = ChannelSetupInput;","entrypoint":"channel-runtime","exportName":"ChannelSetupInput","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":60,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelStatusAdapter = ChannelStatusAdapter;","entrypoint":"channel-runtime","exportName":"ChannelStatusAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":184,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelStatusIssue = ChannelStatusIssue;","entrypoint":"channel-runtime","exportName":"ChannelStatusIssue","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":97,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelStreamingAdapter = ChannelStreamingAdapter;","entrypoint":"channel-runtime","exportName":"ChannelStreamingAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":272,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelStructuredComponents = ChannelStructuredComponents;","entrypoint":"channel-runtime","exportName":"ChannelStructuredComponents","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":281,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelThreadingAdapter = ChannelThreadingAdapter;","entrypoint":"channel-runtime","exportName":"ChannelThreadingAdapter","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":315,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelThreadingContext = ChannelThreadingContext;","entrypoint":"channel-runtime","exportName":"ChannelThreadingContext","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":358,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelThreadingToolContext = ChannelThreadingToolContext;","entrypoint":"channel-runtime","exportName":"ChannelThreadingToolContext","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":372,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelToolSend = ChannelToolSend;","entrypoint":"channel-runtime","exportName":"ChannelToolSend","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":500,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChatType = ChatType;","entrypoint":"channel-runtime","exportName":"ChatType","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":1,"sourcePath":"src/channels/chat-type.ts"} +{"declaration":"export type CreateTypingCallbacksParams = CreateTypingCallbacksParams;","entrypoint":"channel-runtime","exportName":"CreateTypingCallbacksParams","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":11,"sourcePath":"src/channels/typing.ts"} +{"declaration":"export type NormalizedPollInput = NormalizedPollInput;","entrypoint":"channel-runtime","exportName":"NormalizedPollInput","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":17,"sourcePath":"src/polls.ts"} +{"declaration":"export type PollInput = PollInput;","entrypoint":"channel-runtime","exportName":"PollInput","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":1,"sourcePath":"src/polls.ts"} +{"declaration":"export type ReplyPrefixContextBundle = ReplyPrefixContextBundle;","entrypoint":"channel-runtime","exportName":"ReplyPrefixContextBundle","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":12,"sourcePath":"src/channels/reply-prefix.ts"} +{"declaration":"export type ReplyPrefixOptions = ReplyPrefixOptions;","entrypoint":"channel-runtime","exportName":"ReplyPrefixOptions","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":20,"sourcePath":"src/channels/reply-prefix.ts"} +{"declaration":"export type TypingCallbacks = TypingCallbacks;","entrypoint":"channel-runtime","exportName":"TypingCallbacks","importSpecifier":"openclaw/plugin-sdk/channel-runtime","kind":"type","recordType":"export","sourceLine":4,"sourcePath":"src/channels/typing.ts"} +{"category":"channel","entrypoint":"channel-setup","importSpecifier":"openclaw/plugin-sdk/channel-setup","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/channel-setup.ts"} +{"declaration":"export function createOptionalChannelSetupAdapter(params: OptionalChannelSetupParams): ChannelSetupAdapter;","entrypoint":"channel-setup","exportName":"createOptionalChannelSetupAdapter","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"function","recordType":"export","sourceLine":22,"sourcePath":"src/plugin-sdk/optional-channel-setup.ts"} +{"declaration":"export function createOptionalChannelSetupSurface(params: OptionalChannelSetupParams): OptionalChannelSetupSurface;","entrypoint":"channel-setup","exportName":"createOptionalChannelSetupSurface","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"function","recordType":"export","sourceLine":37,"sourcePath":"src/plugin-sdk/channel-setup.ts"} +{"declaration":"export function createOptionalChannelSetupWizard(params: OptionalChannelSetupParams): ChannelSetupWizard;","entrypoint":"channel-setup","exportName":"createOptionalChannelSetupWizard","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"function","recordType":"export","sourceLine":35,"sourcePath":"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;","entrypoint":"channel-setup","exportName":"createTopLevelChannelDmPolicy","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"function","recordType":"export","sourceLine":363,"sourcePath":"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;","entrypoint":"channel-setup","exportName":"formatDocsLink","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"function","recordType":"export","sourceLine":5,"sourcePath":"src/terminal/links.ts"} +{"declaration":"export function setSetupChannelEnabled(cfg: OpenClawConfig, channel: string, enabled: boolean): OpenClawConfig;","entrypoint":"channel-setup","exportName":"setSetupChannelEnabled","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"function","recordType":"export","sourceLine":765,"sourcePath":"src/channels/plugins/setup-wizard-helpers.ts"} +{"declaration":"export function splitSetupEntries(raw: string): string[];","entrypoint":"channel-setup","exportName":"splitSetupEntries","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"function","recordType":"export","sourceLine":76,"sourcePath":"src/channels/plugins/setup-wizard-helpers.ts"} +{"declaration":"export const DEFAULT_ACCOUNT_ID: \"default\";","entrypoint":"channel-setup","exportName":"DEFAULT_ACCOUNT_ID","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"const","recordType":"export","sourceLine":3,"sourcePath":"src/routing/account-id.ts"} +{"declaration":"export type ChannelSetupAdapter = ChannelSetupAdapter;","entrypoint":"channel-setup","exportName":"ChannelSetupAdapter","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"type","recordType":"export","sourceLine":56,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type ChannelSetupDmPolicy = ChannelSetupDmPolicy;","entrypoint":"channel-setup","exportName":"ChannelSetupDmPolicy","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"type","recordType":"export","sourceLine":93,"sourcePath":"src/channels/plugins/setup-wizard-types.ts"} +{"declaration":"export type ChannelSetupInput = ChannelSetupInput;","entrypoint":"channel-setup","exportName":"ChannelSetupInput","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"type","recordType":"export","sourceLine":60,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelSetupWizard = ChannelSetupWizard;","entrypoint":"channel-setup","exportName":"ChannelSetupWizard","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"type","recordType":"export","sourceLine":247,"sourcePath":"src/channels/plugins/setup-wizard.ts"} +{"declaration":"export type OptionalChannelSetupSurface = OptionalChannelSetupSurface;","entrypoint":"channel-setup","exportName":"OptionalChannelSetupSurface","importSpecifier":"openclaw/plugin-sdk/channel-setup","kind":"type","recordType":"export","sourceLine":27,"sourcePath":"src/plugin-sdk/channel-setup.ts"} +{"category":"channel","entrypoint":"command-auth","importSpecifier":"openclaw/plugin-sdk/command-auth","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/command-auth.ts"} +{"declaration":"export function buildCommandsMessage(cfg?: OpenClawConfig | undefined, skillCommands?: SkillCommandSpec[] | undefined, options?: CommandsMessageOptions | undefined): string;","entrypoint":"command-auth","exportName":"buildCommandsMessage","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":847,"sourcePath":"src/auto-reply/status.ts"} +{"declaration":"export function buildCommandsMessagePaginated(cfg?: OpenClawConfig | undefined, skillCommands?: SkillCommandSpec[] | undefined, options?: CommandsMessageOptions | undefined): CommandsMessageResult;","entrypoint":"command-auth","exportName":"buildCommandsMessagePaginated","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":856,"sourcePath":"src/auto-reply/status.ts"} +{"declaration":"export function buildCommandsPaginationKeyboard(currentPage: number, totalPages: number, agentId?: string | undefined): { text: string; callback_data: string; }[][];","entrypoint":"command-auth","exportName":"buildCommandsPaginationKeyboard","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":89,"sourcePath":"src/auto-reply/reply/commands-info.ts"} +{"declaration":"export function buildCommandText(commandName: string, args?: string | undefined): string;","entrypoint":"command-auth","exportName":"buildCommandText","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":199,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function buildCommandTextFromArgs(command: ChatCommandDefinition, args?: CommandArgs | undefined): string;","entrypoint":"command-auth","exportName":"buildCommandTextFromArgs","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":291,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function buildHelpMessage(cfg?: OpenClawConfig | undefined): string;","entrypoint":"command-auth","exportName":"buildHelpMessage","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":727,"sourcePath":"src/auto-reply/status.ts"} +{"declaration":"export function buildModelsProviderData(cfg: OpenClawConfig, agentId?: string | undefined): Promise;","entrypoint":"command-auth","exportName":"buildModelsProviderData","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":37,"sourcePath":"src/auto-reply/reply/commands-models.ts"} +{"declaration":"export function findCommandByNativeName(name: string, provider?: string | undefined): ChatCommandDefinition | undefined;","entrypoint":"command-auth","exportName":"findCommandByNativeName","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":187,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function formatModelsAvailableHeader(params: { provider: string; total: number; cfg: OpenClawConfig; agentDir?: string | undefined; sessionEntry?: SessionEntry | undefined; }): string;","entrypoint":"command-auth","exportName":"formatModelsAvailableHeader","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":204,"sourcePath":"src/auto-reply/reply/commands-models.ts"} +{"declaration":"export function getCommandDetection(_cfg?: OpenClawConfig | undefined): CommandDetection;","entrypoint":"command-auth","exportName":"getCommandDetection","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":440,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function hasControlCommand(text?: string | undefined, cfg?: OpenClawConfig | undefined, options?: CommandNormalizeOptions | undefined): boolean;","entrypoint":"command-auth","exportName":"hasControlCommand","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":10,"sourcePath":"src/auto-reply/command-detection.ts"} +{"declaration":"export function hasInlineCommandTokens(text?: string | undefined): boolean;","entrypoint":"command-auth","exportName":"hasInlineCommandTokens","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":74,"sourcePath":"src/auto-reply/command-detection.ts"} +{"declaration":"export function isCommandEnabled(cfg: OpenClawConfig, commandKey: string): boolean;","entrypoint":"command-auth","exportName":"isCommandEnabled","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":98,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function isCommandMessage(raw: string): boolean;","entrypoint":"command-auth","exportName":"isCommandMessage","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":435,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function isControlCommandMessage(text?: string | undefined, cfg?: OpenClawConfig | undefined, options?: CommandNormalizeOptions | undefined): boolean;","entrypoint":"command-auth","exportName":"isControlCommandMessage","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":48,"sourcePath":"src/auto-reply/command-detection.ts"} +{"declaration":"export function isNativeCommandSurface(surface?: string | undefined): boolean;","entrypoint":"command-auth","exportName":"isNativeCommandSurface","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":521,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function listChatCommands(params?: { skillCommands?: SkillCommandSpec[] | undefined; } | undefined): ChatCommandDefinition[];","entrypoint":"command-auth","exportName":"listChatCommands","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":88,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function listChatCommandsForConfig(cfg: OpenClawConfig, params?: { skillCommands?: SkillCommandSpec[] | undefined; } | undefined): ChatCommandDefinition[];","entrypoint":"command-auth","exportName":"listChatCommandsForConfig","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":117,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function listNativeCommandSpecs(params?: { skillCommands?: SkillCommandSpec[] | undefined; provider?: string | undefined; } | undefined): NativeCommandSpec[];","entrypoint":"command-auth","exportName":"listNativeCommandSpecs","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":170,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function listNativeCommandSpecsForConfig(cfg: OpenClawConfig, params?: { skillCommands?: SkillCommandSpec[] | undefined; provider?: string | undefined; } | undefined): NativeCommandSpec[];","entrypoint":"command-auth","exportName":"listNativeCommandSpecsForConfig","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":180,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function listReservedChatSlashCommandNames(extraNames?: string[]): Set;","entrypoint":"command-auth","exportName":"listReservedChatSlashCommandNames","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":4,"sourcePath":"src/auto-reply/skill-commands-base.ts"} +{"declaration":"export function listSkillCommandsForAgents(params: { cfg: OpenClawConfig; agentIds?: string[] | undefined; }): SkillCommandSpec[];","entrypoint":"command-auth","exportName":"listSkillCommandsForAgents","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":46,"sourcePath":"src/auto-reply/skill-commands.ts"} +{"declaration":"export function listSkillCommandsForWorkspace(params: { workspaceDir: string; cfg: OpenClawConfig; skillFilter?: string[] | undefined; }): SkillCommandSpec[];","entrypoint":"command-auth","exportName":"listSkillCommandsForWorkspace","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":17,"sourcePath":"src/auto-reply/skill-commands.ts"} +{"declaration":"export function maybeResolveTextAlias(raw: string, cfg?: OpenClawConfig | undefined): string | null;","entrypoint":"command-auth","exportName":"maybeResolveTextAlias","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":473,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function normalizeCommandBody(raw: string, options?: CommandNormalizeOptions | undefined): string;","entrypoint":"command-auth","exportName":"normalizeCommandBody","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":384,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function parseCommandArgs(command: ChatCommandDefinition, raw?: string | undefined): CommandArgs | undefined;","entrypoint":"command-auth","exportName":"parseCommandArgs","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":254,"sourcePath":"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[];","entrypoint":"command-auth","exportName":"resolveCommandArgChoices","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":316,"sourcePath":"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;","entrypoint":"command-auth","exportName":"resolveCommandArgMenu","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":346,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function resolveCommandAuthorization(params: { ctx: MsgContext; cfg: OpenClawConfig; commandAuthorized: boolean; }): CommandAuthorization;","entrypoint":"command-auth","exportName":"resolveCommandAuthorization","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":303,"sourcePath":"src/auto-reply/command-auth.ts"} +{"declaration":"export function resolveCommandAuthorizedFromAuthorizers(params: { useAccessGroups: boolean; authorizers: CommandAuthorizer[]; modeWhenAccessGroupsOff?: CommandGatingModeWhenAccessGroupsOff | undefined; }): boolean;","entrypoint":"command-auth","exportName":"resolveCommandAuthorizedFromAuthorizers","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":8,"sourcePath":"src/channels/command-gating.ts"} +{"declaration":"export function resolveControlCommandGate(params: { useAccessGroups: boolean; authorizers: CommandAuthorizer[]; allowTextCommands: boolean; hasControlCommand: boolean; modeWhenAccessGroupsOff?: CommandGatingModeWhenAccessGroupsOff | undefined; }): { ...; };","entrypoint":"command-auth","exportName":"resolveControlCommandGate","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":31,"sourcePath":"src/channels/command-gating.ts"} +{"declaration":"export function resolveDirectDmAuthorizationOutcome(params: { isGroup: boolean; dmPolicy: string; senderAllowedForCommands: boolean; }): \"disabled\" | \"unauthorized\" | \"allowed\";","entrypoint":"command-auth","exportName":"resolveDirectDmAuthorizationOutcome","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":114,"sourcePath":"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; }): { ...; };","entrypoint":"command-auth","exportName":"resolveDualTextControlCommandGate","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":47,"sourcePath":"src/channels/command-gating.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<...>;","entrypoint":"command-auth","exportName":"resolveModelsCommandReply","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":220,"sourcePath":"src/auto-reply/reply/commands-models.ts"} +{"declaration":"export function resolveNativeCommandSessionTargets(params: ResolveNativeCommandSessionTargetsParams): { sessionKey: string; commandTargetSessionKey: string; };","entrypoint":"command-auth","exportName":"resolveNativeCommandSessionTargets","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":10,"sourcePath":"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; }>;","entrypoint":"command-auth","exportName":"resolveSenderCommandAuthorization","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":143,"sourcePath":"src/plugin-sdk/command-auth.ts"} +{"declaration":"export function resolveSenderCommandAuthorizationWithRuntime(params: ResolveSenderCommandAuthorizationWithRuntimeParams): Promise<{ shouldComputeAuth: boolean; effectiveAllowFrom: string[]; effectiveGroupAllowFrom: string[]; senderAllowedForCommands: boolean; commandAuthorized: boolean | undefined; }>;","entrypoint":"command-auth","exportName":"resolveSenderCommandAuthorizationWithRuntime","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":132,"sourcePath":"src/plugin-sdk/command-auth.ts"} +{"declaration":"export function resolveSkillCommandInvocation(params: { commandBodyNormalized: string; skillCommands: SkillCommandSpec[]; }): { command: SkillCommandSpec; args?: string | undefined; } | null;","entrypoint":"command-auth","exportName":"resolveSkillCommandInvocation","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":58,"sourcePath":"src/auto-reply/skill-commands-base.ts"} +{"declaration":"export function resolveStoredModelOverride(params: { sessionEntry?: SessionEntry | undefined; sessionStore?: Record | undefined; sessionKey?: string | undefined; parentSessionKey?: string | undefined; }): StoredModelOverride | null;","entrypoint":"command-auth","exportName":"resolveStoredModelOverride","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":156,"sourcePath":"src/auto-reply/reply/model-selection.ts"} +{"declaration":"export function resolveTextCommand(raw: string, cfg?: OpenClawConfig | undefined): { command: ChatCommandDefinition; args?: string | undefined; } | null;","entrypoint":"command-auth","exportName":"resolveTextCommand","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":494,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function serializeCommandArgs(command: ChatCommandDefinition, args?: CommandArgs | undefined): string | undefined;","entrypoint":"command-auth","exportName":"serializeCommandArgs","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":271,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export function shouldComputeCommandAuthorized(text?: string | undefined, cfg?: OpenClawConfig | undefined, options?: CommandNormalizeOptions | undefined): boolean;","entrypoint":"command-auth","exportName":"shouldComputeCommandAuthorized","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":82,"sourcePath":"src/auto-reply/command-detection.ts"} +{"declaration":"export function shouldHandleTextCommands(params: ShouldHandleTextCommandsParams): boolean;","entrypoint":"command-auth","exportName":"shouldHandleTextCommands","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"function","recordType":"export","sourceLine":528,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export type ChatCommandDefinition = ChatCommandDefinition;","entrypoint":"command-auth","exportName":"ChatCommandDefinition","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":53,"sourcePath":"src/auto-reply/commands-registry.types.ts"} +{"declaration":"export type CommandArgChoiceContext = CommandArgChoiceContext;","entrypoint":"command-auth","exportName":"CommandArgChoiceContext","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":16,"sourcePath":"src/auto-reply/commands-registry.types.ts"} +{"declaration":"export type CommandArgDefinition = CommandArgDefinition;","entrypoint":"command-auth","exportName":"CommandArgDefinition","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":28,"sourcePath":"src/auto-reply/commands-registry.types.ts"} +{"declaration":"export type CommandArgMenuSpec = CommandArgMenuSpec;","entrypoint":"command-auth","exportName":"CommandArgMenuSpec","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":38,"sourcePath":"src/auto-reply/commands-registry.types.ts"} +{"declaration":"export type CommandArgs = CommandArgs;","entrypoint":"command-auth","exportName":"CommandArgs","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":46,"sourcePath":"src/auto-reply/commands-registry.types.ts"} +{"declaration":"export type CommandArgValues = CommandArgValues;","entrypoint":"command-auth","exportName":"CommandArgValues","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":44,"sourcePath":"src/auto-reply/commands-registry.types.ts"} +{"declaration":"export type CommandAuthorization = CommandAuthorization;","entrypoint":"command-auth","exportName":"CommandAuthorization","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":13,"sourcePath":"src/auto-reply/command-auth.ts"} +{"declaration":"export type CommandAuthorizationRuntime = CommandAuthorizationRuntime;","entrypoint":"command-auth","exportName":"CommandAuthorizationRuntime","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":98,"sourcePath":"src/plugin-sdk/command-auth.ts"} +{"declaration":"export type CommandAuthorizer = CommandAuthorizer;","entrypoint":"command-auth","exportName":"CommandAuthorizer","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":1,"sourcePath":"src/channels/command-gating.ts"} +{"declaration":"export type CommandDetection = CommandDetection;","entrypoint":"command-auth","exportName":"CommandDetection","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":78,"sourcePath":"src/auto-reply/commands-registry.types.ts"} +{"declaration":"export type CommandGatingModeWhenAccessGroupsOff = CommandGatingModeWhenAccessGroupsOff;","entrypoint":"command-auth","exportName":"CommandGatingModeWhenAccessGroupsOff","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":6,"sourcePath":"src/channels/command-gating.ts"} +{"declaration":"export type CommandNormalizeOptions = CommandNormalizeOptions;","entrypoint":"command-auth","exportName":"CommandNormalizeOptions","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":74,"sourcePath":"src/auto-reply/commands-registry.types.ts"} +{"declaration":"export type CommandScope = CommandScope;","entrypoint":"command-auth","exportName":"CommandScope","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":3,"sourcePath":"src/auto-reply/commands-registry.types.ts"} +{"declaration":"export type ModelsProviderData = ModelsProviderData;","entrypoint":"command-auth","exportName":"ModelsProviderData","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":27,"sourcePath":"src/auto-reply/reply/commands-models.ts"} +{"declaration":"export type NativeCommandSpec = NativeCommandSpec;","entrypoint":"command-auth","exportName":"NativeCommandSpec","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":67,"sourcePath":"src/auto-reply/commands-registry.types.ts"} +{"declaration":"export type ResolvedCommandArgChoice = ResolvedCommandArgChoice;","entrypoint":"command-auth","exportName":"ResolvedCommandArgChoice","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":314,"sourcePath":"src/auto-reply/commands-registry.ts"} +{"declaration":"export type ResolveNativeCommandSessionTargetsParams = ResolveNativeCommandSessionTargetsParams;","entrypoint":"command-auth","exportName":"ResolveNativeCommandSessionTargetsParams","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":1,"sourcePath":"src/channels/native-command-session-targets.ts"} +{"declaration":"export type ResolveSenderCommandAuthorizationParams = ResolveSenderCommandAuthorizationParams;","entrypoint":"command-auth","exportName":"ResolveSenderCommandAuthorizationParams","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":81,"sourcePath":"src/plugin-sdk/command-auth.ts"} +{"declaration":"export type ResolveSenderCommandAuthorizationWithRuntimeParams = ResolveSenderCommandAuthorizationWithRuntimeParams;","entrypoint":"command-auth","exportName":"ResolveSenderCommandAuthorizationWithRuntimeParams","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":106,"sourcePath":"src/plugin-sdk/command-auth.ts"} +{"declaration":"export type ShouldHandleTextCommandsParams = ShouldHandleTextCommandsParams;","entrypoint":"command-auth","exportName":"ShouldHandleTextCommandsParams","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":83,"sourcePath":"src/auto-reply/commands-registry.types.ts"} +{"declaration":"export type StoredModelOverride = StoredModelOverride;","entrypoint":"command-auth","exportName":"StoredModelOverride","importSpecifier":"openclaw/plugin-sdk/command-auth","kind":"type","recordType":"export","sourceLine":123,"sourcePath":"src/auto-reply/reply/model-selection.ts"} +{"category":"core","entrypoint":"core","importSpecifier":"openclaw/plugin-sdk/core","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/core.ts"} +{"declaration":"export function applyAccountNameToChannelSection(params: { cfg: OpenClawConfig; channelKey: string; accountId: string; name?: string | undefined; alwaysUseAccounts?: boolean | undefined; }): OpenClawConfig;","entrypoint":"core","exportName":"applyAccountNameToChannelSection","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":33,"sourcePath":"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;","entrypoint":"core","exportName":"buildAgentSessionKey","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":91,"sourcePath":"src/routing/resolve-route.ts"} +{"declaration":"export function buildChannelConfigSchema(schema: ZodType>): ChannelConfigSchema;","entrypoint":"core","exportName":"buildChannelConfigSchema","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":35,"sourcePath":"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;","entrypoint":"core","exportName":"buildChannelOutboundSessionRoute","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":155,"sourcePath":"src/plugin-sdk/core.ts"} +{"declaration":"export function channelTargetSchema(options?: { description?: string | undefined; } | undefined): TString;","entrypoint":"core","exportName":"channelTargetSchema","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":33,"sourcePath":"src/agents/schema/typebox.ts"} +{"declaration":"export function channelTargetsSchema(options?: { description?: string | undefined; } | undefined): TArray;","entrypoint":"core","exportName":"channelTargetsSchema","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":39,"sourcePath":"src/agents/schema/typebox.ts"} +{"declaration":"export function clearAccountEntryFields(params: { accounts?: Record | undefined; accountId: string; fields: string[]; isValueSet?: ((value: unknown) => boolean) | undefined; markClearedOnFieldPresence?: boolean | undefined; }): { ...; };","entrypoint":"core","exportName":"clearAccountEntryFields","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":122,"sourcePath":"src/channels/plugins/config-helpers.ts"} +{"declaration":"export function createChannelPluginBase(params: CreateChannelPluginBaseOptions): CreatedChannelPluginBase;","entrypoint":"core","exportName":"createChannelPluginBase","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":417,"sourcePath":"src/plugin-sdk/core.ts"} +{"declaration":"export function createChatChannelPlugin(params: { base: ChatChannelPluginBase; security?: ChannelSecurityAdapter | ChatChannelSecurityOptions<...> | undefined; pairing?: ChannelPairingAdapter | ... 1 more ... | undefined; threading?: ChannelThreadingAdapter | ... 1 more ... | undefined; outbound?: ChannelOutboundAdapter | ... 1 more ... | undefined; }): ChannelPlugin<...>;","entrypoint":"core","exportName":"createChatChannelPlugin","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":394,"sourcePath":"src/plugin-sdk/core.ts"} +{"declaration":"export function defineChannelPluginEntry({ id, name, description, plugin, configSchema, setRuntime, registerFull, }: DefineChannelPluginEntryOptions): DefinedPluginEntry;","entrypoint":"core","exportName":"defineChannelPluginEntry","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":231,"sourcePath":"src/plugin-sdk/core.ts"} +{"declaration":"export function definePluginEntry({ id, name, description, kind, configSchema, register, }: DefinePluginEntryOptions): DefinedPluginEntry;","entrypoint":"core","exportName":"definePluginEntry","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":79,"sourcePath":"src/plugin-sdk/plugin-entry.ts"} +{"declaration":"export function defineSetupPluginEntry(plugin: TPlugin): { plugin: TPlugin; };","entrypoint":"core","exportName":"defineSetupPluginEntry","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":257,"sourcePath":"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<...>;","entrypoint":"core","exportName":"delegateCompactionToRuntime","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":16,"sourcePath":"src/context-engine/delegate.ts"} +{"declaration":"export function deleteAccountFromConfigSection(params: { cfg: OpenClawConfig; sectionKey: string; accountId: string; clearBaseFields?: string[] | undefined; }): OpenClawConfig;","entrypoint":"core","exportName":"deleteAccountFromConfigSection","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":60,"sourcePath":"src/channels/plugins/config-helpers.ts"} +{"declaration":"export function emptyPluginConfigSchema(): OpenClawPluginConfigSchema;","entrypoint":"core","exportName":"emptyPluginConfigSchema","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":13,"sourcePath":"src/plugins/config-schema.ts"} +{"declaration":"export function formatPairingApproveHint(channelId: string): string;","entrypoint":"core","exportName":"formatPairingApproveHint","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":17,"sourcePath":"src/channels/plugins/helpers.ts"} +{"declaration":"export function getChatChannelMeta(id: \"telegram\" | \"whatsapp\" | \"discord\" | \"irc\" | \"googlechat\" | \"slack\" | \"signal\" | \"imessage\" | \"line\"): ChannelMeta;","entrypoint":"core","exportName":"getChatChannelMeta","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":142,"sourcePath":"src/channels/registry.ts"} +{"declaration":"export function isSecretRef(value: unknown): value is SecretRef;","entrypoint":"core","exportName":"isSecretRef","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":34,"sourcePath":"src/config/types.secrets.ts"} +{"declaration":"export function loadSecretFileSync(filePath: string, label: string, options?: SecretFileReadOptions): SecretFileReadResult;","entrypoint":"core","exportName":"loadSecretFileSync","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":29,"sourcePath":"src/infra/secret-file.ts"} +{"declaration":"export function migrateBaseNameToDefaultAccount(params: { cfg: OpenClawConfig; channelKey: string; alwaysUseAccounts?: boolean | undefined; }): OpenClawConfig;","entrypoint":"core","exportName":"migrateBaseNameToDefaultAccount","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":92,"sourcePath":"src/channels/plugins/setup-helpers.ts"} +{"declaration":"export function normalizeAccountId(value: string | null | undefined): string;","entrypoint":"core","exportName":"normalizeAccountId","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":34,"sourcePath":"src/routing/account-id.ts"} +{"declaration":"export function normalizeAtHashSlug(raw?: string | null | undefined): string;","entrypoint":"core","exportName":"normalizeAtHashSlug","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":19,"sourcePath":"src/shared/string-normalization.ts"} +{"declaration":"export function normalizeHyphenSlug(raw?: string | null | undefined): string;","entrypoint":"core","exportName":"normalizeHyphenSlug","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":9,"sourcePath":"src/shared/string-normalization.ts"} +{"declaration":"export function optionalStringEnum(values: T, options?: StringEnumOptions): TOptional>;","entrypoint":"core","exportName":"optionalStringEnum","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":26,"sourcePath":"src/agents/schema/typebox.ts"} +{"declaration":"export function parseOptionalDelimitedEntries(value?: string | undefined): string[] | undefined;","entrypoint":"core","exportName":"parseOptionalDelimitedEntries","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":23,"sourcePath":"src/channels/plugins/helpers.ts"} +{"declaration":"export function readSecretFileSync(filePath: string, label: string, options?: SecretFileReadOptions): string;","entrypoint":"core","exportName":"readSecretFileSync","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":118,"sourcePath":"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;","entrypoint":"core","exportName":"resolveGatewayBindUrl","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":11,"sourcePath":"src/shared/gateway-bind-url.ts"} +{"declaration":"export function resolveTailnetHostWithRunner(runCommandWithTimeout?: TailscaleStatusCommandRunner | undefined): Promise;","entrypoint":"core","exportName":"resolveTailnetHostWithRunner","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":43,"sourcePath":"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; }): { ...; };","entrypoint":"core","exportName":"resolveThreadSessionKeys","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":234,"sourcePath":"src/routing/session-key.ts"} +{"declaration":"export function setAccountEnabledInConfigSection(params: { cfg: OpenClawConfig; sectionKey: string; accountId: string; enabled: boolean; allowTopLevel?: boolean | undefined; }): OpenClawConfig;","entrypoint":"core","exportName":"setAccountEnabledInConfigSection","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":16,"sourcePath":"src/channels/plugins/config-helpers.ts"} +{"declaration":"export function stringEnum(values: T, options?: StringEnumOptions): TUnsafe;","entrypoint":"core","exportName":"stringEnum","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":15,"sourcePath":"src/agents/schema/typebox.ts"} +{"declaration":"export function stripChannelTargetPrefix(raw: string, ...providers: string[]): string;","entrypoint":"core","exportName":"stripChannelTargetPrefix","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":140,"sourcePath":"src/plugin-sdk/core.ts"} +{"declaration":"export function stripTargetKindPrefix(raw: string): string;","entrypoint":"core","exportName":"stripTargetKindPrefix","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":151,"sourcePath":"src/plugin-sdk/core.ts"} +{"declaration":"export function tryReadSecretFileSync(filePath: string | undefined, label: string, options?: SecretFileReadOptions): string | undefined;","entrypoint":"core","exportName":"tryReadSecretFileSync","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export","sourceLine":130,"sourcePath":"src/infra/secret-file.ts"} +{"declaration":"export const DEFAULT_ACCOUNT_ID: \"default\";","entrypoint":"core","exportName":"DEFAULT_ACCOUNT_ID","importSpecifier":"openclaw/plugin-sdk/core","kind":"const","recordType":"export","sourceLine":3,"sourcePath":"src/routing/account-id.ts"} +{"declaration":"export const DEFAULT_SECRET_FILE_MAX_BYTES: number;","entrypoint":"core","exportName":"DEFAULT_SECRET_FILE_MAX_BYTES","importSpecifier":"openclaw/plugin-sdk/core","kind":"const","recordType":"export","sourceLine":5,"sourcePath":"src/infra/secret-file.ts"} +{"declaration":"export type AnyAgentTool = AnyAgentTool;","entrypoint":"core","exportName":"AnyAgentTool","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":9,"sourcePath":"src/agents/tools/common.ts"} +{"declaration":"export type ChannelMessageActionContext = ChannelMessageActionContext;","entrypoint":"core","exportName":"ChannelMessageActionContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":473,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelMessagingAdapter = ChannelMessagingAdapter;","entrypoint":"core","exportName":"ChannelMessagingAdapter","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":387,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelOutboundSessionRoute = ChannelOutboundSessionRoute;","entrypoint":"core","exportName":"ChannelOutboundSessionRoute","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":302,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelOutboundSessionRouteParams = { cfg: OpenClawConfig; agentId: string; accountId?: string | null; target: string; resolvedTarget?: { to: string; kind: import(\"/Users/vincentkoc/GIT/_Perso/openclaw/.worktrees/pr-51877/src/channels/plugins/types.core\").ChannelDirectoryEntryKind | \"channel\"; display?: string; source: \"normalized\" | \"directory\"; }; replyToId?: string | null; threadId?: string | number | null;};","entrypoint":"core","exportName":"ChannelOutboundSessionRouteParams","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":136,"sourcePath":"src/plugin-sdk/core.ts"} +{"declaration":"export type ChannelPlugin = ChannelPlugin;","entrypoint":"core","exportName":"ChannelPlugin","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":53,"sourcePath":"src/channels/plugins/types.plugin.ts"} +{"declaration":"export type GatewayBindUrlResult = GatewayBindUrlResult;","entrypoint":"core","exportName":"GatewayBindUrlResult","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":1,"sourcePath":"src/shared/gateway-bind-url.ts"} +{"declaration":"export type GatewayRequestHandlerOptions = GatewayRequestHandlerOptions;","entrypoint":"core","exportName":"GatewayRequestHandlerOptions","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":111,"sourcePath":"src/gateway/server-methods/types.ts"} +{"declaration":"export type MediaUnderstandingProviderPlugin = MediaUnderstandingProvider;","entrypoint":"core","exportName":"MediaUnderstandingProviderPlugin","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":935,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawConfig = OpenClawConfig;","entrypoint":"core","exportName":"OpenClawConfig","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":32,"sourcePath":"src/config/types.openclaw.ts"} +{"declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"core","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":1292,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginCommandDefinition = OpenClawPluginCommandDefinition;","entrypoint":"core","exportName":"OpenClawPluginCommandDefinition","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":1050,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;","entrypoint":"core","exportName":"OpenClawPluginConfigSchema","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":80,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginDefinition = OpenClawPluginDefinition;","entrypoint":"core","exportName":"OpenClawPluginDefinition","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":1275,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginService = OpenClawPluginService;","entrypoint":"core","exportName":"OpenClawPluginService","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":1265,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginServiceContext = OpenClawPluginServiceContext;","entrypoint":"core","exportName":"OpenClawPluginServiceContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":1258,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginToolContext = OpenClawPluginToolContext;","entrypoint":"core","exportName":"OpenClawPluginToolContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":94,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginToolFactory = OpenClawPluginToolFactory;","entrypoint":"core","exportName":"OpenClawPluginToolFactory","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":111,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type PluginCommandContext = PluginCommandContext;","entrypoint":"core","exportName":"PluginCommandContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":950,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type PluginInteractiveTelegramHandlerContext = PluginInteractiveTelegramHandlerContext;","entrypoint":"core","exportName":"PluginInteractiveTelegramHandlerContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":1079,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type PluginLogger = PluginLogger;","entrypoint":"core","exportName":"PluginLogger","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":58,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"core","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":53,"sourcePath":"src/plugins/runtime/types.ts"} +{"declaration":"export type ProviderAugmentModelCatalogContext = ProviderAugmentModelCatalogContext;","entrypoint":"core","exportName":"ProviderAugmentModelCatalogContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":560,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderAuthContext = ProviderAuthContext;","entrypoint":"core","exportName":"ProviderAuthContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":144,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderAuthDoctorHintContext = ProviderAuthDoctorHintContext;","entrypoint":"core","exportName":"ProviderAuthDoctorHintContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":435,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderAuthMethod = ProviderAuthMethod;","entrypoint":"core","exportName":"ProviderAuthMethod","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":222,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderAuthMethodNonInteractiveContext = ProviderAuthMethodNonInteractiveContext;","entrypoint":"core","exportName":"ProviderAuthMethodNonInteractiveContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":206,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderAuthResult = ProviderAuthResult;","entrypoint":"core","exportName":"ProviderAuthResult","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":130,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderBuildMissingAuthMessageContext = ProviderBuildMissingAuthMessageContext;","entrypoint":"core","exportName":"ProviderBuildMissingAuthMessageContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":488,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderBuiltInModelSuppressionContext = ProviderBuiltInModelSuppressionContext;","entrypoint":"core","exportName":"ProviderBuiltInModelSuppressionContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":504,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderBuiltInModelSuppressionResult = ProviderBuiltInModelSuppressionResult;","entrypoint":"core","exportName":"ProviderBuiltInModelSuppressionResult","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":513,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderCacheTtlEligibilityContext = ProviderCacheTtlEligibilityContext;","entrypoint":"core","exportName":"ProviderCacheTtlEligibilityContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":476,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderCatalogContext = ProviderCatalogContext;","entrypoint":"core","exportName":"ProviderCatalogContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":243,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderCatalogResult = ProviderCatalogResult;","entrypoint":"core","exportName":"ProviderCatalogResult","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":266,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderDefaultThinkingPolicyContext = ProviderDefaultThinkingPolicyContext;","entrypoint":"core","exportName":"ProviderDefaultThinkingPolicyContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":537,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderDiscoveryContext = ProviderCatalogContext;","entrypoint":"core","exportName":"ProviderDiscoveryContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":576,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderFetchUsageSnapshotContext = ProviderFetchUsageSnapshotContext;","entrypoint":"core","exportName":"ProviderFetchUsageSnapshotContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":416,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderModernModelPolicyContext = ProviderModernModelPolicyContext;","entrypoint":"core","exportName":"ProviderModernModelPolicyContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":547,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderNormalizeResolvedModelContext = ProviderNormalizeResolvedModelContext;","entrypoint":"core","exportName":"ProviderNormalizeResolvedModelContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":327,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderPreparedRuntimeAuth = ProviderPreparedRuntimeAuth;","entrypoint":"core","exportName":"ProviderPreparedRuntimeAuth","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":363,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderPrepareDynamicModelContext = ProviderResolveDynamicModelContext;","entrypoint":"core","exportName":"ProviderPrepareDynamicModelContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":318,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderPrepareExtraParamsContext = ProviderPrepareExtraParamsContext;","entrypoint":"core","exportName":"ProviderPrepareExtraParamsContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":449,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderPrepareRuntimeAuthContext = ProviderPrepareRuntimeAuthContext;","entrypoint":"core","exportName":"ProviderPrepareRuntimeAuthContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":342,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderResolvedUsageAuth = ProviderResolvedUsageAuth;","entrypoint":"core","exportName":"ProviderResolvedUsageAuth","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":403,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderResolveDynamicModelContext = ProviderResolveDynamicModelContext;","entrypoint":"core","exportName":"ProviderResolveDynamicModelContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":301,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderResolveUsageAuthContext = ProviderResolveUsageAuthContext;","entrypoint":"core","exportName":"ProviderResolveUsageAuthContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":384,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderRuntimeModel = ProviderRuntimeModel;","entrypoint":"core","exportName":"ProviderRuntimeModel","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":284,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderThinkingPolicyContext = ProviderThinkingPolicyContext;","entrypoint":"core","exportName":"ProviderThinkingPolicyContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":525,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderUsageSnapshot = ProviderUsageSnapshot;","entrypoint":"core","exportName":"ProviderUsageSnapshot","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":7,"sourcePath":"src/infra/provider-usage.types.ts"} +{"declaration":"export type ProviderWrapStreamFnContext = ProviderWrapStreamFnContext;","entrypoint":"core","exportName":"ProviderWrapStreamFnContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":466,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type RoutePeer = RoutePeer;","entrypoint":"core","exportName":"RoutePeer","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":21,"sourcePath":"src/routing/resolve-route.ts"} +{"declaration":"export type RoutePeerKind = ChatType;","entrypoint":"core","exportName":"RoutePeerKind","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":19,"sourcePath":"src/routing/resolve-route.ts"} +{"declaration":"export type SecretFileReadOptions = SecretFileReadOptions;","entrypoint":"core","exportName":"SecretFileReadOptions","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":7,"sourcePath":"src/infra/secret-file.ts"} +{"declaration":"export type SecretFileReadResult = SecretFileReadResult;","entrypoint":"core","exportName":"SecretFileReadResult","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":12,"sourcePath":"src/infra/secret-file.ts"} +{"declaration":"export type SpeechProviderPlugin = SpeechProviderPlugin;","entrypoint":"core","exportName":"SpeechProviderPlugin","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":917,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type TailscaleStatusCommandResult = TailscaleStatusCommandResult;","entrypoint":"core","exportName":"TailscaleStatusCommandResult","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":1,"sourcePath":"src/shared/tailscale-status.ts"} +{"declaration":"export type TailscaleStatusCommandRunner = TailscaleStatusCommandRunner;","entrypoint":"core","exportName":"TailscaleStatusCommandRunner","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":6,"sourcePath":"src/shared/tailscale-status.ts"} +{"declaration":"export type UsageProviderId = UsageProviderId;","entrypoint":"core","exportName":"UsageProviderId","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":20,"sourcePath":"src/infra/provider-usage.types.ts"} +{"declaration":"export type UsageWindow = UsageWindow;","entrypoint":"core","exportName":"UsageWindow","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export","sourceLine":1,"sourcePath":"src/infra/provider-usage.types.ts"} +{"category":"core","entrypoint":"plugin-entry","importSpecifier":"openclaw/plugin-sdk/plugin-entry","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/plugin-entry.ts"} +{"declaration":"export function definePluginEntry({ id, name, description, kind, configSchema, register, }: DefinePluginEntryOptions): DefinedPluginEntry;","entrypoint":"plugin-entry","exportName":"definePluginEntry","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"function","recordType":"export","sourceLine":79,"sourcePath":"src/plugin-sdk/plugin-entry.ts"} +{"declaration":"export function emptyPluginConfigSchema(): OpenClawPluginConfigSchema;","entrypoint":"plugin-entry","exportName":"emptyPluginConfigSchema","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"function","recordType":"export","sourceLine":13,"sourcePath":"src/plugins/config-schema.ts"} +{"declaration":"export type AnyAgentTool = AnyAgentTool;","entrypoint":"plugin-entry","exportName":"AnyAgentTool","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":9,"sourcePath":"src/agents/tools/common.ts"} +{"declaration":"export type MediaUnderstandingProviderPlugin = MediaUnderstandingProvider;","entrypoint":"plugin-entry","exportName":"MediaUnderstandingProviderPlugin","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":935,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawConfig = OpenClawConfig;","entrypoint":"plugin-entry","exportName":"OpenClawConfig","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":32,"sourcePath":"src/config/types.openclaw.ts"} +{"declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"plugin-entry","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":1292,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginCommandDefinition = OpenClawPluginCommandDefinition;","entrypoint":"plugin-entry","exportName":"OpenClawPluginCommandDefinition","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":1050,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;","entrypoint":"plugin-entry","exportName":"OpenClawPluginConfigSchema","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":80,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginDefinition = OpenClawPluginDefinition;","entrypoint":"plugin-entry","exportName":"OpenClawPluginDefinition","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":1275,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginService = OpenClawPluginService;","entrypoint":"plugin-entry","exportName":"OpenClawPluginService","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":1265,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type OpenClawPluginServiceContext = OpenClawPluginServiceContext;","entrypoint":"plugin-entry","exportName":"OpenClawPluginServiceContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":1258,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type PluginCommandContext = PluginCommandContext;","entrypoint":"plugin-entry","exportName":"PluginCommandContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":950,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type PluginInteractiveTelegramHandlerContext = PluginInteractiveTelegramHandlerContext;","entrypoint":"plugin-entry","exportName":"PluginInteractiveTelegramHandlerContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":1079,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type PluginLogger = PluginLogger;","entrypoint":"plugin-entry","exportName":"PluginLogger","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":58,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderAugmentModelCatalogContext = ProviderAugmentModelCatalogContext;","entrypoint":"plugin-entry","exportName":"ProviderAugmentModelCatalogContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":560,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderAuthContext = ProviderAuthContext;","entrypoint":"plugin-entry","exportName":"ProviderAuthContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":144,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderAuthDoctorHintContext = ProviderAuthDoctorHintContext;","entrypoint":"plugin-entry","exportName":"ProviderAuthDoctorHintContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":435,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderAuthMethod = ProviderAuthMethod;","entrypoint":"plugin-entry","exportName":"ProviderAuthMethod","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":222,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderAuthMethodNonInteractiveContext = ProviderAuthMethodNonInteractiveContext;","entrypoint":"plugin-entry","exportName":"ProviderAuthMethodNonInteractiveContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":206,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderAuthResult = ProviderAuthResult;","entrypoint":"plugin-entry","exportName":"ProviderAuthResult","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":130,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderBuildMissingAuthMessageContext = ProviderBuildMissingAuthMessageContext;","entrypoint":"plugin-entry","exportName":"ProviderBuildMissingAuthMessageContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":488,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderBuiltInModelSuppressionContext = ProviderBuiltInModelSuppressionContext;","entrypoint":"plugin-entry","exportName":"ProviderBuiltInModelSuppressionContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":504,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderBuiltInModelSuppressionResult = ProviderBuiltInModelSuppressionResult;","entrypoint":"plugin-entry","exportName":"ProviderBuiltInModelSuppressionResult","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":513,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderCacheTtlEligibilityContext = ProviderCacheTtlEligibilityContext;","entrypoint":"plugin-entry","exportName":"ProviderCacheTtlEligibilityContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":476,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderCatalogContext = ProviderCatalogContext;","entrypoint":"plugin-entry","exportName":"ProviderCatalogContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":243,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderCatalogResult = ProviderCatalogResult;","entrypoint":"plugin-entry","exportName":"ProviderCatalogResult","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":266,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderDefaultThinkingPolicyContext = ProviderDefaultThinkingPolicyContext;","entrypoint":"plugin-entry","exportName":"ProviderDefaultThinkingPolicyContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":537,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderDiscoveryContext = ProviderCatalogContext;","entrypoint":"plugin-entry","exportName":"ProviderDiscoveryContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":576,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderFetchUsageSnapshotContext = ProviderFetchUsageSnapshotContext;","entrypoint":"plugin-entry","exportName":"ProviderFetchUsageSnapshotContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":416,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderModernModelPolicyContext = ProviderModernModelPolicyContext;","entrypoint":"plugin-entry","exportName":"ProviderModernModelPolicyContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":547,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderNormalizeResolvedModelContext = ProviderNormalizeResolvedModelContext;","entrypoint":"plugin-entry","exportName":"ProviderNormalizeResolvedModelContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":327,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderPreparedRuntimeAuth = ProviderPreparedRuntimeAuth;","entrypoint":"plugin-entry","exportName":"ProviderPreparedRuntimeAuth","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":363,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderPrepareDynamicModelContext = ProviderResolveDynamicModelContext;","entrypoint":"plugin-entry","exportName":"ProviderPrepareDynamicModelContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":318,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderPrepareExtraParamsContext = ProviderPrepareExtraParamsContext;","entrypoint":"plugin-entry","exportName":"ProviderPrepareExtraParamsContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":449,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderPrepareRuntimeAuthContext = ProviderPrepareRuntimeAuthContext;","entrypoint":"plugin-entry","exportName":"ProviderPrepareRuntimeAuthContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":342,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderResolvedUsageAuth = ProviderResolvedUsageAuth;","entrypoint":"plugin-entry","exportName":"ProviderResolvedUsageAuth","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":403,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderResolveDynamicModelContext = ProviderResolveDynamicModelContext;","entrypoint":"plugin-entry","exportName":"ProviderResolveDynamicModelContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":301,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderResolveUsageAuthContext = ProviderResolveUsageAuthContext;","entrypoint":"plugin-entry","exportName":"ProviderResolveUsageAuthContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":384,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderRuntimeModel = ProviderRuntimeModel;","entrypoint":"plugin-entry","exportName":"ProviderRuntimeModel","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":284,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderThinkingPolicyContext = ProviderThinkingPolicyContext;","entrypoint":"plugin-entry","exportName":"ProviderThinkingPolicyContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":525,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type ProviderWrapStreamFnContext = ProviderWrapStreamFnContext;","entrypoint":"plugin-entry","exportName":"ProviderWrapStreamFnContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":466,"sourcePath":"src/plugins/types.ts"} +{"declaration":"export type SpeechProviderPlugin = SpeechProviderPlugin;","entrypoint":"plugin-entry","exportName":"SpeechProviderPlugin","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export","sourceLine":917,"sourcePath":"src/plugins/types.ts"} +{"category":"provider","entrypoint":"provider-onboard","importSpecifier":"openclaw/plugin-sdk/provider-onboard","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/provider-onboard.ts"} +{"declaration":"export function applyAgentDefaultModelPrimary(cfg: OpenClawConfig, primary: string): OpenClawConfig;","entrypoint":"provider-onboard","exportName":"applyAgentDefaultModelPrimary","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"function","recordType":"export","sourceLine":76,"sourcePath":"src/plugins/provider-onboarding-config.ts"} +{"declaration":"export function applyOnboardAuthAgentModelsAndProviders(cfg: OpenClawConfig, params: { agentModels: Record; providers: Record; }): OpenClawConfig;","entrypoint":"provider-onboard","exportName":"applyOnboardAuthAgentModelsAndProviders","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"function","recordType":"export","sourceLine":53,"sourcePath":"src/plugins/provider-onboarding-config.ts"} +{"declaration":"export function applyProviderConfigWithDefaultModel(cfg: OpenClawConfig, params: { agentModels: Record; providerId: string; api: \"github-copilot\" | \"openai-completions\" | ... 5 more ... | \"ollama\"; baseUrl: string; defaultModel: ModelDefinitionConfig; defaultModelId?: string | undefined; }): OpenClawConfig;","entrypoint":"provider-onboard","exportName":"applyProviderConfigWithDefaultModel","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"function","recordType":"export","sourceLine":131,"sourcePath":"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;","entrypoint":"provider-onboard","exportName":"applyProviderConfigWithDefaultModelPreset","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"function","recordType":"export","sourceLine":152,"sourcePath":"src/plugins/provider-onboarding-config.ts"} +{"declaration":"export function applyProviderConfigWithDefaultModels(cfg: OpenClawConfig, params: { agentModels: Record; providerId: string; api: \"github-copilot\" | \"openai-completions\" | ... 5 more ... | \"ollama\"; baseUrl: string; defaultModels: ModelDefinitionConfig[]; defaultModelId?: string | undefined; }): OpenClawConfig;","entrypoint":"provider-onboard","exportName":"applyProviderConfigWithDefaultModels","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"function","recordType":"export","sourceLine":96,"sourcePath":"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;","entrypoint":"provider-onboard","exportName":"applyProviderConfigWithDefaultModelsPreset","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"function","recordType":"export","sourceLine":177,"sourcePath":"src/plugins/provider-onboarding-config.ts"} +{"declaration":"export function applyProviderConfigWithModelCatalog(cfg: OpenClawConfig, params: { agentModels: Record; providerId: string; api: \"github-copilot\" | \"openai-completions\" | ... 5 more ... | \"ollama\"; baseUrl: string; catalogModels: ModelDefinitionConfig[]; }): OpenClawConfig;","entrypoint":"provider-onboard","exportName":"applyProviderConfigWithModelCatalog","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"function","recordType":"export","sourceLine":202,"sourcePath":"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;","entrypoint":"provider-onboard","exportName":"applyProviderConfigWithModelCatalogPreset","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"function","recordType":"export","sourceLine":234,"sourcePath":"src/plugins/provider-onboarding-config.ts"} +{"declaration":"export function ensureModelAllowlistEntry(params: { cfg: OpenClawConfig; modelRef: string; defaultProvider?: string | undefined; }): OpenClawConfig;","entrypoint":"provider-onboard","exportName":"ensureModelAllowlistEntry","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"function","recordType":"export","sourceLine":5,"sourcePath":"src/plugins/provider-model-allowlist.ts"} +{"declaration":"export function withAgentModelAliases(existing: Record | undefined, aliases: readonly AgentModelAliasEntry[]): Record;","entrypoint":"provider-onboard","exportName":"withAgentModelAliases","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"function","recordType":"export","sourceLine":38,"sourcePath":"src/plugins/provider-onboarding-config.ts"} +{"declaration":"export type AgentModelAliasEntry = AgentModelAliasEntry;","entrypoint":"provider-onboard","exportName":"AgentModelAliasEntry","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"type","recordType":"export","sourceLine":21,"sourcePath":"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\";","entrypoint":"provider-onboard","exportName":"ModelApi","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"type","recordType":"export","sourceLine":15,"sourcePath":"src/config/types.models.ts"} +{"declaration":"export type ModelDefinitionConfig = ModelDefinitionConfig;","entrypoint":"provider-onboard","exportName":"ModelDefinitionConfig","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"type","recordType":"export","sourceLine":46,"sourcePath":"src/config/types.models.ts"} +{"declaration":"export type ModelProviderConfig = ModelProviderConfig;","entrypoint":"provider-onboard","exportName":"ModelProviderConfig","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"type","recordType":"export","sourceLine":64,"sourcePath":"src/config/types.models.ts"} +{"declaration":"export type OpenClawConfig = OpenClawConfig;","entrypoint":"provider-onboard","exportName":"OpenClawConfig","importSpecifier":"openclaw/plugin-sdk/provider-onboard","kind":"type","recordType":"export","sourceLine":32,"sourcePath":"src/config/types.openclaw.ts"} +{"category":"utilities","entrypoint":"reply-payload","importSpecifier":"openclaw/plugin-sdk/reply-payload","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function buildMediaPayload(mediaList: MediaPayloadInput[], opts?: { preserveMediaTypeCardinality?: boolean | undefined; } | undefined): MediaPayload;","entrypoint":"reply-payload","exportName":"buildMediaPayload","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":15,"sourcePath":"src/channels/plugins/media-payload.ts"} +{"declaration":"export function countOutboundMedia(payload: { mediaUrls?: string[] | undefined; mediaUrl?: string | undefined; }): number;","entrypoint":"reply-payload","exportName":"countOutboundMedia","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":83,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function createNormalizedOutboundDeliverer(handler: (payload: OutboundReplyPayload) => Promise): (payload: unknown) => Promise;","entrypoint":"reply-payload","exportName":"createNormalizedOutboundDeliverer","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":51,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function deliverFormattedTextWithAttachments(params: { payload: OutboundReplyPayload; send: (params: { text: string; replyToId?: string | undefined; }) => Promise; }): Promise;","entrypoint":"reply-payload","exportName":"deliverFormattedTextWithAttachments","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":386,"sourcePath":"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; sendMedia: (payload: { ...; }) => Promise<...>; onMediaError?: ((params: { ...; }) => void | Promise<...>) | undefined; }): Promise<...>;","entrypoint":"reply-payload","exportName":"deliverTextOrMediaReply","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":345,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function formatTextWithAttachmentLinks(text: string | undefined, mediaUrls: string[]): string;","entrypoint":"reply-payload","exportName":"formatTextWithAttachmentLinks","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":286,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function hasOutboundMedia(payload: { mediaUrls?: string[] | undefined; mediaUrl?: string | undefined; }): boolean;","entrypoint":"reply-payload","exportName":"hasOutboundMedia","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":88,"sourcePath":"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;","entrypoint":"reply-payload","exportName":"hasOutboundReplyContent","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":99,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function hasOutboundText(payload: { text?: string | undefined; }, options?: { trim?: boolean | undefined; } | undefined): boolean;","entrypoint":"reply-payload","exportName":"hasOutboundText","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":93,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function isNumericTargetId(raw: string): boolean;","entrypoint":"reply-payload","exportName":"isNumericTargetId","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":277,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function normalizeOutboundReplyPayload(payload: Record): OutboundReplyPayload;","entrypoint":"reply-payload","exportName":"normalizeOutboundReplyPayload","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":31,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function resolveOutboundMediaUrls(payload: { mediaUrls?: string[] | undefined; mediaUrl?: string | undefined; }): string[];","entrypoint":"reply-payload","exportName":"resolveOutboundMediaUrls","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":64,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function resolvePayloadMediaUrls(payload: ReplyPayload): string[];","entrypoint":"reply-payload","exportName":"resolvePayloadMediaUrls","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":78,"sourcePath":"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;","entrypoint":"reply-payload","exportName":"resolveSendableOutboundReplyParts","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":107,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function resolveTextChunksWithFallback(text: string, chunks: readonly string[]): string[];","entrypoint":"reply-payload","exportName":"resolveTextChunksWithFallback","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":131,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function sendMediaWithLeadingCaption(params: { mediaUrls: string[]; caption: string; send: (payload: { mediaUrl: string; caption?: string | undefined; }) => Promise; onError?: ((params: { error: unknown; mediaUrl: string; caption?: string | undefined; index: number; isFirst: boolean; }) => void | Promise<...>) | undefined; }): Promise<...>;","entrypoint":"reply-payload","exportName":"sendMediaWithLeadingCaption","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":307,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function sendPayloadMediaSequence(params: { text: string; mediaUrls: readonly string[]; send: (input: { text: string; mediaUrl: string; index: number; isFirst: boolean; }) => Promise; }): Promise;","entrypoint":"reply-payload","exportName":"sendPayloadMediaSequence","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":183,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function sendPayloadMediaSequenceAndFinalize(params: { text: string; mediaUrls: readonly string[]; send: (input: { text: string; mediaUrl: string; index: number; isFirst: boolean; }) => Promise; finalize: () => Promise; }): Promise<...>;","entrypoint":"reply-payload","exportName":"sendPayloadMediaSequenceAndFinalize","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":227,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function sendPayloadMediaSequenceOrFallback(params: { text: string; mediaUrls: readonly string[]; send: (input: { text: string; mediaUrl: string; index: number; isFirst: boolean; }) => Promise; fallbackResult: TResult; sendNoMedia?: (() => Promise<...>) | undefined; }): Promise<...>;","entrypoint":"reply-payload","exportName":"sendPayloadMediaSequenceOrFallback","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":209,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function sendPayloadWithChunkedTextAndMedia(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<...>;","entrypoint":"reply-payload","exportName":"sendPayloadWithChunkedTextAndMedia","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":142,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export function sendTextMediaPayload(params: { channel: string; ctx: ChannelOutboundPayloadContext; adapter: SendPayloadAdapter; }): Promise;","entrypoint":"reply-payload","exportName":"sendTextMediaPayload","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"function","recordType":"export","sourceLine":244,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export type MediaPayload = MediaPayload;","entrypoint":"reply-payload","exportName":"MediaPayload","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"type","recordType":"export","sourceLine":6,"sourcePath":"src/channels/plugins/media-payload.ts"} +{"declaration":"export type MediaPayloadInput = MediaPayloadInput;","entrypoint":"reply-payload","exportName":"MediaPayloadInput","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"type","recordType":"export","sourceLine":1,"sourcePath":"src/channels/plugins/media-payload.ts"} +{"declaration":"export type OutboundReplyPayload = OutboundReplyPayload;","entrypoint":"reply-payload","exportName":"OutboundReplyPayload","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"type","recordType":"export","sourceLine":6,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"declaration":"export type SendableOutboundReplyParts = SendableOutboundReplyParts;","entrypoint":"reply-payload","exportName":"SendableOutboundReplyParts","importSpecifier":"openclaw/plugin-sdk/reply-payload","kind":"type","recordType":"export","sourceLine":13,"sourcePath":"src/plugin-sdk/reply-payload.ts"} +{"category":"runtime","entrypoint":"runtime-store","importSpecifier":"openclaw/plugin-sdk/runtime-store","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/runtime-store.ts"} +{"declaration":"export function createPluginRuntimeStore(errorMessage: string): { setRuntime: (next: T) => void; clearRuntime: () => void; tryGetRuntime: () => T | null; getRuntime: () => T; };","entrypoint":"runtime-store","exportName":"createPluginRuntimeStore","importSpecifier":"openclaw/plugin-sdk/runtime-store","kind":"function","recordType":"export","sourceLine":4,"sourcePath":"src/plugin-sdk/runtime-store.ts"} +{"declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"runtime-store","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/runtime-store","kind":"type","recordType":"export","sourceLine":53,"sourcePath":"src/plugins/runtime/types.ts"} +{"category":"channel","entrypoint":"secret-input","importSpecifier":"openclaw/plugin-sdk/secret-input","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/secret-input.ts"} +{"declaration":"export function buildOptionalSecretInputSchema(): ZodOptional; provider: ZodString; id: ZodString; }, $strip>, ZodObject<...>, ZodObject<...>], \"source\">]>>;","entrypoint":"secret-input","exportName":"buildOptionalSecretInputSchema","importSpecifier":"openclaw/plugin-sdk/secret-input","kind":"function","recordType":"export","sourceLine":17,"sourcePath":"src/plugin-sdk/secret-input.ts"} +{"declaration":"export function buildSecretInputArraySchema(): ZodArray; provider: ZodString; id: ZodString; }, $strip>, ZodObject<...>, ZodObject<...>], \"source\">]>>;","entrypoint":"secret-input","exportName":"buildSecretInputArraySchema","importSpecifier":"openclaw/plugin-sdk/secret-input","kind":"function","recordType":"export","sourceLine":21,"sourcePath":"src/plugin-sdk/secret-input.ts"} +{"declaration":"export function buildSecretInputSchema(): ZodUnion; provider: ZodString; id: ZodString; }, $strip>, ZodObject<...>, ZodObject<...>], \"source\">]>;","entrypoint":"secret-input","exportName":"buildSecretInputSchema","importSpecifier":"openclaw/plugin-sdk/secret-input","kind":"function","recordType":"export","sourceLine":11,"sourcePath":"src/plugin-sdk/secret-input-schema.ts"} +{"declaration":"export function hasConfiguredSecretInput(value: unknown, defaults?: SecretDefaults | undefined): boolean;","entrypoint":"secret-input","exportName":"hasConfiguredSecretInput","importSpecifier":"openclaw/plugin-sdk/secret-input","kind":"function","recordType":"export","sourceLine":106,"sourcePath":"src/config/types.secrets.ts"} +{"declaration":"export function normalizeResolvedSecretInputString(params: { value: unknown; refValue?: unknown; defaults?: SecretDefaults | undefined; path: string; }): string | undefined;","entrypoint":"secret-input","exportName":"normalizeResolvedSecretInputString","importSpecifier":"openclaw/plugin-sdk/secret-input","kind":"function","recordType":"export","sourceLine":144,"sourcePath":"src/config/types.secrets.ts"} +{"declaration":"export function normalizeSecretInputString(value: unknown): string | undefined;","entrypoint":"secret-input","exportName":"normalizeSecretInputString","importSpecifier":"openclaw/plugin-sdk/secret-input","kind":"function","recordType":"export","sourceLine":113,"sourcePath":"src/config/types.secrets.ts"} +{"declaration":"export type SecretInput = SecretInput;","entrypoint":"secret-input","exportName":"SecretInput","importSpecifier":"openclaw/plugin-sdk/secret-input","kind":"type","recordType":"export","sourceLine":16,"sourcePath":"src/config/types.secrets.ts"} +{"category":"utilities","entrypoint":"testing","importSpecifier":"openclaw/plugin-sdk/testing","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/testing.ts"} +{"declaration":"export function createWindowsCmdShimFixture(params: { shimPath: string; scriptPath: string; shimLine: string; }): Promise;","entrypoint":"testing","exportName":"createWindowsCmdShimFixture","importSpecifier":"openclaw/plugin-sdk/testing","kind":"function","recordType":"export","sourceLine":15,"sourcePath":"src/plugin-sdk/testing.ts"} +{"declaration":"export function installCommonResolveTargetErrorCases(params: { resolveTarget: ResolveTargetFn; implicitAllowFrom: string[]; }): void;","entrypoint":"testing","exportName":"installCommonResolveTargetErrorCases","importSpecifier":"openclaw/plugin-sdk/testing","kind":"function","recordType":"export","sourceLine":40,"sourcePath":"src/plugin-sdk/testing.ts"} +{"declaration":"export function removeAckReactionAfterReply(params: { removeAfterReply: boolean; ackReactionPromise: Promise | null; ackReactionValue: string | null; remove: () => Promise; onError?: ((err: unknown) => void) | undefined; }): void;","entrypoint":"testing","exportName":"removeAckReactionAfterReply","importSpecifier":"openclaw/plugin-sdk/testing","kind":"function","recordType":"export","sourceLine":81,"sourcePath":"src/channels/ack-reactions.ts"} +{"declaration":"export function shouldAckReaction(params: AckReactionGateParams): boolean;","entrypoint":"testing","exportName":"shouldAckReaction","importSpecifier":"openclaw/plugin-sdk/testing","kind":"function","recordType":"export","sourceLine":16,"sourcePath":"src/channels/ack-reactions.ts"} +{"declaration":"export type ChannelAccountSnapshot = ChannelAccountSnapshot;","entrypoint":"testing","exportName":"ChannelAccountSnapshot","importSpecifier":"openclaw/plugin-sdk/testing","kind":"type","recordType":"export","sourceLine":139,"sourcePath":"src/channels/plugins/types.core.ts"} +{"declaration":"export type ChannelGatewayContext = ChannelGatewayContext;","entrypoint":"testing","exportName":"ChannelGatewayContext","importSpecifier":"openclaw/plugin-sdk/testing","kind":"type","recordType":"export","sourceLine":238,"sourcePath":"src/channels/plugins/types.adapters.ts"} +{"declaration":"export type MockFn = MockFn;","entrypoint":"testing","exportName":"MockFn","importSpecifier":"openclaw/plugin-sdk/testing","kind":"type","recordType":"export","sourceLine":5,"sourcePath":"src/test-utils/vitest-mock-fn.ts"} +{"declaration":"export type OpenClawConfig = OpenClawConfig;","entrypoint":"testing","exportName":"OpenClawConfig","importSpecifier":"openclaw/plugin-sdk/testing","kind":"type","recordType":"export","sourceLine":32,"sourcePath":"src/config/types.openclaw.ts"} +{"declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"testing","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/testing","kind":"type","recordType":"export","sourceLine":53,"sourcePath":"src/plugins/runtime/types.ts"} +{"declaration":"export type RuntimeEnv = RuntimeEnv;","entrypoint":"testing","exportName":"RuntimeEnv","importSpecifier":"openclaw/plugin-sdk/testing","kind":"type","recordType":"export","sourceLine":4,"sourcePath":"src/runtime.ts"} +{"category":"channel","entrypoint":"webhook-ingress","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","recordType":"module","sourceLine":1,"sourcePath":"src/plugin-sdk/webhook-ingress.ts"} +{"declaration":"export function applyBasicWebhookRequestGuards(params: { req: IncomingMessage; res: ServerResponse; allowMethods?: readonly string[] | undefined; rateLimiter?: FixedWindowRateLimiter | undefined; rateLimitKey?: string | undefined; nowMs?: number | undefined; requireJsonContentType?: boolean | undefined; }): boolean;","entrypoint":"webhook-ingress","exportName":"applyBasicWebhookRequestGuards","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":148,"sourcePath":"src/plugin-sdk/webhook-request-guards.ts"} +{"declaration":"export function beginWebhookRequestPipelineOrReject(params: { req: IncomingMessage; res: ServerResponse; allowMethods?: readonly string[] | undefined; rateLimiter?: FixedWindowRateLimiter | undefined; ... 6 more ...; inFlightLimitMessage?: string | undefined; }): { ...; } | { ...; };","entrypoint":"webhook-ingress","exportName":"beginWebhookRequestPipelineOrReject","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":189,"sourcePath":"src/plugin-sdk/webhook-request-guards.ts"} +{"declaration":"export function createBoundedCounter(options: { maxTrackedKeys: number; ttlMs?: number | undefined; pruneIntervalMs?: number | undefined; }): BoundedCounter;","entrypoint":"webhook-ingress","exportName":"createBoundedCounter","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":109,"sourcePath":"src/plugin-sdk/webhook-memory-guards.ts"} +{"declaration":"export function createFixedWindowRateLimiter(options: { windowMs: number; maxRequests: number; maxTrackedKeys: number; pruneIntervalMs?: number | undefined; }): FixedWindowRateLimiter;","entrypoint":"webhook-ingress","exportName":"createFixedWindowRateLimiter","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":52,"sourcePath":"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;","entrypoint":"webhook-ingress","exportName":"createWebhookAnomalyTracker","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":167,"sourcePath":"src/plugin-sdk/webhook-memory-guards.ts"} +{"declaration":"export function createWebhookInFlightLimiter(options?: { maxInFlightPerKey?: number | undefined; maxTrackedKeys?: number | undefined; } | undefined): WebhookInFlightLimiter;","entrypoint":"webhook-ingress","exportName":"createWebhookInFlightLimiter","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":91,"sourcePath":"src/plugin-sdk/webhook-request-guards.ts"} +{"declaration":"export function isJsonContentType(value: string | string[] | undefined): boolean;","entrypoint":"webhook-ingress","exportName":"isJsonContentType","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":138,"sourcePath":"src/plugin-sdk/webhook-request-guards.ts"} +{"declaration":"export function isRequestBodyLimitError(error: unknown, code?: RequestBodyLimitErrorCode | undefined): error is RequestBodyLimitError;","entrypoint":"webhook-ingress","exportName":"isRequestBodyLimitError","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":46,"sourcePath":"src/infra/http-body.ts"} +{"declaration":"export function normalizeWebhookPath(raw: string): string;","entrypoint":"webhook-ingress","exportName":"normalizeWebhookPath","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":2,"sourcePath":"src/plugin-sdk/webhook-path.ts"} +{"declaration":"export function readJsonWebhookBodyOrReject(params: { req: IncomingMessage; res: ServerResponse; maxBytes?: number | undefined; timeoutMs?: number | undefined; profile?: WebhookBodyReadProfile | undefined; emptyObjectOnEmpty?: boolean | undefined; invalidJsonMessage?: string | undefined; }): Promise<...>;","entrypoint":"webhook-ingress","exportName":"readJsonWebhookBodyOrReject","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":275,"sourcePath":"src/plugin-sdk/webhook-request-guards.ts"} +{"declaration":"export function readRequestBodyWithLimit(req: IncomingMessage, options: ReadRequestBodyOptions): Promise;","entrypoint":"webhook-ingress","exportName":"readRequestBodyWithLimit","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":121,"sourcePath":"src/infra/http-body.ts"} +{"declaration":"export function readWebhookBodyOrReject(params: { req: IncomingMessage; res: ServerResponse; maxBytes?: number | undefined; timeoutMs?: number | undefined; profile?: WebhookBodyReadProfile | undefined; invalidBodyMessage?: string | undefined; }): Promise<...>;","entrypoint":"webhook-ingress","exportName":"readWebhookBodyOrReject","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":240,"sourcePath":"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;","entrypoint":"webhook-ingress","exportName":"registerPluginHttpRoute","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":12,"sourcePath":"src/plugins/http-registry.ts"} +{"declaration":"export function registerWebhookTarget(targetsByPath: Map, target: T, opts?: RegisterWebhookTargetOptions | undefined): RegisteredWebhookTarget;","entrypoint":"webhook-ingress","exportName":"registerWebhookTarget","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":61,"sourcePath":"src/plugin-sdk/webhook-targets.ts"} +{"declaration":"export function registerWebhookTargetWithPluginRoute(params: { targetsByPath: Map; target: T; route: RegisterWebhookPluginRouteOptions; onLastPathTargetRemoved?: ((params: { ...; }) => void) | undefined; }): RegisteredWebhookTarget<...>;","entrypoint":"webhook-ingress","exportName":"registerWebhookTargetWithPluginRoute","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":30,"sourcePath":"src/plugin-sdk/webhook-targets.ts"} +{"declaration":"export function requestBodyErrorToText(code: RequestBodyLimitErrorCode): string;","entrypoint":"webhook-ingress","exportName":"requestBodyErrorToText","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":59,"sourcePath":"src/infra/http-body.ts"} +{"declaration":"export function resolveSingleWebhookTarget(targets: readonly T[], isMatch: (target: T) => boolean): WebhookTargetMatchResult;","entrypoint":"webhook-ingress","exportName":"resolveSingleWebhookTarget","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":193,"sourcePath":"src/plugin-sdk/webhook-targets.ts"} +{"declaration":"export function resolveSingleWebhookTargetAsync(targets: readonly T[], isMatch: (target: T) => Promise): Promise>;","entrypoint":"webhook-ingress","exportName":"resolveSingleWebhookTargetAsync","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":212,"sourcePath":"src/plugin-sdk/webhook-targets.ts"} +{"declaration":"export function resolveWebhookPath(params: { webhookPath?: string | undefined; webhookUrl?: string | undefined; defaultPath?: string | null | undefined; }): string | null;","entrypoint":"webhook-ingress","exportName":"resolveWebhookPath","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":15,"sourcePath":"src/plugin-sdk/webhook-path.ts"} +{"declaration":"export function resolveWebhookTargets(req: IncomingMessage, targetsByPath: Map): { path: string; targets: T[]; } | null;","entrypoint":"webhook-ingress","exportName":"resolveWebhookTargets","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":107,"sourcePath":"src/plugin-sdk/webhook-targets.ts"} +{"declaration":"export function resolveWebhookTargetWithAuthOrReject(params: { targets: readonly T[]; res: ServerResponse; isMatch: (target: T) => boolean | Promise; unauthorizedStatusCode?: number | undefined; unauthorizedMessage?: string | undefined; ambiguousStatusCode?: number | undefined; ambiguousMessage?: string | undefined; }): Promise<...>;","entrypoint":"webhook-ingress","exportName":"resolveWebhookTargetWithAuthOrReject","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":231,"sourcePath":"src/plugin-sdk/webhook-targets.ts"} +{"declaration":"export function resolveWebhookTargetWithAuthOrRejectSync(params: { targets: readonly T[]; res: ServerResponse; isMatch: (target: T) => boolean; unauthorizedStatusCode?: number | undefined; unauthorizedMessage?: string | undefined; ambiguousStatusCode?: number | undefined; ambiguousMessage?: string | undefined; }): T | null;","entrypoint":"webhook-ingress","exportName":"resolveWebhookTargetWithAuthOrRejectSync","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":247,"sourcePath":"src/plugin-sdk/webhook-targets.ts"} +{"declaration":"export function withResolvedWebhookRequestPipeline(params: { req: IncomingMessage; res: ServerResponse; targetsByPath: Map; allowMethods?: readonly string[] | undefined; ... 8 more ...; handle: (args: { ...; }) => boolean | ... 1 more ... | Promise<...>; }): Promise<...>;","entrypoint":"webhook-ingress","exportName":"withResolvedWebhookRequestPipeline","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export","sourceLine":121,"sourcePath":"src/plugin-sdk/webhook-targets.ts"} +{"declaration":"export const WEBHOOK_ANOMALY_COUNTER_DEFAULTS: Readonly<{ maxTrackedKeys: 4096; ttlMs: number; logEvery: 25; }>;","entrypoint":"webhook-ingress","exportName":"WEBHOOK_ANOMALY_COUNTER_DEFAULTS","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"const","recordType":"export","sourceLine":31,"sourcePath":"src/plugin-sdk/webhook-memory-guards.ts"} +{"declaration":"export const WEBHOOK_ANOMALY_STATUS_CODES: readonly number[];","entrypoint":"webhook-ingress","exportName":"WEBHOOK_ANOMALY_STATUS_CODES","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"const","recordType":"export","sourceLine":37,"sourcePath":"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; }; }>;","entrypoint":"webhook-ingress","exportName":"WEBHOOK_BODY_READ_DEFAULTS","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"const","recordType":"export","sourceLine":19,"sourcePath":"src/plugin-sdk/webhook-request-guards.ts"} +{"declaration":"export const WEBHOOK_IN_FLIGHT_DEFAULTS: Readonly<{ maxInFlightPerKey: 8; maxTrackedKeys: 4096; }>;","entrypoint":"webhook-ingress","exportName":"WEBHOOK_IN_FLIGHT_DEFAULTS","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"const","recordType":"export","sourceLine":30,"sourcePath":"src/plugin-sdk/webhook-request-guards.ts"} +{"declaration":"export const WEBHOOK_RATE_LIMIT_DEFAULTS: Readonly<{ windowMs: 60000; maxRequests: 120; maxTrackedKeys: 4096; }>;","entrypoint":"webhook-ingress","exportName":"WEBHOOK_RATE_LIMIT_DEFAULTS","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"const","recordType":"export","sourceLine":25,"sourcePath":"src/plugin-sdk/webhook-memory-guards.ts"} +{"declaration":"export type BoundedCounter = BoundedCounter;","entrypoint":"webhook-ingress","exportName":"BoundedCounter","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export","sourceLine":19,"sourcePath":"src/plugin-sdk/webhook-memory-guards.ts"} +{"declaration":"export type FixedWindowRateLimiter = FixedWindowRateLimiter;","entrypoint":"webhook-ingress","exportName":"FixedWindowRateLimiter","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export","sourceLine":13,"sourcePath":"src/plugin-sdk/webhook-memory-guards.ts"} +{"declaration":"export type RegisteredWebhookTarget = RegisteredWebhookTarget;","entrypoint":"webhook-ingress","exportName":"RegisteredWebhookTarget","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export","sourceLine":10,"sourcePath":"src/plugin-sdk/webhook-targets.ts"} +{"declaration":"export type RegisterWebhookPluginRouteOptions = RegisterWebhookPluginRouteOptions;","entrypoint":"webhook-ingress","exportName":"RegisterWebhookPluginRouteOptions","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export","sourceLine":24,"sourcePath":"src/plugin-sdk/webhook-targets.ts"} +{"declaration":"export type RegisterWebhookTargetOptions = RegisterWebhookTargetOptions;","entrypoint":"webhook-ingress","exportName":"RegisterWebhookTargetOptions","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export","sourceLine":15,"sourcePath":"src/plugin-sdk/webhook-targets.ts"} +{"declaration":"export type WebhookAnomalyTracker = WebhookAnomalyTracker;","entrypoint":"webhook-ingress","exportName":"WebhookAnomalyTracker","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export","sourceLine":39,"sourcePath":"src/plugin-sdk/webhook-memory-guards.ts"} +{"declaration":"export type WebhookBodyReadProfile = WebhookBodyReadProfile;","entrypoint":"webhook-ingress","exportName":"WebhookBodyReadProfile","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export","sourceLine":11,"sourcePath":"src/plugin-sdk/webhook-request-guards.ts"} +{"declaration":"export type WebhookInFlightLimiter = WebhookInFlightLimiter;","entrypoint":"webhook-ingress","exportName":"WebhookInFlightLimiter","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export","sourceLine":35,"sourcePath":"src/plugin-sdk/webhook-request-guards.ts"} +{"declaration":"export type WebhookTargetMatchResult = WebhookTargetMatchResult;","entrypoint":"webhook-ingress","exportName":"WebhookTargetMatchResult","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export","sourceLine":170,"sourcePath":"src/plugin-sdk/webhook-targets.ts"} diff --git a/package.json b/package.json index 3b0ebd8e09d..85fb6c3276d 100644 --- a/package.json +++ b/package.json @@ -634,6 +634,8 @@ "moltbot:rpc": "node scripts/run-node.mjs agent --mode rpc --json", "openclaw": "node scripts/run-node.mjs", "openclaw:rpc": "node scripts/run-node.mjs agent --mode rpc --json", + "plugin-sdk:api:check": "node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check", + "plugin-sdk:api:gen": "node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write", "plugin-sdk:check-exports": "node scripts/sync-plugin-sdk-exports.mjs --check", "plugin-sdk:sync-exports": "node scripts/sync-plugin-sdk-exports.mjs", "plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts", @@ -642,7 +644,7 @@ "protocol:check": "pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift", "protocol:gen": "node --import tsx scripts/protocol-gen.ts", "protocol:gen:swift": "node --import tsx scripts/protocol-gen-swift.ts", - "release:check": "pnpm config:docs:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && node --import tsx scripts/release-check.ts", + "release:check": "pnpm config:docs:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && node --import tsx scripts/release-check.ts", "release:openclaw:npm:check": "node --import tsx scripts/openclaw-npm-release-check.ts", "release:plugins:npm:check": "node --import tsx scripts/plugin-npm-release-check.ts", "release:plugins:npm:plan": "node --import tsx scripts/plugin-npm-release-plan.ts", diff --git a/scripts/generate-plugin-sdk-api-baseline.ts b/scripts/generate-plugin-sdk-api-baseline.ts new file mode 100644 index 00000000000..f8bc326ec66 --- /dev/null +++ b/scripts/generate-plugin-sdk-api-baseline.ts @@ -0,0 +1,48 @@ +#!/usr/bin/env node +import path from "node:path"; +import { writePluginSdkApiBaselineStatefile } from "../src/plugin-sdk/api-baseline.ts"; + +const args = new Set(process.argv.slice(2)); +const checkOnly = args.has("--check"); +const writeMode = args.has("--write"); + +if (checkOnly === writeMode) { + console.error("Use exactly one of --check or --write."); + process.exit(1); +} + +const repoRoot = process.cwd(); + +async function main(): Promise { + const result = await writePluginSdkApiBaselineStatefile({ + repoRoot, + check: checkOnly, + }); + + if (checkOnly) { + if (result.changed) { + console.error( + [ + "Plugin SDK API baseline drift detected.", + `Expected current: ${path.relative(repoRoot, result.jsonPath)}`, + `Expected current: ${path.relative(repoRoot, result.statefilePath)}`, + "If this Plugin SDK surface change is intentional, run `pnpm plugin-sdk:api:gen` and commit the updated baseline files.", + "If not intentional, treat this as API drift and fix the plugin-sdk exports or metadata first.", + ].join("\n"), + ); + process.exit(1); + } + console.log( + `OK ${path.relative(repoRoot, result.jsonPath)} ${path.relative(repoRoot, result.statefilePath)}`, + ); + return; + } + console.log( + [ + `Wrote ${path.relative(repoRoot, result.jsonPath)}`, + `Wrote ${path.relative(repoRoot, result.statefilePath)}`, + ].join("\n"), + ); +} + +await main(); diff --git a/scripts/lib/plugin-sdk-doc-metadata.ts b/scripts/lib/plugin-sdk-doc-metadata.ts new file mode 100644 index 00000000000..b3ccad94d02 --- /dev/null +++ b/scripts/lib/plugin-sdk-doc-metadata.ts @@ -0,0 +1,87 @@ +export type PluginSdkDocCategory = + | "channel" + | "core" + | "legacy" + | "provider" + | "runtime" + | "utilities"; + +export type PluginSdkDocMetadata = { + category: PluginSdkDocCategory; +}; + +export const pluginSdkDocMetadata = { + index: { + category: "legacy", + }, + "channel-runtime": { + category: "legacy", + }, + core: { + category: "core", + }, + "plugin-entry": { + category: "core", + }, + "channel-actions": { + category: "channel", + }, + "channel-config-schema": { + category: "channel", + }, + "channel-contract": { + category: "channel", + }, + "channel-pairing": { + category: "channel", + }, + "channel-reply-pipeline": { + category: "channel", + }, + "channel-setup": { + category: "channel", + }, + "command-auth": { + category: "channel", + }, + "secret-input": { + category: "channel", + }, + "webhook-ingress": { + category: "channel", + }, + "provider-onboard": { + category: "provider", + }, + "runtime-store": { + category: "runtime", + }, + "allow-from": { + category: "utilities", + }, + "reply-payload": { + category: "utilities", + }, + testing: { + category: "utilities", + }, +} as const satisfies Record; + +export type PluginSdkDocEntrypoint = keyof typeof pluginSdkDocMetadata; + +export const pluginSdkDocCategories = [ + "core", + "channel", + "provider", + "runtime", + "utilities", + "legacy", +] as const satisfies readonly PluginSdkDocCategory[]; + +export const pluginSdkDocEntrypoints = Object.keys( + pluginSdkDocMetadata, +) as PluginSdkDocEntrypoint[]; + +export function resolvePluginSdkDocImportSpecifier(entrypoint: PluginSdkDocEntrypoint): string { + return entrypoint === "index" ? "openclaw/plugin-sdk" : `openclaw/plugin-sdk/${entrypoint}`; +} diff --git a/src/plugin-sdk/api-baseline.ts b/src/plugin-sdk/api-baseline.ts new file mode 100644 index 00000000000..41fedd7bce2 --- /dev/null +++ b/src/plugin-sdk/api-baseline.ts @@ -0,0 +1,459 @@ +import fs from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import ts from "typescript"; +import { + pluginSdkDocMetadata, + resolvePluginSdkDocImportSpecifier, + type PluginSdkDocCategory, + type PluginSdkDocEntrypoint, +} from "../../scripts/lib/plugin-sdk-doc-metadata.ts"; +import { pluginSdkEntrypoints } from "../../scripts/lib/plugin-sdk-entries.mjs"; + +export type PluginSdkApiExportKind = + | "class" + | "const" + | "enum" + | "function" + | "interface" + | "namespace" + | "type" + | "unknown" + | "variable"; + +export type PluginSdkApiSourceLink = { + line: number; + path: string; +}; + +export type PluginSdkApiExport = { + declaration: string | null; + exportName: string; + kind: PluginSdkApiExportKind; + source: PluginSdkApiSourceLink | null; +}; + +export type PluginSdkApiModule = { + category: PluginSdkDocCategory; + entrypoint: PluginSdkDocEntrypoint; + exports: PluginSdkApiExport[]; + importSpecifier: string; + source: PluginSdkApiSourceLink; +}; + +export type PluginSdkApiBaseline = { + generatedBy: "scripts/generate-plugin-sdk-api-baseline.ts"; + modules: PluginSdkApiModule[]; +}; + +export type PluginSdkApiBaselineRender = { + baseline: PluginSdkApiBaseline; + json: string; + jsonl: string; +}; + +export type PluginSdkApiBaselineWriteResult = { + changed: boolean; + wrote: boolean; + jsonPath: string; + statefilePath: string; +}; + +const GENERATED_BY = "scripts/generate-plugin-sdk-api-baseline.ts" as const; +const DEFAULT_JSON_OUTPUT = "docs/.generated/plugin-sdk-api-baseline.json"; +const DEFAULT_STATEFILE_OUTPUT = "docs/.generated/plugin-sdk-api-baseline.jsonl"; + +function assert(condition: unknown, message: string): asserts condition { + if (!condition) { + throw new Error(message); + } +} + +function resolveRepoRoot(): string { + return path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../.."); +} + +function relativePath(repoRoot: string, filePath: string): string { + return path.relative(repoRoot, filePath).split(path.sep).join(path.posix.sep); +} + +function createCompilerContext(repoRoot: string) { + const configPath = ts.findConfigFile( + repoRoot, + (filePath) => ts.sys.fileExists(filePath), + "tsconfig.json", + ); + assert(configPath, "Could not find tsconfig.json"); + const configFile = ts.readConfigFile(configPath, (filePath) => ts.sys.readFile(filePath)); + if (configFile.error) { + throw new Error(ts.flattenDiagnosticMessageText(configFile.error.messageText, "\n")); + } + const parsedConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, repoRoot); + const program = ts.createProgram(parsedConfig.fileNames, parsedConfig.options); + return { + checker: program.getTypeChecker(), + printer: ts.createPrinter({ newLine: ts.NewLineKind.LineFeed }), + program, + }; +} + +function buildSourceLink( + repoRoot: string, + program: ts.Program, + filePath: string, + start: number, +): PluginSdkApiSourceLink { + const sourceFile = program.getSourceFile(filePath); + assert(sourceFile, `Unable to read source file for ${relativePath(repoRoot, filePath)}`); + const line = sourceFile.getLineAndCharacterOfPosition(start).line + 1; + return { + line, + path: relativePath(repoRoot, filePath), + }; +} + +function inferExportKind( + symbol: ts.Symbol, + declaration: ts.Declaration | undefined, +): PluginSdkApiExportKind { + if (declaration) { + switch (declaration.kind) { + case ts.SyntaxKind.ClassDeclaration: + return "class"; + case ts.SyntaxKind.EnumDeclaration: + return "enum"; + case ts.SyntaxKind.FunctionDeclaration: + return "function"; + case ts.SyntaxKind.InterfaceDeclaration: + return "interface"; + case ts.SyntaxKind.ModuleDeclaration: + return "namespace"; + case ts.SyntaxKind.TypeAliasDeclaration: + return "type"; + case ts.SyntaxKind.VariableDeclaration: { + const variableStatement = declaration.parent?.parent; + if ( + variableStatement && + ts.isVariableStatement(variableStatement) && + (ts.getCombinedNodeFlags(variableStatement.declarationList) & ts.NodeFlags.Const) !== 0 + ) { + return "const"; + } + return "variable"; + } + default: + break; + } + } + + if (symbol.flags & ts.SymbolFlags.Function) { + return "function"; + } + if (symbol.flags & ts.SymbolFlags.Class) { + return "class"; + } + if (symbol.flags & ts.SymbolFlags.Interface) { + return "interface"; + } + if (symbol.flags & ts.SymbolFlags.TypeAlias) { + return "type"; + } + if (symbol.flags & ts.SymbolFlags.ConstEnum || symbol.flags & ts.SymbolFlags.RegularEnum) { + return "enum"; + } + if (symbol.flags & ts.SymbolFlags.Variable) { + return "variable"; + } + if (symbol.flags & ts.SymbolFlags.NamespaceModule || symbol.flags & ts.SymbolFlags.ValueModule) { + return "namespace"; + } + return "unknown"; +} + +function resolveSymbolAndDeclaration( + checker: ts.TypeChecker, + symbol: ts.Symbol, +): { + declaration: ts.Declaration | undefined; + resolvedSymbol: ts.Symbol; +} { + const resolvedSymbol = + symbol.flags & ts.SymbolFlags.Alias ? checker.getAliasedSymbol(symbol) : symbol; + const declarations = resolvedSymbol.getDeclarations() ?? symbol.getDeclarations() ?? []; + const declaration = declarations.find((candidate) => candidate.kind !== ts.SyntaxKind.SourceFile); + return { declaration, resolvedSymbol }; +} + +function printNode( + checker: ts.TypeChecker, + printer: ts.Printer, + declaration: ts.Declaration, +): string | null { + if (ts.isFunctionDeclaration(declaration)) { + const signatures = checker.getTypeAtLocation(declaration).getCallSignatures(); + if (signatures.length === 0) { + return `export function ${declaration.name?.text ?? "anonymous"}();`; + } + return signatures + .map( + (signature) => + `export function ${declaration.name?.text ?? "anonymous"}${checker.signatureToString(signature)};`, + ) + .join("\n"); + } + + if (ts.isVariableDeclaration(declaration)) { + const name = declaration.name.getText(); + const type = checker.getTypeAtLocation(declaration); + const prefix = + declaration.parent && (ts.getCombinedNodeFlags(declaration.parent) & ts.NodeFlags.Const) !== 0 + ? "const" + : "let"; + return `export ${prefix} ${name}: ${checker.typeToString(type, declaration, ts.TypeFormatFlags.NoTruncation)};`; + } + + if (ts.isInterfaceDeclaration(declaration)) { + return `export interface ${declaration.name.text}`; + } + + if (ts.isClassDeclaration(declaration)) { + return `export class ${declaration.name?.text ?? "AnonymousClass"}`; + } + + if (ts.isEnumDeclaration(declaration)) { + return `export enum ${declaration.name.text}`; + } + + if (ts.isModuleDeclaration(declaration)) { + return `export namespace ${declaration.name.getText()}`; + } + + if (ts.isTypeAliasDeclaration(declaration)) { + const type = checker.getTypeAtLocation(declaration); + const rendered = `export type ${declaration.name.text} = ${checker.typeToString( + type, + declaration, + ts.TypeFormatFlags.NoTruncation | ts.TypeFormatFlags.MultilineObjectLiterals, + )};`; + if (rendered.length > 1200) { + return `export type ${declaration.name.text} = /* see source */`; + } + return rendered; + } + + const text = printer + .printNode(ts.EmitHint.Unspecified, declaration, declaration.getSourceFile()) + .trim(); + if (!text) { + return null; + } + return text.length > 1200 + ? `${text.slice(0, 1175).trimEnd()}\n/* truncated; see source */` + : text; +} + +function buildExportSurface(params: { + checker: ts.TypeChecker; + printer: ts.Printer; + program: ts.Program; + repoRoot: string; + symbol: ts.Symbol; +}): PluginSdkApiExport { + const { checker, printer, program, repoRoot, symbol } = params; + const { declaration, resolvedSymbol } = resolveSymbolAndDeclaration(checker, symbol); + return { + declaration: declaration ? printNode(checker, printer, declaration) : null, + exportName: symbol.getName(), + kind: inferExportKind(resolvedSymbol, declaration), + source: declaration + ? buildSourceLink( + repoRoot, + program, + declaration.getSourceFile().fileName, + declaration.getStart(), + ) + : null, + }; +} + +function sortExports(left: PluginSdkApiExport, right: PluginSdkApiExport): number { + const kindRank: Record = { + function: 0, + const: 1, + variable: 2, + type: 3, + interface: 4, + class: 5, + enum: 6, + namespace: 7, + unknown: 8, + }; + + const byKind = kindRank[left.kind] - kindRank[right.kind]; + if (byKind !== 0) { + return byKind; + } + return left.exportName.localeCompare(right.exportName); +} + +function buildModuleSurface(params: { + checker: ts.TypeChecker; + printer: ts.Printer; + program: ts.Program; + repoRoot: string; + entrypoint: PluginSdkDocEntrypoint; +}): PluginSdkApiModule { + const { checker, printer, program, repoRoot, entrypoint } = params; + const metadata = pluginSdkDocMetadata[entrypoint]; + const importSpecifier = resolvePluginSdkDocImportSpecifier(entrypoint); + const moduleSourcePath = path.join(repoRoot, "src", "plugin-sdk", `${entrypoint}.ts`); + const sourceFile = program.getSourceFile(moduleSourcePath); + assert(sourceFile, `Missing source file for ${importSpecifier}`); + + const moduleSymbol = checker.getSymbolAtLocation(sourceFile); + assert(moduleSymbol, `Unable to resolve module symbol for ${importSpecifier}`); + + const exports = checker + .getExportsOfModule(moduleSymbol) + .filter((symbol) => symbol.getName() !== "__esModule") + .map((symbol) => + buildExportSurface({ + checker, + printer, + program, + repoRoot, + symbol, + }), + ) + .toSorted(sortExports); + + return { + category: metadata.category, + entrypoint, + exports, + importSpecifier, + source: buildSourceLink(repoRoot, program, moduleSourcePath, 0), + }; +} + +function buildJsonlLines(baseline: PluginSdkApiBaseline): string[] { + const lines: string[] = []; + + for (const moduleSurface of baseline.modules) { + lines.push( + JSON.stringify({ + category: moduleSurface.category, + entrypoint: moduleSurface.entrypoint, + importSpecifier: moduleSurface.importSpecifier, + recordType: "module", + sourceLine: moduleSurface.source.line, + sourcePath: moduleSurface.source.path, + }), + ); + + for (const exportSurface of moduleSurface.exports) { + lines.push( + JSON.stringify({ + declaration: exportSurface.declaration, + entrypoint: moduleSurface.entrypoint, + exportName: exportSurface.exportName, + importSpecifier: moduleSurface.importSpecifier, + kind: exportSurface.kind, + recordType: "export", + sourceLine: exportSurface.source?.line ?? null, + sourcePath: exportSurface.source?.path ?? null, + }), + ); + } + } + + return lines; +} + +export async function renderPluginSdkApiBaseline(params?: { + repoRoot?: string; +}): Promise { + const repoRoot = params?.repoRoot ?? resolveRepoRoot(); + validateMetadata(); + const { checker, printer, program } = createCompilerContext(repoRoot); + const modules = (Object.keys(pluginSdkDocMetadata) as PluginSdkDocEntrypoint[]) + .map((entrypoint) => + buildModuleSurface({ + checker, + printer, + program, + repoRoot, + entrypoint, + }), + ) + .toSorted((left, right) => left.importSpecifier.localeCompare(right.importSpecifier)); + + const baseline: PluginSdkApiBaseline = { + generatedBy: GENERATED_BY, + modules, + }; + + return { + baseline, + json: `${JSON.stringify(baseline, null, 2)}\n`, + jsonl: `${buildJsonlLines(baseline).join("\n")}\n`, + }; +} + +async function loadCurrentFile(filePath: string): Promise { + try { + return await fs.readFile(filePath, "utf8"); + } catch (error) { + if ((error as NodeJS.ErrnoException).code === "ENOENT") { + return null; + } + throw error; + } +} + +function validateMetadata(): void { + const canonicalEntrypoints = new Set(pluginSdkEntrypoints); + const metadataEntrypoints = new Set(Object.keys(pluginSdkDocMetadata)); + + for (const entrypoint of metadataEntrypoints) { + assert( + canonicalEntrypoints.has(entrypoint), + `Metadata entrypoint ${entrypoint} is not exported in the Plugin SDK.`, + ); + } +} + +export async function writePluginSdkApiBaselineStatefile(params?: { + repoRoot?: string; + check?: boolean; + jsonPath?: string; + statefilePath?: string; +}): Promise { + const repoRoot = params?.repoRoot ?? resolveRepoRoot(); + const jsonPath = path.resolve(repoRoot, params?.jsonPath ?? DEFAULT_JSON_OUTPUT); + const statefilePath = path.resolve(repoRoot, params?.statefilePath ?? DEFAULT_STATEFILE_OUTPUT); + const rendered = await renderPluginSdkApiBaseline({ repoRoot }); + const currentJson = await loadCurrentFile(jsonPath); + const currentJsonl = await loadCurrentFile(statefilePath); + const changed = currentJson !== rendered.json || currentJsonl !== rendered.jsonl; + + if (params?.check) { + return { + changed, + wrote: false, + jsonPath, + statefilePath, + }; + } + + await fs.mkdir(path.dirname(jsonPath), { recursive: true }); + await fs.writeFile(jsonPath, rendered.json, "utf8"); + await fs.writeFile(statefilePath, rendered.jsonl, "utf8"); + + return { + changed, + wrote: true, + jsonPath, + statefilePath, + }; +}