fix: complete Jina provider support in type definitions and model profiles

- Add "jina" to EmbedderProvider type definitions in 5 files
- Add Jina model profiles (jina-embeddings-v4, jina-embeddings-v3, jina-clip-v2)
- Add Jina case to getDefaultModelId function
- Update Zod schema in packages/types to include "jina"
- Fixes TypeScript compilation errors for Jina embedding provider
This commit is contained in:
Roo Code 2025-07-30 14:41:47 +00:00
parent 8b787d6924
commit 041664358c
5 changed files with 15 additions and 5 deletions

View file

@ -21,7 +21,9 @@ export const CODEBASE_INDEX_DEFAULTS = {
export const codebaseIndexConfigSchema = z.object({
codebaseIndexEnabled: z.boolean().optional(),
codebaseIndexQdrantUrl: z.string().optional(),
codebaseIndexEmbedderProvider: z.enum(["openai", "ollama", "openai-compatible", "gemini", "mistral"]).optional(),
codebaseIndexEmbedderProvider: z
.enum(["openai", "ollama", "openai-compatible", "gemini", "mistral", "jina"])
.optional(),
codebaseIndexEmbedderBaseUrl: z.string().optional(),
codebaseIndexEmbedderModelId: z.string().optional(),
codebaseIndexEmbedderModelDimension: z.number().optional(),

View file

@ -28,7 +28,7 @@ export interface EmbeddingResponse {
}
}
export type AvailableEmbedders = "openai" | "ollama" | "openai-compatible" | "gemini" | "mistral"
export type AvailableEmbedders = "openai" | "ollama" | "openai-compatible" | "gemini" | "mistral" | "jina"
export interface EmbedderInfo {
name: AvailableEmbedders

View file

@ -70,7 +70,7 @@ export interface ICodeIndexManager {
}
export type IndexingState = "Standby" | "Indexing" | "Indexed" | "Error"
export type EmbedderProvider = "openai" | "ollama" | "openai-compatible" | "gemini" | "mistral"
export type EmbedderProvider = "openai" | "ollama" | "openai-compatible" | "gemini" | "mistral" | "jina"
export interface IndexProgressUpdate {
systemStatus: IndexingState

View file

@ -255,7 +255,7 @@ export interface WebviewMessage {
// Global state settings
codebaseIndexEnabled: boolean
codebaseIndexQdrantUrl: string
codebaseIndexEmbedderProvider: "openai" | "ollama" | "openai-compatible" | "gemini" | "mistral"
codebaseIndexEmbedderProvider: "openai" | "ollama" | "openai-compatible" | "gemini" | "mistral" | "jina"
codebaseIndexEmbedderBaseUrl?: string
codebaseIndexEmbedderModelId: string
codebaseIndexEmbedderModelDimension?: number // Generic dimension for all providers

View file

@ -2,7 +2,7 @@
* Defines profiles for different embedding models, including their dimensions.
*/
export type EmbedderProvider = "openai" | "ollama" | "openai-compatible" | "gemini" | "mistral" // Add other providers as needed
export type EmbedderProvider = "openai" | "ollama" | "openai-compatible" | "gemini" | "mistral" | "jina" // Add other providers as needed
export interface EmbeddingModelProfile {
dimension: number
@ -53,6 +53,11 @@ export const EMBEDDING_MODEL_PROFILES: EmbeddingModelProfiles = {
mistral: {
"codestral-embed-2505": { dimension: 1536, scoreThreshold: 0.4 },
},
jina: {
"jina-embeddings-v4": { dimension: 1024, scoreThreshold: 0.4 },
"jina-embeddings-v3": { dimension: 1024, scoreThreshold: 0.4 },
"jina-clip-v2": { dimension: 768, scoreThreshold: 0.4 },
},
}
/**
@ -143,6 +148,9 @@ export function getDefaultModelId(provider: EmbedderProvider): string {
case "mistral":
return "codestral-embed-2505"
case "jina":
return "jina-embeddings-v4"
default:
// Fallback for unknown providers
console.warn(`Unknown provider for default model ID: ${provider}. Falling back to OpenAI default.`)