/** * Core type definitions for model-orch-sdk * Production-grade type system with strict typing */ export declare enum ModelProvider { OPENAI = "openai", ANTHROPIC = "anthropic", GOOGLE = "google", AZURE = "azure", COHERE = "cohere", HUGGINGFACE = "huggingface", CUSTOM = "custom" } export declare enum RoutingStrategy { ROUND_ROBIN = "round_robin", WEIGHTED = "weighted", CONDITIONAL = "conditional", CONFIDENCE_CASCADE = "confidence_cascade", COST_OPTIMIZED = "cost_optimized", LATENCY_OPTIMIZED = "latency_optimized", ENSEMBLE = "ensemble", CANARY = "canary" } export declare enum ModelStatus { ACTIVE = "active", INACTIVE = "inactive", ERROR = "error" } export interface ChatMessage { role: 'system' | 'user' | 'assistant'; content: string; name?: string; } export interface ChatCompletionRequest { messages: ChatMessage[]; model?: string; temperature?: number; max_tokens?: number; top_p?: number; frequency_penalty?: number; presence_penalty?: number; stop?: string | string[]; stream?: boolean; user?: string; } export interface ChatCompletionResponse { id: string; object: 'chat.completion'; created: number; model: string; choices: Array<{ index: number; message: ChatMessage; finish_reason: 'stop' | 'length' | 'content_filter' | null; }>; usage: { prompt_tokens: number; completion_tokens: number; total_tokens: number; }; metadata?: { provider: string; latency_ms: number; cost_usd: number; }; } export interface StreamChunk { id: string; object: 'chat.completion.chunk'; created: number; model: string; choices: Array<{ index: number; delta: { role?: 'assistant'; content?: string; }; finish_reason: 'stop' | 'length' | null; }>; } export interface ModelConfig { id: string; name: string; provider: ModelProvider; api_key?: string; api_base?: string; max_tokens: number; cost_per_1k_prompt_tokens: number; cost_per_1k_completion_tokens: number; context_window: number; supports_streaming: boolean; supports_function_calling: boolean; avg_latency_ms?: number; weight?: number; conditions?: Record; metadata?: Record; } export interface ModelConnector { model: ModelConfig; weight?: number; priority?: number; max_requests_per_minute?: number; timeout_ms?: number; retry_config?: RetryConfig; } export interface RetryConfig { max_attempts: number; initial_delay_ms: number; max_delay_ms: number; backoff_multiplier: number; } export interface RoutingPolicy { id: string; name: string; strategy: RoutingStrategy; models: ModelConfig[]; fallback_models?: ModelConfig[]; canary_config?: CanaryConfig; rules?: RoutingRule[]; version?: number; sticky_sessions?: boolean; confidence_threshold?: number; ensemble_size?: number; ensemble_aggregation?: 'voting' | 'confidence_weighted' | 'ranker' | 'synthesizer'; synthesizer_model?: ModelConfig; } export interface CanaryConfig { canary_model: string; canary_percentage: number; success_threshold: number; evaluation_period_minutes: number; } export interface RoutingRule { condition: { field: string; operator: 'eq' | 'ne' | 'gt' | 'lt' | 'contains'; value: string | number; }; target_model: string; } export interface RoutingContext { request_id?: string; user_id?: string; session_id?: string; organization_id?: string; project_id?: string; budget?: { max_cost_usd?: number; max_latency_ms?: number; max_tokens?: number; }; enable_safety_filter?: boolean; enable_pii_detection?: boolean; metadata?: Record; } export interface RequestMetrics { request_id: string; timestamp: Date; model: string; provider: string; latency_ms: number; prompt_tokens: number; completion_tokens: number; cost_usd: number; success: boolean; error?: string; } export interface HealthCheck { model_id: string; status: 'healthy' | 'degraded' | 'down'; last_check: Date; response_time_ms: number; error_rate: number; } export interface APIError { code: string; message: string; status: number; type: 'authentication_error' | 'rate_limit_error' | 'api_error' | 'invalid_request_error'; param?: string; } export interface ClientOptions { api_key?: string; base_url?: string; timeout?: number; max_retries?: number; default_headers?: Record; organization?: string; project?: string; } export interface ProjectConfig { id: string; name: string; description?: string; default_policy?: string; rate_limits?: { requests_per_minute: number; requests_per_day: number; }; cost_limits?: { daily_budget_usd: number; monthly_budget_usd: number; }; } //# sourceMappingURL=types.d.ts.map