donobu
Version:
Create browser automations with an LLM agent and replay them as Playwright scripts.
37 lines • 1.56 kB
TypeScript
import type { GptConfigInput } from '../models/GptConfig';
import type { GptClient } from './GptClient';
import { GptClientPluginRegistry } from './GptClientPlugin';
/**
* Interface for creating GPT clients from configuration objects.
* This allows for dependency injection and easier testing.
*/
export interface GptClientFactory {
/**
* Creates and validates a GPT client from the given configuration.
* @param config The GPT configuration to create a client from
* @returns A validated GPT client instance
* @throws Error if the configuration is invalid or the client cannot be created
*/
createClient(config: GptConfigInput): Promise<GptClient>;
}
/**
* Default implementation of GptClientFactory that creates GPT clients
* based on configuration and validates them by performing a ping.
*
* Built-in types are handled directly; unknown types are delegated to
* the GPT client plugin registry.
*/
export declare class GptClientFactoryImpl implements GptClientFactory {
private readonly gptClientPlugins;
constructor(gptClientPlugins?: GptClientPluginRegistry);
createClient(config: GptConfigInput): Promise<GptClient>;
/**
* Resolves the correct GptClient implementation for the given config.
* Built-in config types (matching {@link GptConfigSchema}) are handled
* by known implementations; everything else is delegated to the
* GPT client plugin registry.
*/
private resolveClient;
private createBuiltInClient;
}
//# sourceMappingURL=GptClientFactory.d.ts.map