Skip to Content

ChatStorageAdapter

Defined in: src/lib/storage/ChatStorageAdapter.ts:95 

Backend-agnostic interface for chat/conversation storage.

The method set mirrors the operations we actually use across the SDK: *Op functions in src/lib/db/chat/operations.ts plus the observe* patterns used by react hooks. Targeted updates (e.g., updateMessageError) are exposed as separate methods rather than a generic update() because several of them have special semantics (encryption bypass for embeddings, unique constraints on feedback, etc).

Methods

clearMessages()

clearMessages(conversationId: string): Promise<void>

Defined in: src/lib/storage/ChatStorageAdapter.ts:142 

Clears all messages in a conversation (used for the “clear chat” action).

Parameters

ParameterType

conversationId

string

Returns

Promise<void>


createConversation()

createConversation(options?: CreateConversationOptions): Promise<StoredConversation>

Defined in: src/lib/storage/ChatStorageAdapter.ts:102 

Parameters

ParameterType

options?

CreateConversationOptions

Returns

Promise<StoredConversation>


createMessage()

createMessage(options: CreateMessageOptions): Promise<StoredMessage>

Defined in: src/lib/storage/ChatStorageAdapter.ts:123 

Parameters

ParameterType

options

CreateMessageOptions

Returns

Promise<StoredMessage>


deleteConversation()

deleteConversation(conversationId: string): Promise<boolean>

Defined in: src/lib/storage/ChatStorageAdapter.ts:113 

Soft delete. Implementations are responsible for cascading to messages/media.

Parameters

ParameterType

conversationId

string

Returns

Promise<boolean>


getAllFiles()

getAllFiles(): Promise<StoredFileWithContext[]>

Defined in: src/lib/storage/ChatStorageAdapter.ts:148 

Returns

Promise<StoredFileWithContext[]>


getConversation()

getConversation(conversationId: string): Promise<StoredConversation | null>

Defined in: src/lib/storage/ChatStorageAdapter.ts:98 

Parameters

ParameterType

conversationId

string

Returns

Promise<StoredConversation | null>


getConversations()

getConversations(options?: ConversationQueryOptions): Promise<StoredConversation[]>

Defined in: src/lib/storage/ChatStorageAdapter.ts:100 

Parameters

ParameterType

options?

ConversationQueryOptions

Returns

Promise<StoredConversation[]>


getMessages()

getMessages(conversationId: string): Promise<StoredMessage[]>

Defined in: src/lib/storage/ChatStorageAdapter.ts:121 

Parameters

ParameterType

conversationId

string

Returns

Promise<StoredMessage[]>


observeConversations()

observeConversations(options?: ConversationQueryOptions): ChatStorageObservable<StoredConversation[]>

Defined in: src/lib/storage/ChatStorageAdapter.ts:115 

Parameters

ParameterType

options?

ConversationQueryOptions

Returns

ChatStorageObservable<StoredConversation[]>


observeMessages()

observeMessages(conversationId: string): ChatStorageObservable<StoredMessage[]>

Defined in: src/lib/storage/ChatStorageAdapter.ts:144 

Parameters

ParameterType

conversationId

string

Returns

ChatStorageObservable<StoredMessage[]>


updateConversationPinned()

updateConversationPinned(conversationId: string, pinned: boolean): Promise<boolean>

Defined in: src/lib/storage/ChatStorageAdapter.ts:110 

Pin or unpin a conversation. Pinning stamps pinnedAt; list queries are NOT reordered — consumers sort pinned chats first using pinnedAt.

Parameters

ParameterType

conversationId

string

pinned

boolean

Returns

Promise<boolean>


updateConversationProject()

updateConversationProject(conversationId: string, projectId: string | null): Promise<boolean>

Defined in: src/lib/storage/ChatStorageAdapter.ts:106 

Parameters

ParameterType

conversationId

string

projectId

string | null

Returns

Promise<boolean>


updateConversationTitle()

updateConversationTitle(conversationId: string, title: string): Promise<boolean>

Defined in: src/lib/storage/ChatStorageAdapter.ts:104 

Parameters

ParameterType

conversationId

string

title

string

Returns

Promise<boolean>


updateMessageChunks()

updateMessageChunks(uniqueId: string, chunks: MessageChunk[], embeddingModel: string): Promise<StoredMessage | null>

Defined in: src/lib/storage/ChatStorageAdapter.ts:131 

Parameters

ParameterType

uniqueId

string

chunks

MessageChunk[]

embeddingModel

string

Returns

Promise<StoredMessage | null>


updateMessageEmbedding()

updateMessageEmbedding(uniqueId: string, vector: number[], embeddingModel: string): Promise<StoredMessage | null>

Defined in: src/lib/storage/ChatStorageAdapter.ts:125 

Parameters

ParameterType

uniqueId

string

vector

number[]

embeddingModel

string

Returns

Promise<StoredMessage | null>


updateMessageError()

updateMessageError(uniqueId: string, error: string): Promise<StoredMessage | null>

Defined in: src/lib/storage/ChatStorageAdapter.ts:137 

Parameters

ParameterType

uniqueId

string

error

string

Returns

Promise<StoredMessage | null>


updateMessageFeedback()

updateMessageFeedback(uniqueId: string, feedback: MessageFeedback): Promise<StoredMessage | null>

Defined in: src/lib/storage/ChatStorageAdapter.ts:139 

Parameters

ParameterType

uniqueId

string

feedback

MessageFeedback

Returns

Promise<StoredMessage | null>


write()

write<T>(fn: (adapter: ChatStorageAdapter) => Promise<T>): Promise<T>

Defined in: src/lib/storage/ChatStorageAdapter.ts:160 

Run a set of mutations inside a single write transaction. Any mutation calls made on the adapter inside the callback are grouped into one atomic write on backends that support it.

On backends without transaction support, this may fall back to sequential writes. Implementations must document the guarantee they provide.

Type Parameters

Type Parameter

T

Parameters

ParameterType

fn

(adapter: ChatStorageAdapter) => Promise<T>

Returns

Promise<T>

Last updated on