UNPKG

@juspay/neurolink

Version:

Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio

78 lines (77 loc) 2.35 kB
/** * @file Observability Hooks * OpenTelemetry integration for evaluation tracing */ import type { EvaluationEvents, EvaluationSpanAttributes, EvaluationTraceContext, EventHandler, PipelineResult, ScoreResult } from "../../types/index.js"; /** * Observability hooks manager */ export declare class ObservabilityHooks { private _handlers; private _traceContext?; private _enabled; /** * Enable/disable observability */ set enabled(value: boolean); get enabled(): boolean; /** * Set trace context for all events */ setTraceContext(context: EvaluationTraceContext): void; /** * Clear trace context */ clearTraceContext(): void; /** * Get current trace context */ getTraceContext(): EvaluationTraceContext | undefined; /** * Register an event handler */ on<K extends keyof EvaluationEvents>(event: K, handler: EventHandler<EvaluationEvents[K]>): () => void; /** * Remove an event handler */ off<K extends keyof EvaluationEvents>(event: K, handler: EventHandler<EvaluationEvents[K]>): void; /** * Emit an event */ emit<K extends keyof EvaluationEvents>(event: K, data: Omit<EvaluationEvents[K], "traceContext">): Promise<void>; /** * Clear all handlers */ clear(): void; /** * Get handler count for an event */ listenerCount(event: keyof EvaluationEvents): number; } /** * Global observability hooks instance */ export declare const observabilityHooks: ObservabilityHooks; /** * Helper: Create a console logger hook */ export declare function createConsoleLoggerHook(): void; /** * Helper: Create a metrics collector hook * Accepts the actual MetricsCollector interface from reporting/metricsCollector */ export declare function createMetricsCollectorHook(collector: { recordScorer: (scorerId: string, scorerName: string, result: ScoreResult) => void; recordPipeline: (result: PipelineResult) => void; }): void; /** * OpenTelemetry span attributes */ /** * Create span attributes from scorer result */ export declare function scorerToSpanAttributes(result: ScoreResult): EvaluationSpanAttributes; /** * Create span attributes from pipeline result */ export declare function pipelineToSpanAttributes(result: PipelineResult): EvaluationSpanAttributes;