@mastra/voyageai 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types.ts","../src/text-embedding.ts","../src/multimodal-embedding.ts","../src/contextualized-embedding.ts","../src/reranker.ts","../src/index.ts"],"names":["VoyageAIClient","toSdkInputType"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * VoyageAI Embeddings - Type Definitions\n */\n\n// ============================================================================\n// Model Types\n// ============================================================================\n\n/**\n * VoyageAI text embedding models\n */\nexport type VoyageTextModel =\n | 'voyage-4-large'\n | 'voyage-4'\n | 'voyage-4-lite'\n | 'voyage-3-large'\n | 'voyage-3.5'\n | 'voyage-3.5-lite'\n | 'voyage-code-3'\n | 'voyage-finance-2'\n | 'voyage-law-2';\n\n/**\n * VoyageAI multimodal embedding models\n */\nexport type VoyageMultimodalModel = 'voyage-multimodal-3' | 'voyage-multimodal-3.5';\n\n/**\n * VoyageAI contextualized chunk embedding models\n */\nexport type VoyageContextModel = 'voyage-context-3';\n\n/**\n * All VoyageAI embedding models\n */\nexport type VoyageModel = VoyageTextModel | VoyageMultimodalModel | VoyageContextModel;\n\n// ============================================================================\n// Options Types\n// ============================================================================\n\n/**\n * Input type for retrieval optimization\n * - 'query': For search queries - Voyage prepends a query-specific prompt\n * - 'document': For documents being indexed - Voyage prepends a document-specific prompt\n * - null/undefined: No prompt prepended\n */\nexport type VoyageInputType = 'query' | 'document' | null;\n\n/**\n * Output data type options for embeddings\n */\nexport type VoyageOutputDtype = 'float' | 'int8' | 'uint8' | 'binary' | 'ubinary';\n\n/**\n * Supported output dimensions for flexible dimensionality models\n */\nexport type VoyageOutputDimension = 256 | 512 | 1024 | 2048;\n\n// ============================================================================\n// Text Embedding Types\n// ============================================================================\n\n/**\n * Configuration for VoyageAI text embedding models\n */\nexport interface VoyageTextEmbeddingConfig {\n /** The model to use for embeddings */\n model: VoyageTextModel;\n /** API key (defaults to VOYAGE_API_KEY env var) */\n apiKey?: string;\n /** Input type for retrieval optimization */\n inputType?: VoyageInputType;\n /** Output embedding dimension (model-dependent, default 1024) */\n outputDimension?: VoyageOutputDimension;\n /** Output data type (default 'float') */\n outputDtype?: VoyageOutputDtype;\n /** Whether to truncate inputs that exceed context length (default true) */\n truncation?: boolean;\n}\n\n// ============================================================================\n// Multimodal Embedding Types\n// ============================================================================\n\n/**\n * Text content for multimodal embeddings\n */\nexport interface VoyageTextContent {\n type: 'text';\n text: string;\n}\n\n/**\n * Image URL content for multimodal embeddings\n */\nexport interface VoyageImageUrlContent {\n type: 'image_url';\n image_url: string;\n}\n\n/**\n * Base64-encoded image content for multimodal embeddings\n */\nexport interface VoyageImageBase64Content {\n type: 'image_base64';\n image_base64: string;\n}\n\n/**\n * Video URL content for multimodal embeddings (voyage-multimodal-3.5 only)\n */\nexport interface VoyageVideoUrlContent {\n type: 'video_url';\n video_url: string;\n}\n\n/**\n * All multimodal content types\n */\nexport type VoyageMultimodalContent =\n | VoyageTextContent\n | VoyageImageUrlContent\n | VoyageImageBase64Content\n | VoyageVideoUrlContent;\n\n/**\n * Single multimodal input - an array of interleaved content\n */\nexport interface VoyageMultimodalInput {\n content: VoyageMultimodalContent[];\n}\n\n/**\n * Configuration for VoyageAI multimodal embedding models\n */\nexport interface VoyageMultimodalEmbeddingConfig {\n /** The model to use (voyage-multimodal-3 or voyage-multimodal-3.5) */\n model: VoyageMultimodalModel;\n /** API key (defaults to VOYAGE_API_KEY env var) */\n apiKey?: string;\n /** Input type for retrieval optimization */\n inputType?: VoyageInputType;\n /** Whether to truncate inputs that exceed context length (default true) */\n truncation?: boolean;\n}\n\n// ============================================================================\n// Contextualized Embedding Types\n// ============================================================================\n\n/**\n * Configuration for VoyageAI contextualized chunk embedding models\n */\nexport interface VoyageContextualizedEmbeddingConfig {\n /** The model to use (voyage-context-3) */\n model: VoyageContextModel;\n /** API key (defaults to VOYAGE_API_KEY env var) */\n apiKey?: string;\n /** Input type for retrieval optimization */\n inputType?: VoyageInputType;\n /** Output embedding dimension (default 1024) */\n outputDimension?: VoyageOutputDimension;\n /** Output data type (default 'float') */\n outputDtype?: VoyageOutputDtype;\n}\n\n// ============================================================================\n// Provider Options (for Mastra integration)\n// ============================================================================\n\n/**\n * VoyageAI-specific provider options for runtime configuration\n * Used with Mastra's providerOptions to override embedding config at call time\n */\nexport interface VoyageProviderOptions {\n voyage?: {\n /** Input type for retrieval optimization */\n inputType?: VoyageInputType;\n /** Output embedding dimension */\n outputDimension?: VoyageOutputDimension;\n /** Output data type */\n outputDtype?: VoyageOutputDtype;\n /** Whether to truncate inputs */\n truncation?: boolean;\n };\n}\n\n// ============================================================================\n// Model Metadata\n// ============================================================================\n\n/**\n * Metadata for VoyageAI embedding models\n */\nexport interface VoyageModelInfo {\n id: VoyageModel;\n maxInputTokens: number;\n defaultDimension: number;\n supportedDimensions?: VoyageOutputDimension[];\n isMultimodal: boolean;\n isContextualized: boolean;\n}\n\n/**\n * Model metadata for all VoyageAI text embedding models\n */\nexport const TEXT_MODEL_INFO: Record<VoyageTextModel, Omit<VoyageModelInfo, 'id'>> = {\n 'voyage-4-large': {\n maxInputTokens: 120000,\n defaultDimension: 1024,\n supportedDimensions: [256, 512, 1024, 2048],\n isMultimodal: false,\n isContextualized: false,\n },\n 'voyage-4': {\n maxInputTokens: 320000,\n defaultDimension: 1024,\n supportedDimensions: [256, 512, 1024, 2048],\n isMultimodal: false,\n isContextualized: false,\n },\n 'voyage-4-lite': {\n maxInputTokens: 1000000,\n defaultDimension: 1024,\n supportedDimensions: [256, 512, 1024, 2048],\n isMultimodal: false,\n isContextualized: false,\n },\n 'voyage-3-large': {\n maxInputTokens: 120000,\n defaultDimension: 1024,\n supportedDimensions: [256, 512, 1024, 2048],\n isMultimodal: false,\n isContextualized: false,\n },\n 'voyage-3.5': {\n maxInputTokens: 320000,\n defaultDimension: 1024,\n supportedDimensions: [256, 512, 1024, 2048],\n isMultimodal: false,\n isContextualized: false,\n },\n 'voyage-3.5-lite': {\n maxInputTokens: 1000000,\n defaultDimension: 1024,\n supportedDimensions: [256, 512, 1024, 2048],\n isMultimodal: false,\n isContextualized: false,\n },\n 'voyage-code-3': {\n maxInputTokens: 32000,\n defaultDimension: 1024,\n supportedDimensions: [256, 512, 1024, 2048],\n isMultimodal: false,\n isContextualized: false,\n },\n 'voyage-finance-2': {\n maxInputTokens: 32000,\n defaultDimension: 1024,\n isMultimodal: false,\n isContextualized: false,\n },\n 'voyage-law-2': {\n maxInputTokens: 32000,\n defaultDimension: 1024,\n isMultimodal: false,\n isContextualized: false,\n },\n};\n\n/**\n * Model metadata for VoyageAI multimodal embedding models\n */\nexport const MULTIMODAL_MODEL_INFO: Record<VoyageMultimodalModel, Omit<VoyageModelInfo, 'id'>> = {\n 'voyage-multimodal-3': {\n maxInputTokens: 32000,\n defaultDimension: 1024,\n isMultimodal: true,\n isContextualized: false,\n },\n 'voyage-multimodal-3.5': {\n maxInputTokens: 32000,\n defaultDimension: 1024,\n isMultimodal: true,\n isContextualized: false,\n },\n};\n\n/**\n * Model metadata for VoyageAI contextualized embedding models\n */\nexport const CONTEXTUALIZED_MODEL_INFO: Record<VoyageContextModel, Omit<VoyageModelInfo, 'id'>> = {\n 'voyage-context-3': {\n maxInputTokens: 32000,\n defaultDimension: 1024,\n supportedDimensions: [256, 512, 1024, 2048],\n isMultimodal: false,\n isContextualized: true,\n },\n};\n\n// ============================================================================\n// API Response Types\n// ============================================================================\n\n/**\n * VoyageAI embedding response\n */\nexport interface VoyageEmbeddingResponse {\n object: 'list';\n data: Array<{\n object: 'embedding';\n embedding: number[];\n index: number;\n }>;\n model: string;\n usage: {\n total_tokens: number;\n };\n}\n\n/**\n * Single chunk embedding from contextualized embeddings API\n */\nexport interface VoyageContextualizedChunkEmbedding {\n /** The object type, which is always \"embedding\" */\n object?: string;\n /** The embedding vector for this chunk */\n embedding?: number[];\n /** The index of this chunk within the document */\n index?: number;\n}\n\n/**\n * Single document result from contextualized embeddings API\n */\nexport interface VoyageContextualizedDocumentResult {\n /** The object type, which is always \"list\" */\n object?: string;\n /** Array of chunk embeddings for this document */\n data?: VoyageContextualizedChunkEmbedding[];\n /** The index of this document within the input list */\n index?: number;\n}\n\n/**\n * VoyageAI contextualized embedding response\n * Structure: response.data[docIndex].data[chunkIndex].embedding\n */\nexport interface VoyageContextualizedEmbeddingResponse {\n object: 'list';\n /** Array of document results, each containing chunk embeddings */\n data: VoyageContextualizedDocumentResult[];\n model: string;\n usage: {\n total_tokens: number;\n };\n}\n\n// ============================================================================\n// Reranker Types\n// ============================================================================\n\n/**\n * VoyageAI reranking models\n */\nexport type VoyageRerankerModel =\n | 'rerank-2.5'\n | 'rerank-2.5-lite'\n | 'rerank-2'\n | 'rerank-2-lite'\n | 'rerank-1'\n | 'rerank-lite-1';\n\n/**\n * Configuration for VoyageAI reranker\n */\nexport interface VoyageRerankerConfig {\n /** The reranker model to use */\n model: VoyageRerankerModel;\n /** API key (defaults to VOYAGE_API_KEY env var) */\n apiKey?: string;\n /** Whether to truncate inputs that exceed context length (default true) */\n truncation?: boolean;\n}\n\n/**\n * Single reranking result from VoyageAI\n */\nexport interface VoyageRerankResult {\n /** Index of the document in the original input array */\n index: number;\n /** The original document text */\n document: string;\n /** Relevance score (higher = more relevant) */\n relevance_score: number;\n}\n\n/**\n * VoyageAI reranking API response\n */\nexport interface VoyageRerankResponse {\n object: 'list';\n data: VoyageRerankResult[];\n model: string;\n usage: {\n total_tokens: number;\n };\n}\n\n/**\n * Model metadata for VoyageAI reranker models\n */\nexport const RERANKER_MODEL_INFO: Record<VoyageRerankerModel, { contextLength: number; description: string }> = {\n 'rerank-2.5': {\n contextLength: 32000,\n description: 'Best quality with instruction-following support',\n },\n 'rerank-2.5-lite': {\n contextLength: 32000,\n description: 'Optimized for latency and quality',\n },\n 'rerank-2': {\n contextLength: 16000,\n description: 'Second-generation with multilingual support',\n },\n 'rerank-2-lite': {\n contextLength: 8000,\n description: 'Second-generation, latency-optimized',\n },\n 'rerank-1': {\n contextLength: 8000,\n description: 'First-generation, quality-focused',\n },\n 'rerank-lite-1': {\n contextLength: 4000,\n description: 'First-generation, latency-optimized',\n },\n};\n","/**\n * VoyageAI Text Embedding Models\n *\n * Implements EmbeddingModelV2 and EmbeddingModelV3 interfaces for Mastra integration.\n */\n\nimport { VoyageAIClient } from 'voyageai';\nimport type { VoyageTextModel, VoyageTextEmbeddingConfig, VoyageProviderOptions, VoyageInputType } from './types';\nimport { TEXT_MODEL_INFO } from './types';\n\n/**\n * Convert our input type to VoyageAI SDK's expected format\n */\nfunction toSdkInputType(inputType: VoyageInputType | undefined): 'query' | 'document' | undefined {\n if (inputType === null) return undefined;\n return inputType;\n}\n\n/**\n * Split texts into batches that respect the model's maxInputTokens limit.\n * Uses the SDK's tokenize() method for accurate token counting.\n */\nasync function createTokenAwareBatches(\n client: VoyageAIClient,\n model: string,\n texts: string[],\n maxTokens: number,\n maxInputsPerBatch: number,\n): Promise<string[][]> {\n const tokenResults = await client.tokenize(texts, model);\n\n const batches: string[][] = [];\n let currentBatch: string[] = [];\n let currentTokens = 0;\n\n for (let i = 0; i < texts.length; i++) {\n const tokenCount = tokenResults[i]?.ids.length ?? 0;\n\n if (\n currentBatch.length > 0 &&\n (currentTokens + tokenCount > maxTokens || currentBatch.length >= maxInputsPerBatch)\n ) {\n batches.push(currentBatch);\n currentBatch = [];\n currentTokens = 0;\n }\n\n currentBatch.push(texts[i]!);\n currentTokens += tokenCount;\n }\n\n if (currentBatch.length > 0) {\n batches.push(currentBatch);\n }\n\n return batches;\n}\n\n/**\n * VoyageAI Text Embedding Model - V2 Implementation\n *\n * Implements the EmbeddingModelV2 interface from AI SDK v5.\n * Uses token-aware batching to split large inputs into batches\n * that respect the model's maxInputTokens limit.\n */\nexport class VoyageTextEmbeddingModelV2 {\n readonly specificationVersion = 'v2' as const;\n readonly provider = 'voyage' as const;\n readonly modelId: string;\n readonly maxEmbeddingsPerCall = 1000; // VoyageAI supports up to 1000 inputs per API call\n readonly supportsParallelCalls = true;\n\n private client: VoyageAIClient;\n private config: VoyageTextEmbeddingConfig;\n private maxInputTokens: number;\n\n constructor(config: VoyageTextEmbeddingConfig) {\n this.modelId = config.model;\n this.config = config;\n this.maxInputTokens = TEXT_MODEL_INFO[config.model]?.maxInputTokens ?? 32000;\n\n const apiKey = config.apiKey || process.env.VOYAGE_API_KEY;\n if (!apiKey) {\n throw new Error(\n 'VoyageAI API key is required. Set VOYAGE_API_KEY environment variable or pass apiKey in config.',\n );\n }\n\n this.client = new VoyageAIClient({ apiKey });\n }\n\n /**\n * Generate embeddings for the provided text values.\n * Automatically splits inputs into token-aware batches when total tokens\n * would exceed the model's limit.\n */\n async doEmbed(args: {\n values: string[];\n abortSignal?: AbortSignal;\n headers?: Record<string, string>;\n providerOptions?: VoyageProviderOptions;\n }): Promise<{ embeddings: number[][] }> {\n const { values, providerOptions } = args;\n\n // Merge config with runtime providerOptions (providerOptions take precedence)\n const inputType = providerOptions?.voyage?.inputType ?? this.config.inputType;\n const outputDimension = providerOptions?.voyage?.outputDimension ?? this.config.outputDimension;\n const outputDtype = providerOptions?.voyage?.outputDtype ?? this.config.outputDtype;\n const truncation = providerOptions?.voyage?.truncation ?? this.config.truncation ?? true;\n\n const batches = await createTokenAwareBatches(\n this.client,\n this.modelId,\n values,\n this.maxInputTokens,\n this.maxEmbeddingsPerCall,\n );\n\n const allEmbeddings: number[][] = [];\n\n for (const batch of batches) {\n const response = await this.client.embed({\n input: batch,\n model: this.modelId,\n inputType: toSdkInputType(inputType),\n outputDimension: outputDimension,\n outputDtype: outputDtype,\n truncation: truncation,\n });\n\n const embeddings =\n response.data?.sort((a, b) => (a.index ?? 0) - (b.index ?? 0)).map(item => item.embedding ?? []) ?? [];\n\n allEmbeddings.push(...embeddings);\n }\n\n return { embeddings: allEmbeddings };\n }\n}\n\n/**\n * VoyageAI Text Embedding Model - V3 Implementation\n *\n * Implements the EmbeddingModelV3 interface from AI SDK v6.\n * Wraps V2 implementation and adds warnings array.\n */\nexport class VoyageTextEmbeddingModelV3 {\n readonly specificationVersion = 'v3' as const;\n readonly provider = 'voyage' as const;\n readonly modelId: string;\n readonly maxEmbeddingsPerCall = 1000; // VoyageAI supports up to 1000 inputs per API call\n readonly supportsParallelCalls = true;\n\n private v2Model: VoyageTextEmbeddingModelV2;\n\n constructor(config: VoyageTextEmbeddingConfig) {\n this.modelId = config.model;\n this.v2Model = new VoyageTextEmbeddingModelV2(config);\n }\n\n /**\n * Generate embeddings for the provided text values\n */\n async doEmbed(args: {\n values: string[];\n abortSignal?: AbortSignal;\n headers?: Record<string, string>;\n providerOptions?: VoyageProviderOptions;\n }): Promise<{ embeddings: number[][]; warnings: never[] }> {\n const result = await this.v2Model.doEmbed(args);\n return { ...result, warnings: [] };\n }\n}\n\n/**\n * Create a VoyageAI text embedding model (V3)\n *\n * @param config - Model configuration or model name string\n * @returns EmbeddingModelV3 compatible model\n *\n * @example\n * ```typescript\n * // With model name only\n * const model = createVoyageTextEmbedding('voyage-3.5');\n *\n * // With full config\n * const model = createVoyageTextEmbedding({\n * model: 'voyage-3-large',\n * inputType: 'query',\n * outputDimension: 512,\n * });\n * ```\n */\nexport function createVoyageTextEmbedding(\n config: VoyageTextEmbeddingConfig | VoyageTextModel,\n): VoyageTextEmbeddingModelV3 {\n const normalizedConfig: VoyageTextEmbeddingConfig = typeof config === 'string' ? { model: config } : config;\n return new VoyageTextEmbeddingModelV3(normalizedConfig);\n}\n\n/**\n * Create a VoyageAI text embedding model (V2)\n *\n * @param config - Model configuration or model name string\n * @returns EmbeddingModelV2 compatible model\n *\n * @example\n * ```typescript\n * const model = createVoyageTextEmbeddingV2('voyage-3.5');\n * ```\n */\nexport function createVoyageTextEmbeddingV2(\n config: VoyageTextEmbeddingConfig | VoyageTextModel,\n): VoyageTextEmbeddingModelV2 {\n const normalizedConfig: VoyageTextEmbeddingConfig = typeof config === 'string' ? { model: config } : config;\n return new VoyageTextEmbeddingModelV2(normalizedConfig);\n}\n","/**\n * VoyageAI Multimodal Embedding Models\n *\n * Supports text + images + video (voyage-multimodal-3.5 only) embeddings.\n * Note: This uses a custom interface since the input format differs from text embeddings.\n */\n\nimport { VoyageAIClient } from 'voyageai';\nimport type {\n VoyageMultimodalModel,\n VoyageMultimodalEmbeddingConfig,\n VoyageMultimodalInput,\n VoyageMultimodalContent,\n VoyageProviderOptions,\n VoyageInputType,\n} from './types';\n\n/**\n * Convert our content format to VoyageAI SDK format\n */\nfunction toSdkContent(content: VoyageMultimodalContent): unknown {\n switch (content.type) {\n case 'text':\n return content.text;\n case 'image_url':\n return { type: 'image_url', image_url: content.image_url };\n case 'image_base64':\n return { type: 'image_base64', image_base64: content.image_base64 };\n case 'video_url':\n return { type: 'video_url', video_url: content.video_url };\n default:\n throw new Error(`Unknown content type: ${(content as any).type}`);\n }\n}\n\n/**\n * Convert multimodal input to SDK format\n */\nfunction toSdkInput(input: VoyageMultimodalInput): unknown[] {\n return input.content.map(toSdkContent);\n}\n\n/**\n * Convert our input type to VoyageAI SDK's expected format\n */\nfunction toSdkInputType(inputType: VoyageInputType | undefined): 'query' | 'document' | undefined {\n if (inputType === null) return undefined;\n return inputType;\n}\n\n/**\n * VoyageAI Multimodal Embedding Model\n *\n * Note: This does NOT implement EmbeddingModelV2<string> because multimodal\n * inputs have a different structure (VoyageMultimodalInput vs string).\n * Use directly with vector stores for multimodal RAG pipelines.\n *\n * @example\n * ```typescript\n * const model = new VoyageMultimodalEmbeddingModel({ model: 'voyage-multimodal-3.5' });\n *\n * const result = await model.doEmbed({\n * values: [{\n * content: [\n * { type: 'text', text: 'A photo of a cat' },\n * { type: 'image_url', image_url: 'https://example.com/cat.jpg' }\n * ]\n * }]\n * });\n *\n * // Use embeddings with vector store\n * await vectorStore.upsert({ vectors: result.embeddings, ... });\n * ```\n */\nexport class VoyageMultimodalEmbeddingModel {\n readonly provider = 'voyage' as const;\n readonly modelId: string;\n readonly maxEmbeddingsPerCall = 1000;\n readonly supportsParallelCalls = true;\n\n private client: VoyageAIClient;\n private config: VoyageMultimodalEmbeddingConfig;\n\n constructor(config: VoyageMultimodalEmbeddingConfig) {\n this.modelId = config.model;\n this.config = config;\n\n const apiKey = config.apiKey || process.env.VOYAGE_API_KEY;\n if (!apiKey) {\n throw new Error(\n 'VoyageAI API key is required. Set VOYAGE_API_KEY environment variable or pass apiKey in config.',\n );\n }\n\n this.client = new VoyageAIClient({ apiKey });\n }\n\n /**\n * Generate embeddings for multimodal inputs\n *\n * @param args.values - Array of multimodal inputs, each containing interleaved content\n * @param args.providerOptions - Runtime options to override config\n * @returns Object containing embeddings array\n */\n async doEmbed(args: {\n values: VoyageMultimodalInput[];\n abortSignal?: AbortSignal;\n headers?: Record<string, string>;\n providerOptions?: VoyageProviderOptions;\n }): Promise<{ embeddings: number[][] }> {\n const { values, providerOptions } = args;\n\n // Merge config with runtime providerOptions\n const inputType = providerOptions?.voyage?.inputType ?? this.config.inputType;\n const truncation = providerOptions?.voyage?.truncation ?? this.config.truncation ?? true;\n\n // Convert inputs to SDK format\n const sdkInputs = values.map(toSdkInput);\n\n // Use the SDK's multimodalEmbed method\n // Note: The `as any` cast is necessary because the SDK's type definitions don't properly\n // type the flexible multimodal input structure. The SDK accepts mixed content types:\n // - strings for text content\n // - objects like { type: 'image_url', image_url: '...' } for images/video\n // Our internal `unknown[]` return type from toSdkInput needs to bridge to the SDK's\n // expected `any[][]` format for the multimodal inputs parameter.\n const response = await this.client.multimodalEmbed({\n inputs: sdkInputs as any,\n model: this.modelId,\n inputType: toSdkInputType(inputType),\n truncation: truncation,\n });\n\n // Extract embeddings from response\n const embeddings =\n response.data?.sort((a, b) => (a.index ?? 0) - (b.index ?? 0)).map(item => item.embedding ?? []) ?? [];\n\n return { embeddings };\n }\n\n /**\n * Generate a single embedding for a multimodal input\n *\n * @param input - Single multimodal input\n * @returns Single embedding vector\n */\n async embedOne(input: VoyageMultimodalInput): Promise<number[]> {\n const result = await this.doEmbed({ values: [input] });\n return result.embeddings[0] ?? [];\n }\n}\n\n/**\n * Create a VoyageAI multimodal embedding model\n *\n * @param config - Model configuration or model name string\n * @returns VoyageMultimodalEmbeddingModel instance\n *\n * @example\n * ```typescript\n * // With model name only\n * const model = createVoyageMultimodalEmbedding('voyage-multimodal-3.5');\n *\n * // With full config\n * const model = createVoyageMultimodalEmbedding({\n * model: 'voyage-multimodal-3.5',\n * inputType: 'document',\n * });\n *\n * // Embed text + image\n * const result = await model.doEmbed({\n * values: [{\n * content: [\n * { type: 'text', text: 'Product description' },\n * { type: 'image_base64', image_base64: base64ImageData }\n * ]\n * }]\n * });\n * ```\n */\nexport function createVoyageMultimodalEmbedding(\n config: VoyageMultimodalEmbeddingConfig | VoyageMultimodalModel,\n): VoyageMultimodalEmbeddingModel {\n const normalizedConfig: VoyageMultimodalEmbeddingConfig = typeof config === 'string' ? { model: config } : config;\n return new VoyageMultimodalEmbeddingModel(normalizedConfig);\n}\n","/**\n * VoyageAI Contextualized Chunk Embedding Model\n *\n * Embeds text chunks with document context, addressing the \"context loss\" problem\n * that occurs when documents are split into individual chunks.\n *\n * Each chunk receives an embedding that reflects both its independent meaning\n * AND its position within the broader document context.\n */\n\nimport { VoyageAIClient } from 'voyageai';\nimport type {\n VoyageContextModel,\n VoyageContextualizedEmbeddingConfig,\n VoyageProviderOptions,\n VoyageInputType,\n VoyageOutputDimension,\n VoyageOutputDtype,\n} from './types';\n\n/**\n * Convert our input type to VoyageAI SDK's expected format\n */\nfunction toSdkInputType(inputType: VoyageInputType | undefined): 'query' | 'document' | undefined {\n if (inputType === null) return undefined;\n return inputType;\n}\n\n/**\n * VoyageAI Contextualized Chunk Embedding Model\n *\n * Note: This does NOT implement EmbeddingModelV2<string> because contextualized\n * inputs have a different structure (string[][] vs string[]).\n *\n * Input format: Nested lists where each inner list contains related chunks\n * from the same document. Example:\n * ```\n * [\n * ['chunk1_from_doc1', 'chunk2_from_doc1'], // Document 1 chunks\n * ['chunk1_from_doc2', 'chunk2_from_doc2'], // Document 2 chunks\n * ]\n * ```\n *\n * @example\n * ```typescript\n * const model = new VoyageContextualizedEmbeddingModel({ model: 'voyage-context-3' });\n *\n * // Embed document chunks with context\n * const docResult = await model.doEmbed({\n * values: [\n * ['Leafy Inc Q2 2024...', 'Revenue grew 15%...'],\n * ['Acme Corp announced...', 'The merger will...']\n * ],\n * inputType: 'document',\n * });\n *\n * // Embed a query (single item per inner list)\n * const queryResult = await model.doEmbed({\n * values: [['What was Leafy Inc revenue growth?']],\n * inputType: 'query',\n * });\n * ```\n */\nexport class VoyageContextualizedEmbeddingModel {\n readonly provider = 'voyage' as const;\n readonly modelId: string;\n readonly maxEmbeddingsPerCall = 1000; // Max inputs\n readonly maxTotalChunks = 16000; // Max total chunks across all inputs\n readonly supportsParallelCalls = true;\n\n private client: VoyageAIClient;\n private config: VoyageContextualizedEmbeddingConfig;\n\n constructor(config: VoyageContextualizedEmbeddingConfig) {\n this.modelId = config.model;\n this.config = config;\n\n const apiKey = config.apiKey || process.env.VOYAGE_API_KEY;\n if (!apiKey) {\n throw new Error(\n 'VoyageAI API key is required. Set VOYAGE_API_KEY environment variable or pass apiKey in config.',\n );\n }\n\n this.client = new VoyageAIClient({ apiKey });\n }\n\n /**\n * Generate contextualized embeddings for grouped chunks\n *\n * @param args.values - Nested array where each inner array contains chunks from the same document\n * @param args.inputType - 'query' for search queries, 'document' for content being indexed\n * @param args.outputDimension - Output embedding dimension (256, 512, 1024, or 2048)\n * @param args.outputDtype - Output data type\n * @param args.providerOptions - Runtime options to override config\n * @returns Object containing flattened embeddings array (one per chunk across all documents)\n */\n async doEmbed(args: {\n values: string[][];\n inputType?: VoyageInputType;\n outputDimension?: VoyageOutputDimension;\n outputDtype?: VoyageOutputDtype;\n abortSignal?: AbortSignal;\n headers?: Record<string, string>;\n providerOptions?: VoyageProviderOptions;\n }): Promise<{ embeddings: number[][]; chunkCounts: number[] }> {\n const { values, providerOptions } = args;\n\n // Merge config with runtime options (runtime takes precedence)\n const inputType = args.inputType ?? providerOptions?.voyage?.inputType ?? this.config.inputType;\n const outputDimension =\n args.outputDimension ?? providerOptions?.voyage?.outputDimension ?? this.config.outputDimension;\n const outputDtype = args.outputDtype ?? providerOptions?.voyage?.outputDtype ?? this.config.outputDtype;\n\n // Use the SDK's contextualizedEmbed method\n const response = await this.client.contextualizedEmbed({\n inputs: values,\n model: this.modelId,\n inputType: toSdkInputType(inputType),\n outputDimension: outputDimension,\n outputDtype: outputDtype,\n });\n\n // The SDK returns data grouped by input document\n // Each data item has a nested 'data' array containing embeddings for each chunk\n // Structure: response.data[docIndex].data[chunkIndex].embedding\n const sortedData = [...(response.data ?? [])].sort((a, b) => (a.index ?? 0) - (b.index ?? 0));\n\n // Flatten all embeddings and track chunk counts per document\n const allEmbeddings: number[][] = [];\n const chunkCounts: number[] = [];\n\n for (const item of sortedData) {\n // Each document item has a nested 'data' property with chunk embeddings\n const chunkData = item.data ?? [];\n const docEmbeddings = chunkData.map(chunk => chunk.embedding ?? []);\n chunkCounts.push(docEmbeddings.length);\n allEmbeddings.push(...docEmbeddings);\n }\n\n return { embeddings: allEmbeddings, chunkCounts };\n }\n\n /**\n * Generate contextualized embeddings and return grouped by document\n *\n * @param args - Same as doEmbed\n * @returns Embeddings grouped by document\n */\n async doEmbedGrouped(args: {\n values: string[][];\n inputType?: VoyageInputType;\n outputDimension?: VoyageOutputDimension;\n outputDtype?: VoyageOutputDtype;\n abortSignal?: AbortSignal;\n headers?: Record<string, string>;\n providerOptions?: VoyageProviderOptions;\n }): Promise<{ embeddingsByDocument: number[][][] }> {\n const { values, providerOptions } = args;\n\n const inputType = args.inputType ?? providerOptions?.voyage?.inputType ?? this.config.inputType;\n const outputDimension =\n args.outputDimension ?? providerOptions?.voyage?.outputDimension ?? this.config.outputDimension;\n const outputDtype = args.outputDtype ?? providerOptions?.voyage?.outputDtype ?? this.config.outputDtype;\n\n const response = await this.client.contextualizedEmbed({\n inputs: values,\n model: this.modelId,\n inputType: toSdkInputType(inputType),\n outputDimension: outputDimension,\n outputDtype: outputDtype,\n });\n\n // Sort by index and extract grouped embeddings\n // Structure: response.data[docIndex].data[chunkIndex].embedding\n const sortedData = [...(response.data ?? [])].sort((a, b) => (a.index ?? 0) - (b.index ?? 0));\n const embeddingsByDocument = sortedData.map(item => {\n const chunkData = item.data ?? [];\n return chunkData.map(chunk => chunk.embedding ?? []);\n });\n\n return { embeddingsByDocument };\n }\n\n /**\n * Generate a query embedding (contextualized with itself)\n *\n * @param query - The search query text\n * @returns Single embedding vector\n */\n async embedQuery(query: string): Promise<number[]> {\n const result = await this.doEmbed({\n values: [[query]],\n inputType: 'query',\n });\n return result.embeddings[0] ?? [];\n }\n\n /**\n * Generate document chunk embeddings with context\n *\n * @param chunks - Array of text chunks from the same document\n * @returns Array of embeddings, one per chunk\n */\n async embedDocumentChunks(chunks: string[]): Promise<number[][]> {\n const result = await this.doEmbed({\n values: [chunks],\n inputType: 'document',\n });\n return result.embeddings;\n }\n}\n\n/**\n * Create a VoyageAI contextualized chunk embedding model\n *\n * @param config - Model configuration or model name string\n * @returns VoyageContextualizedEmbeddingModel instance\n *\n * @example\n * ```typescript\n * // With model name only\n * const model = createVoyageContextualizedEmbedding('voyage-context-3');\n *\n * // With full config\n * const model = createVoyageContextualizedEmbedding({\n * model: 'voyage-context-3',\n * outputDimension: 512,\n * });\n *\n * // Embed document chunks with context\n * const result = await model.doEmbed({\n * values: [\n * ['First paragraph of doc 1...', 'Second paragraph...'],\n * ['Content from doc 2...']\n * ],\n * inputType: 'document',\n * });\n * ```\n */\nexport function createVoyageContextualizedEmbedding(\n config: VoyageContextualizedEmbeddingConfig | VoyageContextModel,\n): VoyageContextualizedEmbeddingModel {\n const normalizedConfig: VoyageContextualizedEmbeddingConfig = typeof config === 'string' ? { model: config } : config;\n return new VoyageContextualizedEmbeddingModel(normalizedConfig);\n}\n","/**\n * VoyageAI Reranker\n *\n * Implements the RelevanceScoreProvider interface for use with Mastra's reranking system.\n * Uses VoyageAI's reranking models to score document relevance.\n */\n\nimport { VoyageAIClient } from 'voyageai';\nimport type { VoyageRerankerModel, VoyageRerankerConfig } from './types';\n\n/**\n * RelevanceScoreProvider interface from @mastra/core\n * Defined here to avoid adding @mastra/core as a dependency\n */\nexport interface RelevanceScoreProvider {\n getRelevanceScore(text1: string, text2: string): Promise<number>;\n}\n\n/**\n * VoyageAI Relevance Scorer\n *\n * Implements RelevanceScoreProvider for use with Mastra's rerank() function.\n * Uses VoyageAI's dedicated reranking models which are optimized for\n * relevance scoring between queries and documents.\n *\n * @example\n * ```typescript\n * import { VoyageRelevanceScorer } from '@mastra/voyageai';\n * import { rerank } from '@mastra/rag';\n *\n * const scorer = new VoyageRelevanceScorer({ model: 'rerank-2.5' });\n *\n * // Use with Mastra's rerank function\n * const rerankedResults = await rerankWithScorer(\n * vectorResults,\n * 'search query',\n * scorer,\n * { topK: 5 }\n * );\n * ```\n */\nexport class VoyageRelevanceScorer implements RelevanceScoreProvider {\n readonly modelId: string;\n\n private client: VoyageAIClient;\n private config: VoyageRerankerConfig;\n\n constructor(config: VoyageRerankerConfig) {\n this.modelId = config.model;\n this.config = config;\n\n const apiKey = config.apiKey || process.env.VOYAGE_API_KEY;\n if (!apiKey) {\n throw new Error(\n 'VoyageAI API key is required. Set VOYAGE_API_KEY environment variable or pass apiKey in config.',\n );\n }\n\n this.client = new VoyageAIClient({ apiKey });\n }\n\n /**\n * Get relevance score between a query and a document.\n *\n * @param query - The search query (text1)\n * @param document - The document to score (text2)\n * @returns Relevance score between 0 and 1\n */\n async getRelevanceScore(query: string, document: string): Promise<number> {\n const response = await this.client.rerank({\n query,\n documents: [document],\n model: this.modelId,\n topK: 1,\n truncation: this.config.truncation ?? true,\n });\n\n // Extract relevance score from response\n const result = response.data?.[0];\n if (!result || result.relevanceScore === undefined) {\n throw new Error('No relevance score found in VoyageAI response');\n }\n\n return result.relevanceScore;\n }\n\n /**\n * Rerank multiple documents against a query.\n *\n * This is more efficient than calling getRelevanceScore multiple times\n * as it makes a single API call for all documents.\n *\n * @param query - The search query\n * @param documents - Array of documents to rerank\n * @param topK - Optional number of top results to return\n * @returns Array of reranked results with scores\n */\n async rerankDocuments(\n query: string,\n documents: string[],\n topK?: number,\n ): Promise<Array<{ document: string; index: number; score: number }>> {\n const response = await this.client.rerank({\n query,\n documents,\n model: this.modelId,\n topK: topK,\n truncation: this.config.truncation ?? true,\n });\n\n // Map response to our format\n return (\n response.data?.map(item => ({\n document: documents[item.index ?? 0] ?? '',\n index: item.index ?? 0,\n score: item.relevanceScore ?? 0,\n })) ?? []\n );\n }\n}\n\n/**\n * Create a VoyageAI reranker/relevance scorer\n *\n * @param config - Reranker configuration or model name string\n * @returns VoyageRelevanceScorer instance\n *\n * @example\n * ```typescript\n * // With model name only\n * const reranker = createVoyageReranker('rerank-2.5');\n *\n * // With full config\n * const reranker = createVoyageReranker({\n * model: 'rerank-2.5-lite',\n * truncation: false,\n * });\n *\n * // Use with vector query tool\n * const tool = createVectorQueryTool({\n * vectorStore,\n * model: embedder,\n * reranker: {\n * model: reranker,\n * options: { topK: 5 },\n * },\n * });\n * ```\n */\nexport function createVoyageReranker(config: VoyageRerankerConfig | VoyageRerankerModel): VoyageRelevanceScorer {\n const normalizedConfig: VoyageRerankerConfig = typeof config === 'string' ? { model: config } : config;\n return new VoyageRelevanceScorer(normalizedConfig);\n}\n\n/**\n * Convenience alias for createVoyageReranker\n */\nexport const voyageReranker = createVoyageReranker;\n","/**\n * @mastra/voyageai - VoyageAI Embeddings Integration for Mastra\n *\n * Provides text, multimodal, and contextualized chunk embeddings using the official VoyageAI SDK.\n *\n * @example Text Embeddings\n * ```typescript\n * import { voyage, voyageEmbedding } from '@mastra/voyageai';\n *\n * // Use default model (voyage-3.5)\n * const result = await voyage.doEmbed({ values: ['Hello world'] });\n *\n * // Or use specific model with options\n * const model = voyageEmbedding({\n * model: 'voyage-3-large',\n * inputType: 'query',\n * outputDimension: 512,\n * });\n * ```\n *\n * @example With Mastra Memory\n * ```typescript\n * import { Memory } from '@mastra/memory';\n * import { PgVector } from '@mastra/pg';\n * import { voyage } from '@mastra/voyageai';\n *\n * const memory = new Memory({\n * vector: new PgVector(connectionString),\n * embedder: voyage,\n * options: { semanticRecall: { topK: 5 } },\n * });\n * ```\n *\n * @example Multimodal Embeddings\n * ```typescript\n * import { voyageMultimodalEmbedding } from '@mastra/voyageai';\n *\n * const multimodal = voyageMultimodalEmbedding('voyage-multimodal-3.5');\n * const result = await multimodal.doEmbed({\n * values: [{\n * content: [\n * { type: 'text', text: 'A cat playing' },\n * { type: 'image_url', image_url: 'https://example.com/cat.jpg' }\n * ]\n * }]\n * });\n * ```\n *\n * @example Contextualized Chunk Embeddings\n * ```typescript\n * import { voyageContextualizedEmbedding } from '@mastra/voyageai';\n *\n * const contextual = voyageContextualizedEmbedding('voyage-context-3');\n * const result = await contextual.doEmbed({\n * values: [\n * ['Doc 1 chunk 1...', 'Doc 1 chunk 2...'],\n * ['Doc 2 chunk 1...']\n * ],\n * inputType: 'document',\n * });\n * ```\n */\n\n// Re-export all types\nexport * from './types';\n\nexport { VoyageAIClient } from 'voyageai';\nexport type { TokenizeResult } from 'voyageai';\n\n// Re-export embedding model classes\nexport {\n VoyageTextEmbeddingModelV2,\n VoyageTextEmbeddingModelV3,\n createVoyageTextEmbedding,\n createVoyageTextEmbeddingV2,\n} from './text-embedding';\n\nexport { VoyageMultimodalEmbeddingModel, createVoyageMultimodalEmbedding } from './multimodal-embedding';\n\nexport { VoyageContextualizedEmbeddingModel, createVoyageContextualizedEmbedding } from './contextualized-embedding';\n\nexport { VoyageRelevanceScorer, createVoyageReranker, voyageReranker, type RelevanceScoreProvider } from './reranker';\n\n// Import for convenience object\nimport {\n createVoyageTextEmbedding,\n createVoyageTextEmbeddingV2,\n VoyageTextEmbeddingModelV3,\n VoyageTextEmbeddingModelV2,\n} from './text-embedding';\nimport { createVoyageMultimodalEmbedding, VoyageMultimodalEmbeddingModel } from './multimodal-embedding';\nimport { createVoyageContextualizedEmbedding, VoyageContextualizedEmbeddingModel } from './contextualized-embedding';\nimport { createVoyageReranker, VoyageRelevanceScorer } from './reranker';\n\n// ============================================================================\n// Convenience Factory Functions\n// ============================================================================\n\n/**\n * Create a VoyageAI text embedding model (V3)\n *\n * @param config - Model name or full configuration\n * @returns EmbeddingModelV3 compatible model\n */\nexport const voyageEmbedding = createVoyageTextEmbedding;\n\n/**\n * Create a VoyageAI text embedding model (V2)\n *\n * @param config - Model name or full configuration\n * @returns EmbeddingModelV2 compatible model\n */\nexport const voyageEmbeddingV2 = createVoyageTextEmbeddingV2;\n\n/**\n * Create a VoyageAI multimodal embedding model\n *\n * @param config - Model name or full configuration\n * @returns VoyageMultimodalEmbeddingModel instance\n */\nexport const voyageMultimodalEmbedding = createVoyageMultimodalEmbedding;\n\n/**\n * Create a VoyageAI contextualized chunk embedding model\n *\n * @param config - Model name or full configuration\n * @returns VoyageContextualizedEmbeddingModel instance\n */\nexport const voyageContextualizedEmbedding = createVoyageContextualizedEmbedding;\n\n// ============================================================================\n// Convenience Object with Pre-configured Models\n// ============================================================================\n\n/**\n * Pre-configured VoyageAI embedding models\n *\n * Default export provides the voyage-3.5 model as the default.\n * Access specific models through named properties.\n *\n * @example\n * ```typescript\n * import { voyage } from '@mastra/voyageai';\n *\n * // Default model (voyage-3.5)\n * const result = await voyage.doEmbed({ values: ['Hello'] });\n *\n * // Specific models\n * const largeResult = await voyage.large.doEmbed({ values: ['Hello'] });\n * const codeResult = await voyage.code.doEmbed({ values: ['function foo() {}'] });\n *\n * // Multimodal\n * const multimodalResult = await voyage.multimodal.doEmbed({\n * values: [{ content: [{ type: 'text', text: 'Hello' }] }]\n * });\n *\n * // Contextualized\n * const contextResult = await voyage.contextualized.doEmbed({\n * values: [['chunk1', 'chunk2']],\n * inputType: 'document',\n * });\n * ```\n */\nexport const voyage: VoyageTextEmbeddingModelV3 & {\n // Text models (V3) - voyage-4 series\n v4large: VoyageTextEmbeddingModelV3;\n v4: VoyageTextEmbeddingModelV3;\n v4lite: VoyageTextEmbeddingModelV3;\n\n // Text models (V3) - voyage-3 series\n large: VoyageTextEmbeddingModelV3;\n v35: VoyageTextEmbeddingModelV3;\n v35lite: VoyageTextEmbeddingModelV3;\n code: VoyageTextEmbeddingModelV3;\n finance: VoyageTextEmbeddingModelV3;\n law: VoyageTextEmbeddingModelV3;\n\n // Text models (V2 for backward compatibility) - voyage-4 series\n v4largeV2: VoyageTextEmbeddingModelV2;\n v4V2: VoyageTextEmbeddingModelV2;\n v4liteV2: VoyageTextEmbeddingModelV2;\n\n // Text models (V2 for backward compatibility) - voyage-3 series\n largeV2: VoyageTextEmbeddingModelV2;\n v35V2: VoyageTextEmbeddingModelV2;\n v35liteV2: VoyageTextEmbeddingModelV2;\n codeV2: VoyageTextEmbeddingModelV2;\n financeV2: VoyageTextEmbeddingModelV2;\n lawV2: VoyageTextEmbeddingModelV2;\n\n // Multimodal models\n multimodal: VoyageMultimodalEmbeddingModel;\n multimodal3: VoyageMultimodalEmbeddingModel;\n multimodal35: VoyageMultimodalEmbeddingModel;\n\n // Contextualized model\n contextualized: VoyageContextualizedEmbeddingModel;\n context3: VoyageContextualizedEmbeddingModel;\n\n // Reranker models\n reranker: VoyageRelevanceScorer;\n reranker25: VoyageRelevanceScorer;\n reranker25lite: VoyageRelevanceScorer;\n reranker2: VoyageRelevanceScorer;\n reranker2lite: VoyageRelevanceScorer;\n\n // Factory functions\n embedding: typeof createVoyageTextEmbedding;\n embeddingV2: typeof createVoyageTextEmbeddingV2;\n multimodalEmbedding: typeof createVoyageMultimodalEmbedding;\n contextualizedEmbedding: typeof createVoyageContextualizedEmbedding;\n createReranker: typeof createVoyageReranker;\n} = (() => {\n // Lazy cache to avoid import-time crashes when VOYAGE_API_KEY is not set\n const cache = new Map<string, any>();\n function lazy<T>(key: string, factory: () => T): T {\n let instance = cache.get(key);\n if (!instance) {\n instance = factory();\n cache.set(key, instance);\n }\n return instance as T;\n }\n\n // The base object delegates doEmbed to a lazily-created default model\n const base = {\n get specificationVersion() {\n return 'v3' as const;\n },\n get provider() {\n return 'voyage' as const;\n },\n get modelId() {\n return 'voyage-3.5';\n },\n get maxEmbeddingsPerCall() {\n return 1000;\n },\n get supportsParallelCalls() {\n return true;\n },\n doEmbed(args: any) {\n return lazy('_default', () => createVoyageTextEmbedding('voyage-3.5')).doEmbed(args);\n },\n };\n\n return Object.defineProperties(base, {\n // Text models (V3) - voyage-4 series\n v4large: { get: () => lazy('v4large', () => createVoyageTextEmbedding('voyage-4-large')) },\n v4: { get: () => lazy('v4', () => createVoyageTextEmbedding('voyage-4')) },\n v4lite: { get: () => lazy('v4lite', () => createVoyageTextEmbedding('voyage-4-lite')) },\n // Text models (V3) - voyage-3 series\n large: { get: () => lazy('large', () => createVoyageTextEmbedding('voyage-3-large')) },\n v35: { get: () => lazy('v35', () => createVoyageTextEmbedding('voyage-3.5')) },\n v35lite: { get: () => lazy('v35lite', () => createVoyageTextEmbedding('voyage-3.5-lite')) },\n code: { get: () => lazy('code', () => createVoyageTextEmbedding('voyage-code-3')) },\n finance: { get: () => lazy('finance', () => createVoyageTextEmbedding('voyage-finance-2')) },\n law: { get: () => lazy('law', () => createVoyageTextEmbedding('voyage-law-2')) },\n // Text models (V2) - voyage-4 series\n v4largeV2: { get: () => lazy('v4largeV2', () => createVoyageTextEmbeddingV2('voyage-4-large')) },\n v4V2: { get: () => lazy('v4V2', () => createVoyageTextEmbeddingV2('voyage-4')) },\n v4liteV2: { get: () => lazy('v4liteV2', () => createVoyageTextEmbeddingV2('voyage-4-lite')) },\n // Text models (V2) - voyage-3 series\n largeV2: { get: () => lazy('largeV2', () => createVoyageTextEmbeddingV2('voyage-3-large')) },\n v35V2: { get: () => lazy('v35V2', () => createVoyageTextEmbeddingV2('voyage-3.5')) },\n v35liteV2: { get: () => lazy('v35liteV2', () => createVoyageTextEmbeddingV2('voyage-3.5-lite')) },\n codeV2: { get: () => lazy('codeV2', () => createVoyageTextEmbeddingV2('voyage-code-3')) },\n financeV2: { get: () => lazy('financeV2', () => createVoyageTextEmbeddingV2('voyage-finance-2')) },\n lawV2: { get: () => lazy('lawV2', () => createVoyageTextEmbeddingV2('voyage-law-2')) },\n // Multimodal models\n multimodal: { get: () => lazy('multimodal', () => createVoyageMultimodalEmbedding('voyage-multimodal-3.5')) },\n multimodal3: { get: () => lazy('multimodal3', () => createVoyageMultimodalEmbedding('voyage-multimodal-3')) },\n multimodal35: { get: () => lazy('multimodal35', () => createVoyageMultimodalEmbedding('voyage-multimodal-3.5')) },\n // Contextualized model\n contextualized: {\n get: () => lazy('contextualized', () => createVoyageContextualizedEmbedding('voyage-context-3')),\n },\n context3: { get: () => lazy('context3', () => createVoyageContextualizedEmbedding('voyage-context-3')) },\n // Reranker models\n reranker: { get: () => lazy('reranker', () => createVoyageReranker('rerank-2.5')) },\n reranker25: { get: () => lazy('reranker25', () => createVoyageReranker('rerank-2.5')) },\n reranker25lite: { get: () => lazy('reranker25lite', () => createVoyageReranker('rerank-2.5-lite')) },\n reranker2: { get: () => lazy('reranker2', () => createVoyageReranker('rerank-2')) },\n reranker2lite: { get: () => lazy('reranker2lite', () => createVoyageReranker('rerank-2-lite')) },\n // Factory functions (no lazy needed - they are factories themselves)\n embedding: { value: createVoyageTextEmbedding },\n embeddingV2: { value: createVoyageTextEmbeddingV2 },\n multimodalEmbedding: { value: createVoyageMultimodalEmbedding },\n contextualizedEmbedding: { value: createVoyageContextualizedEmbedding },\n createReranker: { value: createVoyageReranker },\n }) as any;\n})();\n\n// Default export\nexport default voyage;\n"]}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * @mastra/voyageai - VoyageAI Embeddings Integration for Mastra
3
+ *
4
+ * Provides text, multimodal, and contextualized chunk embeddings using the official VoyageAI SDK.
5
+ *
6
+ * @example Text Embeddings
7
+ * ```typescript
8
+ * import { voyage, voyageEmbedding } from '@mastra/voyageai';
9
+ *
10
+ * // Use default model (voyage-3.5)
11
+ * const result = await voyage.doEmbed({ values: ['Hello world'] });
12
+ *
13
+ * // Or use specific model with options
14
+ * const model = voyageEmbedding({
15
+ * model: 'voyage-3-large',
16
+ * inputType: 'query',
17
+ * outputDimension: 512,
18
+ * });
19
+ * ```
20
+ *
21
+ * @example With Mastra Memory
22
+ * ```typescript
23
+ * import { Memory } from '@mastra/memory';
24
+ * import { PgVector } from '@mastra/pg';
25
+ * import { voyage } from '@mastra/voyageai';
26
+ *
27
+ * const memory = new Memory({
28
+ * vector: new PgVector(connectionString),
29
+ * embedder: voyage,
30
+ * options: { semanticRecall: { topK: 5 } },
31
+ * });
32
+ * ```
33
+ *
34
+ * @example Multimodal Embeddings
35
+ * ```typescript
36
+ * import { voyageMultimodalEmbedding } from '@mastra/voyageai';
37
+ *
38
+ * const multimodal = voyageMultimodalEmbedding('voyage-multimodal-3.5');
39
+ * const result = await multimodal.doEmbed({
40
+ * values: [{
41
+ * content: [
42
+ * { type: 'text', text: 'A cat playing' },
43
+ * { type: 'image_url', image_url: 'https://example.com/cat.jpg' }
44
+ * ]
45
+ * }]
46
+ * });
47
+ * ```
48
+ *
49
+ * @example Contextualized Chunk Embeddings
50
+ * ```typescript
51
+ * import { voyageContextualizedEmbedding } from '@mastra/voyageai';
52
+ *
53
+ * const contextual = voyageContextualizedEmbedding('voyage-context-3');
54
+ * const result = await contextual.doEmbed({
55
+ * values: [
56
+ * ['Doc 1 chunk 1...', 'Doc 1 chunk 2...'],
57
+ * ['Doc 2 chunk 1...']
58
+ * ],
59
+ * inputType: 'document',
60
+ * });
61
+ * ```
62
+ */
63
+ export * from './types.js';
64
+ export { VoyageAIClient } from 'voyageai';
65
+ export type { TokenizeResult } from 'voyageai';
66
+ export { VoyageTextEmbeddingModelV2, VoyageTextEmbeddingModelV3, createVoyageTextEmbedding, createVoyageTextEmbeddingV2, } from './text-embedding.js';
67
+ export { VoyageMultimodalEmbeddingModel, createVoyageMultimodalEmbedding } from './multimodal-embedding.js';
68
+ export { VoyageContextualizedEmbeddingModel, createVoyageContextualizedEmbedding } from './contextualized-embedding.js';
69
+ export { VoyageRelevanceScorer, createVoyageReranker, voyageReranker, type RelevanceScoreProvider } from './reranker.js';
70
+ import { createVoyageTextEmbedding, createVoyageTextEmbeddingV2, VoyageTextEmbeddingModelV3, VoyageTextEmbeddingModelV2 } from './text-embedding.js';
71
+ import { createVoyageMultimodalEmbedding, VoyageMultimodalEmbeddingModel } from './multimodal-embedding.js';
72
+ import { createVoyageContextualizedEmbedding, VoyageContextualizedEmbeddingModel } from './contextualized-embedding.js';
73
+ import { createVoyageReranker, VoyageRelevanceScorer } from './reranker.js';
74
+ /**
75
+ * Create a VoyageAI text embedding model (V3)
76
+ *
77
+ * @param config - Model name or full configuration
78
+ * @returns EmbeddingModelV3 compatible model
79
+ */
80
+ export declare const voyageEmbedding: typeof createVoyageTextEmbedding;
81
+ /**
82
+ * Create a VoyageAI text embedding model (V2)
83
+ *
84
+ * @param config - Model name or full configuration
85
+ * @returns EmbeddingModelV2 compatible model
86
+ */
87
+ export declare const voyageEmbeddingV2: typeof createVoyageTextEmbeddingV2;
88
+ /**
89
+ * Create a VoyageAI multimodal embedding model
90
+ *
91
+ * @param config - Model name or full configuration
92
+ * @returns VoyageMultimodalEmbeddingModel instance
93
+ */
94
+ export declare const voyageMultimodalEmbedding: typeof createVoyageMultimodalEmbedding;
95
+ /**
96
+ * Create a VoyageAI contextualized chunk embedding model
97
+ *
98
+ * @param config - Model name or full configuration
99
+ * @returns VoyageContextualizedEmbeddingModel instance
100
+ */
101
+ export declare const voyageContextualizedEmbedding: typeof createVoyageContextualizedEmbedding;
102
+ /**
103
+ * Pre-configured VoyageAI embedding models
104
+ *
105
+ * Default export provides the voyage-3.5 model as the default.
106
+ * Access specific models through named properties.
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * import { voyage } from '@mastra/voyageai';
111
+ *
112
+ * // Default model (voyage-3.5)
113
+ * const result = await voyage.doEmbed({ values: ['Hello'] });
114
+ *
115
+ * // Specific models
116
+ * const largeResult = await voyage.large.doEmbed({ values: ['Hello'] });
117
+ * const codeResult = await voyage.code.doEmbed({ values: ['function foo() {}'] });
118
+ *
119
+ * // Multimodal
120
+ * const multimodalResult = await voyage.multimodal.doEmbed({
121
+ * values: [{ content: [{ type: 'text', text: 'Hello' }] }]
122
+ * });
123
+ *
124
+ * // Contextualized
125
+ * const contextResult = await voyage.contextualized.doEmbed({
126
+ * values: [['chunk1', 'chunk2']],
127
+ * inputType: 'document',
128
+ * });
129
+ * ```
130
+ */
131
+ export declare const voyage: VoyageTextEmbeddingModelV3 & {
132
+ v4large: VoyageTextEmbeddingModelV3;
133
+ v4: VoyageTextEmbeddingModelV3;
134
+ v4lite: VoyageTextEmbeddingModelV3;
135
+ large: VoyageTextEmbeddingModelV3;
136
+ v35: VoyageTextEmbeddingModelV3;
137
+ v35lite: VoyageTextEmbeddingModelV3;
138
+ code: VoyageTextEmbeddingModelV3;
139
+ finance: VoyageTextEmbeddingModelV3;
140
+ law: VoyageTextEmbeddingModelV3;
141
+ v4largeV2: VoyageTextEmbeddingModelV2;
142
+ v4V2: VoyageTextEmbeddingModelV2;
143
+ v4liteV2: VoyageTextEmbeddingModelV2;
144
+ largeV2: VoyageTextEmbeddingModelV2;
145
+ v35V2: VoyageTextEmbeddingModelV2;
146
+ v35liteV2: VoyageTextEmbeddingModelV2;
147
+ codeV2: VoyageTextEmbeddingModelV2;
148
+ financeV2: VoyageTextEmbeddingModelV2;
149
+ lawV2: VoyageTextEmbeddingModelV2;
150
+ multimodal: VoyageMultimodalEmbeddingModel;
151
+ multimodal3: VoyageMultimodalEmbeddingModel;
152
+ multimodal35: VoyageMultimodalEmbeddingModel;
153
+ contextualized: VoyageContextualizedEmbeddingModel;
154
+ context3: VoyageContextualizedEmbeddingModel;
155
+ reranker: VoyageRelevanceScorer;
156
+ reranker25: VoyageRelevanceScorer;
157
+ reranker25lite: VoyageRelevanceScorer;
158
+ reranker2: VoyageRelevanceScorer;
159
+ reranker2lite: VoyageRelevanceScorer;
160
+ embedding: typeof createVoyageTextEmbedding;
161
+ embeddingV2: typeof createVoyageTextEmbeddingV2;
162
+ multimodalEmbedding: typeof createVoyageMultimodalEmbedding;
163
+ contextualizedEmbedding: typeof createVoyageContextualizedEmbedding;
164
+ createReranker: typeof createVoyageReranker;
165
+ };
166
+ export default voyage;
167
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAGH,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAEzG,OAAO,EAAE,kCAAkC,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AAErH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGtH,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACzG,OAAO,EAAE,mCAAmC,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AACrH,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAMzE;;;;;GAKG;AACH,eAAO,MAAM,eAAe,kCAA4B,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,oCAA8B,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,wCAAkC,CAAC;AAEzE;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,4CAAsC,CAAC;AAMjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,MAAM,EAAE,0BAA0B,GAAG;IAEhD,OAAO,EAAE,0BAA0B,CAAC;IACpC,EAAE,EAAE,0BAA0B,CAAC;IAC/B,MAAM,EAAE,0BAA0B,CAAC;IAGnC,KAAK,EAAE,0BAA0B,CAAC;IAClC,GAAG,EAAE,0BAA0B,CAAC;IAChC,OAAO,EAAE,0BAA0B,CAAC;IACpC,IAAI,EAAE,0BAA0B,CAAC;IACjC,OAAO,EAAE,0BAA0B,CAAC;IACpC,GAAG,EAAE,0BAA0B,CAAC;IAGhC,SAAS,EAAE,0BAA0B,CAAC;IACtC,IAAI,EAAE,0BAA0B,CAAC;IACjC,QAAQ,EAAE,0BAA0B,CAAC;IAGrC,OAAO,EAAE,0BAA0B,CAAC;IACpC,KAAK,EAAE,0BAA0B,CAAC;IAClC,SAAS,EAAE,0BAA0B,CAAC;IACtC,MAAM,EAAE,0BAA0B,CAAC;IACnC,SAAS,EAAE,0BAA0B,CAAC;IACtC,KAAK,EAAE,0BAA0B,CAAC;IAGlC,UAAU,EAAE,8BAA8B,CAAC;IAC3C,WAAW,EAAE,8BAA8B,CAAC;IAC5C,YAAY,EAAE,8BAA8B,CAAC;IAG7C,cAAc,EAAE,kCAAkC,CAAC;IACnD,QAAQ,EAAE,kCAAkC,CAAC;IAG7C,QAAQ,EAAE,qBAAqB,CAAC;IAChC,UAAU,EAAE,qBAAqB,CAAC;IAClC,cAAc,EAAE,qBAAqB,CAAC;IACtC,SAAS,EAAE,qBAAqB,CAAC;IACjC,aAAa,EAAE,qBAAqB,CAAC;IAGrC,SAAS,EAAE,OAAO,yBAAyB,CAAC;IAC5C,WAAW,EAAE,OAAO,2BAA2B,CAAC;IAChD,mBAAmB,EAAE,OAAO,+BAA+B,CAAC;IAC5D,uBAAuB,EAAE,OAAO,mCAAmC,CAAC;IACpE,cAAc,EAAE,OAAO,oBAAoB,CAAC;CAgF1C,CAAC;AAGL,eAAe,MAAM,CAAC"}