UNPKG

@tehreet/conduit

Version:

LLM API gateway with intelligent routing, robust process management, and health monitoring

86 lines 2.12 kB
import { EventEmitter } from 'events'; export interface UsageRecord { projectId: string; agentId: string; model: string; inputTokens: number; outputTokens: number; duration?: number; timestamp: string; cost?: number; } export interface CostReport { totalCost: number; costByModel: Record<string, number>; costByAgent: Record<string, number>; tokenUsage: { input: number; output: number; total: number; }; } export interface PerformanceMetrics { model: string; latency: number; tokensPerSecond: number; projectId: string; agentId: string; timestamp: string; } export declare class SynapseFeatures extends EventEmitter { private usageLogPath; private performanceLogPath; private telemetryEndpoint?; private modelPricing; constructor(config?: { dataDir?: string; telemetryEndpoint?: string; }); private ensureDataDir; /** * Track model usage for a request */ trackUsage(params: { projectId: string; agentId: string; model: string; inputTokens: number; outputTokens?: number; duration?: number; }): Promise<void>; /** * Get project costs for a time period */ getProjectCosts(projectId: string, since?: Date): Promise<CostReport>; /** * Record performance metrics */ recordPerformance(params: PerformanceMetrics): Promise<void>; /** * Query usage records */ private queryUsage; /** * Calculate cost for token usage */ private calculateCost; /** * Append record to NDJSON log file */ private appendToLog; /** * Send telemetry to Synapse */ private sendTelemetry; /** * Get usage statistics */ getStats(projectId?: string, days?: number): Promise<{ totalRequests: number; totalTokens: number; totalCost: number; averageTokensPerRequest: number; modelDistribution: Record<string, number>; }>; } //# sourceMappingURL=synapse-features.d.ts.map