Anvia
Providers

Gemini Provider

Public exports from @anvia/gemini.

Import from @anvia/gemini.

GeminiClient

type GeminiClientOptions =
  | { apiKey?: string; vertexai?: false; client?: GoogleGenAI }
  | { vertexai: true; project?: string; location?: string; client?: GoogleGenAI };

class GeminiClient {
  readonly client: GoogleGenAI;
  constructor(options?: GeminiClientOptions);
  completionModel(model?: string): GeminiCompletionModel;
  embeddingModel(model?: string, options?: GeminiEmbeddingModelOptions): GeminiEmbeddingModel;
}

function toGoogleGenAIOptions(options: GeminiClientOptions): Record<string, unknown>;

Purpose: factory for Gemini API or Vertex AI-backed completion and embedding models.

Return behavior: creates GoogleGenAI options from explicit client options unless a client is supplied.

Notable errors: underlying SDK calls can fail for missing credentials, invalid project/location, or API errors.

GeminiCompletionModel

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

Purpose: adapter for Gemini content generation.

Return behavior: returns normalized completion responses and stream events.

Notable errors: rejects or yields SDK/provider errors.

GeminiEmbeddingModel

type GeminiEmbeddingTaskType =
  | "TASK_TYPE_UNSPECIFIED"
  | "RETRIEVAL_QUERY"
  | "RETRIEVAL_DOCUMENT"
  | "SEMANTIC_SIMILARITY"
  | "CLASSIFICATION"
  | "CLUSTERING"
  | "QUESTION_ANSWERING"
  | "FACT_VERIFICATION"
  | "CODE_RETRIEVAL_QUERY";

type GeminiEmbeddingModelOptions = {
  dimensions?: number;
  maxBatchSize?: number;
  taskType?: GeminiEmbeddingTaskType;
  title?: string;
};

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

Purpose: Gemini embedding adapter.

Return behavior: returns one Embedding per input text.

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

Conversion Helpers

function toGeminiGenerateContentParams(defaultModel: string, request: CompletionRequest): Record<string, unknown>;
function messagesToGeminiContents(messages: Message[]): GeminiContent[];
function fromGeminiGenerateContentResponse(response: unknown): CompletionResponse;
function fromGeminiGenerateContentStreamChunk(chunk: unknown): CompletionStreamEvent[];

Purpose: request and response mapping helpers.

Return behavior: convert between Anvia contracts and Gemini wire shapes.

Notable errors: malformed provider payloads can throw while parsing.

gemini Namespace

namespace gemini { /* same root Gemini exports */ }

Purpose: namespaced access to the same public Gemini exports.

Return behavior: export namespace only.

Notable errors: none directly.