/** * SQLite Database Adapter * Persistent storage using SQLite for sessions, messages, and runs */ export interface SQLiteConfig { filename: string; verbose?: boolean; } export interface DbMessage { id: string; sessionId: string; role: 'user' | 'assistant' | 'system' | 'tool'; content: string; toolCalls?: string; createdAt: number; metadata?: string; } export interface DbRun { id: string; sessionId: string; agentId?: string; status: 'pending' | 'running' | 'completed' | 'failed'; input?: string; output?: string; error?: string; startedAt: number; completedAt?: number; metadata?: string; } export interface DbTrace { id: string; runId: string; spanId: string; parentSpanId?: string; name: string; type: string; startedAt: number; completedAt?: number; attributes?: string; status?: string; } /** * SQLite Adapter - Uses better-sqlite3 for synchronous operations * Falls back to sql.js for browser compatibility */ export declare class SQLiteAdapter { private db; private filename; private verbose; private initialized; constructor(config: SQLiteConfig); initialize(): Promise; private createTables; createSession(id: string, metadata?: Record): Promise; getSession(id: string): Promise; addMessage(message: DbMessage): Promise; getMessages(sessionId: string, limit?: number): Promise; createRun(run: DbRun): Promise; updateRun(id: string, updates: Partial): Promise; getRun(id: string): Promise; addTrace(trace: DbTrace): Promise; getTraces(runId: string): Promise; close(): Promise; clear(): Promise; } export declare function createSQLiteAdapter(config: SQLiteConfig): SQLiteAdapter;