import type { MessengerAdapter, AgentAdapter } from './types.js'; import type { ACPAgentConfig } from '../plugins/agents/acp/types.js'; /** * Global registry for all adapters */ declare class PluginRegistry { private messengers; private agents; private agentAliases; registerMessenger(adapter: MessengerAdapter): void; registerAgent(adapter: AgentAdapter): void; getMessenger(name: string): MessengerAdapter | undefined; getAgent(name: string): AgentAdapter | undefined; findAgent(nameOrAlias: string): AgentAdapter | undefined; /** Resolve an agent by name or alias without applying the enabled-agent * filter. Use this only for diagnostics/user-facing hints; routing and * intent classification should continue to call findAgent(). */ findRegisteredAgent(nameOrAlias: string): AgentAdapter | undefined; listMessengers(): string[]; listAgents(): string[]; /** Visible-for-test escape hatch: list every registered agent regardless * of the enabled-list filter. Used by the SPA's "agent status" probe * that needs to render rows for ALL installed agents (the SPA itself * decides which are enabled visually). */ listAllAgents(): string[]; /** * Load ACP (remote) agents from config. Uses Promise.allSettled * for parallel loading so one slow endpoint doesn't block startup. * * Compliance gate: AGIM_ENABLE_REMOTE_AGENT must be '1' or the entire * call is a no-op. Logged at info level so an operator who flipped * config-on-disk without the env flag can see why nothing loaded. */ loadACPAgents(acpConfigs: ACPAgentConfig[]): Promise; /** * Discover ACP agents via `.well-known/acp` on each base URL, then * load every advertised agent through loadACPAgents(). Failures on * individual URLs are logged but don't fail the batch. * * Compliance gate: same AGIM_ENABLE_REMOTE_AGENT switch — skip the * discovery fetch entirely so disabled deployments don't even emit * `.well-known/acp` requests on the network. */ loadDiscoveredACPAgents(baseUrls: string[]): Promise; loadBuiltInPlugins(): Promise; } export declare const registry: PluginRegistry; /** Parse AGIM_PLATFORM_BLACKLIST → normalized Set with alias * expansion. Lowercase + trim each entry. Empty list (or unset env) * returns an empty Set. */ export declare function parsePlatformBlacklist(raw: string | undefined): Set; /** True iff `platform` is on the AGIM_PLATFORM_BLACKLIST env list. * Re-parses env on every call so a hot env-file update (PUT /api/env) * takes effect on the next adapter init without restart. */ export declare function isPlatformBlacklisted(platform: string): boolean; /** Return the current blacklist as an array for diagnostics / UI. */ export declare function getPlatformBlacklist(): string[]; export {}; //# sourceMappingURL=registry.d.ts.map