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.
