Skip to content
26 changes: 10 additions & 16 deletions src/core/config/__tests__/importExport.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -628,7 +628,7 @@ describe("importExport", () => {
codebaseIndexEmbedderBaseUrl: "http://localhost:11434", // Wrong URL from Ollama
// OpenAI Compatible settings are now stored directly in codebaseIndexConfig
codebaseIndexOpenAiCompatibleBaseUrl: "https://custom-openai-api.example.com/v1",
codebaseIndexOpenAiCompatibleModelDimension: 1536,
codebaseIndexEmbedderModelDimension: 1536,
},
}

Expand Down Expand Up @@ -673,7 +673,7 @@ describe("importExport", () => {
codebaseIndexEmbedderBaseUrl: "",
// OpenAI Compatible settings are now stored directly in codebaseIndexConfig
codebaseIndexOpenAiCompatibleBaseUrl: "https://api.example.com/v1",
codebaseIndexOpenAiCompatibleModelDimension: 768,
codebaseIndexEmbedderModelDimension: 768,
},
}

Expand All @@ -688,9 +688,7 @@ describe("importExport", () => {

const exportedData = (safeWriteJson as Mock).mock.calls[0][1]
// Settings are now exported as-is from codebaseIndexConfig
expect(
exportedData.globalSettings.codebaseIndexConfig.codebaseIndexOpenAiCompatibleModelDimension,
).toBe(768)
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexEmbedderModelDimension).toBe(768)
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexOpenAiCompatibleBaseUrl).toBe(
"https://api.example.com/v1",
)
Expand Down Expand Up @@ -731,7 +729,7 @@ describe("importExport", () => {
codebaseIndexEmbedderBaseUrl: "http://localhost:11434", // Wrong URL from Ollama
// OpenAI Compatible settings are now stored directly in codebaseIndexConfig
codebaseIndexOpenAiCompatibleBaseUrl: "https://openai-compatible.example.com/v1",
codebaseIndexOpenAiCompatibleModelDimension: 1536,
codebaseIndexEmbedderModelDimension: 1536,
},
}

