search module runs semantic (vector) search over your project’s content and powers a streaming, RAG-style question-answering endpoint.
These features require semantic search to be enabled for your project. See the
Semantic Search & AI guide for setup.
search* functions return raw arrays of similarity-ranked results
(not a PaginatedResponse); each element is { similarity, record }. askContent
is different — it streams its answer (see below).
searchContent
Semantic search over content — entities, comments, and chat messages.The search query string.
Which content types to search. Defaults to all.
Scope the search to a specific space.
Scope the search to a specific conversation.
Maximum number of results to return.
Promise<ContentSearchResult[]>, where each element is
{ sourceType: "entity" | "comment" | "message"; similarity: number; record: Entity | Comment | ChatMessage }.
searchUsers
Semantic search over the project’s users.The search query string.
Maximum number of results to return.
Promise<UserSearchResult[]>, where each element is
{ similarity: number; record: User }.
searchSpaces
Semantic search over the project’s spaces.The search query string.
Maximum number of results to return.
Promise<SpaceSearchResult[]>, where each element is
{ similarity: number; record: Space }.
askContent
Asks a natural-language question over your content and streams the answer back as it is generated. Unlike every other SDK function,askContent is an async
generator over Server-Sent Events — you for await over it rather than awaiting
a single result.
askContent streams via fetch rather than axios, so it does not get the
automatic token-refresh-on-403 retry that other calls have. In SDK-managed
mode, make sure a fresh access token is in place before starting a long stream.The natural-language question to answer.
Which content types to draw from. Defaults to all.
Scope the answer to content within a specific space.
Scope the answer to a specific conversation.
Maximum number of sources to draw from.
Aborts the in-flight stream (e.g. when the user navigates away). You can also
stop consuming by
breaking out of the for await loop.AsyncGenerator<AskContentEvent, void, unknown>. Each yielded event
is one of:
done / error events — the
generator itself returns void and does not throw on a server-reported error.
