DatabaseChat
Reference

API Reference

Component endpoints and React exports.

Component functions

FunctionTypeDescription
conversations.createMutationCreate a new conversation
conversations.getQueryGet conversation by ID
conversations.getForExternalIdQueryGet conversation by ID scoped to externalId
conversations.listQueryList conversations by externalId
messages.addMutationAdd a message
messages.listQueryList messages in a conversation (bounded limit)
messages.listForExternalIdQueryList messages scoped to externalId
messages.getLatestQueryGet latest message
messages.getLatestForExternalIdQueryGet latest message scoped to externalId
stream.createMutationCreate a new stream for delta-based streaming
stream.addDeltaMutationAdd a delta to a stream (returns boolean)
stream.finishMutationFinish a stream and clean up deltas
stream.abortMutationAbort a stream by stream ID
stream.abortByConversationMutationAbort a stream by conversation ID
stream.abortForExternalIdMutationAbort a stream by conversation ID scoped to externalId
stream.getStreamQueryGet current stream state for a conversation
stream.getStreamForExternalIdQueryGet current stream state scoped to externalId
stream.listDeltasQueryGet deltas from a cursor position
stream.listDeltasForExternalIdQueryGet deltas scoped to externalId
chat.sendActionSend a message via OpenRouter
chat.sendForExternalIdActionSend a message scoped to externalId

Stream types

StreamState.status values:

  • streaming
  • finished
  • aborted

StreamPart.type values:

  • text-delta
  • tool-call
  • tool-result
  • error

Message limits

messages.list and messages.listForExternalId clamp limit to 1..1000 and default to 100 when omitted.

React exports

Exported from @dayhaysoos/convex-database-chat:

  • DatabaseChatProvider
  • useDatabaseChat
  • useConversations
  • useStreamingContent
  • useMessagesWithStreaming
  • useSmoothText
  • SmoothText

Types:

  • DatabaseChatApi
  • DatabaseChatProviderProps
  • Message
  • StreamState
  • StreamDelta
  • StreamPart
  • UseDatabaseChatOptions
  • UseDatabaseChatReturn
  • UseConversationsOptions
  • UseConversationsReturn
  • UseSmoothTextOptions
  • SmoothTextProps

Backend-safe exports

These subpaths avoid importing the React entrypoint from Convex functions.

@dayhaysoos/convex-database-chat/resultContract

  • DatabaseChatToolResult<Row>
  • DatabaseChatResultMeta
  • DatabaseChatScope
  • DatabaseChatResultValidationError
  • validateToolResultContract(result)
  • isDatabaseChatToolResult(result)

@dayhaysoos/convex-database-chat/tools

  • defineCountTool
  • definePaginatedListTool
  • defineSemanticSearchTool
  • stringFilter
  • numberFilter
  • booleanFilter
  • enumFilter
  • injectedString
  • InferToolModelArgs<Tool>
  • InferToolHandlerArgs<Tool>
  • InferToolResult<Tool>

Built tools set tool.metadata.kind to count, paginated_list, or semantic_search and set metadata.resultContract to standard.

Builder defaults:

  • defineCountTool: handlerType inherits the raw tool default, "query".
  • definePaginatedListTool: handlerType inherits the raw tool default, "query".
  • defineSemanticSearchTool: handlerType defaults to "action" because semantic search typically calls ctx.vectorSearch or external embedding APIs.

@dayhaysoos/convex-database-chat/toolGuidance

  • buildToolReliabilityGuidance(tools)
  • buildSystemPromptWithTools(basePrompt, tools, options?)
  • getToolKind(tool)