contextual-agent-sdk
Version:
SDK for building AI agents with seamless voice-text context switching
58 lines • 1.79 kB
TypeScript
import { SessionState } from './index';
export interface StorageProvider {
createSession(sessionId: string, session: SessionState): Promise<void>;
getSession(sessionId: string): Promise<SessionState | null>;
updateSession(sessionId: string, session: SessionState): Promise<void>;
deleteSession(sessionId: string): Promise<boolean>;
getSessions(filter?: SessionFilter): Promise<SessionState[]>;
deleteSessions(filter?: SessionFilter): Promise<number>;
cleanup(maxAge: number): Promise<void>;
healthCheck(): Promise<boolean>;
getStats(): Promise<StorageStats>;
shutdown(): Promise<void>;
}
export interface SessionFilter {
userId?: string;
modality?: 'text' | 'voice';
startTime?: {
from?: Date;
to?: Date;
};
lastActivity?: {
from?: Date;
to?: Date;
};
}
export interface StorageStats {
totalSessions: number;
activeSessionsLast24h: number;
averageSessionDuration: number;
modalityDistribution: {
text: number;
voice: number;
};
storageSize: number;
}
export interface StorageConfig {
url?: string;
maxConnections?: number;
timeout?: number;
retryAttempts?: number;
username?: string;
password?: string;
ssl?: boolean;
certPath?: string;
cacheSize?: number;
compressionEnabled?: boolean;
maxAge?: number;
cleanupInterval?: number;
}
export type StorageEventType = 'session_created' | 'session_updated' | 'session_deleted' | 'cleanup_started' | 'cleanup_completed' | 'error';
export type StorageEvent = {
type: StorageEventType;
sessionId?: string;
deletedCount?: number;
error?: Error;
};
export type StorageEventHandler = (event: StorageEvent) => void;
//# sourceMappingURL=storage.d.ts.map