@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
TypeScript
/**
* 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>;
}