Skip to content

Chat SQLite

Defined in: chat/sqlite/provider-store.ts:25

Provider storage interface for server-side provider management

new SQLiteProviderStore(db): SQLiteProviderStore

Defined in: chat/sqlite/provider-store.ts:28

Database

SQLiteProviderStore

create(config): Promise<void>

Defined in: chat/sqlite/provider-store.ts:33

Create a new provider. Generates UUID if id not set on config.

ProviderConfig

Promise<void>

IProviderStore.create

delete(id): Promise<void>

Defined in: chat/sqlite/provider-store.ts:61

Delete a provider by id.

string

Promise<void>

IProviderStore.delete

get(id): Promise<ProviderConfig | null>

Defined in: chat/sqlite/provider-store.ts:40

Get a provider by id. Returns null if not found.

string

Promise<ProviderConfig | null>

IProviderStore.get

list(): Promise<ProviderConfig[]>

Defined in: chat/sqlite/provider-store.ts:65

List all providers.

Promise<ProviderConfig[]>

IProviderStore.list

update(id, changes): Promise<void>

Defined in: chat/sqlite/provider-store.ts:45

Update an existing provider. Throws if not found.

string

Partial<Omit<ProviderConfig, "id" | "createdAt">>

Promise<void>

IProviderStore.update


Defined in: chat/sqlite/session-store.ts:61

Full session store interface — union of reader and writer. Backward-compatible: all existing implementations continue to work.

const store = new InMemorySessionStore();
const session = await store.createSession({ config: { model: "gpt-4", backend: "vercel-ai" } });
await store.appendMessage(session.id, message);
const page = await store.loadMessages(session.id, { limit: 20, offset: 0 });

new SQLiteSessionStore(db): SQLiteSessionStore

Defined in: chat/sqlite/session-store.ts:64

Database

SQLiteSessionStore

appendMessage(sessionId, message): Promise<void>

Defined in: chat/sqlite/session-store.ts:137

ChatId

ChatMessage

Promise<void>

IChatSessionStore.appendMessage

clear(): Promise<void>

Defined in: chat/sqlite/session-store.ts:243

Promise<void>

IChatSessionStore.clear

count(): Promise<number>

Defined in: chat/sqlite/session-store.ts:239

Promise<number>

IChatSessionStore.count

createSession(options?): Promise<ChatSession<Record<string, unknown>>>

Defined in: chat/sqlite/session-store.ts:71

CreateSessionOptions = {}

Promise<ChatSession<Record<string, unknown>>>

IChatSessionStore.createSession

deleteSession(id): Promise<void>

Defined in: chat/sqlite/session-store.ts:132

ChatId

Promise<void>

IChatSessionStore.deleteSession

getSession(id): Promise<ChatSession<Record<string, unknown>> | null>

Defined in: chat/sqlite/session-store.ts:94

ChatId

Promise<ChatSession<Record<string, unknown>> | null>

IChatSessionStore.getSession

listSessions(options?): Promise<ChatSession<Record<string, unknown>>[]>

Defined in: chat/sqlite/session-store.ts:102

SessionListOptions

Promise<ChatSession<Record<string, unknown>>[]>

IChatSessionStore.listSessions

loadMessages(sessionId, options?): Promise<PaginatedMessages>

Defined in: chat/sqlite/session-store.ts:187

ChatId

number

number

Promise<PaginatedMessages>

IChatSessionStore.loadMessages

saveMessages(sessionId, messages): Promise<void>

Defined in: chat/sqlite/session-store.ts:161

ChatId

ChatMessage<unknown>[]

Promise<void>

IChatSessionStore.saveMessages

searchSessions(options): Promise<ChatSession<Record<string, unknown>>[]>

Defined in: chat/sqlite/session-store.ts:212

SessionSearchOptions

Promise<ChatSession<Record<string, unknown>>[]>

IChatSessionStore.searchSessions

updateConfig(id, config): Promise<void>

Defined in: chat/sqlite/session-store.ts:122

ChatId

Partial<ChatSessionConfig>

Promise<void>

IChatSessionStore.updateConfig

updateTitle(id, title): Promise<void>

Defined in: chat/sqlite/session-store.ts:115

ChatId

string

Promise<void>

IChatSessionStore.updateTitle


Defined in: chat/sqlite/token-store.ts:24

Token storage interface for server-side token management

new SQLiteTokenStore(db): SQLiteTokenStore

Defined in: chat/sqlite/token-store.ts:27

Database

SQLiteTokenStore

clear(provider): Promise<void>

Defined in: chat/sqlite/token-store.ts:44

Remove a specific provider’s token.

string

Promise<void>

ITokenStore.clear

clearAll(): Promise<void>

Defined in: chat/sqlite/token-store.ts:48

Remove all stored tokens.

Promise<void>

ITokenStore.clearAll

list(): Promise<string[]>

Defined in: chat/sqlite/token-store.ts:52

List provider names that have saved tokens.

Promise<string[]>

ITokenStore.list

load(provider): Promise<AuthToken | null>

Defined in: chat/sqlite/token-store.ts:39

Load a previously saved token. Returns null if not found.

string

Promise<AuthToken | null>

ITokenStore.load

save(provider, token): Promise<void>

Defined in: chat/sqlite/token-store.ts:32

Save a token for a provider. Overwrites if exists.

string

AuthToken

Promise<void>

ITokenStore.save

Defined in: chat/sqlite/migrations.ts:17

description: string

Defined in: chat/sqlite/migrations.ts:21

Human-readable description

up: (db) => void

Defined in: chat/sqlite/migrations.ts:23

DDL statements to apply. Runs inside a transaction.

Database

void

version: number

Defined in: chat/sqlite/migrations.ts:19

Sequential version number (1-based)


Defined in: chat/sqlite/factory.ts:35

db: Database

Defined in: chat/sqlite/factory.ts:37

The underlying better-sqlite3 Database instance

providerStore: IProviderStore

Defined in: chat/sqlite/factory.ts:41

Provider store for provider configurations

sessionStore: IChatSessionStore

Defined in: chat/sqlite/factory.ts:39

Session store for chat sessions and messages

tokenStore: ITokenStore

Defined in: chat/sqlite/factory.ts:43

Token store for auth tokens


Defined in: chat/sqlite/factory.ts:28

optional db: Database

Defined in: chat/sqlite/factory.ts:32

Optional pre-created Database instance. If provided, dbPath is ignored.

dbPath: string

Defined in: chat/sqlite/factory.ts:30

Path to SQLite database file. Use “:memory:” for in-memory database.

const migrations: readonly Migration[]

Defined in: chat/sqlite/migrations.ts:42

Migration registry. Append new migrations here. Version numbers must be sequential (1, 2, 3, …).

createSQLiteStorage(pathOrOptions): SQLiteStorage

Defined in: chat/sqlite/factory.ts:59

Create all three SQLite stores sharing a single database.

Requires better-sqlite3 as a peer dependency. Schema tables are auto-created on first use.

Database file path string, or options object

string | SQLiteStorageOptions

SQLiteStorage

Object with db, sessionStore, providerStore, tokenStore

If better-sqlite3 is not installed


getSchemaVersion(db): number

Defined in: chat/sqlite/migrations.ts:102

Get current schema version (0 if no migrations applied).

Database

number


runMigrations(db): void

Defined in: chat/sqlite/migrations.ts:117

Apply pending migrations sequentially. Each runs in a transaction.

Safe to call multiple times — already-applied migrations are skipped. For existing databases without schema_version table, detects current tables and fast-forwards to the matching version.

Database

void