/** * TencentDB Agent Memory v2 TypeScript SDK — `MemoryClient`. * * 14 methods mapping 1:1 to the v2 data-plane API. */ import type { AtomicUpdateData, AtomicUpdateRequest, AtomicCountRequest, AtomicDeleteData, AtomicDeleteRequest, AtomicQueryData, AtomicQueryRequest, AtomicSearchData, AtomicSearchRequest, ConversationAddData, ConversationAddRequest, ConversationCountRequest, ConversationDeleteData, ConversationDeleteRequest, ConversationQueryData, ConversationQueryRequest, ConversationSearchData, ConversationSearchRequest, CoreCountRequest, CoreFile, CoreReadRequest, CoreWriteData, CoreWriteRequest, CountData, OffloadCompactData, OffloadCompactRequest, OffloadIngestData, OffloadIngestRequest, OffloadQueryMmdData, OffloadQueryMmdRequest, ScenarioCountRequest, ScenarioFile, ScenarioListData, ScenarioListRequest, ScenarioReadRequest, ScenarioRmRequest, ScenarioWriteData, ScenarioWriteRequest } from "./types.js"; export interface MemoryClientConfig { /** Base URL, e.g. `https://memory.tencentyun.com` */ endpoint: string; /** Bearer token */ apiKey: string; /** Memory instance ID (sent via `x-tdai-service-id` header). */ serviceId: string; /** Request timeout in ms (default 30 000). */ timeout?: number; /** Whether to reject invalid TLS certificates. Default: false (self-signed friendly). */ rejectUnauthorized?: boolean; } /** * Transport interface for testing — inject a mock that satisfies this. */ export interface Transport { post(path: string, body?: Record): Promise; } export declare class MemoryClient { private readonly http; private readonly config; constructor(config: MemoryClientConfig); constructor(transport: Transport); addConversation(params: ConversationAddRequest): Promise; queryConversation(params?: ConversationQueryRequest): Promise; searchConversation(params: ConversationSearchRequest): Promise; deleteConversation(params: ConversationDeleteRequest): Promise; countConversation(params?: ConversationCountRequest): Promise; updateAtomic(params: AtomicUpdateRequest): Promise; queryAtomic(params?: AtomicQueryRequest): Promise; searchAtomic(params: AtomicSearchRequest): Promise; deleteAtomic(params: AtomicDeleteRequest): Promise; countAtomic(params?: AtomicCountRequest): Promise; listScenarios(params?: ScenarioListRequest): Promise; readScenario(params: ScenarioReadRequest): Promise; writeScenario(params: ScenarioWriteRequest): Promise; rmScenario(params: ScenarioRmRequest): Promise; countScenario(params?: ScenarioCountRequest): Promise; readCore(params?: CoreReadRequest): Promise; writeCore(params: CoreWriteRequest): Promise; countCore(params?: CoreCountRequest): Promise; /** * Send tool pairs (+ optional context) to offload server for L1 processing. * Fire-and-forget usage: caller can `.catch()` without blocking. */ offloadIngest(params: OffloadIngestRequest): Promise; /** * Request server-side context compaction. * Returns compacted messages + report, or throws on failure. */ offloadCompact(params: OffloadCompactRequest): Promise; /** * Query MMD task graphs for a session. * limit=1 returns only the current active MMD (fast path). */ offloadQueryMmd(params: OffloadQueryMmdRequest): Promise; /** * Read a memory pipeline artifact (e.g. `persona.md`, `scene_blocks/*.md`) * by relative path. * * @param path Relative path within the memory space, e.g. * `"scene_blocks/cooking-recipes.md"` or `"persona.md"`. * @returns File content as string. */ readFile(path: string): Promise; private fileReader; }