Skip to Content
SdkReactInternalInterfacesUseChatStorageOptions

UseChatStorageOptions

Defined in: src/react/useChatStorage.ts:255 

Options for useChatStorage hook (React version)

Extends base options with apiType support.

Extends

  • BaseUseChatStorageOptions

Properties

apiType?

optional apiType: ApiType

Defined in: src/react/useChatStorage.ts:261 

Which API endpoint to use. Default: “responses”

  • “responses”: OpenAI Responses API (supports thinking, reasoning, conversations)
  • “completions”: OpenAI Chat Completions API (wider model compatibility)

autoCreateConversation?

optional autoCreateConversation: boolean

Defined in: src/lib/db/chat/types.ts:241 

Automatically create a new conversation if none is set (default: true)

Inherited from

BaseUseChatStorageOptions.autoCreateConversation


autoEmbedMessages?

optional autoEmbedMessages: boolean

Defined in: src/lib/db/chat/types.ts:294 

Automatically generate embeddings for messages after saving. Enables semantic search over past conversations via searchMessages().

Default

true

Inherited from

BaseUseChatStorageOptions.autoEmbedMessages


autoFlushOnKeyAvailable?

optional autoFlushOnKeyAvailable: boolean

Defined in: src/react/useChatStorage.ts:310 

Automatically flush queued operations when the encryption key becomes available. Requires enableQueue to be true.

Default

true

baseUrl?

optional baseUrl: string

Defined in: src/lib/db/chat/types.ts:247 

Base URL for the chat API endpoint

Inherited from

BaseUseChatStorageOptions.baseUrl


conversationId?

optional conversationId: string

Defined in: src/lib/db/chat/types.ts:239 

ID of an existing conversation to load and continue

Inherited from

BaseUseChatStorageOptions.conversationId


database

database: Database

Defined in: src/lib/db/chat/types.ts:237 

WatermelonDB database instance for storing conversations and messages

Inherited from

BaseUseChatStorageOptions.database


defaultConversationTitle?

optional defaultConversationTitle: string

Defined in: src/lib/db/chat/types.ts:243 

Title for auto-created conversations (default: “New conversation”)

Inherited from

BaseUseChatStorageOptions.defaultConversationTitle


embeddedWalletSigner?

optional embeddedWalletSigner: EmbeddedWalletSignerFn

Defined in: src/react/useChatStorage.ts:288 

Function for silent signing with Privy embedded wallets. When provided, enables automatic encryption key derivation without user confirmation modals.


embeddingModel?

optional embeddingModel: string

Defined in: src/lib/db/chat/types.ts:299 

Embedding model to use when autoEmbedMessages is enabled.

Default

DEFAULT_API_EMBEDDING_MODEL

Inherited from

BaseUseChatStorageOptions.embeddingModel


enableQueue?

optional enableQueue: boolean

Defined in: src/react/useChatStorage.ts:303 

Enable the in-memory write queue for operations when encryption key isn’t yet available. When enabled, operations are held in memory and flushed to encrypted storage once the key becomes available.

Default

true

fileProcessingOptions?

optional fileProcessingOptions: object

Defined in: src/lib/db/chat/types.ts:271 

Options for file preprocessing behavior

keepOriginalFiles?

optional keepOriginalFiles: boolean

Whether to keep original file attachments (default: true)

maxFileSizeBytes?

optional maxFileSizeBytes: number

Max file size to process in bytes (default: 10MB)

onError()?

optional onError: (fileName: string, error: Error) => void

Callback for errors (non-fatal)

Parameters

ParameterType

fileName

string

error

Error

Returns

void

onProgress()?

optional onProgress: (current: number, total: number, fileName: string) => void

Callback for progress updates

Parameters

ParameterType

current

number

total

number

fileName

string

Returns

void

Inherited from

BaseUseChatStorageOptions.fileProcessingOptions


fileProcessors?

