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