@agentman/chat-widget
Version:
Agentman Chat Widget for easy integration with web applications
67 lines (66 loc) • 2.12 kB
TypeScript
import type { Message, AgentMetadata } from "./types/types";
import type { PersistenceResult, PersistenceEventCallback, StorageInfo } from "./types/persistence-types";
import { StateManager } from "./StateManager";
export interface ConversationMeta {
id: string;
title: string;
lastUpdated: number;
metadata?: AgentMetadata;
}
export declare class PersistenceManager {
private containerId;
private stateManager;
private enabled;
private logger;
private eventCallbacks;
private inMemoryFallback;
private useInMemoryFallback;
constructor(containerId: string, stateManager: StateManager, enabled?: boolean, debugConfig?: boolean | import('./types/types').DebugConfig);
onPersistenceEvent(callback: PersistenceEventCallback): void;
private emitEvent;
private checkStorageAvailability;
private get indexKey();
private convKey;
getStorageKey(): string;
private readIndex;
private writeIndex;
private handleStorageError;
private getErrorMessage;
list(): ConversationMeta[];
getCurrentId(): string | undefined;
create(initialTitle?: string): string;
switchTo(id: string): void;
delete(id: string): void;
loadMessages(): Message[];
loadMetadata(): AgentMetadata | null;
saveMetadata(metadata: AgentMetadata): void;
/**
* Atomically save metadata to prevent corruption
*/
private saveMetadataAtomic;
/**
* Update index with metadata
*/
private updateIndexMetadata;
saveMessages(): PersistenceResult;
migrateLegacy(): void;
setConversationId(id: string): void;
getConversationId(): string | null;
clearStorage(): void;
/**
* Safely parse and validate conversation payload
*/
private parseAndValidatePayload;
/**
* Create default conversation payload
*/
private createDefaultPayload;
/**
* Get storage usage information
*/
getStorageInfo(): Promise<StorageInfo>;
/**
* Clear old conversations to free up space
*/
clearOldConversations(keepCount?: number): PersistenceResult<number>;
}