@qvac/sdk
API reference — v0.8.0
Overview
@qvac/sdk npm package exposes a function-centric, typed JS API.
Functions
| Function | Summary | Signature |
|---|---|---|
cancel() | Cancels an ongoing operation. | cancel(params: { modelId: string; operation: "inference" } | { clearCache?: boolean; downloadKey: string; operation: "downloadAsset" } | { operation: "rag"; workspace?: string }): Promise |
close() | Closes the SDK client connection and releases all associated resources. | close(): Promise |
completion() | Generates completion from a language model based on conversation history. | completion(params: CompletionParams): { stats: Promise<{ cacheTokens: number; timeToFirstToken: number; tokensPerSecond: number } | undefined>; text: Promise<string>; tokenStream: AsyncGenerator<string>; toolCalls: Promise<ToolCallWithCall[]>; toolCallStream: AsyncGenerator<{ call: { arguments: Record<string, unknown>; id: string; name: string; raw?: string }; type: "toolCall" } | { error: { code: "PARSE_ERROR" | "VALIDATION_ERROR" | "UNKNOWN_TOOL"; message: string; raw?: string }; type: "toolCallError" }> } |
defineHandler() | Helper function to define a handler with full type inference. | defineHandler(definition: PluginHandlerDefinition): PluginHandlerDefinition |
definePlugin() | Helper function to define a plugin with full type inference. | definePlugin(plugin: T): T |
deleteCache() | Deletes KV cache files. | deleteCache(params: { all: true } | { kvCacheKey: string; modelId?: string }): Promise |
downloadAsset() | Downloads an asset (model file) without loading it into memory. | downloadAsset(options: DownloadAssetOptions, rpcOptions?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
embed() | Generates embeddings for a single text using a specified model. | embed(params: { modelId: string; text: string }, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
getLogger() | Creates or retrieves a namespaced logger instance. | getLogger(namespace: string, options?: LoggerOptions): Logger |
getModelByName() | Looks up a model in the built-in catalog by its constant name. | getModelByName(name: string): RegistryItem | undefined |
getModelByPath() | Looks up a model in the built-in catalog by its registry path. | getModelByPath(registryPath: string): RegistryItem | undefined |
getModelBySrc() | Looks up a model in the built-in catalog by model file ID and blob core key. | getModelBySrc(modelId: string, blobCoreKey: string): RegistryItem | undefined |
getModelInfo() | Returns status information for a catalog model, including cache state and loaded instances. | getModelInfo(params: { name: string }): Promise |
invokePlugin() | Invoke a non-streaming plugin handler. | invokePlugin(options: InvokePluginOptions, rpcOptions?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
invokePluginStream() | Invoke a streaming plugin handler. | invokePluginStream(options: InvokePluginOptions, rpcOptions?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): AsyncGenerator |
loadModel() | Loads a machine learning model from a local path, remote URL, or Hyperdrive key. | loadModel(options: LoadModelOptions, rpcOptions?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
loggingStream() | Opens a logging stream to receive real-time logs. | loggingStream(params: { id: string }): AsyncGenerator |
modelRegistryGetModel() | Fetches a single model entry from the registry by its path and source. | modelRegistryGetModel(registryPath: string, registrySource: string): Promise |
modelRegistryList() | Returns all available models from the QVAC distributed model registry. | modelRegistryList(): Promise |
modelRegistrySearch() | Searches the model registry with optional filters for model type, engine, and quantization. | modelRegistrySearch(params: ModelRegistrySearchParams): Promise |
ocr() | Performs Optical Character Recognition (OCR) on an image to extract text. | ocr(params: OCRClientParams): { blocks: Promise<{ bbox?: [number, number, number, number]; confidence?: number; text: string }[]>; blockStream: AsyncGenerator<{ bbox?: [number, number, number, number]; confidence?: number; text: string }[]>; stats: Promise<{ detectionTime?: number; recognitionTime?: number; totalTime?: number } | undefined> } |
ping() | Sends a ping request to the server and returns the pong response. | ping(): Promise |
ragChunk() | Chunks documents into smaller pieces for embedding. | ragChunk(params: { chunkOpts?: { chunkOverlap?: number; chunkSize?: number; chunkStrategy?: "character" | "paragraph"; splitStrategy?: "character" | "word" | "token" | "sentence" | "line" }; documents: string | string[] }, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
ragCloseWorkspace() | Closes a RAG workspace, releasing in-memory resources (Corestore, HyperDB adapter, RAG instance). | ragCloseWorkspace(params?: { deleteOnClose?: boolean; workspace?: string }, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
ragDeleteEmbeddings() | Deletes document embeddings from the RAG vector database. | ragDeleteEmbeddings(params: { ids: string[]; modelId?: string; workspace?: string }, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
ragDeleteWorkspace() | Deletes a RAG workspace and all its data. | ragDeleteWorkspace(params: { workspace: string }, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
ragIngest() | Ingests documents into the RAG vector database. | ragIngest(params: RagIngestParams, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
ragListWorkspaces() | Lists all RAG workspaces with their open status. | ragListWorkspaces(options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
ragReindex() | Reindexes the RAG database to optimize search performance. | ragReindex(params: RagReindexParams, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
ragSaveEmbeddings() | Saves pre-embedded documents to the RAG vector database. | ragSaveEmbeddings(params: RagSaveEmbeddingsParams, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
ragSearch() | Searches for similar documents in the RAG vector database. | ragSearch(params: { modelId: string; n?: number; query: string; topK?: number; workspace?: string }, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise |
startQVACProvider() | Starts a provider service that offers QVAC capabilities to remote peers. | startQVACProvider(params: { firewall?: { mode: "allow" | "deny"; publicKeys: string[] }; topic: string }): Promise |
stopQVACProvider() | Stops a running provider service and leaves the specified topic. | stopQVACProvider(params: { topic: string }): Promise |
textToSpeech() | Converts text to speech audio using a loaded TTS model. | textToSpeech(params: { inputType: string; modelId: string; stream: boolean; text: string }, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): { buffer: Promise<number[]>; bufferStream: AsyncGenerator<number>; done: Promise<boolean> } |
transcribe() | This function provides a simple interface for transcribing audio by | |
| collecting all streaming results into a single string response. | transcribe(params: TranscribeClientParams, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): Promise | |
transcribeStream() | This function streams audio transcription results in real-time, yielding | |
| text chunks as they become available from the model. | transcribeStream(params: TranscribeClientParams, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): AsyncGenerator | |
translate() | Translates text from one language to another using a specified translation model. | translate(params: TranslateClientParams, options?: { forceNewConnection?: boolean; profiling?: { enabled?: boolean; includeServerBreakdown?: boolean; mode?: "summary" | "verbose" }; timeout?: number }): { stats: Promise<{ processedTokens: number; processingTime: number } | undefined>; text: Promise<string>; tokenStream: AsyncGenerator<string> } |
unloadModel() | Unloads a previously loaded model from the server. | unloadModel(params: { clearStorage?: boolean; modelId: string }): Promise |
Errors
See Errors for the full list of SDK error codes.