/** * Static Provider Registry (DESIGN.md §5, P2-05). * * The production registry is a static list of built-in Provider * Descriptors in canonical fallback order. It performs * NO dynamic imports, accepts no package names, file paths, or * externally supplied factories. Tests inject descriptor lists through * the explicit optional parameters of {@link getProviderDescriptor} and * {@link getConfiguredProviderDescriptors}; production uses the static * built-in list by default. * * Boundary rules (ARCHITECTURE.md §2): * - Imports the real Adapter Modules (`providers/zai/adapter.js`, * `providers/minimax/adapter.js`), NOT the P2-01 stubs in `types.ts`. * - Must NOT import command Modules, shared execution, or transport. */ import type { ProviderDescriptor, ProviderId } from "./types.js"; /** * Built-in Provider Descriptors in canonical order. Each Descriptor is * constructed once at module load with its production (no-argument) * factory; the Adapters bind their real transports lazily, only inside * Capability invocation. * * IO-FREE IMPORT INVARIANT (#159): module import constructs every * descriptor below, so a descriptor factory must perform NO filesystem * I/O and must not resolve environment-derived paths into strings at * construction time — a value like `asyncJobStateDir(...)` captured * here freezes against the import-time env and never sees a * `SCOUTLINE_CACHE_DIR` set later. Environment-derived defaults must * stay deferred pure computations, resolved inside `create()` (or * later). The spawn-based import canary in * `tests/async-job-state-lazy.test.js` pins the no-writes half of this * invariant; the lazy-resolution pins in the same file pin the * deferred-resolution half. */ export declare const BUILT_IN_PROVIDER_DESCRIPTORS: readonly ProviderDescriptor[]; /** * Look up a built-in Descriptor by ID. The optional `descriptors` * parameter lets tests inject doubles; production defaults to the * static built-in list. */ export declare function getProviderDescriptor(id: ProviderId, descriptors?: readonly ProviderDescriptor[]): ProviderDescriptor; /** * Return the built-in Descriptors that are configured for the given * environment. Pure metadata; no Adapter is constructed. */ export declare function getConfiguredProviderDescriptors(env: NodeJS.ProcessEnv, descriptors?: readonly ProviderDescriptor[]): readonly ProviderDescriptor[]; //# sourceMappingURL=registry.d.ts.map