@dooor-ai/toolkit
Version:
Guards, Evals & Observability for AI applications - works seamlessly with LangChain/LangGraph
87 lines • 3.12 kB
TypeScript
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