capsule-ai-cli
Version:
The AI Model Orchestrator - Intelligent multi-model workflows with device-locked licensing
32 lines • 1.52 kB
TypeScript
import { ModelProvider, Message, CompletionOptions, CompletionResponse, StreamChunk, Usage, Cost } from '../types/index.js';
export declare abstract class BaseProvider implements ModelProvider {
abstract name: string;
abstract models: string[];
abstract supportsStreaming: boolean;
abstract supportsTools: boolean;
protected apiKey: string;
protected baseUrl?: string;
constructor(apiKey: string, baseUrl?: string);
abstract complete(messages: Message[], options?: CompletionOptions): Promise<CompletionResponse>;
stream(_messages: Message[], _options?: CompletionOptions): AsyncIterableIterator<StreamChunk>;
abstract calculateCost(usage: Usage, model?: string): Cost;
protected countTokens(text: string): number;
protected validateMessages(messages: Message[]): void;
protected getTextContent(message: Message): string;
protected hasMultimodalContent(message: Message): boolean;
protected supportsVision(_model: string): boolean;
formatTools?(tools: any[]): any[];
parseToolCalls?(_response: any): any[] | undefined;
protected handleRateLimit(retryAfter: number): Promise<void>;
}
export declare class ProviderRegistry {
private providers;
register(provider: BaseProvider): void;
get(name: string): BaseProvider | undefined;
list(): string[];
getModels(): Record<string, string[]>;
clear(name: string): void;
clearAll(): void;
}
export declare const providerRegistry: ProviderRegistry;
//# sourceMappingURL=base.d.ts.map