UNPKG

@dooor-ai/toolkit

Version:

Guards, Evals & Observability for AI applications - works seamlessly with LangChain/LangGraph

87 lines 3.12 kB
import { TraceData } from "../core/types"; /** * Interface for observability backends */ export interface ObservabilityBackend { logTrace(trace: TraceData): void | Promise<void>; updateTrace(traceId: string, updates: Partial<TraceData>): void | Promise<void>; logError(error: Error, context?: Record<string, any>): void | Promise<void>; logMetric(name: string, value: number, tags?: Record<string, string>): void | Promise<void>; } /** * Console-based observability backend for development */ export declare class ConsoleBackend implements ObservabilityBackend { private verbose; constructor(verbose?: boolean); logTrace(trace: TraceData): void; logError(error: Error, context?: Record<string, any>): void; updateTrace(traceId: string, updates: Partial<TraceData>): Promise<void>; logMetric(name: string, value: number, tags?: Record<string, string>): void; } /** * CortexDB-based observability backend for production * Saves traces, evals, and guard blocks to CortexDB */ export declare class CortexDBBackend implements ObservabilityBackend { private project?; constructor(project?: string); logTrace(trace: TraceData): Promise<void>; logError(error: Error, context?: Record<string, any>): Promise<void>; updateTrace(traceId: string, updates: Partial<TraceData>): Promise<void>; logMetric(name: string, value: number, tags?: Record<string, string>): Promise<void>; } /** * Observability collector that manages trace data */ export declare class ObservabilityCollector { private backend; private enabled; constructor(backend?: ObservabilityBackend, enabled?: boolean); logTrace(trace: TraceData): Promise<void>; updateTrace(traceId: string, updates: Partial<TraceData>): Promise<void>; logError(error: Error, context?: Record<string, any>): void; logMetric(name: string, value: number, tags?: Record<string, string>): void; setEnabled(enabled: boolean): void; isEnabled(): boolean; } export interface LogTraceOptions { /** * Reuse an existing collector. If provided, backend/enabled/project options are ignored. */ collector?: ObservabilityCollector; /** * Custom backend implementation (Console, CortexDB, etc). */ backend?: ObservabilityBackend; /** * Convenience project name when instantiating a CortexDB backend automatically. */ project?: string; /** * Allows disabling logging without removing the helper. */ enabled?: boolean; } /** * Convenience helper for manual integrations (e.g., HTTP fetch calls). * * Example: * ```ts * configureCortexDBFromConnectionString(process.env.CORTEXDB!); * await logTrace( * { * traceId: crypto.randomUUID(), * input: prompt, * output: response, * model: "claude-3-sonnet", * latency, * tokens: { prompt: 100, completion: 200, total: 300 }, * timestamp: new Date(), * }, * { project: "vaultly-api" } * ); * ``` */ export declare function logTrace(trace: TraceData, options?: LogTraceOptions): Promise<void>; //# sourceMappingURL=logger.d.ts.map