mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-23 19:08:22 -06:00
e4d1b7e0d3
* refactor(plugins): move plugin contributions into the registry bundle * fix(plugins): guard embedding owner union and drop unused test-util imports * fix(plugins): break registry facade import cycles * fix(plugins): remove obsolete registry snapshot seams * test(gateway): preserve plugin runtime mock exports * test(auto-reply): install builder registry in diagnostics fixture * test(plugins): activate registry-backed capability fixtures
594 lines
21 KiB
TypeScript
594 lines
21 KiB
TypeScript
/** Shared registration types that make up the in-memory plugin registry. */
|
|
import type { AgentHarness } from "../agents/harness/types.js";
|
|
import type { GatewayMethodDescriptor } from "../gateway/methods/descriptor.js";
|
|
import type { GatewayRequestHandlers } from "../gateway/server-methods/types.js";
|
|
import type { InternalHookHandler } from "../hooks/internal-hook-types.js";
|
|
import type { HookEntry } from "../hooks/types.js";
|
|
import type { JsonSchemaObject } from "../shared/json-schema.types.js";
|
|
import type { DetachedTaskLifecycleRuntimeRegistration } from "../tasks/detached-task-runtime-contract.js";
|
|
import type {
|
|
AgentToolResultMiddleware,
|
|
AgentToolResultMiddlewareRuntime,
|
|
AgentToolResultMiddlewareScope,
|
|
} from "./agent-tool-result-middleware-types.js";
|
|
import type { CodexAppServerExtensionFactory } from "./codex-app-server-extension-types.js";
|
|
import type { PluginCompatCode } from "./compat/registry.js";
|
|
import type { PluginActivationSource } from "./config-state.js";
|
|
import type { EmbeddingProviderAdapter } from "./embedding-provider-types.js";
|
|
import type {
|
|
PluginAgentEventSubscriptionRegistration,
|
|
PluginControlUiDescriptor,
|
|
PluginRuntimeLifecycleRegistration,
|
|
PluginSessionActionRegistration,
|
|
PluginSessionSchedulerJobRegistration,
|
|
PluginSessionExtensionRegistration,
|
|
PluginToolMetadataRegistration,
|
|
PluginTrustedToolPolicyRegistration,
|
|
} from "./host-hooks.js";
|
|
import type { PluginManifestRecord } from "./manifest-registry.js";
|
|
import type {
|
|
PluginBundleFormat,
|
|
PluginConfigUiHint,
|
|
PluginDiagnostic,
|
|
PluginFormat,
|
|
} from "./manifest-types.js";
|
|
import type {
|
|
PluginManifestContracts,
|
|
PluginManifestDashboard,
|
|
PluginManifestDashboardActionVerb,
|
|
PluginManifestDashboardDataBinding,
|
|
PluginManifestMcpServer,
|
|
} from "./manifest.js";
|
|
import type { PluginKind } from "./plugin-kind.types.js";
|
|
import type {
|
|
ContextEngineRegistration,
|
|
MemoryCorpusSupplementRegistration,
|
|
MemoryEmbeddingProviderAdapter,
|
|
MemoryPluginCapabilityRegistration,
|
|
MemoryPromptPreparationRegistration,
|
|
MemoryPromptSupplementRegistration,
|
|
RegisteredCompactionProvider,
|
|
ResolvedPluginRuntimeArtifact,
|
|
SessionDiscussionProvider,
|
|
} from "./registry-contribution-types.js";
|
|
import type { PluginRuntime } from "./runtime/types.js";
|
|
import type { SessionCatalogProvider } from "./session-catalog.js";
|
|
import type { PluginDependencyStatus } from "./status-dependencies-core.js";
|
|
import type {
|
|
OpenClawPluginHttpRouteAuth,
|
|
OpenClawPluginHttpRouteUpgradeHandler,
|
|
} from "./types.js";
|
|
import type { PluginMcpServerConnectionResolverRegistration } from "./types.mcp-connection.js";
|
|
type ChannelPlugin = import("../channels/plugins/types.plugin.js").ChannelPlugin;
|
|
type CliBackendPlugin = import("./types.js").CliBackendPlugin;
|
|
type ImageGenerationProviderPlugin = import("./types.js").ImageGenerationProviderPlugin;
|
|
type MediaUnderstandingProviderPlugin = import("./types.js").MediaUnderstandingProviderPlugin;
|
|
type TranscriptSourceProvider = import("./types.js").TranscriptSourceProvider;
|
|
type MusicGenerationProviderPlugin = import("./types.js").MusicGenerationProviderPlugin;
|
|
type OpenClawPluginCliRootCommandDescriptor =
|
|
import("./types.js").OpenClawPluginCliRootCommandDescriptor;
|
|
type OpenClawPluginCliRegistrar = import("./types.js").OpenClawPluginCliRegistrar;
|
|
type OpenClawPluginCommandDefinition = import("./types.js").OpenClawPluginCommandDefinition;
|
|
type PluginInteractiveHandlerRegistration =
|
|
import("./types.js").PluginInteractiveHandlerRegistration;
|
|
type OpenClawPluginGatewayRuntimeScopeSurface =
|
|
import("./types.js").OpenClawPluginGatewayRuntimeScopeSurface;
|
|
type OpenClawGatewayDiscoveryService = import("./types.js").OpenClawGatewayDiscoveryService;
|
|
type OpenClawPluginHttpRouteHandler = import("./types.js").OpenClawPluginHttpRouteHandler;
|
|
type OpenClawPluginHttpRouteMatch = import("./types.js").OpenClawPluginHttpRouteMatch;
|
|
type OpenClawPluginHostedMediaResolver = import("./types.js").OpenClawPluginHostedMediaResolver;
|
|
type OpenClawPluginReloadRegistration = import("./types.js").OpenClawPluginReloadRegistration;
|
|
type OpenClawPluginSecurityAuditCollector =
|
|
import("./types.js").OpenClawPluginSecurityAuditCollector;
|
|
type OpenClawPluginService = import("./types.js").OpenClawPluginService;
|
|
type OpenClawPluginToolFactory = import("./types.js").OpenClawPluginToolFactory;
|
|
type PluginConversationBindingResolvedEvent =
|
|
import("./types.js").PluginConversationBindingResolvedEvent;
|
|
type TypedPluginHookRegistration = import("./types.js").PluginHookRegistration;
|
|
type PluginLogger = import("./types.js").PluginLogger;
|
|
type PluginOrigin = import("./types.js").PluginOrigin;
|
|
type PluginTextTransformRegistration = import("./types.js").PluginTextTransformRegistration;
|
|
type MigrationProviderPlugin = import("./types.js").MigrationProviderPlugin;
|
|
type ProviderPlugin = import("./types.js").ProviderPlugin;
|
|
type RealtimeTranscriptionProviderPlugin = import("./types.js").RealtimeTranscriptionProviderPlugin;
|
|
type RealtimeVoiceProviderPlugin = import("./types.js").RealtimeVoiceProviderPlugin;
|
|
type SpeechProviderPlugin = import("./types.js").SpeechProviderPlugin;
|
|
type VideoGenerationProviderPlugin = import("./types.js").VideoGenerationProviderPlugin;
|
|
type WebFetchProviderPlugin = import("./types.js").WebFetchProviderPlugin;
|
|
type WebSearchProviderPlugin = import("./types.js").WebSearchProviderPlugin;
|
|
type WorkerProvider = import("./types.js").WorkerProvider;
|
|
type UnifiedModelCatalogProviderPlugin = import("./types.js").UnifiedModelCatalogProviderPlugin;
|
|
|
|
/** Agent tool factory registered by one plugin runtime. */
|
|
export type PluginToolRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
factory: OpenClawPluginToolFactory;
|
|
names: string[];
|
|
declaredNames?: string[];
|
|
optional: boolean;
|
|
/** Loader-owned provenance. Missing values are conservative legacy registrations. */
|
|
origin?: PluginOrigin;
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
type PluginCliRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
register: OpenClawPluginCliRegistrar;
|
|
parentPath: string[];
|
|
commands: string[];
|
|
descriptors: OpenClawPluginCliRootCommandDescriptor[];
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
|
|
/** Gateway HTTP route registered by a plugin runtime. */
|
|
export 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;
|
|
};
|
|
|
|
export type PluginChannelRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
plugin: ChannelPlugin;
|
|
/** Loader-owned provenance. Missing values are conservative legacy registrations. */
|
|
origin?: PluginOrigin;
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
|
|
type PluginChannelSetupRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
plugin: ChannelPlugin;
|
|
/** Loader-owned provenance. Missing values are conservative legacy registrations. */
|
|
origin?: PluginOrigin;
|
|
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 PluginSessionCatalogRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
provider: SessionCatalogProvider;
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
|
|
export type PluginDashboardDataBindingRegistration = PluginManifestDashboardDataBinding & {
|
|
pluginId: string;
|
|
capabilityId: string;
|
|
handler: GatewayRequestHandlers[string];
|
|
};
|
|
|
|
export type PluginDashboardActionVerbRegistration = PluginManifestDashboardActionVerb & {
|
|
pluginId: string;
|
|
capabilityId: string;
|
|
handler: GatewayRequestHandlers[string];
|
|
};
|
|
|
|
type PluginCliBackendRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
builtWithOpenClawVersion?: string;
|
|
backend: CliBackendPlugin;
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
|
|
export 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 PluginWorkerProviderRegistration = PluginOwnedProviderRegistration<WorkerProvider>;
|
|
type PluginMigrationProviderRegistration = PluginOwnedProviderRegistration<MigrationProviderPlugin>;
|
|
type PluginMemoryEmbeddingProviderRegistration =
|
|
PluginOwnedProviderRegistration<MemoryEmbeddingProviderAdapter>;
|
|
type PluginCodexAppServerExtensionFactoryRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
rawFactory: CodexAppServerExtensionFactory;
|
|
factory: CodexAppServerExtensionFactory;
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
export type PluginAgentToolResultMiddlewareRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
rawHandler: AgentToolResultMiddleware;
|
|
handler: AgentToolResultMiddleware;
|
|
runtimes: AgentToolResultMiddlewareRuntime[];
|
|
scopes?: AgentToolResultMiddlewareScope[];
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
export type PluginAgentToolResultMiddlewareOwner = {
|
|
pluginId: string;
|
|
runtimes: AgentToolResultMiddlewareRuntime[];
|
|
manifest: PluginManifestRecord;
|
|
};
|
|
type PluginAgentHarnessRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
harness: AgentHarness;
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
|
|
type PluginHookRegistration = {
|
|
pluginId: string;
|
|
entry: HookEntry;
|
|
events: string[];
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
|
|
export type PluginServiceRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
service: OpenClawPluginService;
|
|
source: string;
|
|
origin: PluginOrigin;
|
|
trustedOfficialInstall?: boolean;
|
|
rootDir?: string;
|
|
};
|
|
|
|
export type PluginGatewayDiscoveryServiceRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
service: OpenClawGatewayDiscoveryService;
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
|
|
type PluginReloadRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
registration: OpenClawPluginReloadRegistration;
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
|
|
export type PluginNodeHostCommandRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
command: import("./types.js").OpenClawPluginNodeHostCommand;
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
|
|
type PluginNodeInvokePolicyRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
policy: import("./types.js").OpenClawPluginNodeInvokePolicy;
|
|
pluginConfig?: Record<string, unknown>;
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
|
|
type PluginSecurityAuditCollectorRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
collector: OpenClawPluginSecurityAuditCollector;
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
|
|
export type PluginCommandRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
command: OpenClawPluginCommandDefinition;
|
|
source: string;
|
|
rootDir?: string;
|
|
trustedOwnerStatusExposure?: true;
|
|
};
|
|
|
|
type PluginLegacyInternalHookRegistration = {
|
|
pluginId: string;
|
|
name: string;
|
|
event: string;
|
|
handler: InternalHookHandler;
|
|
};
|
|
|
|
type PluginSessionDiscussionRegistration = {
|
|
pluginId: string;
|
|
provider: SessionDiscussionProvider;
|
|
};
|
|
|
|
type PluginInteractiveHandlerRegistryRegistration = PluginInteractiveHandlerRegistration & {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
pluginRoot?: string;
|
|
};
|
|
|
|
type PluginSessionExtensionRegistryRegistration = {
|
|
pluginId: string;
|
|
pluginName?: string;
|
|
extension: PluginSessionExtensionRegistration;
|
|
source: string;
|
|
rootDir?: string;
|
|
};
|
|
|
|
export 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;
|
|
};
|
|
|
|
export 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;
|
|
};
|
|
|
|
export type PluginRecord = {
|
|
id: string;
|
|
name: string;
|
|
packageVersion?: string;
|
|
version?: string;
|
|
builtWithOpenClawVersion?: 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;
|
|
dashboard?: PluginManifestDashboard;
|
|
mcpServers?: Record<string, PluginManifestMcpServer>;
|
|
memorySlotSelected?: boolean;
|
|
dependencyStatus?: PluginDependencyStatus;
|
|
};
|
|
|
|
export type PluginRegistry = {
|
|
plugins: PluginRecord[];
|
|
tools: PluginToolRegistration[];
|
|
hooks: PluginHookRegistration[];
|
|
typedHooks: TypedPluginHookRegistration[];
|
|
channels: PluginChannelRegistration[];
|
|
channelSetups: PluginChannelSetupRegistration[];
|
|
providers: PluginProviderRegistration[];
|
|
modelCatalogProviders: PluginModelCatalogProviderRegistration[];
|
|
sessionCatalogs: PluginSessionCatalogRegistration[];
|
|
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[];
|
|
workerProviders: Map<string, PluginWorkerProviderRegistration>;
|
|
migrationProviders: PluginMigrationProviderRegistration[];
|
|
codexAppServerExtensionFactories: PluginCodexAppServerExtensionFactoryRegistration[];
|
|
agentToolResultMiddlewareOwners: PluginAgentToolResultMiddlewareOwner[];
|
|
agentToolResultMiddlewares: PluginAgentToolResultMiddlewareRegistration[];
|
|
memoryEmbeddingProviders: PluginMemoryEmbeddingProviderRegistration[];
|
|
agentHarnesses: PluginAgentHarnessRegistration[];
|
|
pluginRuntimeArtifacts: Map<string, ResolvedPluginRuntimeArtifact>;
|
|
compactionProviders: RegisteredCompactionProvider[];
|
|
detachedTaskRuntimes: DetachedTaskLifecycleRuntimeRegistration[];
|
|
legacyInternalHooks: PluginLegacyInternalHookRegistration[];
|
|
memoryCapabilities: MemoryPluginCapabilityRegistration[];
|
|
memoryCorpusSupplements: MemoryCorpusSupplementRegistration[];
|
|
memoryPromptPreparations: MemoryPromptPreparationRegistration[];
|
|
memoryPromptSupplements: MemoryPromptSupplementRegistration[];
|
|
sessionDiscussionProviders: Map<string, PluginSessionDiscussionRegistration>;
|
|
contextEngines: Map<string, ContextEngineRegistration>;
|
|
commandRegistryLocked: boolean;
|
|
gatewayHandlers: GatewayRequestHandlers;
|
|
gatewayMethodDescriptors: GatewayMethodDescriptor[];
|
|
dashboardDataBindings: Map<string, PluginDashboardDataBindingRegistration>;
|
|
dashboardActionVerbs: Map<string, PluginDashboardActionVerbRegistration>;
|
|
coreGatewayMethodNames: string[];
|
|
httpRoutes: PluginHttpRouteRegistration[];
|
|
hostedMediaResolvers: PluginHostedMediaResolverRegistration[];
|
|
mcpServerConnectionResolvers: PluginMcpServerConnectionResolverRegistration[];
|
|
cliRegistrars: PluginCliRegistration[];
|
|
reloads: PluginReloadRegistration[];
|
|
nodeHostCommands: PluginNodeHostCommandRegistration[];
|
|
nodeInvokePolicies: PluginNodeInvokePolicyRegistration[];
|
|
securityAuditCollectors: PluginSecurityAuditCollectorRegistration[];
|
|
services: PluginServiceRegistration[];
|
|
gatewayDiscoveryServices: PluginGatewayDiscoveryServiceRegistration[];
|
|
commands: PluginCommandRegistration[];
|
|
interactiveHandlers: PluginInteractiveHandlerRegistryRegistration[];
|
|
sessionExtensions: PluginSessionExtensionRegistryRegistration[];
|
|
trustedToolPolicies: PluginTrustedToolPolicyRegistryRegistration[];
|
|
toolMetadata: PluginToolMetadataRegistryRegistration[];
|
|
controlUiDescriptors: PluginControlUiDescriptorRegistryRegistration[];
|
|
runtimeLifecycles: PluginRuntimeLifecycleRegistryRegistration[];
|
|
agentEventSubscriptions: PluginAgentEventSubscriptionRegistryRegistration[];
|
|
sessionSchedulerJobs: PluginSessionSchedulerJobRegistryRegistration[];
|
|
sessionActions: PluginSessionActionRegistryRegistration[];
|
|
conversationBindingResolvedHandlers: PluginConversationBindingResolvedHandlerRegistration[];
|
|
diagnostics: PluginDiagnostic[];
|
|
};
|
|
|
|
export 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?: import("../cron/service-contract.js").CronServiceContract;
|
|
};
|
|
activateGlobalSideEffects?: boolean;
|
|
};
|