@callmedayz/ai-prompt-toolkit
Version:
Professional AI prompt engineering toolkit with advanced template features, real-time dashboards, conditional logic, template inheritance, live monitoring, OpenRouter integration, and 310+ model support
108 lines • 3.47 kB
TypeScript
import { OpenRouterAPIConfig, OpenRouterCompletionRequest, OpenRouterCompletionResponse, OpenRouterTokenizeRequest, OpenRouterTokenizeResponse } from './types';
import { RetryConfig } from './error-handling';
import { RateLimitConfig, QuotaConfig } from './rate-limiting';
/**
* OpenRouter API client for making authenticated requests
*/
export declare class OpenRouterClient {
private config;
private retryConfig;
private circuitBreaker;
private rateLimiter?;
private quotaManager?;
constructor(config: OpenRouterAPIConfig, retryConfig?: Partial<RetryConfig>, rateLimitConfig?: RateLimitConfig, quotaConfig?: QuotaConfig);
/**
* Make a completion request to OpenRouter
*/
completion(request: OpenRouterCompletionRequest): Promise<OpenRouterCompletionResponse>;
/**
* Make a streaming completion request to OpenRouter
*/
completionStream(request: OpenRouterCompletionRequest): Promise<ReadableStream<string>>;
/**
* Get token count for text using OpenRouter's completion API
* This makes a minimal completion request to get accurate token counts
*/
tokenize(request: OpenRouterTokenizeRequest): Promise<OpenRouterTokenizeResponse>;
/**
* Get available models from OpenRouter
*/
getModels(): Promise<any>;
/**
* Get generation details including native token counts
*/
getGeneration(id: string): Promise<any>;
/**
* Make an authenticated request to OpenRouter API with enhanced error handling
*/
private makeRequest;
/**
* Parse Server-Sent Events stream from OpenRouter
*/
private createStreamParser;
/**
* Test the API connection and authentication
*/
testConnection(): Promise<boolean>;
/**
* Get API key from environment or throw error
*/
static getApiKeyFromEnv(): string;
/**
* Get circuit breaker status
*/
getCircuitBreakerStatus(): {
state: string;
failures: number;
lastFailureTime: number;
};
/**
* Update retry configuration
*/
updateRetryConfig(config: Partial<RetryConfig>): void;
/**
* Get current retry configuration
*/
getRetryConfig(): RetryConfig;
/**
* Estimate tokens for a request (rough estimation)
*/
private estimateTokens;
/**
* Estimate cost for a request (very rough estimation)
*/
private estimateCost;
/**
* Calculate actual cost from response
*/
private calculateActualCost;
/**
* Record usage in rate limiter and quota manager
*/
private recordUsage;
/**
* Get rate limiting status
*/
getRateLimitStatus(): import("./rate-limiting").UsageStats | undefined;
/**
* Get quota status
*/
getQuotaStatus(): import("./rate-limiting").QuotaUsage | undefined;
/**
* Get quota alerts
*/
getQuotaAlerts(): import("./rate-limiting").QuotaAlert[];
/**
* Enable rate limiting
*/
enableRateLimiting(config: RateLimitConfig): void;
/**
* Enable quota management
*/
enableQuotaManagement(config: QuotaConfig): void;
/**
* Create a client instance using environment variables
*/
static fromEnv(config?: Partial<OpenRouterAPIConfig>, retryConfig?: Partial<RetryConfig>, rateLimitConfig?: RateLimitConfig, quotaConfig?: QuotaConfig): OpenRouterClient;
}
//# sourceMappingURL=openrouter-client.d.ts.map