+ {Object.entries(values).map(([key, value]) => (
+
+ {key}
+ {value ?? '-'}
+
+ ))}
+
+ );
+}
diff --git a/web/src/i18n/locales/en-US.ts b/web/src/i18n/locales/en-US.ts
index 082f8d8f..0e502c6d 100644
--- a/web/src/i18n/locales/en-US.ts
+++ b/web/src/i18n/locales/en-US.ts
@@ -1225,6 +1225,31 @@ const enUS = {
feedback: 'User Feedback',
},
},
+ storageAnalysis: {
+ title: 'Storage Analysis',
+ description: 'Inspect storage usage and cleanup candidates',
+ openDialog: 'View Analysis',
+ dialogTitle: 'Storage Analysis',
+ generatedAt: 'Generated at {{time}}',
+ loading: 'Loading...',
+ refresh: 'Refresh',
+ totalSize: 'Total size',
+ binaryStorage: 'Binary storage',
+ uploadCleanup: 'Expired uploads',
+ logCleanup: 'Expired logs',
+ sections: 'Storage sections',
+ monitoringTables: 'Monitoring tables',
+ runtimeTasks: 'Runtime tasks',
+ sectionNames: {
+ database: 'Database',
+ logs: 'Logs',
+ storage: 'Uploaded files',
+ vector_store: 'Vector store',
+ plugins: 'Plugins',
+ mcp: 'MCP',
+ temp: 'Temporary files',
+ },
+ },
limitation: {
maxBotsReached:
'Maximum number of bots ({{max}}) reached. Please remove an existing bot before creating a new one.',
diff --git a/web/src/i18n/locales/es-ES.ts b/web/src/i18n/locales/es-ES.ts
index 39c45b72..add448c7 100644
--- a/web/src/i18n/locales/es-ES.ts
+++ b/web/src/i18n/locales/es-ES.ts
@@ -1259,6 +1259,32 @@ const esES = {
feedback: 'Comentarios de usuarios',
},
},
+ storageAnalysis: {
+ title: 'Análisis de almacenamiento',
+ description:
+ 'Inspecciona el uso de almacenamiento y los candidatos de limpieza',
+ openDialog: 'Ver análisis',
+ dialogTitle: 'Análisis de almacenamiento',
+ generatedAt: 'Generado el {{time}}',
+ loading: 'Cargando...',
+ refresh: 'Actualizar',
+ totalSize: 'Tamaño total',
+ binaryStorage: 'Almacenamiento binario de plugins',
+ uploadCleanup: 'Subidas caducadas',
+ logCleanup: 'Registros caducados',
+ sections: 'Secciones de almacenamiento',
+ monitoringTables: 'Tablas de monitoreo',
+ runtimeTasks: 'Tareas en ejecución',
+ sectionNames: {
+ database: 'Base de datos',
+ logs: 'Registros',
+ storage: 'Archivos subidos',
+ vector_store: 'Almacén vectorial',
+ plugins: 'Plugins',
+ mcp: 'MCP',
+ temp: 'Archivos temporales',
+ },
+ },
limitation: {
maxBotsReached:
'Se ha alcanzado el número máximo de Bots ({{max}}). Por favor, elimina un Bot existente antes de crear uno nuevo.',
diff --git a/web/src/i18n/locales/ja-JP.ts b/web/src/i18n/locales/ja-JP.ts
index 54c9e5d5..5025a683 100644
--- a/web/src/i18n/locales/ja-JP.ts
+++ b/web/src/i18n/locales/ja-JP.ts
@@ -1230,6 +1230,31 @@
feedback: 'ユーザーフィードバック',
},
},
+ storageAnalysis: {
+ title: 'ストレージ分析',
+ description: 'ストレージ使用量とクリーンアップ候補を確認します',
+ openDialog: '分析を表示',
+ dialogTitle: 'ストレージ分析',
+ generatedAt: '生成日時 {{time}}',
+ loading: '読み込み中...',
+ refresh: '更新',
+ totalSize: '合計サイズ',
+ binaryStorage: 'プラグインバイナリストレージ',
+ uploadCleanup: '期限切れアップロード',
+ logCleanup: '期限切れログ',
+ sections: 'ストレージセクション',
+ monitoringTables: '監視テーブル',
+ runtimeTasks: '実行タスク',
+ sectionNames: {
+ database: 'データベース',
+ logs: 'ログ',
+ storage: 'アップロードファイル',
+ vector_store: 'ベクターストア',
+ plugins: 'プラグイン',
+ mcp: 'MCP',
+ temp: '一時ファイル',
+ },
+ },
limitation: {
maxBotsReached:
'ボット数が上限({{max}}個)に達しました。新しいボットを作成するには、既存のボットを削除してください。',
diff --git a/web/src/i18n/locales/ru-RU.ts b/web/src/i18n/locales/ru-RU.ts
index e8e34b29..122cfb0b 100644
--- a/web/src/i18n/locales/ru-RU.ts
+++ b/web/src/i18n/locales/ru-RU.ts
@@ -1234,6 +1234,31 @@ const ruRU = {
feedback: 'Отзывы пользователей',
},
},
+ storageAnalysis: {
+ title: 'Анализ хранилища',
+ description: 'Проверьте использование хранилища и кандидатов на очистку',
+ openDialog: 'Открыть анализ',
+ dialogTitle: 'Анализ хранилища',
+ generatedAt: 'Создано {{time}}',
+ loading: 'Загрузка...',
+ refresh: 'Обновить',
+ totalSize: 'Общий размер',
+ binaryStorage: 'Бинарное хранилище плагинов',
+ uploadCleanup: 'Просроченные загрузки',
+ logCleanup: 'Просроченные журналы',
+ sections: 'Разделы хранилища',
+ monitoringTables: 'Таблицы мониторинга',
+ runtimeTasks: 'Задачи runtime',
+ sectionNames: {
+ database: 'База данных',
+ logs: 'Журналы',
+ storage: 'Загруженные файлы',
+ vector_store: 'Векторное хранилище',
+ plugins: 'Плагины',
+ mcp: 'MCP',
+ temp: 'Временные файлы',
+ },
+ },
limitation: {
maxBotsReached:
'Достигнуто максимальное количество ботов ({{max}}). Удалите существующего бота перед созданием нового.',
diff --git a/web/src/i18n/locales/th-TH.ts b/web/src/i18n/locales/th-TH.ts
index ff1c3799..2c3a78a8 100644
--- a/web/src/i18n/locales/th-TH.ts
+++ b/web/src/i18n/locales/th-TH.ts
@@ -1205,6 +1205,31 @@ const thTH = {
feedback: 'ความคิดเห็นผู้ใช้',
},
},
+ storageAnalysis: {
+ title: 'วิเคราะห์พื้นที่จัดเก็บ',
+ description: 'ตรวจสอบการใช้พื้นที่จัดเก็บและรายการที่สามารถล้างได้',
+ openDialog: 'ดูการวิเคราะห์',
+ dialogTitle: 'วิเคราะห์พื้นที่จัดเก็บ',
+ generatedAt: 'สร้างเมื่อ {{time}}',
+ loading: 'กำลังโหลด...',
+ refresh: 'รีเฟรช',
+ totalSize: 'ขนาดรวม',
+ binaryStorage: 'พื้นที่จัดเก็บไบนารีของปลั๊กอิน',
+ uploadCleanup: 'ไฟล์อัปโหลดที่หมดอายุ',
+ logCleanup: 'บันทึกที่หมดอายุ',
+ sections: 'ส่วนพื้นที่จัดเก็บ',
+ monitoringTables: 'ตารางการตรวจสอบ',
+ runtimeTasks: 'งาน runtime',
+ sectionNames: {
+ database: 'ฐานข้อมูล',
+ logs: 'บันทึก',
+ storage: 'ไฟล์อัปโหลด',
+ vector_store: 'คลังเวกเตอร์',
+ plugins: 'ปลั๊กอิน',
+ mcp: 'MCP',
+ temp: 'ไฟล์ชั่วคราว',
+ },
+ },
limitation: {
maxBotsReached:
'จำนวน Bot สูงสุด ({{max}}) ถึงขีดจำกัดแล้ว กรุณาลบ Bot ที่มีอยู่ก่อนสร้างใหม่',
diff --git a/web/src/i18n/locales/vi-VN.ts b/web/src/i18n/locales/vi-VN.ts
index 601ddb55..155dbe7d 100644
--- a/web/src/i18n/locales/vi-VN.ts
+++ b/web/src/i18n/locales/vi-VN.ts
@@ -1227,6 +1227,31 @@ const viVN = {
feedback: 'Phản hồi người dùng',
},
},
+ storageAnalysis: {
+ title: 'Phân tích lưu trữ',
+ description: 'Kiểm tra dung lượng lưu trữ và các mục có thể dọn dẹp',
+ openDialog: 'Xem phân tích',
+ dialogTitle: 'Phân tích lưu trữ',
+ generatedAt: 'Tạo lúc {{time}}',
+ loading: 'Đang tải...',
+ refresh: 'Làm mới',
+ totalSize: 'Tổng dung lượng',
+ binaryStorage: 'Lưu trữ nhị phân plugin',
+ uploadCleanup: 'Tệp tải lên hết hạn',
+ logCleanup: 'Nhật ký hết hạn',
+ sections: 'Khu vực lưu trữ',
+ monitoringTables: 'Bảng giám sát',
+ runtimeTasks: 'Tác vụ runtime',
+ sectionNames: {
+ database: 'Cơ sở dữ liệu',
+ logs: 'Nhật ký',
+ storage: 'Tệp tải lên',
+ vector_store: 'Kho vector',
+ plugins: 'Plugin',
+ mcp: 'MCP',
+ temp: 'Tệp tạm',
+ },
+ },
limitation: {
maxBotsReached:
'Đã đạt số lượng Bot tối đa ({{max}}). Vui lòng xóa một Bot hiện có trước khi tạo mới.',
diff --git a/web/src/i18n/locales/zh-Hans.ts b/web/src/i18n/locales/zh-Hans.ts
index 93b673ed..e1dd2361 100644
--- a/web/src/i18n/locales/zh-Hans.ts
+++ b/web/src/i18n/locales/zh-Hans.ts
@@ -1171,6 +1171,31 @@ const zhHans = {
feedback: '用户反馈',
},
},
+ storageAnalysis: {
+ title: '存储分析',
+ description: '查看存储占用和可清理文件',
+ openDialog: '查看分析',
+ dialogTitle: '存储分析',
+ generatedAt: '生成时间 {{time}}',
+ loading: '加载中...',
+ refresh: '刷新',
+ totalSize: '总占用',
+ binaryStorage: '插件二进制存储',
+ uploadCleanup: '过期上传文件',
+ logCleanup: '过期日志',
+ sections: '存储分区',
+ monitoringTables: '监控表',
+ runtimeTasks: '运行任务',
+ sectionNames: {
+ database: '数据库',
+ logs: '日志',
+ storage: '上传文件',
+ vector_store: '向量库',
+ plugins: '插件',
+ mcp: 'MCP',
+ temp: '临时文件',
+ },
+ },
limitation: {
maxBotsReached:
'已达到机器人数量上限({{max}}个)。请先删除已有机器人后再创建新的。',
diff --git a/web/src/i18n/locales/zh-Hant.ts b/web/src/i18n/locales/zh-Hant.ts
index fd56f406..7396100e 100644
--- a/web/src/i18n/locales/zh-Hant.ts
+++ b/web/src/i18n/locales/zh-Hant.ts
@@ -1171,6 +1171,31 @@ const zhHant = {
feedback: '使用者回饋',
},
},
+ storageAnalysis: {
+ title: '儲存分析',
+ description: '查看儲存占用和可清理檔案',
+ openDialog: '查看分析',
+ dialogTitle: '儲存分析',
+ generatedAt: '生成時間 {{time}}',
+ loading: '載入中...',
+ refresh: '重新整理',
+ totalSize: '總占用',
+ binaryStorage: '插件二進位儲存',
+ uploadCleanup: '過期上傳檔案',
+ logCleanup: '過期日誌',
+ sections: '儲存分區',
+ monitoringTables: '監控表',
+ runtimeTasks: '執行任務',
+ sectionNames: {
+ database: '資料庫',
+ logs: '日誌',
+ storage: '上傳檔案',
+ vector_store: '向量庫',
+ plugins: '插件',
+ mcp: 'MCP',
+ temp: '暫存檔案',
+ },
+ },
limitation: {
maxBotsReached:
'已達到機器人數量上限({{max}}個)。請先刪除已有機器人後再建立新的。',