Providers

Mistral Provider

Public exports from @anvia/mistral.

Import from @anvia/mistral.

MistralClient

type MistralClientOptions = {
  apiKey?: string;
  serverURL?: string;
  client?: Mistral;
};

class MistralClient {
  readonly client: Mistral;
  constructor(options?: MistralClientOptions);
  listModels(): Promise<ModelList>;
  completionModel(model?: string): MistralCompletionModel;
  embeddingModel(model?: string, options?: MistralEmbeddingModelOptions): MistralEmbeddingModel;
}

Purpose: factory for Mistral completion, embedding, and model listing.

Return behavior: creates or uses a Mistral SDK client, then returns normalized Anvia model adapters. listModels() fetches Mistral's model list and returns a normalized ModelList.

Notable errors: constructor throws when neither client nor apiKey is supplied; listModels() rejects with ModelListingError when the provider request fails.

MistralCompletionModel

class MistralCompletionModel implements StreamingCompletionModel {
  constructor(client: Mistral, defaultModel?: string);
  completion(request: CompletionRequest): Promise<CompletionResponse>;
  streamCompletion(request: CompletionRequest): AsyncIterable<CompletionStreamEvent>;
}

Purpose: adapter for Mistral chat completions.

Return behavior: returns normalized completion responses and stream events.

Notable errors: rejects unsupported image inputs and document file inputs before provider calls; rejects or yields Mistral SDK/provider errors for transport failures.

MistralEmbeddingModel

type MistralEmbeddingModelOptions = {
  dimensions?: number;
  maxBatchSize?: number;
};

class MistralEmbeddingModel implements EmbeddingModel {
  readonly dimensions?: number;
  readonly maxBatchSize: number;
  constructor(client: Mistral, model: string, options?: MistralEmbeddingModelOptions);
  embedTexts(texts: string[]): Promise<Embedding[]>;
}

Purpose: Mistral embedding adapter.

Return behavior: returns one Embedding per input text.

Notable errors: rejects on Mistral SDK errors or mismatched embedding counts.

mistral Namespace

namespace mistral {
  MistralClient;
  MistralCompletionModel;
  MistralEmbeddingModel;
  toMistralChatParams;
  fromMistralChatResponse;
  fromMistralChatStreamChunk;
  mistralMessageHelpers;
}

Purpose: namespaced access to the same public Mistral exports.

Return behavior: export namespace only.

Notable errors: none directly.

Mapping Helpers

function toMistralChatParams(defaultModel: string, request: CompletionRequest): unknown;
function fromMistralChatResponse(response: unknown): CompletionResponse;
function fromMistralChatStreamChunk(chunk: unknown): CompletionStreamEvent[];

const mistralMessageHelpers: {
  messageToMistralMessages(message: Message): unknown[];
  toolDefinitionToMistral(tool: ToolDefinition): unknown;
};

Purpose: low-level request and response mappers used by MistralCompletionModel.

Return behavior: exported for tests, custom adapters, and compatibility layers that need the same normalized mapping.

Notable errors: malformed provider payloads can produce empty normalized content or throw while parsing tool arguments.