Expand All @@ -749,9 +747,7 @@ describe("importExport", () => {
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexOpenAiCompatibleBaseUrl).toBe(
"https://openai-compatible.example.com/v1",
)
expect(
exportedData.globalSettings.codebaseIndexConfig.codebaseIndexOpenAiCompatibleModelDimension,
).toBe(1536)
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexEmbedderModelDimension).toBe(1536)
// The generic embedder base URL is still there
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexEmbedderBaseUrl).toBe(
"http://localhost:11434",
Expand Down Expand Up @@ -921,7 +917,6 @@ describe("importExport", () => {
codebaseIndexEmbedderModelDimension: 1536,
// OpenAI Compatible settings are now stored directly here
codebaseIndexOpenAiCompatibleBaseUrl: "https://imported-url.example.com/v1",
codebaseIndexOpenAiCompatibleModelDimension: 1536,
},
},
})
Expand Down Expand Up @@ -956,7 +951,7 @@ describe("importExport", () => {
expect.objectContaining({
codebaseIndexConfig: expect.objectContaining({
codebaseIndexOpenAiCompatibleBaseUrl: "https://imported-url.example.com/v1",
codebaseIndexOpenAiCompatibleModelDimension: 1536,
codebaseIndexEmbedderModelDimension: 1536,
}),
}),
)
Expand Down Expand Up @@ -1105,7 +1100,6 @@ describe("importExport", () => {
codebaseIndexEmbedderModelDimension: testModelDimension,
// OpenAI Compatible settings are now stored directly in codebaseIndexConfig
codebaseIndexOpenAiCompatibleBaseUrl: "https://api.example.com/v1",
codebaseIndexOpenAiCompatibleModelDimension: testModelDimension,
},
}

Expand Down Expand Up @@ -1160,7 +1154,7 @@ describe("importExport", () => {

// Step 9: Verify that the model dimension was preserved exactly in global settings
const importedGlobalSettings = mockContextProxy.setValues.mock.calls[0][0]
expect(importedGlobalSettings.codebaseIndexConfig?.codebaseIndexOpenAiCompatibleModelDimension).toBe(
expect(importedGlobalSettings.codebaseIndexConfig?.codebaseIndexEmbedderModelDimension).toBe(
testModelDimension,
)
expect(importedGlobalSettings.codebaseIndexConfig?.codebaseIndexOpenAiCompatibleBaseUrl).toBe(
Expand Down Expand Up @@ -1198,7 +1192,7 @@ describe("importExport", () => {
codebaseIndexEmbedderBaseUrl: "https://api.example.com/v1",
// OpenAI Compatible settings are now stored directly in codebaseIndexConfig
codebaseIndexOpenAiCompatibleBaseUrl: "https://api.example.com/v1",
codebaseIndexOpenAiCompatibleModelDimension: testModelDimension, // 0 is a valid value
codebaseIndexEmbedderModelDimension: testModelDimension, // 0 is a valid value
},
}

Expand All @@ -1219,7 +1213,7 @@ describe("importExport", () => {

// Verify the exported data includes the model dimension even when it's 0
const exportedData = (safeWriteJson as Mock).mock.calls[0][1]
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexOpenAiCompatibleModelDimension).toBe(0)
expect(exportedData.globalSettings.codebaseIndexConfig.codebaseIndexEmbedderModelDimension).toBe(0)

// Test import roundtrip
const exportedFileContent = JSON.stringify(exportedData)
Expand Down Expand Up @@ -1247,7 +1241,7 @@ describe("importExport", () => {

// Verify that model dimension 0 was preserved in global settings
const setValuesCall = mockContextProxy.setValues.mock.calls[0][0]
expect(setValuesCall.codebaseIndexConfig?.codebaseIndexOpenAiCompatibleModelDimension).toBe(0)
expect(setValuesCall.codebaseIndexConfig?.codebaseIndexEmbedderModelDimension).toBe(0)
})

it("should handle missing model dimension gracefully", async () => {
Expand Down
2 changes: 1 addition & 1 deletion src/core/webview/webviewMessageHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1967,8 +1967,8 @@ export const webviewMessageHandler = async (
codebaseIndexEmbedderProvider: settings.codebaseIndexEmbedderProvider,
codebaseIndexEmbedderBaseUrl: settings.codebaseIndexEmbedderBaseUrl,
codebaseIndexEmbedderModelId: settings.codebaseIndexEmbedderModelId,
codebaseIndexEmbedderModelDimension: settings.codebaseIndexEmbedderModelDimension, // Generic dimension
codebaseIndexOpenAiCompatibleBaseUrl: settings.codebaseIndexOpenAiCompatibleBaseUrl,
codebaseIndexOpenAiCompatibleModelDimension: settings.codebaseIndexOpenAiCompatibleModelDimension,
codebaseIndexSearchMaxResults: settings.codebaseIndexSearchMaxResults,
codebaseIndexSearchMinScore: settings.codebaseIndexSearchMinScore,
}
Expand Down
11 changes: 11 additions & 0 deletions src/i18n/locales/ca/embeddings.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,16 @@
"invalidBaseUrl": "URL base no vàlida. Comproveu la vostra configuració d'URL.",
"invalidModel": "Model no vàlid. Comproveu la vostra configuració de model.",
"invalidResponse": "Resposta no vàlida del servei d'incrustació. Comproveu la vostra configuració."
},
"serviceFactory": {
"openAiConfigMissing": "Falta la configuració d'OpenAI per crear l'embedder",
"ollamaConfigMissing": "Falta la configuració d'Ollama per crear l'embedder",
"openAiCompatibleConfigMissing": "Falta la configuració compatible amb OpenAI per crear l'embedder",
"geminiConfigMissing": "Falta la configuració de Gemini per crear l'embedder",
"invalidEmbedderType": "Tipus d'embedder configurat no vàlid: {{embedderProvider}}",
"vectorDimensionNotDeterminedOpenAiCompatible": "No s'ha pogut determinar la dimensió del vector per al model '{{modelId}}' amb el proveïdor '{{provider}}'. Assegura't que la 'Dimensió d'incrustació' estigui configurada correctament als paràmetres del proveïdor compatible amb OpenAI.",
"vectorDimensionNotDetermined": "No s'ha pogut determinar la dimensió del vector per al model '{{modelId}}' amb el proveïdor '{{provider}}'. Comprova els perfils del model o la configuració.",
"qdrantUrlMissing": "Falta l'URL de Qdrant per crear l'emmagatzematge de vectors",
"codeIndexingNotConfigured": "No es poden crear serveis: La indexació de codi no està configurada correctament"
}
}
11 changes: 11 additions & 0 deletions src/i18n/locales/de/embeddings.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,16 @@
"invalidBaseUrl": "Ungültige Basis-URL. Bitte überprüfe deine URL-Konfiguration.",
"invalidModel": "Ungültiges Modell. Bitte überprüfe deine Modellkonfiguration.",
"invalidResponse": "Ungültige Antwort vom Embedder-Dienst. Bitte überprüfe deine Konfiguration."
},
"serviceFactory": {
"openAiConfigMissing": "OpenAI-Konfiguration fehlt für die Erstellung des Embedders",
"ollamaConfigMissing": "Ollama-Konfiguration fehlt für die Erstellung des Embedders",
"openAiCompatibleConfigMissing": "OpenAI-kompatible Konfiguration fehlt für die Erstellung des Embedders",
"geminiConfigMissing": "Gemini-Konfiguration fehlt für die Erstellung des Embedders",
"invalidEmbedderType": "Ungültiger Embedder-Typ konfiguriert: {{embedderProvider}}",
"vectorDimensionNotDeterminedOpenAiCompatible": "Konnte die Vektordimension für Modell '{{modelId}}' mit Anbieter '{{provider}}' nicht bestimmen. Stelle sicher, dass die 'Embedding-Dimension' in den OpenAI-kompatiblen Anbietereinstellungen korrekt eingestellt ist.",
"vectorDimensionNotDetermined": "Konnte die Vektordimension für Modell '{{modelId}}' mit Anbieter '{{provider}}' nicht bestimmen. Überprüfe die Modellprofile oder Konfiguration.",
"qdrantUrlMissing": "Qdrant-URL fehlt für die Erstellung des Vektorspeichers",
"codeIndexingNotConfigured": "Kann keine Dienste erstellen: Code-Indizierung ist nicht richtig konfiguriert"
}
}
11 changes: 11 additions & 0 deletions src/i18n/locales/en/embeddings.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,16 @@
"invalidBaseUrl": "Invalid base URL. Please check your URL configuration.",
"invalidModel": "Invalid model. Please check your model configuration.",
"invalidResponse": "Invalid response from embedder service. Please check your configuration."
},
"serviceFactory": {
"openAiConfigMissing": "OpenAI configuration missing for embedder creation",
"ollamaConfigMissing": "Ollama configuration missing for embedder creation",
"openAiCompatibleConfigMissing": "OpenAI Compatible configuration missing for embedder creation",
"geminiConfigMissing": "Gemini configuration missing for embedder creation",
"invalidEmbedderType": "Invalid embedder type configured: {{embedderProvider}}",
"vectorDimensionNotDeterminedOpenAiCompatible": "Could not determine vector dimension for model '{{modelId}}' with provider '{{provider}}'. Please ensure the 'Embedding Dimension' is correctly set in the OpenAI-Compatible provider settings.",
"vectorDimensionNotDetermined": "Could not determine vector dimension for model '{{modelId}}' with provider '{{provider}}'. Check model profiles or configuration.",
"qdrantUrlMissing": "Qdrant URL missing for vector store creation",
"codeIndexingNotConfigured": "Cannot create services: Code indexing is not properly configured"
}
}
11 changes: 11 additions & 0 deletions src/i18n/locales/es/embeddings.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,16 @@
"invalidBaseUrl": "URL base no válida. Comprueba la configuración de tu URL.",
"invalidModel": "Modelo no válido. Comprueba la configuración de tu modelo.",
"invalidResponse": "Respuesta no válida del servicio de embedder. Comprueba tu configuración."
},
"serviceFactory": {
"openAiConfigMissing": "Falta la configuración de OpenAI para crear el incrustador",
"ollamaConfigMissing": "Falta la configuración de Ollama para crear el incrustador",
"openAiCompatibleConfigMissing": "Falta la configuración compatible con OpenAI para crear el incrustador",
"geminiConfigMissing": "Falta la configuración de Gemini para crear el incrustador",
"invalidEmbedderType": "Tipo de incrustador configurado inválido: {{embedderProvider}}",
"vectorDimensionNotDeterminedOpenAiCompatible": "No se pudo determinar la dimensión del vector para el modelo '{{modelId}}' con el proveedor '{{provider}}'. Asegúrate de que la 'Dimensión de incrustación' esté configurada correctamente en los ajustes del proveedor compatible con OpenAI.",
"vectorDimensionNotDetermined": "No se pudo determinar la dimensión del vector para el modelo '{{modelId}}' con el proveedor '{{provider}}'. Verifica los perfiles del modelo o la configuración.",
"qdrantUrlMissing": "Falta la URL de Qdrant para crear el almacén de vectores",
"codeIndexingNotConfigured": "No se pueden crear servicios: La indexación de código no está configurada correctamente"
}
}
11 changes: 11 additions & 0 deletions src/i18n/locales/fr/embeddings.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,16 @@
"invalidBaseUrl": "URL de base invalide. Veuillez vérifier votre configuration d'URL.",
"invalidModel": "Modèle invalide. Veuillez vérifier votre configuration de modèle.",
"invalidResponse": "Réponse invalide du service d'embedder. Veuillez vérifier votre configuration."
},
"serviceFactory": {
"openAiConfigMissing": "Configuration OpenAI manquante pour la création de l'embedder",
"ollamaConfigMissing": "Configuration Ollama manquante pour la création de l'embedder",
"openAiCompatibleConfigMissing": "Configuration compatible OpenAI manquante pour la création de l'embedder",
"geminiConfigMissing": "Configuration Gemini manquante pour la création de l'embedder",
"invalidEmbedderType": "Type d'embedder configuré invalide : {{embedderProvider}}",
"vectorDimensionNotDeterminedOpenAiCompatible": "Impossible de déterminer la dimension du vecteur pour le modèle '{{modelId}}' avec le fournisseur '{{provider}}'. Assure-toi que la 'Dimension d'embedding' est correctement définie dans les paramètres du fournisseur compatible OpenAI.",
"vectorDimensionNotDetermined": "Impossible de déterminer la dimension du vecteur pour le modèle '{{modelId}}' avec le fournisseur '{{provider}}'. Vérifie les profils du modèle ou la configuration.",
"qdrantUrlMissing": "URL Qdrant manquante pour la création du stockage de vecteurs",
"codeIndexingNotConfigured": "Impossible de créer les services : L'indexation du code n'est pas correctement configurée"
}
}
11 changes: 11 additions & 0 deletions src/i18n/locales/hi/embeddings.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,16 @@
"invalidBaseUrl": "अमान्य बेस यूआरएल। कृपया अपनी यूआरएल कॉन्फ़िगरेशन जांचें।",
"invalidModel": "अमान्य मॉडल। कृपया अपनी मॉडल कॉन्फ़िगरेशन जांचें।",
"invalidResponse": "एम्बेडर सेवा से अमान्य प्रतिक्रिया। कृपया अपनी कॉन्फ़िगरेशन जांचें।"
},
"serviceFactory": {
"openAiConfigMissing": "एम्बेडर बनाने के लिए OpenAI कॉन्फ़िगरेशन गायब है",
"ollamaConfigMissing": "एम्बेडर बनाने के लिए Ollama कॉन्फ़िगरेशन गायब है",
"openAiCompatibleConfigMissing": "एम्बेडर बनाने के लिए OpenAI संगत कॉन्फ़िगरेशन गायब है",
"geminiConfigMissing": "एम्बेडर बनाने के लिए Gemini कॉन्फ़िगरेशन गायब है",
"invalidEmbedderType": "अमान्य एम्बेडर प्रकार कॉन्फ़िगर किया गया: {{embedderProvider}}",
"vectorDimensionNotDeterminedOpenAiCompatible": "प्रदाता '{{provider}}' के साथ मॉडल '{{modelId}}' के लिए वेक्टर आयाम निर्धारित नहीं कर सका। कृपया सुनिश्चित करें कि OpenAI-संगत प्रदाता सेटिंग्स में 'एम्बेडिंग आयाम' सही तरीके से सेट है।",
"vectorDimensionNotDetermined": "प्रदाता '{{provider}}' के साथ मॉडल '{{modelId}}' के लिए वेक्टर आयाम निर्धारित नहीं कर सका। मॉडल प्रोफ़ाइल या कॉन्फ़िगरेशन की जांच करें।",
"qdrantUrlMissing": "वेक्टर स्टोर बनाने के लिए Qdrant URL गायब है",
"codeIndexingNotConfigured": "सेवाएं नहीं बना सकते: कोड इंडेक्सिंग ठीक से कॉन्फ़िगर नहीं है"
}
}
11 changes: 11 additions & 0 deletions src/i18n/locales/id/embeddings.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,16 @@
"invalidBaseUrl": "URL dasar tidak valid. Silakan periksa konfigurasi URL Anda.",
"invalidModel": "Model tidak valid. Silakan periksa konfigurasi model Anda.",
"invalidResponse": "Respons tidak valid dari layanan embedder. Silakan periksa konfigurasi Anda."
},
"serviceFactory": {
"openAiConfigMissing": "Konfigurasi OpenAI tidak ada untuk membuat embedder",
"ollamaConfigMissing": "Konfigurasi Ollama tidak ada untuk membuat embedder",
"openAiCompatibleConfigMissing": "Konfigurasi yang kompatibel dengan OpenAI tidak ada untuk membuat embedder",
"geminiConfigMissing": "Konfigurasi Gemini tidak ada untuk membuat embedder",
"invalidEmbedderType": "Tipe embedder yang dikonfigurasi tidak valid: {{embedderProvider}}",
"vectorDimensionNotDeterminedOpenAiCompatible": "Tidak dapat menentukan dimensi vektor untuk model '{{modelId}}' dengan penyedia '{{provider}}'. Pastikan 'Dimensi Embedding' diatur dengan benar di pengaturan penyedia yang kompatibel dengan OpenAI.",
"vectorDimensionNotDetermined": "Tidak dapat menentukan dimensi vektor untuk model '{{modelId}}' dengan penyedia '{{provider}}'. Periksa profil model atau konfigurasi.",
"qdrantUrlMissing": "URL Qdrant tidak ada untuk membuat penyimpanan vektor",
"codeIndexingNotConfigured": "Tidak dapat membuat layanan: Pengindeksan kode tidak dikonfigurasi dengan benar"
}
}
11 changes: 11 additions & 0 deletions src/i18n/locales/it/embeddings.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,16 @@
"invalidBaseUrl": "URL di base non valido. Controlla la configurazione del tuo URL.",
"invalidModel": "Modello non valido. Controlla la configurazione del tuo modello.",
"invalidResponse": "Risposta non valida dal servizio embedder. Controlla la tua configurazione."
},
"serviceFactory": {
"openAiConfigMissing": "Configurazione OpenAI mancante per la creazione dell'embedder",
"ollamaConfigMissing": "Configurazione Ollama mancante per la creazione dell'embedder",
"openAiCompatibleConfigMissing": "Configurazione compatibile con OpenAI mancante per la creazione dell'embedder",
"geminiConfigMissing": "Configurazione Gemini mancante per la creazione dell'embedder",
"invalidEmbedderType": "Tipo di embedder configurato non valido: {{embedderProvider}}",
"vectorDimensionNotDeterminedOpenAiCompatible": "Impossibile determinare la dimensione del vettore per il modello '{{modelId}}' con il provider '{{provider}}'. Assicurati che la 'Dimensione di embedding' sia impostata correttamente nelle impostazioni del provider compatibile con OpenAI.",
"vectorDimensionNotDetermined": "Impossibile determinare la dimensione del vettore per il modello '{{modelId}}' con il provider '{{provider}}'. Controlla i profili del modello o la configurazione.",
"qdrantUrlMissing": "URL Qdrant mancante per la creazione dello storage vettoriale",
"codeIndexingNotConfigured": "Impossibile creare i servizi: L'indicizzazione del codice non è configurata correttamente"
}
}
Loading
Loading