feat(ai): run agent sessions as background tasks

This commit is contained in:
Abeautifulsnow authored and GitHub committed 2026-08-26 14:09:08 +08:00
1 parent b37a1f8538
commit eeeb4e5011
34 files changed
+3440 -184

No files matched your search

+38
View File
@@ -2514,6 +2514,44 @@ export default {
welcome: "Tell me what you'd like to query, and I'll write the SQL",
requestFailed: "AI request failed",
requestCancelled: "Request cancelled",
backgroundRunCompleted: "AI response completed in the background",
backgroundRunNeedsConfirmation: "AI needs your confirmation to continue",
recoveredDraftBanner: "A request that was queued before restart was recovered",
recoveredDraftHint: "Edit and resend, or remove it.",
discardDraft: "Remove draft",
runStatusRunning: "Running",
runStatusWaitingToStart: "Waiting to start",
runStatusAwaitingConfirmation: "Awaiting confirmation",
runStatusPendingDraft: "Pending input",
runStatusCompleted: "Completed",
runStatusFailed: "Failed",
runStatusInterrupted: "Interrupted",
runStatusCancelled: "Cancelled",
runUnread: "New updates in this conversation",
closeWithRunsTitle: "AI tasks are still running",
closeWithRunsDescription: "Quitting DBX will interrupt {count} running or queued AI task(s). You can close this dialog and let them finish instead.",
closeWithRunsQuit: "Quit and interrupt",
queueSend: "Queue send",
queueSendHint: "A task is still running for this conversation; the message will be sent when it finishes",
inputQueued: "Message queued to send after the current task",
queuedInputWaiting: "Waiting — {text}",
queuedInputPending: "Queued to send — {text}",
sendQueuedInput: "Send queued message",
queuedInputEdit: "Edit queued message",
queuedInputRemove: "Remove queued message",
rowQueuedInput: "Queued input",
retryRound: "Retry this round",
deleteConversation: "Delete conversation",
deleteActiveConversationTitle: "Conversation has an active task",
deleteActiveConversationDescription: "This conversation still has a task running or waiting. Cancel the task and delete the conversation, or keep it?",
cancelTaskAndDelete: "Cancel task and delete conversation",
keepConversation: "Keep conversation",
awayUpdatesDivider: "Updates while you were away",
jumpToLatest: "Jump to latest",
openPanel: "Open panel",
runRowPhaseTool: "Running {tool}",
runRowPhaseThinking: "Analyzing…",
toolbarAwaitingConfirmation: "{count} AI task(s) awaiting your confirmation",
newChat: "New Chat",
thinking: "Thinking...",
reasoningProcess: "Thinking process",
+38
View File
@@ -2548,6 +2548,44 @@ export default withEnglishFallback({
welcome: "Dime qué quieres consultar y escribiré el SQL",
requestFailed: "La solicitud de AI falló",
requestCancelled: "Solicitud de AI cancelada",
backgroundRunCompleted: "La respuesta de AI se completó en segundo plano",
backgroundRunNeedsConfirmation: "AI necesita tu confirmación para continuar",
recoveredDraftBanner: "Se recuperó una solicitud que estaba en cola antes del reinicio",
recoveredDraftHint: "Puedes editarla y reenviarla, o eliminarla.",
discardDraft: "Eliminar borrador",
runStatusRunning: "En ejecución",
runStatusWaitingToStart: "Esperando para comenzar",
runStatusAwaitingConfirmation: "Esperando confirmación",
runStatusPendingDraft: "Entrada pendiente",
runStatusCompleted: "Completado",
runStatusFailed: "Falló",
runStatusInterrupted: "Interrumpido",
runStatusCancelled: "Cancelado",
runUnread: "Hay novedades en esta conversación",
closeWithRunsTitle: "Las tareas de AI siguen en ejecución",
closeWithRunsDescription: "Salir de DBX interrumpirá {count} tarea(s) de AI en ejecución o en cola. También puedes cerrar este diálogo y dejar que terminen.",
closeWithRunsQuit: "Salir e interrumpir",
queueSend: "Encolar envío",
queueSendHint: "Esta conversación aún tiene una tarea en ejecución; el mensaje se enviará cuando termine",
inputQueued: "Mensaje en cola para enviarse después de la tarea actual",
queuedInputWaiting: "Esperando — {text}",
queuedInputPending: "En cola para enviar — {text}",
sendQueuedInput: "Enviar mensaje en cola",
queuedInputEdit: "Editar mensaje en cola",
queuedInputRemove: "Quitar mensaje en cola",
rowQueuedInput: "Entrada en cola",
retryRound: "Reintentar esta ronda",
deleteConversation: "Eliminar conversación",
deleteActiveConversationTitle: "La conversación tiene una tarea activa",
deleteActiveConversationDescription: "Esta conversación aún tiene una tarea en ejecución o en espera. ¿Cancelar la tarea y eliminar la conversación, o conservarla?",
cancelTaskAndDelete: "Cancelar tarea y eliminar conversación",
keepConversation: "Conservar conversación",
awayUpdatesDivider: "Novedades mientras no estabas",
jumpToLatest: "Ir a lo más reciente",
openPanel: "Abrir panel",
runRowPhaseTool: "Ejecutando {tool}",
runRowPhaseThinking: "Analizando…",
toolbarAwaitingConfirmation: "{count} tarea(s) de AI esperando tu confirmación",
newChat: "Nuevo chat",
thinking: "Procesando...",
reasoningProcess: "Proceso de razonamiento",
+38
View File
@@ -2442,6 +2442,44 @@ export default withEnglishFallback({
welcome: "Dimmi cosa vorresti interrogare e io scriverò il codice SQL",
requestFailed: "Richiesta AI non riuscita",
requestCancelled: "Richiesta AI annullata",
backgroundRunCompleted: "La risposta di AI è stata completata in background",
backgroundRunNeedsConfirmation: "AI ha bisogno della tua conferma per continuare",
recoveredDraftBanner: "È stata recuperata una richiesta in coda prima del riavvio",
recoveredDraftHint: "Puoi modificarla e inviarla di nuovo, oppure rimuoverla.",
discardDraft: "Rimuovi bozza",
runStatusRunning: "In esecuzione",
runStatusWaitingToStart: "In attesa di avvio",
runStatusAwaitingConfirmation: "In attesa di conferma",
runStatusPendingDraft: "Input in attesa",
runStatusCompleted: "Completato",
runStatusFailed: "Non riuscito",
runStatusInterrupted: "Interrotto",
runStatusCancelled: "Annullato",
runUnread: "Ci sono nuovi aggiornamenti in questa conversazione",
closeWithRunsTitle: "Le attività di AI sono ancora in esecuzione",
closeWithRunsDescription: "Uscire da DBX interromperà {count} attività di AI in esecuzione o in coda. Puoi anche chiudere questa finestra e lasciarle terminare.",
closeWithRunsQuit: "Esci e interrompi",
queueSend: "Accoda l'invio",
queueSendHint: "Questa conversazione ha ancora un'attività in esecuzione; il messaggio verrà inviato al termine",
inputQueued: "Messaggio in coda per l'invio dopo l'attività corrente",
queuedInputWaiting: "In attesa — {text}",
queuedInputPending: "In coda per l'invio — {text}",
sendQueuedInput: "Invia messaggio in coda",
queuedInputEdit: "Modifica messaggio in coda",
queuedInputRemove: "Rimuovi messaggio in coda",
rowQueuedInput: "Input in coda",
retryRound: "Riprova questo turno",
deleteConversation: "Elimina conversazione",
deleteActiveConversationTitle: "La conversazione ha un'attività attiva",
deleteActiveConversationDescription: "Questa conversazione ha ancora un'attività in esecuzione o in attesa. Annullare l'attività ed eliminare la conversazione, oppure conservarla?",
cancelTaskAndDelete: "Annulla attività ed elimina conversazione",
keepConversation: "Conserva conversazione",
awayUpdatesDivider: "Aggiornamenti mentre eri via",
jumpToLatest: "Vai all'ultimo",
openPanel: "Apri pannello",
runRowPhaseTool: "Esecuzione di {tool}",
runRowPhaseThinking: "Analisi in corso…",
toolbarAwaitingConfirmation: "{count} attività di AI in attesa della tua conferma",
newChat: "Nuova Chat",
thinking: "Riflessione...",
reasoningProcess: "Processo di riflessione",
+38
View File
@@ -2581,6 +2581,44 @@ export default withEnglishFallback({
welcome: "クエリしたい内容を教えてください。SQLを作成します",
requestFailed: "AIリクエストに失敗しました",
requestCancelled: "AIリクエストがキャンセルされました",
backgroundRunCompleted: "AIの応答はバックグラウンドで完了しました",
backgroundRunNeedsConfirmation: "続行するにはAIの確認が必要です",
recoveredDraftBanner: "再起動前にキューに入っていたリクエストを復元しました",
recoveredDraftHint: "編集して再送するか、削除できます。",
discardDraft: "下書きを削除",
runStatusRunning: "実行中",
runStatusWaitingToStart: "開始待ち",
runStatusAwaitingConfirmation: "確認待ち",
runStatusPendingDraft: "送信待ちの入力",
runStatusCompleted: "完了",
runStatusFailed: "失敗",
runStatusInterrupted: "中断",
runStatusCancelled: "キャンセル済み",
runUnread: "この会話に新しい更新があります",
closeWithRunsTitle: "AIタスクはまだ実行中です",
closeWithRunsDescription: "DBXを終了すると、実行中またはキューに入っている{count}件のAIタスクが中断されます。このダイアログを閉じて完了を待つこともできます。",
closeWithRunsQuit: "終了して中断",
queueSend: "送信をキューに入れる",
queueSendHint: "この会話ではまだタスクが実行中のため、完了後にメッセージが送信されます",
inputQueued: "現在のタスク完了後に送信されるようキューに入れました",
queuedInputWaiting: "待機中 — {text}",
queuedInputPending: "送信待ち — {text}",
sendQueuedInput: "キュー済みメッセージを送信",
queuedInputEdit: "キュー済みメッセージを編集",
queuedInputRemove: "キュー済みメッセージを削除",
rowQueuedInput: "キュー済みの入力",
retryRound: "このラウンドを再試行",
deleteConversation: "会話を削除",
deleteActiveConversationTitle: "会話にアクティブなタスクがあります",
deleteActiveConversationDescription: "この会話には実行中または待機中のタスクがあります。タスクをキャンセルして会話を削除しますか、それとも保持しますか?",
cancelTaskAndDelete: "タスクをキャンセルして会話を削除",
keepConversation: "会話を保持",
awayUpdatesDivider: "離れていた間の更新",
jumpToLatest: "最新へ移動",
openPanel: "パネルを開く",
runRowPhaseTool: "{tool}を実行中",
runRowPhaseThinking: "分析中…",
toolbarAwaitingConfirmation: "{count}件のAIタスクが確認を待っています",
newChat: "新しいチャット",
thinking: "思考中...",
reasoningProcess: "思考プロセス",
+38
View File
@@ -2339,6 +2339,44 @@ export default withEnglishFallback({
welcome: "쿼리할 내용을 말씀해 주세요. SQL을 작성해 드릴게요",
requestFailed: "AI 요청 실패",
requestCancelled: "AI 요청이 취소되었습니다",
backgroundRunCompleted: "AI 응답이 백그라운드에서 완료되었습니다",
backgroundRunNeedsConfirmation: "계속하려면 AI 확인이 필요합니다",
recoveredDraftBanner: "재시작 전에 대기열에 있던 요청이 복구되었습니다",
recoveredDraftHint: "편집 후 다시 보내거나 삭제할 수 있습니다.",
discardDraft: "초안 삭제",
runStatusRunning: "실행 중",
runStatusWaitingToStart: "시작 대기 중",
runStatusAwaitingConfirmation: "확인 대기 중",
runStatusPendingDraft: "전송 대기 입력",
runStatusCompleted: "완료",
runStatusFailed: "실패",
runStatusInterrupted: "중단됨",
runStatusCancelled: "취소됨",
runUnread: "이 대화에 새 업데이트가 있습니다",
closeWithRunsTitle: "AI 작업이 아직 실행 중입니다",
closeWithRunsDescription: "DBX를 종료하면 실행 중이거나 대기 중인 AI 작업 {count}개가 중단됩니다. 이 대화 상자를 닫고 완료될 때까지 기다릴 수도 있습니다.",
closeWithRunsQuit: "종료하고 중단",
queueSend: "보내기 대기열에 추가",
queueSendHint: "이 대화에는 아직 실행 중인 작업이 있어 메시지가 완료 후 전송됩니다",
inputQueued: "현재 작업 완료 후 보내도록 메시지가 대기열에 추가되었습니다",
queuedInputWaiting: "대기 중 — {text}",
queuedInputPending: "전송 대기 중 — {text}",
sendQueuedInput: "대기 메시지 보내기",
queuedInputEdit: "대기 메시지 편집",
queuedInputRemove: "대기 메시지 제거",
rowQueuedInput: "대기 중인 입력",
retryRound: "이번 라운드 다시 시도",
deleteConversation: "대화 삭제",
deleteActiveConversationTitle: "대화에 활성 작업이 있습니다",
deleteActiveConversationDescription: "이 대화에는 아직 실행 중이거나 대기 중인 작업이 있습니다. 작업을 취소하고 대화를 삭제할까요, 아니면 유지할까요?",
cancelTaskAndDelete: "작업 취소하고 대화 삭제",
keepConversation: "대화 유지",
awayUpdatesDivider: "자리를 비운 동안의 업데이트",
jumpToLatest: "최신으로 이동",
openPanel: "패널 열기",
runRowPhaseTool: "{tool} 실행 중",
runRowPhaseThinking: "분석 중…",
toolbarAwaitingConfirmation: "확인을 기다리는 AI 작업 {count}개",
newChat: "새 채팅",
thinking: "생각하는 중...",
reasoningProcess: "사고 과정",
+38
View File
@@ -2550,6 +2550,44 @@ export default withEnglishFallback({
welcome: "Diga o que você gostaria de consultar e eu escreverei o SQL",
requestFailed: "Falha na solicitação de AI",
requestCancelled: "Solicitação de AI cancelada",
backgroundRunCompleted: "A resposta de AI foi concluída em segundo plano",
backgroundRunNeedsConfirmation: "A AI precisa da sua confirmação para continuar",
recoveredDraftBanner: "Foi recuperada uma solicitação que estava na fila antes da reinicialização",
recoveredDraftHint: "Você pode editá-la e reenviá-la, ou removê-la.",
discardDraft: "Remover rascunho",
runStatusRunning: "Em execução",
runStatusWaitingToStart: "Aguardando para começar",
runStatusAwaitingConfirmation: "Aguardando confirmação",
runStatusPendingDraft: "Entrada pendente",
runStatusCompleted: "Concluído",
runStatusFailed: "Falhou",
runStatusInterrupted: "Interrompido",
runStatusCancelled: "Cancelado",
runUnread: "Há novas atualizações nesta conversa",
closeWithRunsTitle: "As tarefas de AI ainda estão em execução",
closeWithRunsDescription: "Sair do DBX interromperá {count} tarefa(s) de AI em execução ou na fila. Você também pode fechar esta caixa de diálogo e deixá-las terminar.",
closeWithRunsQuit: "Sair e interromper",
queueSend: "Enfileirar envio",
queueSendHint: "Esta conversa ainda tem uma tarefa em execução; a mensagem será enviada quando ela terminar",
inputQueued: "Mensagem enfileirada para enviar após a tarefa atual",
queuedInputWaiting: "Aguardando — {text}",
queuedInputPending: "Na fila para enviar — {text}",
sendQueuedInput: "Enviar mensagem na fila",
queuedInputEdit: "Editar mensagem na fila",
queuedInputRemove: "Remover mensagem na fila",
rowQueuedInput: "Entrada na fila",
retryRound: "Repetir esta rodada",
deleteConversation: "Excluir conversa",
deleteActiveConversationTitle: "A conversa tem uma tarefa ativa",
deleteActiveConversationDescription: "Esta conversa ainda tem uma tarefa em execução ou aguardando. Cancelar a tarefa e excluir a conversa, ou mantê-la?",
cancelTaskAndDelete: "Cancelar tarefa e excluir conversa",
keepConversation: "Manter conversa",
awayUpdatesDivider: "Atualizações enquanto você esteve fora",
jumpToLatest: "Ir para o mais recente",
openPanel: "Abrir painel",
runRowPhaseTool: "Executando {tool}",
runRowPhaseThinking: "Analisando…",
toolbarAwaitingConfirmation: "{count} tarefa(s) de AI aguardando sua confirmação",
newChat: "Nova Conversa",
thinking: "Pensando...",
reasoningProcess: "Processo de raciocínio",
+38
View File
@@ -2438,6 +2438,44 @@ export default withEnglishFallback({
welcome: "聊聊你想查什么,我来写 SQL",
requestFailed: "AI 请求失败",
requestCancelled: "请求已取消",
backgroundRunCompleted: "AI 已在后台完成回复",
backgroundRunNeedsConfirmation: "AI 需要你的确认才能继续",
recoveredDraftBanner: "已恢复上次排队发送的请求",
recoveredDraftHint: "可编辑后重新发送,或删除移除。",
discardDraft: "删除草稿",
runStatusRunning: "运行中",
runStatusWaitingToStart: "等待开始",
runStatusAwaitingConfirmation: "等待写入确认",
runStatusPendingDraft: "待发输入",
runStatusCompleted: "已完成",
runStatusFailed: "失败",
runStatusInterrupted: "已中断",
runStatusCancelled: "已取消",
runUnread: "此会话有新的更新",
closeWithRunsTitle: "AI 任务仍在运行",
closeWithRunsDescription: "退出 DBX 会中断 {count} 个正在运行或排队的 AI 任务。你也可以取消退出并等待任务完成。",
closeWithRunsQuit: "退出并中断任务",
queueSend: "排队发送",
queueSendHint: "当前会话还有任务在运行,发送的消息将在任务完成后自动发出",
inputQueued: "已排队,当前任务完成后自动发送",
queuedInputWaiting: "等待中 — {text}",
queuedInputPending: "已排队待发送 — {text}",
sendQueuedInput: "发送排队消息",
queuedInputEdit: "编辑排队消息",
queuedInputRemove: "移除排队消息",
rowQueuedInput: "有排队输入",
retryRound: "重试本轮",
deleteConversation: "删除会话",
deleteActiveConversationTitle: "会话中还有活动任务",
deleteActiveConversationDescription: "该会话仍有任务在运行或等待。是取消任务并删除会话,还是保留会话?",
cancelTaskAndDelete: "取消任务并删除会话",
keepConversation: "保留会话",
awayUpdatesDivider: "离开期间的更新",
jumpToLatest: "跳到最新",
openPanel: "打开面板",
runRowPhaseTool: "正在执行 {tool}",
runRowPhaseThinking: "正在分析…",
toolbarAwaitingConfirmation: "{count} 个 AI 任务等待你的确认",
newChat: "新对话",
thinking: "思考中...",
reasoningProcess: "思考过程",
+38
View File
@@ -2442,6 +2442,44 @@ export default withEnglishFallback({
welcome: "告訴我你想查詢什麼,我會寫出 SQL",
requestFailed: "AI 請求失敗",
requestCancelled: "AI 請求已取消",
backgroundRunCompleted: "AI 已在背景完成回覆",
backgroundRunNeedsConfirmation: "AI 需要你的確認才能繼續",
recoveredDraftBanner: "已還原上次排隊傳送的請求",
recoveredDraftHint: "可編輯後重新傳送,或刪除移除。",
discardDraft: "刪除草稿",
runStatusRunning: "執行中",
runStatusWaitingToStart: "等待開始",
runStatusAwaitingConfirmation: "等待寫入確認",
runStatusPendingDraft: "待傳輸輸入",
runStatusCompleted: "已完成",
runStatusFailed: "失敗",
runStatusInterrupted: "已中斷",
runStatusCancelled: "已取消",
runUnread: "此會話有新的更新",
closeWithRunsTitle: "AI 任務仍在執行",
closeWithRunsDescription: "結束 DBX 會中斷 {count} 個正在執行或排隊的 AI 任務。你也可以取消結束並等待任務完成。",
closeWithRunsQuit: "結束並中斷任務",
queueSend: "排隊發送",
queueSendHint: "目前會話仍有任務在執行,發送的訊息將在任務完成後自動送出",
inputQueued: "已排隊,目前任務完成後自動發送",
queuedInputWaiting: "等待中 — {text}",
queuedInputPending: "已排隊待發送 — {text}",
sendQueuedInput: "發送排隊訊息",
queuedInputEdit: "編輯排隊訊息",
queuedInputRemove: "移除排隊訊息",
rowQueuedInput: "有排隊輸入",
retryRound: "重試本輪",
deleteConversation: "刪除會話",
deleteActiveConversationTitle: "會話中還有執行中任務",
deleteActiveConversationDescription: "此會話仍有任務在執行或等待。要取消任務並刪除會話,還是保留會話?",
cancelTaskAndDelete: "取消任務並刪除會話",
keepConversation: "保留會話",
awayUpdatesDivider: "離開期間的更新",
jumpToLatest: "跳到最新",
openPanel: "開啟面板",
runRowPhaseTool: "正在執行 {tool}",
runRowPhaseThinking: "正在分析…",
toolbarAwaitingConfirmation: "{count} 個 AI 任務等待你的確認",
newChat: "新對話",
thinking: "思考中……",
reasoningProcess: "思考過程",