/** * Concrete, dependency-free HTTP providers. * * Provider responses are parsed here, but their JSON-schema contract is still * enforced by `generateValidated` in provider.ts. Network redirects are * manual, credentials are endpoint-bound, and response bodies are bounded * before parsing. */ import { type ProviderConfigV1 } from "../config/config.ts"; import { type ProviderAdapter, type ProviderCapabilitiesV1, type ProviderGenerationRequestV1, type ProviderGenerationResultV1 } from "./provider.ts"; export type ProviderFetch = (url: string, init: RequestInit) => Promise; export type ProviderHostnameResolver = (hostname: string) => Promise; export interface HttpProviderRuntimeOptions { /** Trusted test seam. Production uses the DNS-pinned HTTP(S) transport. */ fetch?: ProviderFetch; /** Injected in tests; production resolves every destination before use. */ resolveHostname?: ProviderHostnameResolver; /** A credential source. Values are never persisted or placed in errors. */ env?: Readonly>; requestIdFactory?: () => string; maxResponseBytes?: number; } export declare class OpenAIResponsesProvider implements ProviderAdapter { #private; readonly name = "openai"; readonly capabilities: Readonly; constructor(config: ProviderConfigV1, runtimeOptions?: HttpProviderRuntimeOptions); maximumRequestCostUsd(request: ProviderGenerationRequestV1): number; generate(request: ProviderGenerationRequestV1): Promise; } export declare class OllamaProvider implements ProviderAdapter { #private; readonly name = "ollama"; readonly capabilities: Readonly; constructor(config: ProviderConfigV1, runtimeOptions?: HttpProviderRuntimeOptions); maximumRequestCostUsd(request: ProviderGenerationRequestV1): number; generate(request: ProviderGenerationRequestV1): Promise; } export declare function createOpenAIProvider(config: ProviderConfigV1, runtimeOptions?: HttpProviderRuntimeOptions): OpenAIResponsesProvider; export declare function createOllamaProvider(config: ProviderConfigV1, runtimeOptions?: HttpProviderRuntimeOptions): OllamaProvider; //# sourceMappingURL=adapters.d.ts.map