feat(webui): polish agent output and app discovery

This commit is contained in:
Xubin Ren
2026-07-22 22:42:31 +08:00
parent b189a37648
commit aa8387fb4d
87 changed files with 6225 additions and 2379 deletions
+7 -4
View File
@@ -198,7 +198,7 @@
"imageGeneration": "Expose generate_image in chats when a configured image provider is available.",
"imageProvider": "Choose the registry provider used by generate_image.",
"imageProviderStatus": "Image generation reuses provider credentials from Providers.",
"imageModel": "Model name sent to the selected image provider.",
"imageModel": "Choose a model supported by the selected image provider.",
"defaultAspectRatio": "Used when the prompt does not choose an aspect ratio.",
"defaultImageSize": "Size hint sent to providers that support it.",
"maxImagesPerTurn": "Upper bound for one generate_image request.",
@@ -938,6 +938,8 @@
"goalStateCloseAria": "Close goal",
"send": "Send message",
"stop": "Stop response",
"quotedContext": "Quoted context",
"removeQuotedContext": "Remove quoted context",
"modelNotConfigured": "Model not configured",
"configureModel": "Configure model",
"queued": {
@@ -1127,9 +1129,9 @@
"activityWorkingFor": "Working for {{duration}}",
"activityWorked": "Worked",
"activityWorkedFor": "Worked for {{duration}}",
"cliActivityRunningOne": "Using @{{name}}",
"cliActivityRanOne": "Used @{{name}}",
"cliActivityFailedOne": "Failed @{{name}}",
"cliActivityRunningOne": "Using {{name}}",
"cliActivityRanOne": "Used {{name}}",
"cliActivityFailedOne": "{{name}} failed",
"cliActivityRunningMany": "Using {{count}} CLI apps",
"cliActivityRanMany": "Used {{count}} CLI apps",
"cliActivityFailedMany": "{{count}} CLI apps failed",
@@ -1139,6 +1141,7 @@
"imageAttachment": "Image attachment",
"automationSourceFallback": "Automation",
"automationTriggered": "Triggered automatically",
"askAboutSelection": "Ask about this",
"forkFromHere": "Fork",
"copyReply": "Copy",
"copiedReply": "Copied",
+6 -3
View File
@@ -925,6 +925,8 @@
"goalStateCloseAria": "Cerrar objetivo",
"send": "Enviar mensaje",
"stop": "Detener respuesta",
"quotedContext": "Contexto citado",
"removeQuotedContext": "Quitar contexto citado",
"modelNotConfigured": "Modelo no configurado",
"configureModel": "Configurar modelo",
"queued": {
@@ -1109,6 +1111,7 @@
"agentActivityLiveSummary": "En curso… · {{reasoning}} pasos · {{tools}} llamadas a herramientas",
"agentActivityLiveToolsOnly": "En curso… · {{tools}} llamadas a herramientas",
"imageAttachment": "Imagen adjunta",
"askAboutSelection": "Preguntar sobre esto",
"forkFromHere": "Bifurcar",
"copyReply": "Copiar",
"copiedReply": "Copiado",
@@ -1127,9 +1130,9 @@
"activityWorkingFor": "Trabajando durante {{duration}}",
"activityWorked": "Trabajo completado",
"activityWorkedFor": "Trabajó durante {{duration}}",
"cliActivityRunningOne": "Usando @{{name}}",
"cliActivityRanOne": "Usó @{{name}}",
"cliActivityFailedOne": "Falló @{{name}}",
"cliActivityRunningOne": "Usando {{name}}",
"cliActivityRanOne": "Usó {{name}}",
"cliActivityFailedOne": "Falló {{name}}",
"cliActivityRunningMany": "Usando {{count}} apps CLI",
"cliActivityRanMany": "Usó {{count}} apps CLI",
"cliActivityFailedMany": "Fallaron {{count}} apps CLI",
+6 -3
View File
@@ -924,6 +924,8 @@
"goalStateCloseAria": "Fermer lobjectif",
"send": "Envoyer le message",
"stop": "Arrêter la réponse",
"quotedContext": "Contexte cité",
"removeQuotedContext": "Supprimer le contexte cité",
"modelNotConfigured": "Modèle non configuré",
"configureModel": "Configurer le modèle",
"queued": {
@@ -1108,6 +1110,7 @@
"agentActivityLiveSummary": "En cours… · {{reasoning}} étapes · {{tools}} appels doutils",
"agentActivityLiveToolsOnly": "En cours… · {{tools}} appels doutils",
"imageAttachment": "Pièce jointe image",
"askAboutSelection": "Poser une question à ce sujet",
"forkFromHere": "Bifurquer",
"copyReply": "Copier",
"copiedReply": "Copié",
@@ -1126,9 +1129,9 @@
"activityWorkingFor": "Travail en cours depuis {{duration}}",
"activityWorked": "Travail terminé",
"activityWorkedFor": "Travail terminé en {{duration}}",
"cliActivityRunningOne": "Utilisation de @{{name}}",
"cliActivityRanOne": "@{{name}} utilisé",
"cliActivityFailedOne": "Échec de @{{name}}",
"cliActivityRunningOne": "Utilisation de {{name}}",
"cliActivityRanOne": "{{name}} utilisé",
"cliActivityFailedOne": "Échec de {{name}}",
"cliActivityRunningMany": "Utilisation de {{count}} apps CLI",
"cliActivityRanMany": "{{count}} apps CLI utilisées",
"cliActivityFailedMany": "Échec de {{count}} apps CLI",
+6 -3
View File
@@ -924,6 +924,8 @@
"goalStateCloseAria": "Tutup tujuan",
"send": "Kirim pesan",
"stop": "Hentikan respons",
"quotedContext": "Konteks kutipan",
"removeQuotedContext": "Hapus konteks kutipan",
"modelNotConfigured": "Model belum dikonfigurasi",
"configureModel": "Konfigurasi model",
"queued": {
@@ -1108,6 +1110,7 @@
"agentActivityLiveSummary": "Berjalan… · {{reasoning}} langkah · {{tools}} panggilan alat",
"agentActivityLiveToolsOnly": "Berjalan… · {{tools}} panggilan alat",
"imageAttachment": "Lampiran gambar",
"askAboutSelection": "Tanyakan tentang ini",
"forkFromHere": "Fork",
"copyReply": "Salin",
"copiedReply": "Disalin",
@@ -1126,9 +1129,9 @@
"activityWorkingFor": "Memproses selama {{duration}}",
"activityWorked": "Selesai memproses",
"activityWorkedFor": "Diproses selama {{duration}}",
"cliActivityRunningOne": "Menggunakan @{{name}}",
"cliActivityRanOne": "Menggunakan @{{name}} selesai",
"cliActivityFailedOne": "@{{name}} gagal",
"cliActivityRunningOne": "Menggunakan {{name}}",
"cliActivityRanOne": "Menggunakan {{name}} selesai",
"cliActivityFailedOne": "{{name}} gagal",
"cliActivityRunningMany": "Menggunakan {{count}} aplikasi CLI",
"cliActivityRanMany": "{{count}} aplikasi CLI digunakan",
"cliActivityFailedMany": "{{count}} aplikasi CLI gagal",
+6 -3
View File
@@ -924,6 +924,8 @@
"goalStateCloseAria": "目標を閉じる",
"send": "メッセージを送信",
"stop": "応答を停止",
"quotedContext": "引用したコンテキスト",
"removeQuotedContext": "引用したコンテキストを削除",
"modelNotConfigured": "モデルが未設定です",
"configureModel": "モデルを設定",
"queued": {
@@ -1108,6 +1110,7 @@
"agentActivityLiveSummary": "実行中… · {{reasoning}} ステップ · ツール呼び出し {{tools}} 回",
"agentActivityLiveToolsOnly": "実行中… · ツール呼び出し {{tools}} 回",
"imageAttachment": "画像の添付",
"askAboutSelection": "この内容について質問",
"forkFromHere": "分岐",
"copyReply": "コピー",
"copiedReply": "コピー済み",
@@ -1126,9 +1129,9 @@
"activityWorkingFor": "{{duration}}作業中",
"activityWorked": "作業しました",
"activityWorkedFor": "{{duration}}作業しました",
"cliActivityRunningOne": "@{{name}} を使用中",
"cliActivityRanOne": "@{{name}} を使用しました",
"cliActivityFailedOne": "@{{name}} が失敗しました",
"cliActivityRunningOne": "{{name}} を使用中",
"cliActivityRanOne": "{{name}} を使用しました",
"cliActivityFailedOne": "{{name}} が失敗しました",
"cliActivityRunningMany": "{{count}} 個の CLI アプリを使用中",
"cliActivityRanMany": "{{count}} 個の CLI アプリを使用しました",
"cliActivityFailedMany": "{{count}} 個の CLI アプリが失敗しました",
+6 -3
View File
@@ -924,6 +924,8 @@
"goalStateCloseAria": "목표 닫기",
"send": "메시지 보내기",
"stop": "응답 중지",
"quotedContext": "인용한 문맥",
"removeQuotedContext": "인용한 문맥 제거",
"modelNotConfigured": "모델이 설정되지 않음",
"configureModel": "모델 설정",
"queued": {
@@ -1108,6 +1110,7 @@
"agentActivityLiveSummary": "진행 중… · {{reasoning}}단계 · 도구 호출 {{tools}}회",
"agentActivityLiveToolsOnly": "진행 중… · 도구 호출 {{tools}}회",
"imageAttachment": "이미지 첨부",
"askAboutSelection": "이 내용에 대해 질문하기",
"forkFromHere": "분기",
"copyReply": "복사",
"copiedReply": "복사됨",
@@ -1126,9 +1129,9 @@
"activityWorkingFor": "{{duration}} 동안 작업 중",
"activityWorked": "작업함",
"activityWorkedFor": "{{duration}} 동안 작업함",
"cliActivityRunningOne": "@{{name}} 사용 중",
"cliActivityRanOne": "@{{name}} 사용함",
"cliActivityFailedOne": "@{{name}} 실패",
"cliActivityRunningOne": "{{name}} 사용 중",
"cliActivityRanOne": "{{name}} 사용함",
"cliActivityFailedOne": "{{name}} 실패",
"cliActivityRunningMany": "CLI 앱 {{count}}개 사용 중",
"cliActivityRanMany": "CLI 앱 {{count}}개 사용함",
"cliActivityFailedMany": "CLI 앱 {{count}}개 실패",
+6 -3
View File
@@ -938,6 +938,8 @@
"goalStateCloseAria": "Fechar objetivo",
"send": "Enviar mensagem",
"stop": "Parar resposta",
"quotedContext": "Contexto citado",
"removeQuotedContext": "Remover contexto citado",
"modelNotConfigured": "Modelo não configurado",
"configureModel": "Configurar modelo",
"queued": {
@@ -1127,9 +1129,9 @@
"activityWorkingFor": "Trabalhando por {{duration}}",
"activityWorked": "Trabalhou",
"activityWorkedFor": "Trabalhou por {{duration}}",
"cliActivityRunningOne": "Usando @{{name}}",
"cliActivityRanOne": "Usou @{{name}}",
"cliActivityFailedOne": "Falhou em @{{name}}",
"cliActivityRunningOne": "Usando {{name}}",
"cliActivityRanOne": "Usou {{name}}",
"cliActivityFailedOne": "Falhou em {{name}}",
"cliActivityRunningMany": "Usando {{count}} apps CLI",
"cliActivityRanMany": "Usou {{count}} apps CLI",
"cliActivityFailedMany": "{{count}} apps CLI falharam",
@@ -1139,6 +1141,7 @@
"imageAttachment": "Anexo de imagem",
"automationSourceFallback": "Automação",
"automationTriggered": "Acionada automaticamente",
"askAboutSelection": "Perguntar sobre isto",
"forkFromHere": "Fazer fork",
"copyReply": "Copiar",
"copiedReply": "Copiado",
+6 -3
View File
@@ -924,6 +924,8 @@
"goalStateCloseAria": "Đóng mục tiêu",
"send": "Gửi tin nhắn",
"stop": "Dừng phản hồi",
"quotedContext": "Ngữ cảnh được trích dẫn",
"removeQuotedContext": "Xóa ngữ cảnh được trích dẫn",
"modelNotConfigured": "Chưa cấu hình mô hình",
"configureModel": "Cấu hình mô hình",
"queued": {
@@ -1108,6 +1110,7 @@
"agentActivityLiveSummary": "Đang chạy… · {{reasoning}} bước · {{tools}} lần gọi công cụ",
"agentActivityLiveToolsOnly": "Đang chạy… · {{tools}} lần gọi công cụ",
"imageAttachment": "Tệp hình ảnh đính kèm",
"askAboutSelection": "Hỏi về nội dung này",
"forkFromHere": "Tách nhánh",
"copyReply": "Sao chép",
"copiedReply": "Đã sao chép",
@@ -1126,9 +1129,9 @@
"activityWorkingFor": "Đang xử lý trong {{duration}}",
"activityWorked": "Đã xử lý",
"activityWorkedFor": "Đã xử lý trong {{duration}}",
"cliActivityRunningOne": "Đang dùng @{{name}}",
"cliActivityRanOne": "Đã dùng @{{name}}",
"cliActivityFailedOne": "@{{name}} thất bại",
"cliActivityRunningOne": "Đang dùng {{name}}",
"cliActivityRanOne": "Đã dùng {{name}}",
"cliActivityFailedOne": "{{name}} thất bại",
"cliActivityRunningMany": "Đang dùng {{count}} ứng dụng CLI",
"cliActivityRanMany": "Đã dùng {{count}} ứng dụng CLI",
"cliActivityFailedMany": "{{count}} ứng dụng CLI thất bại",
+7 -4
View File
@@ -198,7 +198,7 @@
"imageGeneration": "配置图片提供商后,在聊天中开放 generate_image。",
"imageProvider": "选择 generate_image 使用的注册提供商。",
"imageProviderStatus": "图片生成会复用「提供商」里的凭据。",
"imageModel": "发送给所选图片提供商的模型名称。",
"imageModel": "选择当前图片提供商支持的模型。",
"defaultAspectRatio": "当提示词没有指定比例时使用。",
"defaultImageSize": "发送给支持此选项的提供商的尺寸提示。",
"maxImagesPerTurn": "单次 generate_image 请求可生成的图片上限。",
@@ -937,6 +937,8 @@
"goalStateSheetTitle": "目标",
"send": "发送消息",
"stop": "停止响应",
"quotedContext": "引用内容",
"removeQuotedContext": "移除引用内容",
"modelNotConfigured": "模型未配置",
"configureModel": "配置模型",
"queued": {
@@ -1127,9 +1129,9 @@
"activityWorkingFor": "处理中 {{duration}}",
"activityWorked": "已处理",
"activityWorkedFor": "处理了 {{duration}}",
"cliActivityRunningOne": "正在使用 @{{name}}",
"cliActivityRanOne": "已使用 @{{name}}",
"cliActivityFailedOne": "使用 @{{name}} 失败",
"cliActivityRunningOne": "正在使用 {{name}}",
"cliActivityRanOne": "已使用 {{name}}",
"cliActivityFailedOne": "使用 {{name}} 失败",
"cliActivityRunningMany": "正在使用 {{count}} 个 CLI 应用",
"cliActivityRanMany": "已使用 {{count}} 个 CLI 应用",
"cliActivityFailedMany": "{{count}} 个 CLI 应用失败",
@@ -1139,6 +1141,7 @@
"imageAttachment": "图片附件",
"automationSourceFallback": "自动化",
"automationTriggered": "自动触发",
"askAboutSelection": "继续提问",
"forkFromHere": "分叉",
"copyReply": "复制",
"copiedReply": "已复制",
+4 -1
View File
@@ -924,6 +924,8 @@
"goalStateCloseAria": "關閉目標",
"send": "送出訊息",
"stop": "停止回覆",
"quotedContext": "引用內容",
"removeQuotedContext": "移除引用內容",
"modelNotConfigured": "尚未設定模型",
"configureModel": "設定模型",
"queued": {
@@ -1136,7 +1138,8 @@
"cliRunRan": "已使用",
"cliRunFailed": "失敗",
"automationSourceFallback": "自動化",
"automationTriggered": "已自動觸發"
"automationTriggered": "已自動觸發",
"askAboutSelection": "繼續提問"
},
"lightbox": {
"title": "圖片預覽",