optional fileProcessors: any[] | null

Defined in: src/lib/db/chat/types.ts:267 

File preprocessors to use for automatic text extraction.

  • undefined (default): Use all built-in processors (PDF, Excel, Word)
  • null or []: Disable preprocessing
  • FileProcessor[]: Use specific processors

Inherited from

BaseUseChatStorageOptions.fileProcessors


getToken()?

optional getToken: () => Promise<string | null>

Defined in: src/lib/db/chat/types.ts:245 

Function to retrieve the auth token for API requests

Returns

Promise<string | null>

Inherited from

BaseUseChatStorageOptions.getToken


getWalletAddress()?

optional getWalletAddress: () => Promise<string | null>

Defined in: src/react/useChatStorage.ts:295 

Async function that returns the wallet address when available. Used for polling during Privy embedded wallet initialization. When the wallet isn’t ready yet, should return null.

Returns

Promise<string | null>


minContentLength?

optional minContentLength: number

Defined in: src/lib/db/chat/types.ts:305 

Minimum content length required to generate embeddings. Messages shorter than this are skipped as they provide limited semantic value.

Default

10

Inherited from

BaseUseChatStorageOptions.minContentLength


onData()?

optional onData: (chunk: string) => void

Defined in: src/lib/db/chat/types.ts:249 

Callback invoked with each streamed response chunk

Parameters

ParameterType

chunk

string

Returns

void

Inherited from

BaseUseChatStorageOptions.onData


onError()?

optional onError: (error: Error) => void

Defined in: src/lib/db/chat/types.ts:255 

Callback invoked when an error occurs during the request

Parameters

ParameterType

error

Error

Returns

void

Inherited from

BaseUseChatStorageOptions.onError


onFinish()?

optional onFinish: (response: LlmapiResponseResponse) => void

Defined in: src/lib/db/chat/types.ts:253 

Callback invoked when the response completes successfully

Parameters

ParameterType

response

LlmapiResponseResponse

Returns

void

Inherited from

BaseUseChatStorageOptions.onFinish


onServerToolCall()?

optional onServerToolCall: (toolCall: ServerToolCallEvent) => void

Defined in: src/lib/db/chat/types.ts:260 

Callback invoked when a server-side tool (MCP) is called during streaming. Use this to show activity indicators like “Searching…” in the UI.

Parameters

ParameterType

toolCall

ServerToolCallEvent

Returns

void

Inherited from

BaseUseChatStorageOptions.onServerToolCall


onThinking()?

optional onThinking: (chunk: string) => void

Defined in: src/lib/db/chat/types.ts:251 

Callback invoked when thinking/reasoning content is received (from <think> tags or API reasoning)

Parameters

ParameterType

chunk

string

Returns

void

Inherited from

BaseUseChatStorageOptions.onThinking


serverTools?

optional serverTools: object

Defined in: src/lib/db/chat/types.ts:285 

Configuration for server-side tools fetching and caching. Server tools are fetched from /api/v1/tools and cached in localStorage.

cacheExpirationMs?

optional cacheExpirationMs: number

Cache expiration time in milliseconds (default: 86400000 = 1 day)

Inherited from

BaseUseChatStorageOptions.serverTools


signMessage?

optional signMessage: SignMessageFn

Defined in: src/react/useChatStorage.ts:281 

Function to sign a message for encryption key derivation. Typically from Privy’s useSignMessage hook. Required together with walletAddress for field-level encryption.


walletAddress?

optional walletAddress: string

Defined in: src/react/useChatStorage.ts:274 

Wallet address for encrypted file storage and field-level encryption. When provided with signMessage, all sensitive message content, conversation titles, and media metadata are encrypted at rest using AES-GCM with wallet-derived keys.

Requires:

  • OPFS browser support (for file storage)
  • signMessage function (for encryption key derivation)

When not provided, data is stored in plaintext (backwards compatible).

Last updated on