openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
396 lines (395 loc) • 15.6 kB
TypeScript
import { _ as PluginDiagnostic, a as PluginDependencyStatus, d as PluginKind, g as PluginConfigUiHint, h as PluginBundleFormat, s as PluginManifestContracts, v as PluginFormat } from "./manifest-registry-C_uwfra_.js";
import { t as JsonSchemaObject } from "./json-schema.types-z_ZXZBRr.js";
import { t as PluginOrigin } from "./plugin-origin.types-DOQEvsWL.js";
import { i as PluginCompatCode } from "./installed-plugin-index-types-b33UJBZg.js";
import { $ as OpenClawPluginService, $n as PluginRuntime, D as OpenClawPluginCliRegistrar, Ei as PluginTrustedToolPolicyRegistration, F as OpenClawPluginHttpRouteHandler, Fi as CliBackendPlugin, Gn as RealtimeTranscriptionProviderPlugin, H as OpenClawPluginNodeHostCommand, Hs as WebFetchProviderPlugin, I as OpenClawPluginHttpRouteMatch, Jn as TranscriptSourceProvider, Js as WebSearchProviderPlugin, Kn as RealtimeVoiceProviderPlugin, M as OpenClawPluginGatewayRuntimeScopeSurface, N as OpenClawPluginHostedMediaResolver, O as OpenClawPluginCommandDefinition, Oi as CodexAppServerExtensionFactory, P as OpenClawPluginHttpRouteAuth, R as OpenClawPluginHttpRouteUpgradeHandler, St as PluginTextTransformRegistration, T as OpenClawPluginCliCommandDescriptor, Ta as AgentHarness, Ti as PluginToolMetadataRegistration, Ts as OpenClawPluginToolFactory, W as OpenClawPluginNodeInvokePolicy, Wi as AgentToolResultMiddleware, Xi as AgentToolResultMiddlewareRuntime, Xn as UnifiedModelCatalogProviderPlugin, Y as OpenClawPluginReloadRegistration, Z as OpenClawPluginSecurityAuditCollector, Zn as VideoGenerationProviderPlugin, a as ImageGenerationProviderPlugin, b as OpenClawGatewayDiscoveryService, ci as PluginAgentEventSubscriptionRegistration, cn as ProviderPlugin, fi as PluginRuntimeLifecycleRegistration, h as MigrationProviderPlugin, ht as PluginLogger, li as PluginControlUiDescriptor, mi as PluginSessionActionRegistration, o as MediaUnderstandingProviderPlugin, qn as SpeechProviderPlugin, v as MusicGenerationProviderPlugin, xi as PluginSessionSchedulerJobRegistration, yi as PluginSessionExtensionRegistration } from "./types-C0dQmare.js";
import { _ as GatewayMethodDescriptor, i as GatewayRequestHandlers, y as CronServiceContract } from "./types-DF3JY91V.js";
import { t as HookEntry } from "./types-BCpQVPCb.js";
import { r as EmbeddingProviderAdapter } from "./embedding-providers-DDk0eFII.js";
import { i as MemoryEmbeddingProviderAdapter } from "./memory-embedding-providers-DkPGGFtP.js";
import { nt as PluginHookRegistration$1 } from "./hook-types-Ciec6sPw.js";
import { t as ChannelPlugin } from "./types.plugin-BIHyhl5u.js";
import { a as PluginConversationBindingResolvedEvent } from "./conversation-binding.types-CYNWpeLp.js";
import { a as PluginActivationSource } from "./config-state-CSNzlzCR.js";
//#region src/plugins/registry-types.d.ts
/** Agent tool factory registered by one plugin runtime. */
type PluginToolRegistration = {
pluginId: string;
pluginName?: string;
factory: OpenClawPluginToolFactory;
names: string[];
declaredNames?: string[];
optional: boolean;
source: string;
rootDir?: string;
};
type PluginCliRegistration = {
pluginId: string;
pluginName?: string;
register: OpenClawPluginCliRegistrar;
parentPath: string[];
commands: string[];
descriptors: OpenClawPluginCliCommandDescriptor[];
source: string;
rootDir?: string;
};
/** Gateway HTTP route registered by a plugin runtime. */
type PluginHttpRouteRegistration = {
pluginId?: string;
path: string;
handler: OpenClawPluginHttpRouteHandler;
handleUpgrade?: OpenClawPluginHttpRouteUpgradeHandler;
auth: OpenClawPluginHttpRouteAuth;
match: OpenClawPluginHttpRouteMatch;
gatewayRuntimeScopeSurface?: OpenClawPluginGatewayRuntimeScopeSurface;
gatewayMethodDispatchAllowed?: boolean;
nodeCapability?: {
surface: string;
ttlMs?: number;
};
source?: string;
};
type PluginHostedMediaResolverRegistration = {
pluginId: string;
pluginName?: string;
resolver: OpenClawPluginHostedMediaResolver;
source: string;
rootDir?: string;
};
type PluginChannelRegistration = {
pluginId: string;
pluginName?: string;
plugin: ChannelPlugin;
source: string;
rootDir?: string;
};
type PluginChannelSetupRegistration = {
pluginId: string;
pluginName?: string;
plugin: ChannelPlugin;
source: string;
enabled: boolean;
rootDir?: string;
};
type PluginProviderRegistration = {
pluginId: string;
pluginName?: string;
provider: ProviderPlugin;
source: string;
rootDir?: string;
};
type PluginModelCatalogProviderRegistration = {
pluginId: string;
pluginName?: string;
provider: UnifiedModelCatalogProviderPlugin;
source: string;
rootDir?: string;
};
type PluginCliBackendRegistration = {
pluginId: string;
pluginName?: string;
backend: CliBackendPlugin;
source: string;
rootDir?: string;
};
type PluginTextTransformsRegistration = {
pluginId: string;
pluginName?: string;
transforms: PluginTextTransformRegistration;
source: string;
rootDir?: string;
};
type PluginOwnedProviderRegistration<T extends {
id: string;
}> = {
pluginId: string;
pluginName?: string;
provider: T;
source: string;
rootDir?: string;
};
type PluginSpeechProviderRegistration = PluginOwnedProviderRegistration<SpeechProviderPlugin>;
type PluginEmbeddingProviderRegistration = PluginOwnedProviderRegistration<EmbeddingProviderAdapter>;
type PluginRealtimeTranscriptionProviderRegistration = PluginOwnedProviderRegistration<RealtimeTranscriptionProviderPlugin>;
type PluginRealtimeVoiceProviderRegistration = PluginOwnedProviderRegistration<RealtimeVoiceProviderPlugin>;
type PluginMediaUnderstandingProviderRegistration = PluginOwnedProviderRegistration<MediaUnderstandingProviderPlugin>;
type PluginTranscriptsSourceProviderRegistration = PluginOwnedProviderRegistration<TranscriptSourceProvider>;
type PluginImageGenerationProviderRegistration = PluginOwnedProviderRegistration<ImageGenerationProviderPlugin>;
type PluginVideoGenerationProviderRegistration = PluginOwnedProviderRegistration<VideoGenerationProviderPlugin>;
type PluginMusicGenerationProviderRegistration = PluginOwnedProviderRegistration<MusicGenerationProviderPlugin>;
type PluginWebFetchProviderRegistration = PluginOwnedProviderRegistration<WebFetchProviderPlugin>;
type PluginWebSearchProviderRegistration = PluginOwnedProviderRegistration<WebSearchProviderPlugin>;
type PluginMigrationProviderRegistration = PluginOwnedProviderRegistration<MigrationProviderPlugin>;
type PluginMemoryEmbeddingProviderRegistration = PluginOwnedProviderRegistration<MemoryEmbeddingProviderAdapter>;
type PluginCodexAppServerExtensionFactoryRegistration = {
pluginId: string;
pluginName?: string;
rawFactory: CodexAppServerExtensionFactory;
factory: CodexAppServerExtensionFactory;
source: string;
rootDir?: string;
};
type PluginAgentToolResultMiddlewareRegistration = {
pluginId: string;
pluginName?: string;
rawHandler: AgentToolResultMiddleware;
handler: AgentToolResultMiddleware;
runtimes: AgentToolResultMiddlewareRuntime[];
source: string;
rootDir?: string;
};
type PluginAgentHarnessRegistration = {
pluginId: string;
pluginName?: string;
harness: AgentHarness;
source: string;
rootDir?: string;
};
type PluginHookRegistration = {
pluginId: string;
entry: HookEntry;
events: string[];
source: string;
rootDir?: string;
};
type PluginServiceRegistration = {
pluginId: string;
pluginName?: string;
service: OpenClawPluginService;
source: string;
origin: PluginOrigin;
trustedOfficialInstall?: boolean;
rootDir?: string;
};
type PluginGatewayDiscoveryServiceRegistration = {
pluginId: string;
pluginName?: string;
service: OpenClawGatewayDiscoveryService;
source: string;
rootDir?: string;
};
type PluginReloadRegistration = {
pluginId: string;
pluginName?: string;
registration: OpenClawPluginReloadRegistration;
source: string;
rootDir?: string;
};
type PluginNodeHostCommandRegistration = {
pluginId: string;
pluginName?: string;
command: OpenClawPluginNodeHostCommand;
source: string;
rootDir?: string;
};
type PluginNodeInvokePolicyRegistration = {
pluginId: string;
pluginName?: string;
policy: OpenClawPluginNodeInvokePolicy;
pluginConfig?: Record<string, unknown>;
source: string;
rootDir?: string;
};
type PluginSecurityAuditCollectorRegistration = {
pluginId: string;
pluginName?: string;
collector: OpenClawPluginSecurityAuditCollector;
source: string;
rootDir?: string;
};
type PluginCommandRegistration = {
pluginId: string;
pluginName?: string;
command: OpenClawPluginCommandDefinition;
source: string;
rootDir?: string;
};
type PluginSessionExtensionRegistryRegistration = {
pluginId: string;
pluginName?: string;
extension: PluginSessionExtensionRegistration;
source: string;
rootDir?: string;
};
type PluginTrustedToolPolicyRegistryRegistration = {
pluginId: string;
pluginName?: string;
policy: PluginTrustedToolPolicyRegistration;
origin?: PluginRecord["origin"];
source: string;
rootDir?: string;
};
type PluginToolMetadataRegistryRegistration = {
pluginId: string;
pluginName?: string;
metadata: PluginToolMetadataRegistration;
source: string;
rootDir?: string;
};
type PluginControlUiDescriptorRegistryRegistration = {
pluginId: string;
pluginName?: string;
descriptor: PluginControlUiDescriptor;
source: string;
rootDir?: string;
};
type PluginRuntimeLifecycleRegistryRegistration = {
pluginId: string;
pluginName?: string;
lifecycle: PluginRuntimeLifecycleRegistration;
source: string;
rootDir?: string;
};
type PluginAgentEventSubscriptionRegistryRegistration = {
pluginId: string;
pluginName?: string;
subscription: PluginAgentEventSubscriptionRegistration;
source: string;
rootDir?: string;
};
type PluginSessionSchedulerJobRegistryRegistration = {
pluginId: string;
pluginName?: string;
job: PluginSessionSchedulerJobRegistration;
generation?: number;
source: string;
rootDir?: string;
};
type PluginSessionActionRegistryRegistration = {
pluginId: string;
pluginName?: string;
action: PluginSessionActionRegistration;
source: string;
rootDir?: string;
};
type PluginConversationBindingResolvedHandlerRegistration = {
pluginId: string;
pluginName?: string;
pluginRoot?: string;
handler: (event: PluginConversationBindingResolvedEvent) => void | Promise<void>;
source: string;
rootDir?: string;
};
type PluginRecord = {
id: string;
name: string;
version?: string;
packageName?: string;
description?: string;
format?: PluginFormat;
bundleFormat?: PluginBundleFormat;
bundleCapabilities?: string[];
kind?: PluginKind | PluginKind[];
source: string;
rootDir?: string;
origin: PluginOrigin;
workspaceDir?: string;
trustedOfficialInstall?: boolean;
enabled: boolean;
explicitlyEnabled?: boolean;
activated?: boolean;
imported?: boolean;
compat?: readonly PluginCompatCode[];
activationSource?: PluginActivationSource;
activationReason?: string;
status: "loaded" | "disabled" | "error";
error?: string;
failedAt?: Date;
failurePhase?: "validation" | "load" | "register";
toolNames: string[];
hookNames: string[];
channelIds: string[];
cliBackendIds: string[];
providerIds: string[];
syntheticAuthRefs?: string[];
embeddingProviderIds: string[];
speechProviderIds: string[];
realtimeTranscriptionProviderIds: string[];
realtimeVoiceProviderIds: string[];
mediaUnderstandingProviderIds: string[];
transcriptSourceProviderIds: string[];
imageGenerationProviderIds: string[];
videoGenerationProviderIds: string[];
musicGenerationProviderIds: string[];
webFetchProviderIds: string[];
webSearchProviderIds: string[];
migrationProviderIds: string[];
contextEngineIds?: string[];
memoryEmbeddingProviderIds: string[];
agentHarnessIds: string[];
cliCommands: string[];
services: string[];
gatewayDiscoveryServiceIds: string[];
commands: string[];
httpRoutes: number;
hookCount: number;
configSchema: boolean;
configUiHints?: Record<string, PluginConfigUiHint>;
configJsonSchema?: JsonSchemaObject;
contracts?: PluginManifestContracts;
memorySlotSelected?: boolean;
dependencyStatus?: PluginDependencyStatus;
};
type PluginRegistry = {
plugins: PluginRecord[];
tools: PluginToolRegistration[];
hooks: PluginHookRegistration[];
typedHooks: PluginHookRegistration$1[];
channels: PluginChannelRegistration[];
channelSetups: PluginChannelSetupRegistration[];
providers: PluginProviderRegistration[];
modelCatalogProviders: PluginModelCatalogProviderRegistration[];
cliBackends?: PluginCliBackendRegistration[];
textTransforms: PluginTextTransformsRegistration[];
embeddingProviders: PluginEmbeddingProviderRegistration[];
speechProviders: PluginSpeechProviderRegistration[];
realtimeTranscriptionProviders: PluginRealtimeTranscriptionProviderRegistration[];
realtimeVoiceProviders: PluginRealtimeVoiceProviderRegistration[];
mediaUnderstandingProviders: PluginMediaUnderstandingProviderRegistration[];
transcriptSourceProviders: PluginTranscriptsSourceProviderRegistration[];
imageGenerationProviders: PluginImageGenerationProviderRegistration[];
videoGenerationProviders: PluginVideoGenerationProviderRegistration[];
musicGenerationProviders: PluginMusicGenerationProviderRegistration[];
webFetchProviders: PluginWebFetchProviderRegistration[];
webSearchProviders: PluginWebSearchProviderRegistration[];
migrationProviders: PluginMigrationProviderRegistration[];
codexAppServerExtensionFactories: PluginCodexAppServerExtensionFactoryRegistration[];
agentToolResultMiddlewares: PluginAgentToolResultMiddlewareRegistration[];
memoryEmbeddingProviders: PluginMemoryEmbeddingProviderRegistration[];
agentHarnesses: PluginAgentHarnessRegistration[];
gatewayHandlers: GatewayRequestHandlers;
gatewayMethodDescriptors: GatewayMethodDescriptor[];
coreGatewayMethodNames?: string[];
httpRoutes: PluginHttpRouteRegistration[];
hostedMediaResolvers?: PluginHostedMediaResolverRegistration[];
cliRegistrars: PluginCliRegistration[];
reloads?: PluginReloadRegistration[];
nodeHostCommands?: PluginNodeHostCommandRegistration[];
nodeInvokePolicies?: PluginNodeInvokePolicyRegistration[];
securityAuditCollectors?: PluginSecurityAuditCollectorRegistration[];
services: PluginServiceRegistration[];
gatewayDiscoveryServices: PluginGatewayDiscoveryServiceRegistration[];
commands: PluginCommandRegistration[];
sessionExtensions?: PluginSessionExtensionRegistryRegistration[];
trustedToolPolicies?: PluginTrustedToolPolicyRegistryRegistration[];
toolMetadata?: PluginToolMetadataRegistryRegistration[];
controlUiDescriptors?: PluginControlUiDescriptorRegistryRegistration[];
runtimeLifecycles?: PluginRuntimeLifecycleRegistryRegistration[];
agentEventSubscriptions?: PluginAgentEventSubscriptionRegistryRegistration[];
sessionSchedulerJobs?: PluginSessionSchedulerJobRegistryRegistration[];
sessionActions?: PluginSessionActionRegistryRegistration[];
conversationBindingResolvedHandlers: PluginConversationBindingResolvedHandlerRegistration[];
diagnostics: PluginDiagnostic[];
};
type PluginRegistryParams = {
logger: PluginLogger;
coreGatewayHandlers?: GatewayRequestHandlers;
coreGatewayMethodNames?: readonly string[];
runtime: PluginRuntime;
hostServices?: {
/** May be a live accessor; plugin APIs must read it at call time. */cron?: CronServiceContract;
};
activateGlobalSideEffects?: boolean;
};
//#endregion
export { PluginRegistry as n, PluginRegistryParams as r, PluginHttpRouteRegistration as t };