/** * AdapterRegistry interface and implementation for @a5c-ai/agent-mux. * * @see 05-adapter-system.md ยง5 */ import type { AgentName } from './types.js'; import type { AgentCapabilities, InstallMethod } from './capabilities.js'; import type { AgentAdapter, AgentAdapterInfo, InstalledAgentInfo } from './adapter.js'; /** * Registry of agent adapters. Manages discovery, detection, capability * queries, and plugin adapter registration. */ export interface AdapterRegistry { /** Returns metadata for all registered adapters. Synchronous. */ list(): AgentAdapterInfo[]; /** Detects all registered agents and returns installation status. */ installed(): Promise; /** Detects whether a specific agent is installed. */ detect(agent: AgentName): Promise; /** Returns the capabilities manifest for a specific agent. */ capabilities(agent: AgentName): AgentCapabilities; /** Returns platform-specific installation instructions for an agent. */ installInstructions(agent: AgentName, platform?: NodeJS.Platform): InstallMethod[]; /** Retrieves the adapter instance for a given agent. */ get(agent: AgentName): AgentAdapter | undefined; /** Registers a new adapter or replaces an existing one. */ register(adapter: AgentAdapter): void; /** Removes an adapter from the registry. */ unregister(agent: AgentName): void; } /** * Map-based implementation of AdapterRegistry. */ export declare class AdapterRegistryImpl implements AdapterRegistry { private readonly _adapters; private readonly _detectCache; /** * Registers an adapter as a built-in. Same as register() but marks * the source as 'built-in'. */ registerBuiltIn(adapter: AgentAdapter): void; list(): AgentAdapterInfo[]; installed(): Promise; detect(agent: AgentName): Promise; capabilities(agent: AgentName): AgentCapabilities; installInstructions(agent: AgentName, platform?: NodeJS.Platform): InstallMethod[]; get(agent: AgentName): AgentAdapter | undefined; register(adapter: AgentAdapter): void; unregister(agent: AgentName): void; private _validateAdapter; }