/** * Capability Registry — 宿主能力协商 + Provider 管理 * FR-I01, FR-I02 */ export type HostCapabilityName = 'llm' | 'network' | 'file-read' | 'file-write' | 'tool-exec'; export type ProviderCapability = 'text-generation' | 'embedding' | 'structured-output'; export type ProviderSelectionStrategy = 'priority' | 'round-robin'; export interface HostCapabilityDeclaration { name: HostCapabilityName; version: string; contract: string; available: boolean; metadata?: Record; } export interface HostCapabilityChangeEvent { capability: HostCapabilityDeclaration; changedAt: Date; } export interface RegisteredProvider { id: string; capabilities: ProviderCapability[]; priority?: number; available: boolean; metadata?: Record; } export interface CapabilityRegistryOptions { selectionStrategy?: ProviderSelectionStrategy; } export declare class CapabilityRegistry { private readonly capabilities; private readonly providers; private readonly listeners; private selectionCursor; private selectionStrategy; constructor(options?: CapabilityRegistryOptions); registerHostCapabilities(capabilities: HostCapabilityDeclaration[]): void; listCapabilities(): HostCapabilityDeclaration[]; getCapability(name: HostCapabilityName): HostCapabilityDeclaration | null; updateCapability(name: HostCapabilityName, patch: Partial): Promise; onCapabilityChange(handler: (event: HostCapabilityChangeEvent) => void | Promise): void; offCapabilityChange(handler: (event: HostCapabilityChangeEvent) => void | Promise): void; registerProvider(provider: RegisteredProvider): void; updateProviderAvailability(providerId: string, available: boolean): void; listProviders(): RegisteredProvider[]; selectProvider(capability: ProviderCapability): RegisteredProvider | null; resolveActivatedDomains(): { dictionary: boolean; pipeline: boolean; artifactReview: boolean; conflictDetection: 'full' | 'degraded'; }; private emitCapabilityChange; } //# sourceMappingURL=capability-registry.d.ts.map