UNPKG

@juspay/neurolink

Version:

The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002

47 lines (46 loc) • 2.01 kB
/** * Telemetry Handler Module * * Handles analytics, evaluation and performance metrics. * Extracted from BaseProvider to follow Single Responsibility Principle. * * Responsibilities: * - Analytics creation and tracking * - Evaluation generation * - Performance metrics recording * - Cost calculation * * @module core/modules/TelemetryHandler */ import type { NeuroLink } from "../../neurolink.js"; import type { StreamOptions, AIProviderName, AnalyticsData, EnhancedGenerateResult, EvaluationData, MemoryToolCallRecord, MemoryToolResultRecord, RawUsageObject, TextGenerationOptions, TokenUsage } from "../../types/index.js"; /** * TelemetryHandler class - Handles analytics and telemetry for AI providers */ export declare class TelemetryHandler { private readonly providerName; private readonly modelName; private readonly neurolink?; constructor(providerName: AIProviderName, modelName: string, neurolink?: NeuroLink | undefined); /** * Create analytics for a generation result */ createAnalytics(result: EnhancedGenerateResult, responseTime: number, context?: Record<string, unknown>): Promise<AnalyticsData>; /** * Create evaluation for a generation result */ createEvaluation(result: EnhancedGenerateResult, options: TextGenerationOptions): Promise<EvaluationData>; /** * Record performance metrics for a generation */ recordPerformanceMetrics(usage: RawUsageObject | undefined, responseTime: number): Promise<void>; /** * Estimate cost only from known per-model rates. Unknown pricing remains * absent from cost metrics instead of using another model's default rate. */ calculateActualCost(usage: TokenUsage): Promise<number | undefined>; /** * Handle tool execution storage if available */ handleToolExecutionStorage(toolCalls: MemoryToolCallRecord[], toolResults: MemoryToolResultRecord[], options: TextGenerationOptions | StreamOptions, currentTime: Date): Promise<void>; }