From bed3b718601dc6234ffc0b4083e67d7a2d69a0fe Mon Sep 17 00:00:00 2001
From: Jun Siang Cheah <git@jscheah.me>
Date: Sun, 15 Sep 2024 14:14:09 +0100
Subject: [PATCH] feat: add help text for capabilities

---
 .../workspace/Models/Capabilities.svelte      | 44 +++++++++++++++++++
 src/lib/i18n/locales/ar-BH/translation.json   |  2 +
 src/lib/i18n/locales/bg-BG/translation.json   |  2 +
 src/lib/i18n/locales/bn-BD/translation.json   |  2 +
 src/lib/i18n/locales/ca-ES/translation.json   |  2 +
 src/lib/i18n/locales/ceb-PH/translation.json  |  2 +
 src/lib/i18n/locales/de-DE/translation.json   |  2 +
 src/lib/i18n/locales/dg-DG/translation.json   |  2 +
 src/lib/i18n/locales/en-GB/translation.json   |  2 +
 src/lib/i18n/locales/en-US/translation.json   |  2 +
 src/lib/i18n/locales/es-ES/translation.json   |  2 +
 src/lib/i18n/locales/fa-IR/translation.json   |  2 +
 src/lib/i18n/locales/fi-FI/translation.json   |  2 +
 src/lib/i18n/locales/fr-CA/translation.json   |  2 +
 src/lib/i18n/locales/fr-FR/translation.json   |  2 +
 src/lib/i18n/locales/he-IL/translation.json   |  2 +
 src/lib/i18n/locales/hi-IN/translation.json   |  2 +
 src/lib/i18n/locales/hr-HR/translation.json   |  2 +
 src/lib/i18n/locales/id-ID/translation.json   |  2 +
 src/lib/i18n/locales/it-IT/translation.json   |  2 +
 src/lib/i18n/locales/ja-JP/translation.json   |  2 +
 src/lib/i18n/locales/ka-GE/translation.json   |  2 +
 src/lib/i18n/locales/ko-KR/translation.json   |  2 +
 src/lib/i18n/locales/lt-LT/translation.json   |  2 +
 src/lib/i18n/locales/ms-MY/translation.json   |  2 +
 src/lib/i18n/locales/nb-NO/translation.json   |  2 +
 src/lib/i18n/locales/nl-NL/translation.json   |  2 +
 src/lib/i18n/locales/pa-IN/translation.json   |  2 +
 src/lib/i18n/locales/pl-PL/translation.json   |  2 +
 src/lib/i18n/locales/pt-BR/translation.json   |  2 +
 src/lib/i18n/locales/pt-PT/translation.json   |  2 +
 src/lib/i18n/locales/ro-RO/translation.json   |  2 +
 src/lib/i18n/locales/ru-RU/translation.json   |  2 +
 src/lib/i18n/locales/sr-RS/translation.json   |  2 +
 src/lib/i18n/locales/sv-SE/translation.json   |  2 +
 src/lib/i18n/locales/th-TH/translation.json   |  2 +
 src/lib/i18n/locales/tk-TW/translation.json   |  2 +
 src/lib/i18n/locales/tr-TR/translation.json   |  2 +
 src/lib/i18n/locales/uk-UA/translation.json   |  2 +
 src/lib/i18n/locales/vi-VN/translation.json   |  2 +
 src/lib/i18n/locales/zh-CN/translation.json   |  2 +
 src/lib/i18n/locales/zh-TW/translation.json   |  2 +
 .../workspace/models/create/+page.svelte      | 24 ++--------
 .../(app)/workspace/models/edit/+page.svelte  | 21 +--------
 44 files changed, 132 insertions(+), 39 deletions(-)
 create mode 100644 src/lib/components/workspace/Models/Capabilities.svelte

