import { EmbeddingModel, LanguageModel } from 'ai'; import { d as MemoryAdapterFactory } from '../../../types-B_kkAV7t.mjs'; import { D as DrizzleClientOptions } from '../../../client-BYVNvU5S.mjs'; import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core'; import 'drizzle-orm/postgres-js'; /** * Default long-term memory adapter — Postgres via Drizzle. * * Mirrors `createDrizzleChatStore`: a shared pool, a per-request user-bound * instance, security invariants upheld in every method (every query starts * scoped to (userId, agentId) — the boundary). Adds zero new runtime deps and * degrades gracefully: * • no embedding model → keyword (full-text) retrieval, no embeddings stored; * • no extraction model → heuristic extraction; * • no pgvector → still works (the embedding column stays NULL). */ interface DrizzleMemoryOptions { /** Agent namespace; scopes every query by (userId, agentId). Default 'default'. */ agentId?: string; /** Embedding model. Omit → keyword-only mode (no embeddings stored). */ embeddingModel?: EmbeddingModel; /** Extraction model. Omit → heuristic extraction (no extra model call). */ extractionModel?: LanguageModel; /** Retention TTL in days. Omit → keep forever. */ retentionDays?: number; /** Drizzle client options (connection string / pool size). */ client?: DrizzleClientOptions; } /** * Create a `MemoryAdapterFactory` backed by the default Drizzle/Postgres memory. * Pass to `createChatHandler({ memory: { adapter: createDrizzleMemory({...}) } })`. */ declare function createDrizzleMemory(opts?: DrizzleMemoryOptions): MemoryAdapterFactory; /** * Drizzle schema for the default long-term memory adapter (Postgres). * * As with the chat/knowledge schemas, this is NOT the public contract — the * `MemoryAdapter` interface is. It's exported so consumers on the default path * can run `drizzle-kit` against it. * * pgvector is OPTIONAL here. If the `vector` extension + an embedding model are * present, the adapter stores and ANN-searches embeddings; if not, it degrades * to Postgres full-text search over `text`. The `embedding` column is therefore * NULLABLE — one column, one code-path choice at construction. */ declare const memories: drizzle_orm_pg_core.PgTableWithColumns<{ name: "chat_memories"; schema: undefined; columns: { id: drizzle_orm_pg_core.PgColumn<{ name: "id"; tableName: "chat_memories"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; userId: drizzle_orm_pg_core.PgColumn<{ name: "user_id"; tableName: "chat_memories"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; agentId: drizzle_orm_pg_core.PgColumn<{ name: "agent_id"; tableName: "chat_memories"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; scope: drizzle_orm_pg_core.PgColumn<{ name: "scope"; tableName: "chat_memories"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; orgId: drizzle_orm_pg_core.PgColumn<{ name: "org_id"; tableName: "chat_memories"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; text: drizzle_orm_pg_core.PgColumn<{ name: "text"; tableName: "chat_memories"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; kind: drizzle_orm_pg_core.PgColumn<{ name: "kind"; tableName: "chat_memories"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; embedding: drizzle_orm_pg_core.PgColumn<{ name: string; tableName: "chat_memories"; dataType: "custom"; columnType: "PgCustomColumn"; data: number[]; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { pgColumnBuilderBrand: "PgCustomColumnBuilderBrand"; }>; contentHash: drizzle_orm_pg_core.PgColumn<{ name: "content_hash"; tableName: "chat_memories"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; sourceConversationId: drizzle_orm_pg_core.PgColumn<{ name: "source_conversation_id"; tableName: "chat_memories"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; metadata: drizzle_orm_pg_core.PgColumn<{ name: "metadata"; tableName: "chat_memories"; dataType: "json"; columnType: "PgJsonb"; data: Record; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: Record; }>; expiresAt: drizzle_orm_pg_core.PgColumn<{ name: "expires_at"; tableName: "chat_memories"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; createdAt: drizzle_orm_pg_core.PgColumn<{ name: "created_at"; tableName: "chat_memories"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; updatedAt: drizzle_orm_pg_core.PgColumn<{ name: "updated_at"; tableName: "chat_memories"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; }; dialect: "pg"; }>; type MemoryRow = typeof memories.$inferSelect; type NewMemoryRow = typeof memories.$inferInsert; type schema_MemoryRow = MemoryRow; type schema_NewMemoryRow = NewMemoryRow; declare const schema_memories: typeof memories; declare namespace schema { export { type schema_MemoryRow as MemoryRow, type schema_NewMemoryRow as NewMemoryRow, schema_memories as memories }; } export { type DrizzleMemoryOptions, type MemoryRow, type NewMemoryRow, createDrizzleMemory, schema };