/** * @license * Copyright 2026 Alibaba Group Holding Limited * SPDX-License-Identifier: Apache-2.0 */ import { DatabaseSync } from 'node:sqlite'; import type { MemoryLogger } from './config.js'; import { type LiveMessageKey } from '../i18n/messages.js'; export type MemoryKind = 'dialogue' | 'env'; export interface MemoryLibrary { version: number; id: string; name: string; created_at: string; updated_at: string; } export interface MemoryLibrarySummary extends MemoryLibrary { n_segments?: number; n_sessions?: number; n_sessions_inactive?: number; } export interface StoredVector { refId: number; vector: Float32Array; } export declare class MemoryStoreError extends Error { readonly messageKey: LiveMessageKey; constructor(messageKey: LiveMessageKey); } export declare class MemoryLibraryNotFound extends MemoryStoreError { } export declare class MemoryValidationError extends MemoryStoreError { } export declare function validateLibraryId(value: unknown): string; export declare function normalizeLibraryName(value: unknown): string; export declare class MemoryStore { readonly directory: string; readonly defaultId: string; readonly log: MemoryLogger; private readonly connections; private closed; constructor(options: { directory: string; defaultId: string; log?: MemoryLogger; }); private libraryDirectory; private assertOpen; private assertLibraryDirectory; exists(id: string): boolean; ensureDefault(): MemoryLibrary; ensureLibrary(id: string): MemoryLibrary; getLibrary(id: string): MemoryLibrary; createLibrary(name?: unknown, id?: string): MemoryLibrary; renameLibrary(id: string, name: unknown): MemoryLibrary; touchLibrary(id: string): void; private writeMeta; listLibraries(): MemoryLibrarySummary[]; database(id: string): DatabaseSync; listLibrarySessions(id: string): Array>; deactivateSession(id: string, sessionId: string, reason?: string): boolean; deactivateSessionEverywhere(sessionId: string): string[]; reactivateSession(id: string, sessionId: string): boolean; writeVector(id: string, kind: MemoryKind, refId: number, vector: ArrayLike, model: string): boolean; vectorRows(id: string, kind: MemoryKind, model: string): StoredVector[]; missingVectorSegments(id: string, model: string, limit?: number): Array<{ id: number; body: string; }>; lastConsolidation(id: string): Record | null; close(): void; }