diff --git a/src/lib/components/workspace/Models/Capabilities.svelte b/src/lib/components/workspace/Models/Capabilities.svelte
new file mode 100644
index 000000000..2a07f401d
--- /dev/null
+++ b/src/lib/components/workspace/Models/Capabilities.svelte
@@ -0,0 +1,44 @@
+<script lang="ts">
+	import { getContext } from 'svelte';
+	import Checkbox from '$lib/components/common/Checkbox.svelte';
+	import Tooltip from '$lib/components/common/Tooltip.svelte';
+	import { marked } from 'marked';
+
+	const i18n = getContext('i18n');
+
+	const helpText = {
+		vision: $i18n.t('Model accepts image inputs'),
+		usage: $i18n.t(
+			'Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.'
+		)
+	};
+
+	export let capabilities: {
+		vision?: boolean;
+		usage?: boolean;
+	} = {};
+</script>
+
+<div>
+	<div class="flex w-full justify-between mb-1">
+		<div class=" self-center text-sm font-semibold">{$i18n.t('Capabilities')}</div>
+	</div>
+	<div class="flex flex-col">
+		{#each Object.keys(capabilities) as capability}
+			<div class=" flex items-center gap-2">
+				<Checkbox
+					state={capabilities[capability] ? 'checked' : 'unchecked'}
+					on:change={(e) => {
+						capabilities[capability] = e.detail === 'checked';
+					}}
+				/>
+
+				<div class=" py-0.5 text-sm capitalize">
+					<Tooltip content={marked.parse(helpText[capability])}>
+						{$i18n.t(capability)}
+					</Tooltip>
+				</div>
+			</div>
+		{/each}
+	</div>
+</div>
diff --git a/src/lib/i18n/locales/ar-BH/translation.json b/src/lib/i18n/locales/ar-BH/translation.json
index 129ec24af..7262f1bb9 100644
--- a/src/lib/i18n/locales/ar-BH/translation.json
+++ b/src/lib/i18n/locales/ar-BH/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "لم يتم العثور على النموذج {{modelId}}.",
 	"Model {{modelName}} is not vision capable": "نموذج {{modelName}} غير قادر على الرؤية",
 	"Model {{name}} is now {{status}}": "نموذج {{name}} هو الآن {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "تم اكتشاف مسار نظام الملفات النموذجي. الاسم المختصر للنموذج مطلوب للتحديث، ولا يمكن الاستمرار.",
 	"Model ID": "رقم الموديل",
@@ -575,6 +576,7 @@
 	"Send": "تم",
 	"Send a Message": "يُرجى إدخال طلبك هنا",
 	"Send message": "يُرجى إدخال طلبك هنا.",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "سبتمبر",
 	"Serper API Key": "مفتاح واجهة برمجة تطبيقات سيربر",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/bg-BG/translation.json b/src/lib/i18n/locales/bg-BG/translation.json
index e8288fd98..4f92e905f 100644
--- a/src/lib/i18n/locales/bg-BG/translation.json
+++ b/src/lib/i18n/locales/bg-BG/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Моделът {{modelId}} не е намерен",
 	"Model {{modelName}} is not vision capable": "Моделът {{modelName}} не може да се вижда",
 	"Model {{name}} is now {{status}}": "Моделът {{name}} сега е {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Открит е път до файловата система на модела. За актуализацията се изисква съкратено име на модела, не може да продължи.",
 	"Model ID": "ИД на модел",
@@ -571,6 +572,7 @@
 	"Send": "Изпрати",
 	"Send a Message": "Изпращане на Съобщение",
 	"Send message": "Изпращане на съобщение",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Септември",
 	"Serper API Key": "Serper API ключ",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/bn-BD/translation.json b/src/lib/i18n/locales/bn-BD/translation.json
index 1a072838b..a77f1eb72 100644
--- a/src/lib/i18n/locales/bn-BD/translation.json
+++ b/src/lib/i18n/locales/bn-BD/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "{{modelId}} মডেল পাওয়া যায়নি",
 	"Model {{modelName}} is not vision capable": "মডেল {{modelName}} দৃষ্টি সক্ষম নয়",
 	"Model {{name}} is now {{status}}": "মডেল {{name}} এখন {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "মডেল ফাইলসিস্টেম পাথ পাওয়া গেছে। আপডেটের জন্য মডেলের শর্টনেম আবশ্যক, এগিয়ে যাওয়া যাচ্ছে না।",
 	"Model ID": "মডেল ID",
@@ -571,6 +572,7 @@
 	"Send": "পাঠান",
 	"Send a Message": "একটি মেসেজ পাঠান",
 	"Send message": "মেসেজ পাঠান",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "সেপ্টেম্বর",
 	"Serper API Key": "Serper API Key",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/ca-ES/translation.json b/src/lib/i18n/locales/ca-ES/translation.json
index 2726ded8a..9575b8cae 100644
--- a/src/lib/i18n/locales/ca-ES/translation.json
+++ b/src/lib/i18n/locales/ca-ES/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "No s'ha trobat el model {{modelId}}",
 	"Model {{modelName}} is not vision capable": "El model {{modelName}} no és capaç de visió",
 	"Model {{name}} is now {{status}}": "El model {{name}} ara és {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Model creat correctament",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "S'ha detectat el camí del sistema de fitxers del model. És necessari un nom curt del model per actualitzar, no es pot continuar.",
 	"Model ID": "Identificador del model",
@@ -572,6 +573,7 @@
 	"Send": "Enviar",
 	"Send a Message": "Enviar un missatge",
 	"Send message": "Enviar missatge",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Setembre",
 	"Serper API Key": "Clau API de Serper",
 	"Serply API Key": "Clau API de Serply",
diff --git a/src/lib/i18n/locales/ceb-PH/translation.json b/src/lib/i18n/locales/ceb-PH/translation.json
index 887a5ed3f..ec199f6e2 100644
--- a/src/lib/i18n/locales/ceb-PH/translation.json
+++ b/src/lib/i18n/locales/ceb-PH/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Modelo {{modelId}} wala makit-an",
 	"Model {{modelName}} is not vision capable": "",
 	"Model {{name}} is now {{status}}": "",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
 	"Model ID": "",
@@ -571,6 +572,7 @@
 	"Send": "",
 	"Send a Message": "Magpadala ug mensahe",
 	"Send message": "Magpadala ug mensahe",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "",
 	"Serper API Key": "",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/de-DE/translation.json b/src/lib/i18n/locales/de-DE/translation.json
index 8a0c99ecc..20c49b975 100644
--- a/src/lib/i18n/locales/de-DE/translation.json
+++ b/src/lib/i18n/locales/de-DE/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Modell {{modelId}} nicht gefunden",
 	"Model {{modelName}} is not vision capable": "Das Modell {{modelName}} ist nicht für die Bildverarbeitung geeignet",
 	"Model {{name}} is now {{status}}": "Modell {{name}} ist jetzt {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Modell erfolgreich erstellt!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Modell-Dateisystempfad erkannt. Modellkurzname ist für das Update erforderlich, Fortsetzung nicht möglich.",
 	"Model ID": "Modell-ID",
@@ -571,6 +572,7 @@
 	"Send": "Senden",
 	"Send a Message": "Eine Nachricht senden",
 	"Send message": "Nachricht senden",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "September",
 	"Serper API Key": "Serper-API-Schlüssel",
 	"Serply API Key": "Serply-API-Schlüssel",
diff --git a/src/lib/i18n/locales/dg-DG/translation.json b/src/lib/i18n/locales/dg-DG/translation.json
index 69ffc9b73..abda0f2c9 100644
--- a/src/lib/i18n/locales/dg-DG/translation.json
+++ b/src/lib/i18n/locales/dg-DG/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Model {{modelId}} not found",
 	"Model {{modelName}} is not vision capable": "",
 	"Model {{name}} is now {{status}}": "",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Model filesystem bark detected. Model shortname is required for update, cannot continue.",
 	"Model ID": "",
@@ -573,6 +574,7 @@
 	"Send": "",
 	"Send a Message": "Send a Message much message",
 	"Send message": "Send message very send",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "",
 	"Serper API Key": "",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/en-GB/translation.json b/src/lib/i18n/locales/en-GB/translation.json
index cbfa7e34a..118e69463 100644
--- a/src/lib/i18n/locales/en-GB/translation.json
+++ b/src/lib/i18n/locales/en-GB/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "",
 	"Model {{modelName}} is not vision capable": "",
 	"Model {{name}} is now {{status}}": "",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
 	"Model ID": "",
@@ -571,6 +572,7 @@
 	"Send": "",
 	"Send a Message": "",
 	"Send message": "",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "",
 	"Serper API Key": "",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/en-US/translation.json b/src/lib/i18n/locales/en-US/translation.json
index cbfa7e34a..118e69463 100644
--- a/src/lib/i18n/locales/en-US/translation.json
+++ b/src/lib/i18n/locales/en-US/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "",
 	"Model {{modelName}} is not vision capable": "",
 	"Model {{name}} is now {{status}}": "",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
 	"Model ID": "",
@@ -571,6 +572,7 @@
 	"Send": "",
 	"Send a Message": "",
 	"Send message": "",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "",
 	"Serper API Key": "",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/es-ES/translation.json b/src/lib/i18n/locales/es-ES/translation.json
index c15351435..80830b308 100644
--- a/src/lib/i18n/locales/es-ES/translation.json
+++ b/src/lib/i18n/locales/es-ES/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "El modelo {{modelId}} no fue encontrado",
 	"Model {{modelName}} is not vision capable": "El modelo {{modelName}} no es capaz de ver",
 	"Model {{name}} is now {{status}}": "El modelo {{name}} ahora es {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Modelo creado correctamente!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Se detectó la ruta del sistema de archivos del modelo. Se requiere el nombre corto del modelo para la actualización, no se puede continuar.",
 	"Model ID": "ID del modelo",
@@ -572,6 +573,7 @@
 	"Send": "Enviar",
 	"Send a Message": "Enviar un Mensaje",
 	"Send message": "Enviar Mensaje",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Septiembre",
 	"Serper API Key": "Clave API de Serper",
 	"Serply API Key": "Clave API de Serply",
diff --git a/src/lib/i18n/locales/fa-IR/translation.json b/src/lib/i18n/locales/fa-IR/translation.json
index 09a5a5901..bcf2f41bc 100644
--- a/src/lib/i18n/locales/fa-IR/translation.json
+++ b/src/lib/i18n/locales/fa-IR/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "مدل {{modelId}} یافت نشد",
 	"Model {{modelName}} is not vision capable": "مدل {{modelName}} قادر به بینایی نیست",
 	"Model {{name}} is now {{status}}": "مدل {{name}} در حال حاضر {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "مسیر فایل سیستم مدل یافت شد. برای بروزرسانی نیاز است نام کوتاه مدل وجود داشته باشد.",
 	"Model ID": "شناسه مدل",
@@ -571,6 +572,7 @@
 	"Send": "ارسال",
 	"Send a Message": "ارسال یک پیام",
 	"Send message": "ارسال پیام",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "سپتامبر",
 	"Serper API Key": "کلید API Serper",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/fi-FI/translation.json b/src/lib/i18n/locales/fi-FI/translation.json
index 977465411..a1418ed2e 100644
--- a/src/lib/i18n/locales/fi-FI/translation.json
+++ b/src/lib/i18n/locales/fi-FI/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Mallia {{modelId}} ei löytynyt",
 	"Model {{modelName}} is not vision capable": "Malli {{modelName}} ei kykene näkökykyyn",
 	"Model {{name}} is now {{status}}": "Malli {{name}} on nyt {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Mallin tiedostojärjestelmäpolku havaittu. Mallin lyhytnimi vaaditaan päivitykseen, ei voi jatkaa.",
 	"Model ID": "Mallin tunnus",
@@ -571,6 +572,7 @@
 	"Send": "Lähetä",
 	"Send a Message": "Lähetä viesti",
 	"Send message": "Lähetä viesti",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "syyskuu",
 	"Serper API Key": "Serper API -avain",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/fr-CA/translation.json b/src/lib/i18n/locales/fr-CA/translation.json
index d74d96649..5603b5144 100644
--- a/src/lib/i18n/locales/fr-CA/translation.json
+++ b/src/lib/i18n/locales/fr-CA/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Modèle {{modelId}} introuvable",
 	"Model {{modelName}} is not vision capable": "Le modèle {{modelName}} n'a pas de capacités visuelles",
 	"Model {{name}} is now {{status}}": "Le modèle {{name}} est désormais {{status}}.",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Le modèle a été créé avec succès !",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Chemin du système de fichiers de modèle détecté. Le nom court du modèle est requis pour la mise à jour, l'opération ne peut pas être poursuivie.",
 	"Model ID": "ID du modèle",
@@ -572,6 +573,7 @@
 	"Send": "Envoyer",
 	"Send a Message": "Envoyer un message",
 	"Send message": "Envoyer un message",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Septembre",
 	"Serper API Key": "Clé API Serper",
 	"Serply API Key": "Clé API Serply",
diff --git a/src/lib/i18n/locales/fr-FR/translation.json b/src/lib/i18n/locales/fr-FR/translation.json
index d3cecbf7b..aa90d458a 100644
--- a/src/lib/i18n/locales/fr-FR/translation.json
+++ b/src/lib/i18n/locales/fr-FR/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Modèle {{modelId}} introuvable",
 	"Model {{modelName}} is not vision capable": "Le modèle {{modelName}} n'a pas de capacités visuelles",
 	"Model {{name}} is now {{status}}": "Le modèle {{name}} est désormais {{status}}.",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Le modèle a été créé avec succès !",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Chemin du système de fichiers de modèle détecté. Le nom court du modèle est requis pour la mise à jour, l'opération ne peut pas être poursuivie.",
 	"Model ID": "ID du modèle",
@@ -572,6 +573,7 @@
 	"Send": "Envoyer",
 	"Send a Message": "Envoyer un message",
 	"Send message": "Envoyer un message",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Septembre",
 	"Serper API Key": "Clé API Serper",
 	"Serply API Key": "Clé API Serply",
diff --git a/src/lib/i18n/locales/he-IL/translation.json b/src/lib/i18n/locales/he-IL/translation.json
index 23e96d1d2..4a0561718 100644
--- a/src/lib/i18n/locales/he-IL/translation.json
+++ b/src/lib/i18n/locales/he-IL/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "המודל {{modelId}} לא נמצא",
 	"Model {{modelName}} is not vision capable": "דגם {{modelName}} אינו בעל יכולת ראייה",
 	"Model {{name}} is now {{status}}": "דגם {{name}} הוא כעת {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "נתיב מערכת הקבצים של המודל זוהה. נדרש שם קצר של המודל לעדכון, לא ניתן להמשיך.",
 	"Model ID": "מזהה דגם",
@@ -572,6 +573,7 @@
 	"Send": "שלח",
 	"Send a Message": "שלח הודעה",
 	"Send message": "שלח הודעה",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "ספטמבר",
 	"Serper API Key": "מפתח Serper API",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/hi-IN/translation.json b/src/lib/i18n/locales/hi-IN/translation.json
index 068728a0d..c3612529a 100644
--- a/src/lib/i18n/locales/hi-IN/translation.json
+++ b/src/lib/i18n/locales/hi-IN/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "मॉडल {{modelId}} नहीं मिला",
 	"Model {{modelName}} is not vision capable": "मॉडल {{modelName}} दृष्टि सक्षम नहीं है",
 	"Model {{name}} is now {{status}}": "मॉडल {{name}} अब {{status}} है",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "मॉडल फ़ाइल सिस्टम पथ का पता चला. अद्यतन के लिए मॉडल संक्षिप्त नाम आवश्यक है, जारी नहीं रखा जा सकता।",
 	"Model ID": "मॉडल आईडी",
@@ -571,6 +572,7 @@
 	"Send": "भेज",
 	"Send a Message": "एक संदेश भेजो",
 	"Send message": "मेसेज भेजें",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "सितंबर",
 	"Serper API Key": "Serper API कुंजी",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/hr-HR/translation.json b/src/lib/i18n/locales/hr-HR/translation.json
index 039cf73c8..dc95491fa 100644
--- a/src/lib/i18n/locales/hr-HR/translation.json
+++ b/src/lib/i18n/locales/hr-HR/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Model {{modelId}} nije pronađen",
 	"Model {{modelName}} is not vision capable": "Model {{modelName}} ne čita vizualne impute",
 	"Model {{name}} is now {{status}}": "Model {{name}} sada je {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Otkriven put datotečnog sustava modela. Kratko ime modela je potrebno za ažuriranje, nije moguće nastaviti.",
 	"Model ID": "ID modela",
@@ -572,6 +573,7 @@
 	"Send": "Pošalji",
 	"Send a Message": "Pošaljite poruku",
 	"Send message": "Pošalji poruku",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Rujan",
 	"Serper API Key": "Serper API ključ",
 	"Serply API Key": "Serply API ključ",
diff --git a/src/lib/i18n/locales/id-ID/translation.json b/src/lib/i18n/locales/id-ID/translation.json
index f12a5e83b..0efd4626f 100644
--- a/src/lib/i18n/locales/id-ID/translation.json
+++ b/src/lib/i18n/locales/id-ID/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Model {{modelId}} tidak ditemukan",
 	"Model {{modelName}} is not vision capable": "Model {{modelName}} tidak dapat dilihat",
 	"Model {{name}} is now {{status}}": "Model {{name}} sekarang menjadi {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Model berhasil dibuat!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Jalur sistem berkas model terdeteksi. Nama pendek model diperlukan untuk pembaruan, tidak dapat dilanjutkan.",
 	"Model ID": "ID Model",
@@ -571,6 +572,7 @@
 	"Send": "Kirim",
 	"Send a Message": "Kirim Pesan",
 	"Send message": "Kirim pesan",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "September",
 	"Serper API Key": "Kunci API Serper",
 	"Serply API Key": "Kunci API Serply",
diff --git a/src/lib/i18n/locales/it-IT/translation.json b/src/lib/i18n/locales/it-IT/translation.json
index c4dd65249..129e91cec 100644
--- a/src/lib/i18n/locales/it-IT/translation.json
+++ b/src/lib/i18n/locales/it-IT/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Modello {{modelId}} non trovato",
 	"Model {{modelName}} is not vision capable": "Il modello {{modelName}} non è in grado di vedere",
 	"Model {{name}} is now {{status}}": "Il modello {{name}} è ora {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Percorso del filesystem del modello rilevato. Il nome breve del modello è richiesto per l'aggiornamento, impossibile continuare.",
 	"Model ID": "ID modello",
@@ -572,6 +573,7 @@
 	"Send": "Invia",
 	"Send a Message": "Invia un messaggio",
 	"Send message": "Invia messaggio",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Settembre",
 	"Serper API Key": "Chiave API Serper",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/ja-JP/translation.json b/src/lib/i18n/locales/ja-JP/translation.json
index dce3ca0ec..4db212ac9 100644
--- a/src/lib/i18n/locales/ja-JP/translation.json
+++ b/src/lib/i18n/locales/ja-JP/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "モデル {{modelId}} が見つかりません",
 	"Model {{modelName}} is not vision capable": "モデル {{modelName}} は視覚に対応していません",
 	"Model {{name}} is now {{status}}": "モデル {{name}} は {{status}} になりました。",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "モデルファイルシステムパスが検出されました。モデルの短縮名が必要です。更新できません。",
 	"Model ID": "モデルID",
@@ -570,6 +571,7 @@
 	"Send": "送信",
 	"Send a Message": "メッセージを送信",
 	"Send message": "メッセージを送信",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "9月",
 	"Serper API Key": "Serper APIキー",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/ka-GE/translation.json b/src/lib/i18n/locales/ka-GE/translation.json
index 6a5444a45..c0f4b45c6 100644
--- a/src/lib/i18n/locales/ka-GE/translation.json
+++ b/src/lib/i18n/locales/ka-GE/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "მოდელი {{modelId}} ვერ მოიძებნა",
 	"Model {{modelName}} is not vision capable": "Model {{modelName}} is not vision capable",
 	"Model {{name}} is now {{status}}": "Model {{name}} is now {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "აღმოჩენილია მოდელის ფაილური სისტემის გზა. განახლებისთვის საჭიროა მოდელის მოკლე სახელი, გაგრძელება შეუძლებელია.",
 	"Model ID": "მოდელის ID",
@@ -571,6 +572,7 @@
 	"Send": "გაგზავნა",
 	"Send a Message": "შეტყობინების გაგზავნა",
 	"Send message": "შეტყობინების გაგზავნა",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "სექტემბერი",
 	"Serper API Key": "Serper API Key",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/ko-KR/translation.json b/src/lib/i18n/locales/ko-KR/translation.json
index 240627197..3434bffb5 100644
--- a/src/lib/i18n/locales/ko-KR/translation.json
+++ b/src/lib/i18n/locales/ko-KR/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "{{modelId}} 모델을 찾을 수 없습니다.",
 	"Model {{modelName}} is not vision capable": "{{modelName}} 모델은 비전을 사용할 수 없습니다.",
 	"Model {{name}} is now {{status}}": "{{name}} 모델은 이제 {{status}} 상태입니다.",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "모델 파일 시스템 경로가 감지되었습니다. 업데이트하려면 모델 단축 이름이 필요하며 계속할 수 없습니다.",
 	"Model ID": "모델 ID",
@@ -571,6 +572,7 @@
 	"Send": "보내기",
 	"Send a Message": "메시지 보내기",
 	"Send message": "메시지 보내기",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "9월",
 	"Serper API Key": "Serper API 키",
 	"Serply API Key": "Serply API 키",
diff --git a/src/lib/i18n/locales/lt-LT/translation.json b/src/lib/i18n/locales/lt-LT/translation.json
index ac0d4c3b6..3783c87d4 100644
--- a/src/lib/i18n/locales/lt-LT/translation.json
+++ b/src/lib/i18n/locales/lt-LT/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Modelis {{modelId}} nerastas",
 	"Model {{modelName}} is not vision capable": "Modelis {{modelName}} neturi vaizdo gebėjimų",
 	"Model {{name}} is now {{status}}": "Modelis {{name}} dabar {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Modelis sukurtas sėkmingai",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Modelio failų sistemos kelias aptiktas. Reikalingas trumpas modelio pavadinimas atnaujinimui.",
 	"Model ID": "Modelio ID",
@@ -573,6 +574,7 @@
 	"Send": "Siųsti",
 	"Send a Message": "Siųsti žinutę",
 	"Send message": "Siųsti žinutę",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "rugsėjis",
 	"Serper API Key": "Serper API raktas",
 	"Serply API Key": "Serply API raktas",
diff --git a/src/lib/i18n/locales/ms-MY/translation.json b/src/lib/i18n/locales/ms-MY/translation.json
index 63295fa29..a8374be68 100644
--- a/src/lib/i18n/locales/ms-MY/translation.json
+++ b/src/lib/i18n/locales/ms-MY/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Model {{ modelId }} tidak dijumpai",
 	"Model {{modelName}} is not vision capable": "Model {{ modelName }} tidak mempunyai keupayaan penglihatan",
 	"Model {{name}} is now {{status}}": "Model {{name}} kini {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Model berjaya dibuat!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Laluan sistem fail model dikesan. Nama pendek model diperlukan untuk kemas kini, tidak boleh diteruskan.",
 	"Model ID": "ID Model",
@@ -571,6 +572,7 @@
 	"Send": "Hantar",
 	"Send a Message": "Hantar Pesanan",
 	"Send message": "Hantar pesanan",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "September",
 	"Serper API Key": "Kunci API Serper",
 	"Serply API Key": "Kunci API Serply",
diff --git a/src/lib/i18n/locales/nb-NO/translation.json b/src/lib/i18n/locales/nb-NO/translation.json
index b5a599959..ab3b7db77 100644
--- a/src/lib/i18n/locales/nb-NO/translation.json
+++ b/src/lib/i18n/locales/nb-NO/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Modellen {{modelId}} ble ikke funnet",
 	"Model {{modelName}} is not vision capable": "Modellen {{modelName}} er ikke visjonsdyktig",
 	"Model {{name}} is now {{status}}": "Modellen {{name}} er nå {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Modellen ble opprettet!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Modellens filsystemsti oppdaget. Modellens kortnavn er påkrevd for oppdatering, kan ikke fortsette.",
 	"Model ID": "Modell-ID",
@@ -571,6 +572,7 @@
 	"Send": "Send",
 	"Send a Message": "Send en melding",
 	"Send message": "Send melding",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "september",
 	"Serper API Key": "Serper API-nøkkel",
 	"Serply API Key": "Serply API-nøkkel",
diff --git a/src/lib/i18n/locales/nl-NL/translation.json b/src/lib/i18n/locales/nl-NL/translation.json
index a0ac8f4ce..4f4840269 100644
--- a/src/lib/i18n/locales/nl-NL/translation.json
+++ b/src/lib/i18n/locales/nl-NL/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Model {{modelId}} niet gevonden",
 	"Model {{modelName}} is not vision capable": "Model {{modelName}} is niet geschikt voor visie",
 	"Model {{name}} is now {{status}}": "Model {{name}} is nu {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Model filesystem path gedetecteerd. Model shortname is vereist voor update, kan niet doorgaan.",
 	"Model ID": "Model-ID",
@@ -571,6 +572,7 @@
 	"Send": "Verzenden",
 	"Send a Message": "Stuur een Bericht",
 	"Send message": "Stuur bericht",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "September",
 	"Serper API Key": "Serper API-sleutel",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/pa-IN/translation.json b/src/lib/i18n/locales/pa-IN/translation.json
index 554112f49..fe270cc96 100644
--- a/src/lib/i18n/locales/pa-IN/translation.json
+++ b/src/lib/i18n/locales/pa-IN/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "ਮਾਡਲ {{modelId}} ਨਹੀਂ ਮਿਲਿਆ",
 	"Model {{modelName}} is not vision capable": "ਮਾਡਲ {{modelName}} ਦ੍ਰਿਸ਼ਟੀ ਸਮਰੱਥ ਨਹੀਂ ਹੈ",
 	"Model {{name}} is now {{status}}": "ਮਾਡਲ {{name}} ਹੁਣ {{status}} ਹੈ",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "ਮਾਡਲ ਫਾਈਲਸਿਸਟਮ ਪੱਥ ਪਾਇਆ ਗਿਆ। ਅੱਪਡੇਟ ਲਈ ਮਾਡਲ ਸ਼ੌਰਟਨੇਮ ਦੀ ਲੋੜ ਹੈ, ਜਾਰੀ ਨਹੀਂ ਰੱਖ ਸਕਦੇ।",
 	"Model ID": "ਮਾਡਲ ID",
@@ -571,6 +572,7 @@
 	"Send": "ਭੇਜੋ",
 	"Send a Message": "ਇੱਕ ਸੁਨੇਹਾ ਭੇਜੋ",
 	"Send message": "ਸੁਨੇਹਾ ਭੇਜੋ",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "ਸਤੰਬਰ",
 	"Serper API Key": "Serper API ਕੁੰਜੀ",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/pl-PL/translation.json b/src/lib/i18n/locales/pl-PL/translation.json
index 9b91c926d..b3186ff08 100644
--- a/src/lib/i18n/locales/pl-PL/translation.json
+++ b/src/lib/i18n/locales/pl-PL/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Model {{modelId}} nie został znaleziony",
 	"Model {{modelName}} is not vision capable": "Model {{modelName}} nie jest w stanie zobaczyć",
 	"Model {{name}} is now {{status}}": "Model {{name}} to teraz {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Wykryto ścieżkę systemu plików modelu. Wymagana jest krótka nazwa modelu do aktualizacji, nie można kontynuować.",
 	"Model ID": "Identyfikator modelu",
@@ -573,6 +574,7 @@
 	"Send": "Wyślij",
 	"Send a Message": "Wyślij Wiadomość",
 	"Send message": "Wyślij wiadomość",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Wrzesień",
 	"Serper API Key": "Klucz API Serper",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/pt-BR/translation.json b/src/lib/i18n/locales/pt-BR/translation.json
index b18cb3233..1811dbe49 100644
--- a/src/lib/i18n/locales/pt-BR/translation.json
+++ b/src/lib/i18n/locales/pt-BR/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Modelo {{modelId}} não encontrado",
 	"Model {{modelName}} is not vision capable": "Modelo {{modelName}} não é capaz de visão",
 	"Model {{name}} is now {{status}}": "Modelo {{name}} está agora {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Modelo criado com sucesso!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Caminho do sistema de arquivos do modelo detectado. Nome curto do modelo é necessário para atualização, não é possível continuar.",
 	"Model ID": "ID do Modelo",
@@ -572,6 +573,7 @@
 	"Send": "Enviar",
 	"Send a Message": "Enviar uma Mensagem",
 	"Send message": "Enviar mensagem",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Setembro",
 	"Serper API Key": "Chave da API Serper",
 	"Serply API Key": "Chave da API Serply",
diff --git a/src/lib/i18n/locales/pt-PT/translation.json b/src/lib/i18n/locales/pt-PT/translation.json
index a78deab29..7154bedc6 100644
--- a/src/lib/i18n/locales/pt-PT/translation.json
+++ b/src/lib/i18n/locales/pt-PT/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Modelo {{modelId}} não foi encontrado",
 	"Model {{modelName}} is not vision capable": "O modelo {{modelName}} não é capaz de visão",
 	"Model {{name}} is now {{status}}": "Modelo {{name}} agora é {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Dtectado caminho do sistema de ficheiros do modelo. É necessário o nome curto do modelo para atualização, não é possível continuar.",
 	"Model ID": "ID do modelo",
@@ -572,6 +573,7 @@
 	"Send": "Enviar",
 	"Send a Message": "Enviar uma Mensagem",
 	"Send message": "Enviar mensagem",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Setembro",
 	"Serper API Key": "Chave API Serper",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/ro-RO/translation.json b/src/lib/i18n/locales/ro-RO/translation.json
index 7cbf5d485..2d150d169 100644
--- a/src/lib/i18n/locales/ro-RO/translation.json
+++ b/src/lib/i18n/locales/ro-RO/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Modelul {{modelId}} nu a fost găsit",
 	"Model {{modelName}} is not vision capable": "Modelul {{modelName}} nu are capacități de viziune",
 	"Model {{name}} is now {{status}}": "Modelul {{name}} este acum {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Modelul a fost creat cu succes!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Calea sistemului de fișiere al modelului detectată. Este necesar numele scurt al modelului pentru actualizare, nu se poate continua.",
 	"Model ID": "ID Model",
@@ -572,6 +573,7 @@
 	"Send": "Trimite",
 	"Send a Message": "Trimite un Mesaj",
 	"Send message": "Trimite mesajul",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Septembrie",
 	"Serper API Key": "Cheie API Serper",
 	"Serply API Key": "Cheie API Serply",
diff --git a/src/lib/i18n/locales/ru-RU/translation.json b/src/lib/i18n/locales/ru-RU/translation.json
index 29f677adf..6fd34cf8e 100644
--- a/src/lib/i18n/locales/ru-RU/translation.json
+++ b/src/lib/i18n/locales/ru-RU/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Модель {{modelId}} не найдена",
 	"Model {{modelName}} is not vision capable": "Модель {{modelName}} не поддерживает зрение",
 	"Model {{name}} is now {{status}}": "Модель {{name}} теперь {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Модель успешно создана!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Обнаружен путь к файловой системе модели. Для обновления требуется краткое имя модели, не удается продолжить.",
 	"Model ID": "ID модели",
@@ -573,6 +574,7 @@
 	"Send": "Отправить",
 	"Send a Message": "Отправить сообщение",
 	"Send message": "Отправить сообщение",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Сентябрь",
 	"Serper API Key": "Ключ API Serper",
 	"Serply API Key": "Ключ API Serply",
diff --git a/src/lib/i18n/locales/sr-RS/translation.json b/src/lib/i18n/locales/sr-RS/translation.json
index 11b657977..068e4fedc 100644
--- a/src/lib/i18n/locales/sr-RS/translation.json
+++ b/src/lib/i18n/locales/sr-RS/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Модел {{modelId}} није пронађен",
 	"Model {{modelName}} is not vision capable": "Модел {{моделНаме}} није способан за вид",
 	"Model {{name}} is now {{status}}": "Модел {{наме}} је сада {{статус}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Откривена путања система датотека модела. За ажурирање је потребан кратак назив модела, не може се наставити.",
 	"Model ID": "ИД модела",
@@ -572,6 +573,7 @@
 	"Send": "Пошаљи",
 	"Send a Message": "Пошаљи поруку",
 	"Send message": "Пошаљи поруку",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Септембар",
 	"Serper API Key": "Серпер АПИ кључ",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/sv-SE/translation.json b/src/lib/i18n/locales/sv-SE/translation.json
index 3fa3fab98..4d4dcc9b0 100644
--- a/src/lib/i18n/locales/sv-SE/translation.json
+++ b/src/lib/i18n/locales/sv-SE/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Modell {{modelId}} hittades inte",
 	"Model {{modelName}} is not vision capable": "Modellen {{modelName}} är inte synkapabel",
 	"Model {{name}} is now {{status}}": "Modellen {{name}} är nu {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Modellens filsystemväg upptäckt. Modellens kortnamn krävs för uppdatering, kan inte fortsätta.",
 	"Model ID": "Modell-ID",
@@ -571,6 +572,7 @@
 	"Send": "Skicka",
 	"Send a Message": "Skicka ett meddelande",
 	"Send message": "Skicka meddelande",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "september",
 	"Serper API Key": "Serper API-nyckel",
 	"Serply API Key": "Serply API-nyckel",
diff --git a/src/lib/i18n/locales/th-TH/translation.json b/src/lib/i18n/locales/th-TH/translation.json
index 975ca3e10..c3f807703 100644
--- a/src/lib/i18n/locales/th-TH/translation.json
+++ b/src/lib/i18n/locales/th-TH/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "ไม่พบโมเดล {{modelId}}",
 	"Model {{modelName}} is not vision capable": "โมเดล {{modelName}} ไม่มีคุณสมบัติวิสชั่น",
 	"Model {{name}} is now {{status}}": "โมเดล {{name}} ขณะนี้ {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "สร้างโมเดลสำเร็จ!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "ตรวจพบเส้นทางระบบไฟล์ของโมเดล ต้องการชื่อย่อของโมเดลสำหรับการอัปเดต ไม่สามารถดำเนินการต่อได้",
 	"Model ID": "รหัสโมเดล",
@@ -571,6 +572,7 @@
 	"Send": "ส่ง",
 	"Send a Message": "ส่งข้อความ",
 	"Send message": "ส่งข้อความ",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "กันยายน",
 	"Serper API Key": "คีย์ API ของ Serper",
 	"Serply API Key": "คีย์ API ของ Serply",
diff --git a/src/lib/i18n/locales/tk-TW/translation.json b/src/lib/i18n/locales/tk-TW/translation.json
index cbfa7e34a..118e69463 100644
--- a/src/lib/i18n/locales/tk-TW/translation.json
+++ b/src/lib/i18n/locales/tk-TW/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "",
 	"Model {{modelName}} is not vision capable": "",
 	"Model {{name}} is now {{status}}": "",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
 	"Model ID": "",
@@ -571,6 +572,7 @@
 	"Send": "",
 	"Send a Message": "",
 	"Send message": "",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "",
 	"Serper API Key": "",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/tr-TR/translation.json b/src/lib/i18n/locales/tr-TR/translation.json
index 5ade4b0b8..1c18c35fe 100644
--- a/src/lib/i18n/locales/tr-TR/translation.json
+++ b/src/lib/i18n/locales/tr-TR/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "{{modelId}} bulunamadı",
 	"Model {{modelName}} is not vision capable": "Model {{modelName}} görüntü yeteneğine sahip değil",
 	"Model {{name}} is now {{status}}": "{{name}} modeli artık {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Model başarıyla oluşturuldu!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Model dosya sistemi yolu algılandı. Güncelleme için model kısa adı gerekli, devam edilemiyor.",
 	"Model ID": "Model ID",
@@ -571,6 +572,7 @@
 	"Send": "Gönder",
 	"Send a Message": "Bir Mesaj Gönder",
 	"Send message": "Mesaj gönder",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Eylül",
 	"Serper API Key": "Serper API Anahtarı",
 	"Serply API Key": "Serply API Anahtarı",
diff --git a/src/lib/i18n/locales/uk-UA/translation.json b/src/lib/i18n/locales/uk-UA/translation.json
index 781468c7f..14f4e2b65 100644
--- a/src/lib/i18n/locales/uk-UA/translation.json
+++ b/src/lib/i18n/locales/uk-UA/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Модель {{modelId}} не знайдено",
 	"Model {{modelName}} is not vision capable": "Модель {{modelName}} не здатна бачити",
 	"Model {{name}} is now {{status}}": "Модель {{name}} тепер має {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Модель створено успішно!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Виявлено шлях до файлової системи моделі. Для оновлення потрібно вказати коротке ім'я моделі, не вдасться продовжити.",
 	"Model ID": "ID моделі",
@@ -573,6 +574,7 @@
 	"Send": "Надіслати",
 	"Send a Message": "Надіслати повідомлення",
 	"Send message": "Надіслати повідомлення",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Вересень",
 	"Serper API Key": "Ключ API Serper",
 	"Serply API Key": "Ключ API Serply",
diff --git a/src/lib/i18n/locales/vi-VN/translation.json b/src/lib/i18n/locales/vi-VN/translation.json
index da67789c7..8a496b197 100644
--- a/src/lib/i18n/locales/vi-VN/translation.json
+++ b/src/lib/i18n/locales/vi-VN/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "Không tìm thấy Mô hình {{modelId}}",
 	"Model {{modelName}} is not vision capable": "Model {{modelName}} không có khả năng nhìn",
 	"Model {{name}} is now {{status}}": "Model {{name}} bây giờ là {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "Model đã được tạo thành công",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Đường dẫn hệ thống tệp mô hình được phát hiện. Tên viết tắt mô hình là bắt buộc để cập nhật, không thể tiếp tục.",
 	"Model ID": "ID mẫu",
@@ -570,6 +571,7 @@
 	"Send": "Gửi",
 	"Send a Message": "Gửi yêu cầu",
 	"Send message": "Gửi yêu cầu",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "Tháng 9",
 	"Serper API Key": "Khóa API Serper",
 	"Serply API Key": "",
diff --git a/src/lib/i18n/locales/zh-CN/translation.json b/src/lib/i18n/locales/zh-CN/translation.json
index 27c340b25..c56932f58 100644
--- a/src/lib/i18n/locales/zh-CN/translation.json
+++ b/src/lib/i18n/locales/zh-CN/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "未找到模型 {{modelId}}",
 	"Model {{modelName}} is not vision capable": "模型 {{modelName}} 不支持视觉能力",
 	"Model {{name}} is now {{status}}": "模型 {{name}} 现在是 {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "模型创建成功!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "检测到模型文件系统路径,无法继续进行。更新操作需要提供模型简称。",
 	"Model ID": "模型 ID",
@@ -570,6 +571,7 @@
 	"Send": "发送",
 	"Send a Message": "输入消息",
 	"Send message": "发送消息",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "九月",
 	"Serper API Key": "Serper API 密钥",
 	"Serply API Key": "Serply API 密钥",
diff --git a/src/lib/i18n/locales/zh-TW/translation.json b/src/lib/i18n/locales/zh-TW/translation.json
index 653166bdc..e3e9b47d0 100644
--- a/src/lib/i18n/locales/zh-TW/translation.json
+++ b/src/lib/i18n/locales/zh-TW/translation.json
@@ -411,6 +411,7 @@
 	"Model {{modelId}} not found": "找不到模型 {{modelId}}",
 	"Model {{modelName}} is not vision capable": "模型 {{modelName}} 不具備視覺能力",
 	"Model {{name}} is now {{status}}": "模型 {{name}} 現在狀態為 {{status}}",
+	"Model accepts image inputs": "",
 	"Model created successfully!": "成功建立模型!",
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "偵測到模型檔案系統路徑。更新需要模型簡稱,因此無法繼續。",
 	"Model ID": "模型 ID",
@@ -571,6 +572,7 @@
 	"Send": "傳送",
 	"Send a Message": "傳送訊息",
 	"Send message": "傳送訊息",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
 	"September": "9 月",
 	"Serper API Key": "Serper API 金鑰",
 	"Serply API Key": "Serply API 金鑰",
diff --git a/src/routes/(app)/workspace/models/create/+page.svelte b/src/routes/(app)/workspace/models/create/+page.svelte
index b47d37bf3..780607e0d 100644
--- a/src/routes/(app)/workspace/models/create/+page.svelte
+++ b/src/routes/(app)/workspace/models/create/+page.svelte
@@ -19,6 +19,7 @@
 	import { parseFile } from '$lib/utils/characters';
 	import FiltersSelector from '$lib/components/workspace/Models/FiltersSelector.svelte';
 	import ActionsSelector from '$lib/components/workspace/Models/ActionsSelector.svelte';
+	import Capabilities from '$lib/components/workspace/Models/Capabilities.svelte';
 
 	const i18n = getContext('i18n');
 
@@ -58,7 +59,8 @@
 
 	let params = {};
 	let capabilities = {
-		vision: true
+		vision: true,
+		usage: undefined
 	};
 
 	let toolIds = [];
@@ -647,25 +649,7 @@
 		</div>
 
 		<div class="my-1">
-			<div class="flex w-full justify-between mb-1">
-				<div class=" self-center text-sm font-semibold">{$i18n.t('Capabilities')}</div>
-			</div>
-			<div class="flex flex-col">
-				{#each Object.keys(capabilities) as capability}
-					<div class=" flex items-center gap-2">
-						<Checkbox
-							state={capabilities[capability] ? 'checked' : 'unchecked'}
-							on:change={(e) => {
-								capabilities[capability] = e.detail === 'checked';
-							}}
-						/>
-
-						<div class=" py-0.5 text-sm w-full capitalize">
-							{$i18n.t(capability)}
-						</div>
-					</div>
-				{/each}
-			</div>
+			<Capabilities bind:capabilities />
 		</div>
 
 		<div class="my-1">
diff --git a/src/routes/(app)/workspace/models/edit/+page.svelte b/src/routes/(app)/workspace/models/edit/+page.svelte
index 22cd4ffd9..08cb853ac 100644
--- a/src/routes/(app)/workspace/models/edit/+page.svelte
+++ b/src/routes/(app)/workspace/models/edit/+page.svelte
@@ -18,6 +18,7 @@
 	import ToolsSelector from '$lib/components/workspace/Models/ToolsSelector.svelte';
 	import FiltersSelector from '$lib/components/workspace/Models/FiltersSelector.svelte';
 	import ActionsSelector from '$lib/components/workspace/Models/ActionsSelector.svelte';
+	import Capabilities from '$lib/components/workspace/Models/Capabilities.svelte';
 
 	const i18n = getContext('i18n');
 
@@ -577,25 +578,7 @@
 			</div>
 
 			<div class="my-2">
-				<div class="flex w-full justify-between mb-1">
-					<div class=" self-center text-sm font-semibold">{$i18n.t('Capabilities')}</div>
-				</div>
-				<div class="flex flex-col">
-					{#each Object.keys(capabilities) as capability}
-						<div class=" flex items-center gap-2">
-							<Checkbox
-								state={capabilities[capability] ? 'checked' : 'unchecked'}
-								on:change={(e) => {
-									capabilities[capability] = e.detail === 'checked';
-								}}
-							/>
-
-							<div class=" py-0.5 text-sm w-full capitalize">
-								{$i18n.t(capability)}
-							</div>
-						</div>
-					{/each}
-				</div>
+				<Capabilities bind:capabilities />
 			</div>
 
 			<div class="my-1">