-
- {t(($) => $['thought.requestTitle'], { ns: 'tools' })}
+
{label}
+
+ {hasDetails && (
+
+ )}
+ >
+ )
+
+ return (
+
+ {hasDetails ? (
+
+
+ {content}
+
+
+
+ {!!tool.input && (
+
+
+ {t(($) => $['thought.requestTitle'], { ns: 'tools' })}
+
+
+ {tool.input}
+
+
+ )}
+ {!!tool.output && (
+
+
+ {t(($) => $['thought.responseTitle'], { ns: 'tools' })}
+
+
+ {tool.output}
+
+
+ )}
-
- {tool.input}
-
-
-
-
- {t(($) => $['thought.responseTitle'], { ns: 'tools' })}
-
-
- {tool.output}
-
-
+
+
+ ) : (
+
+ {content}
)}
)
}
-function AgentThoughtsProcessList({ item, responding }: { item: ChatItem; responding?: boolean }) {
- return (
-
- {item.agent_thoughts?.map((thought, index) => (
-
- ))}
-
- )
-}
-
-function AgentThoughtProcessItem({
+function AgentActivityItem({
thought,
responding,
- defaultOpen,
}: {
thought: ThoughtItem
responding?: boolean
- defaultOpen?: boolean
}) {
- const tools = getToolProcesses(thought, responding)
- const answer = thought.answer?.trim()
+ const { i18n } = useTranslation()
+ const tools = getToolActivities(thought, i18n.language, responding)
return (
-
- {answer && (
-
-
-
- )}
- {!answer && thought.thought &&
}
+
{tools.map((tool) => (
-
+
))}
{!!thought.message_files?.length && (
()
-
- return (
-
- {item.agent_response_parts?.map((part, index) => {
- const baseKey = getAgentResponsePartBaseKey(part)
- const occurrence = keyOccurrences.get(baseKey) ?? 0
- keyOccurrences.set(baseKey, occurrence + 1)
- const partKey = occurrence ? `${baseKey}-${occurrence}` : baseKey
-
- if (part.type === 'message') {
- if (!part.content) return null
-
- return (
-
-
-
- )
- }
-
- return (
-
- )
- })}
-
- )
-}
-
-function AgentThoughtsProcessGroup({ item, responding }: { item: ChatItem; responding?: boolean }) {
+function AgentActivityDisclosure({
+ item,
+ entries,
+ responding,
+ defaultOpen,
+}: {
+ item: ChatItem
+ entries: AgentActivityEntry[]
+ responding?: boolean
+ defaultOpen?: boolean
+}) {
const { t } = useTranslation('agentV2')
- const [open, setOpen] = useState(false)
- const workingDuration = formatDuration(useWorkingDuration(responding), t)
- const completedTitle = getCompletedTitle(item.more?.latency, t)
-
- if (responding) {
- return (
-
-
-
- {t(($) => $['agentDetail.configure.answer.workingFor'], { duration: workingDuration })}
-
-
-
-
- )
- }
+ const workingDuration = useWorkingDuration(responding)
+ const latency = Number(item.more?.latency)
+ const duration = responding
+ ? formatDuration(workingDuration, t)
+ : Number.isFinite(latency) && latency > 0
+ ? formatDuration(latency, t)
+ : undefined
+ const thinking = t(($) => $['agentDetail.configure.answer.thinking'])
+ const title = duration ? `${thinking} · ${duration}` : thinking
return (
-
-
- {open &&
}
-
+
+
+
+
+ {entries.map((entry) =>
+ entry.type === 'message' ? (
+
+ ) : (
+
+ ),
+ )}
+
+
+
)
}
@@ -404,37 +342,47 @@ export function AgentRosterResponseContent({
responding,
content,
}: AgentRosterResponseContentProps) {
- const { annotation, agent_thoughts } = item
-
- if (annotation?.logAnnotation) {
+ if (item.annotation?.logAnnotation) {
return (
)
}
+ const entries = getAgentActivityEntries(item)
+ const hasLiveResponseParts = !!item.agent_response_parts?.length
+ const hasThinkingStatus =
+ entries.length === 0 && !!item.agent_response_parts?.some((part) => part.type === 'thought')
+ const hasActivity =
+ hasThinkingStatus ||
+ (hasLiveResponseParts ? entries.some((entry) => entry.type === 'thought') : entries.length > 0)
+ const standaloneMessages = hasLiveResponseParts
+ ? hasActivity
+ ? []
+ : entries.flatMap((entry) => (entry.type === 'message' ? [entry] : []))
+ : content
+ ? [{ type: 'message' as const, content, key: 'final-answer' }]
+ : []
+
return (
-
- {!!item.agent_response_parts?.length && (
-
- )}
- {!item.agent_response_parts?.length && (
- <>
- {!!agent_thoughts?.length && (
-
- )}
- {content && (
-
-
-
- )}
- >
+
+ {hasActivity && (
+
0)}
+ />
)}
+ {standaloneMessages.map((message) => (
+
+ ))}
)
}
diff --git a/web/app/components/base/chat/chat/answer/more.tsx b/web/app/components/base/chat/chat/answer/more.tsx
index 2e6749fdb4a..952c2f3ad91 100644
--- a/web/app/components/base/chat/chat/answer/more.tsx
+++ b/web/app/components/base/chat/chat/answer/more.tsx
@@ -40,10 +40,18 @@ const More: FC
= ({ more }) => {
{`${more.tokens_per_second} tokens/s`}
)}
- ·
-
- {more.time}
-
+ {!!more.time && (
+ <>
+ ·
+
+ {more.time}
+
+ >
+ )}
>
)}
diff --git a/web/app/components/base/chat/chat/answer/operation.tsx b/web/app/components/base/chat/chat/answer/operation.tsx
index 99c64991227..a2bed1066c1 100644
--- a/web/app/components/base/chat/chat/answer/operation.tsx
+++ b/web/app/components/base/chat/chat/answer/operation.tsx
@@ -42,6 +42,23 @@ const feedbackTooltipClassName = 'max-w-[260px]'
const answerActiveFlexClassName = 'group-hover:flex group-has-[[data-popup-open]]:flex'
const answerActiveBlockClassName = 'group-hover:block group-has-[[data-popup-open]]:block'
+function joinPublicContent(blocks: Array
) {
+ return blocks.filter((block): block is string => !!block?.trim()).join('\n\n')
+}
+
+function getPublicResponseContent(item: ChatItem) {
+ if (item.content.trim()) return item.content
+
+ const responseContent = joinPublicContent(
+ item.agent_response_parts?.map((part) =>
+ part.type === 'message' ? part.content : undefined,
+ ) ?? [],
+ )
+ if (responseContent) return responseContent
+
+ return joinPublicContent(item.agent_thoughts?.map((thought) => thought.answer) ?? [])
+}
+
const FeedbackTooltip = ({ content, children }: FeedbackTooltipProps) => {
return (
@@ -74,16 +91,8 @@ function Operation({
const [isShowReplyModal, setIsShowReplyModal] = useState(false)
const [isShowFeedbackModal, setIsShowFeedbackModal] = useState(false)
const [feedbackContent, setFeedbackContent] = useState('')
- const {
- id,
- isOpeningStatement,
- content: messageContent,
- annotation,
- feedback,
- adminFeedback,
- agent_thoughts,
- humanInputFormDataList,
- } = item
+ const { id, isOpeningStatement, annotation, feedback, adminFeedback, humanInputFormDataList } =
+ item
const [userLocalFeedback, setUserLocalFeedback] = useState(feedback)
const [adminLocalFeedback, setAdminLocalFeedback] = useState(adminFeedback)
const [feedbackTarget, setFeedbackTarget] = useState<'user' | 'admin'>('user')
@@ -91,11 +100,8 @@ function Operation({
const userFeedback = feedback
- const content = useMemo(() => {
- if (agent_thoughts?.length) return agent_thoughts.reduce((acc, cur) => acc + cur.thought, '')
-
- return messageContent
- }, [agent_thoughts, messageContent])
+ const content = getPublicResponseContent(item)
+ const hasPublicContent = !!content.trim()
const displayUserFeedback = userLocalFeedback ?? userFeedback
@@ -110,6 +116,7 @@ function Operation({
!readonly && !!onAnnotationAdded && !!onAnnotationEdited && !!onAnnotationRemoved
const shouldShowAnnotationAction =
canManageAnnotation &&
+ hasPublicContent &&
!!config?.supportAnnotation &&
!!config.annotation_reply?.enabled &&
!humanInputFormDataList?.length
@@ -177,7 +184,7 @@ function Operation({
let width = 0
if (!isOpeningStatement) width += 26
if (!isOpeningStatement && showPromptLog) width += 28 + 8
- if (!isOpeningStatement && config?.text_to_speech?.enabled) width += 26
+ if (!isOpeningStatement && config?.text_to_speech?.enabled && hasPublicContent) width += 26
if (!isOpeningStatement && shouldShowAnnotationAction) width += 26
if (shouldShowUserFeedbackBar) width += hasUserFeedback ? 28 + 8 : 60 + 8
if (shouldShowAdminFeedbackBar)
@@ -187,6 +194,7 @@ function Operation({
}, [
config?.text_to_speech?.enabled,
hasAdminFeedback,
+ hasPublicContent,
hasUserFeedback,
isOpeningStatement,
shouldShowAdminFeedbackBar,
@@ -365,10 +373,12 @@ function Operation({
)}
data-testid="operation-actions"
>
- {config?.text_to_speech?.enabled && !humanInputFormDataList?.length && (
-
- )}
- {!humanInputFormDataList?.length && (
+ {config?.text_to_speech?.enabled &&
+ hasPublicContent &&
+ !humanInputFormDataList?.length && (
+
+ )}
+ {hasPublicContent && !humanInputFormDataList?.length && (
{
diff --git a/web/features/agent-v2/agent-detail/configure/components/preview/__tests__/chat.spec.tsx b/web/features/agent-v2/agent-detail/configure/components/preview/__tests__/chat.spec.tsx
index 681275f3d32..da0b3872769 100644
--- a/web/features/agent-v2/agent-detail/configure/components/preview/__tests__/chat.spec.tsx
+++ b/web/features/agent-v2/agent-detail/configure/components/preview/__tests__/chat.spec.tsx
@@ -775,6 +775,59 @@ describe('AgentPreviewChat', () => {
})
})
+ it('should preserve tool labels when formatting chat history', async () => {
+ chatMessagesGetMock.mockResolvedValue({
+ data: [
+ {
+ id: 'message-with-tool-label',
+ conversation_id: 'conversation-1',
+ query: 'run pwd',
+ answer: '',
+ inputs: {},
+ message: [],
+ message_files: [],
+ agent_thoughts: [
+ {
+ id: 'thought-with-tool-label',
+ message_id: 'message-with-tool-label',
+ thought: '',
+ answer: '',
+ tool: 'shell_run',
+ tool_input: 'pwd',
+ tool_labels: {
+ shell_run: {
+ en_US: 'Ran commands',
+ zh_Hans: '运行了命令',
+ },
+ },
+ observation: '/workspace',
+ position: 1,
+ },
+ ],
+ feedbacks: [],
+ status: 'success',
+ from_source: 'console',
+ },
+ ],
+ })
+
+ renderPreviewChat({ conversationId: 'conversation-1' })
+
+ await waitFor(() => {
+ const formattedTree = useChatMock.mock.calls.find((call) => {
+ const chatTree = call[2]
+ return JSON.stringify(chatTree).includes('thought-with-tool-label')
+ })?.[2]
+
+ expect(formattedTree?.[0]?.children?.[0]?.agent_thoughts?.[0]?.tool_labels).toEqual({
+ shell_run: {
+ en_US: 'Ran commands',
+ zh_Hans: '运行了命令',
+ },
+ })
+ })
+ })
+
it('should notify the owner when a send settles with an error', async () => {
const onSendInterrupted = vi.fn()
renderPreviewChat({
diff --git a/web/features/agent-v2/agent-detail/configure/components/preview/chat-runtime.tsx b/web/features/agent-v2/agent-detail/configure/components/preview/chat-runtime.tsx
index fb9a95ddd52..47be15ebef8 100644
--- a/web/features/agent-v2/agent-detail/configure/components/preview/chat-runtime.tsx
+++ b/web/features/agent-v2/agent-detail/configure/components/preview/chat-runtime.tsx
@@ -271,12 +271,33 @@ const toLogMessages = (
]
}
+function toToolLabels(value: AgentThought['tool_labels']): ThoughtItem['tool_labels'] {
+ if (!value || typeof value !== 'object' || Array.isArray(value)) return undefined
+
+ const toolLabels: NonNullable = {}
+ for (const [name, label] of Object.entries(value)) {
+ if (!label || typeof label !== 'object' || Array.isArray(label)) continue
+
+ const enUS = 'en_US' in label ? label.en_US : undefined
+ const zhHans = 'zh_Hans' in label ? label.zh_Hans : undefined
+ if (typeof enUS !== 'string' || typeof zhHans !== 'string') continue
+
+ toolLabels[name] = { en_US: enUS, zh_Hans: zhHans }
+ for (const [locale, localizedLabel] of Object.entries(label)) {
+ if (typeof localizedLabel === 'string') toolLabels[name][locale] = localizedLabel
+ }
+ }
+
+ return Object.keys(toolLabels).length ? toolLabels : undefined
+}
+
const toAgentThoughtItem = (thought: AgentThought, conversationId: string): ThoughtItem => ({
id: thought.id,
tool: thought.tool ?? '',
thought: thought.thought ?? '',
answer: thought.answer ?? '',
tool_input: thought.tool_input ?? '',
+ tool_labels: toToolLabels(thought.tool_labels),
message_id: thought.message_id,
conversation_id: conversationId,
observation: thought.observation ?? '',
diff --git a/web/i18n/ar-TN/agent-v-2.json b/web/i18n/ar-TN/agent-v-2.json
index 90e903e0306..ac180a47d4e 100644
--- a/web/i18n/ar-TN/agent-v-2.json
+++ b/web/i18n/ar-TN/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "الإعدادات المتقدمة",
"agentDetail.configure.advancedSettings.toggle": "تبديل الإعدادات المتقدمة",
+ "agentDetail.configure.answer.activity.ranCommands": "تم تشغيل الأوامر",
+ "agentDetail.configure.answer.activity.runningCommands": "جارٍ تشغيل الأوامر",
"agentDetail.configure.answer.duration.minute": "{{count}} د",
"agentDetail.configure.answer.duration.second": "{{count}} ث",
+ "agentDetail.configure.answer.thinking": "جارٍ التفكير",
"agentDetail.configure.answer.workFinished": "اكتمل العمل",
"agentDetail.configure.answer.workedFor": "عمل لمدة {{duration}}",
"agentDetail.configure.answer.workingFor": "يعمل منذ {{duration}}",
diff --git a/web/i18n/de-DE/agent-v-2.json b/web/i18n/de-DE/agent-v-2.json
index cc8761b67bf..5f0adec66fc 100644
--- a/web/i18n/de-DE/agent-v-2.json
+++ b/web/i18n/de-DE/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Erweiterte Einstellungen",
"agentDetail.configure.advancedSettings.toggle": "Erweiterte Einstellungen umschalten",
+ "agentDetail.configure.answer.activity.ranCommands": "Befehle ausgeführt",
+ "agentDetail.configure.answer.activity.runningCommands": "Befehle werden ausgeführt",
"agentDetail.configure.answer.duration.minute": "{{count}} Min.",
"agentDetail.configure.answer.duration.second": "{{count}} s",
+ "agentDetail.configure.answer.thinking": "Denkt nach",
"agentDetail.configure.answer.workFinished": "Arbeit abgeschlossen",
"agentDetail.configure.answer.workedFor": "Gearbeitet für {{duration}}",
"agentDetail.configure.answer.workingFor": "Arbeitet seit {{duration}}",
diff --git a/web/i18n/en-US/agent-v-2.json b/web/i18n/en-US/agent-v-2.json
index 82f258f2dc1..186ce131be0 100644
--- a/web/i18n/en-US/agent-v-2.json
+++ b/web/i18n/en-US/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Advanced Settings",
"agentDetail.configure.advancedSettings.toggle": "Toggle advanced settings",
+ "agentDetail.configure.answer.activity.ranCommands": "Ran commands",
+ "agentDetail.configure.answer.activity.runningCommands": "Running commands",
"agentDetail.configure.answer.duration.minute": "{{count}}m",
"agentDetail.configure.answer.duration.second": "{{count}}s",
+ "agentDetail.configure.answer.thinking": "Thinking",
"agentDetail.configure.answer.workFinished": "Work finished",
"agentDetail.configure.answer.workedFor": "Worked for {{duration}}",
"agentDetail.configure.answer.workingFor": "Working for {{duration}}",
diff --git a/web/i18n/es-ES/agent-v-2.json b/web/i18n/es-ES/agent-v-2.json
index 79641e1130b..fe1b31e3e36 100644
--- a/web/i18n/es-ES/agent-v-2.json
+++ b/web/i18n/es-ES/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Configuración avanzada",
"agentDetail.configure.advancedSettings.toggle": "Alternar configuración avanzada",
+ "agentDetail.configure.answer.activity.ranCommands": "Comandos ejecutados",
+ "agentDetail.configure.answer.activity.runningCommands": "Ejecutando comandos",
"agentDetail.configure.answer.duration.minute": "{{count}} min",
"agentDetail.configure.answer.duration.second": "{{count}} s",
+ "agentDetail.configure.answer.thinking": "Pensando",
"agentDetail.configure.answer.workFinished": "Trabajo finalizado",
"agentDetail.configure.answer.workedFor": "Trabajó durante {{duration}}",
"agentDetail.configure.answer.workingFor": "Trabajando durante {{duration}}",
diff --git a/web/i18n/fa-IR/agent-v-2.json b/web/i18n/fa-IR/agent-v-2.json
index b5b117ad296..ce6298c5755 100644
--- a/web/i18n/fa-IR/agent-v-2.json
+++ b/web/i18n/fa-IR/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "تنظیمات پیشرفته",
"agentDetail.configure.advancedSettings.toggle": "تغییر تنظیمات پیشرفته",
+ "agentDetail.configure.answer.activity.ranCommands": "دستورات اجرا شدند",
+ "agentDetail.configure.answer.activity.runningCommands": "در حال اجرای دستورات",
"agentDetail.configure.answer.duration.minute": "{{count}} دقیقه",
"agentDetail.configure.answer.duration.second": "{{count}} ثانیه",
+ "agentDetail.configure.answer.thinking": "در حال فکر کردن",
"agentDetail.configure.answer.workFinished": "کار تمام شد",
"agentDetail.configure.answer.workedFor": "به مدت {{duration}} کار کرد",
"agentDetail.configure.answer.workingFor": "در حال کار به مدت {{duration}}",
diff --git a/web/i18n/fr-FR/agent-v-2.json b/web/i18n/fr-FR/agent-v-2.json
index 23918d2ab19..f02b2b17454 100644
--- a/web/i18n/fr-FR/agent-v-2.json
+++ b/web/i18n/fr-FR/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Paramètres avancés",
"agentDetail.configure.advancedSettings.toggle": "Basculer les paramètres avancés",
+ "agentDetail.configure.answer.activity.ranCommands": "Commandes exécutées",
+ "agentDetail.configure.answer.activity.runningCommands": "Exécution des commandes",
"agentDetail.configure.answer.duration.minute": "{{count}} min",
"agentDetail.configure.answer.duration.second": "{{count}} s",
+ "agentDetail.configure.answer.thinking": "Réflexion en cours",
"agentDetail.configure.answer.workFinished": "Travail terminé",
"agentDetail.configure.answer.workedFor": "A travaillé pendant {{duration}}",
"agentDetail.configure.answer.workingFor": "Travaille depuis {{duration}}",
diff --git a/web/i18n/hi-IN/agent-v-2.json b/web/i18n/hi-IN/agent-v-2.json
index 89d96b83144..8599c7a5c30 100644
--- a/web/i18n/hi-IN/agent-v-2.json
+++ b/web/i18n/hi-IN/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "उन्नत सेटिंग्स",
"agentDetail.configure.advancedSettings.toggle": "उन्नत सेटिंग्स टॉगल करें",
+ "agentDetail.configure.answer.activity.ranCommands": "कमांड चलाए गए",
+ "agentDetail.configure.answer.activity.runningCommands": "कमांड चलाए जा रहे हैं",
"agentDetail.configure.answer.duration.minute": "{{count}} मिनट",
"agentDetail.configure.answer.duration.second": "{{count}} सेकंड",
+ "agentDetail.configure.answer.thinking": "सोच रहा है",
"agentDetail.configure.answer.workFinished": "काम पूरा हुआ",
"agentDetail.configure.answer.workedFor": "{{duration}} तक काम किया",
"agentDetail.configure.answer.workingFor": "{{duration}} से काम कर रहा है",
diff --git a/web/i18n/id-ID/agent-v-2.json b/web/i18n/id-ID/agent-v-2.json
index 3368803109a..e371cc8f24a 100644
--- a/web/i18n/id-ID/agent-v-2.json
+++ b/web/i18n/id-ID/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Pengaturan Lanjutan",
"agentDetail.configure.advancedSettings.toggle": "Alihkan pengaturan lanjutan",
+ "agentDetail.configure.answer.activity.ranCommands": "Perintah dijalankan",
+ "agentDetail.configure.answer.activity.runningCommands": "Menjalankan perintah",
"agentDetail.configure.answer.duration.minute": "{{count}} mnt",
"agentDetail.configure.answer.duration.second": "{{count}} dtk",
+ "agentDetail.configure.answer.thinking": "Sedang berpikir",
"agentDetail.configure.answer.workFinished": "Pekerjaan selesai",
"agentDetail.configure.answer.workedFor": "Bekerja selama {{duration}}",
"agentDetail.configure.answer.workingFor": "Bekerja selama {{duration}}",
diff --git a/web/i18n/it-IT/agent-v-2.json b/web/i18n/it-IT/agent-v-2.json
index 45136224402..1a926b697d9 100644
--- a/web/i18n/it-IT/agent-v-2.json
+++ b/web/i18n/it-IT/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Impostazioni avanzate",
"agentDetail.configure.advancedSettings.toggle": "Attiva/disattiva impostazioni avanzate",
+ "agentDetail.configure.answer.activity.ranCommands": "Comandi eseguiti",
+ "agentDetail.configure.answer.activity.runningCommands": "Esecuzione dei comandi",
"agentDetail.configure.answer.duration.minute": "{{count}} min",
"agentDetail.configure.answer.duration.second": "{{count}} s",
+ "agentDetail.configure.answer.thinking": "Sto pensando",
"agentDetail.configure.answer.workFinished": "Lavoro terminato",
"agentDetail.configure.answer.workedFor": "Ha lavorato per {{duration}}",
"agentDetail.configure.answer.workingFor": "Sta lavorando da {{duration}}",
diff --git a/web/i18n/ja-JP/agent-v-2.json b/web/i18n/ja-JP/agent-v-2.json
index a184b41ae19..ecd92caed6c 100644
--- a/web/i18n/ja-JP/agent-v-2.json
+++ b/web/i18n/ja-JP/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "詳細設定",
"agentDetail.configure.advancedSettings.toggle": "詳細設定の表示を切り替え",
+ "agentDetail.configure.answer.activity.ranCommands": "コマンドを実行しました",
+ "agentDetail.configure.answer.activity.runningCommands": "コマンドを実行中",
"agentDetail.configure.answer.duration.minute": "{{count}}分",
"agentDetail.configure.answer.duration.second": "{{count}}秒",
+ "agentDetail.configure.answer.thinking": "思考中",
"agentDetail.configure.answer.workFinished": "作業が完了しました",
"agentDetail.configure.answer.workedFor": "{{duration}} 実行しました",
"agentDetail.configure.answer.workingFor": "{{duration}} 実行中",
diff --git a/web/i18n/ko-KR/agent-v-2.json b/web/i18n/ko-KR/agent-v-2.json
index 1180793ec7b..a1d7327e76b 100644
--- a/web/i18n/ko-KR/agent-v-2.json
+++ b/web/i18n/ko-KR/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "고급 설정",
"agentDetail.configure.advancedSettings.toggle": "고급 설정 전환",
+ "agentDetail.configure.answer.activity.ranCommands": "명령 실행됨",
+ "agentDetail.configure.answer.activity.runningCommands": "명령 실행 중",
"agentDetail.configure.answer.duration.minute": "{{count}}분",
"agentDetail.configure.answer.duration.second": "{{count}}초",
+ "agentDetail.configure.answer.thinking": "생각 중",
"agentDetail.configure.answer.workFinished": "작업 완료",
"agentDetail.configure.answer.workedFor": "{{duration}} 동안 작업함",
"agentDetail.configure.answer.workingFor": "{{duration}} 동안 작업 중",
diff --git a/web/i18n/nl-NL/agent-v-2.json b/web/i18n/nl-NL/agent-v-2.json
index b1536660288..e21dfc68be5 100644
--- a/web/i18n/nl-NL/agent-v-2.json
+++ b/web/i18n/nl-NL/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Geavanceerde instellingen",
"agentDetail.configure.advancedSettings.toggle": "Geavanceerde instellingen in/uit",
+ "agentDetail.configure.answer.activity.ranCommands": "Opdrachten uitgevoerd",
+ "agentDetail.configure.answer.activity.runningCommands": "Opdrachten uitvoeren",
"agentDetail.configure.answer.duration.minute": "{{count}} min",
"agentDetail.configure.answer.duration.second": "{{count}} s",
+ "agentDetail.configure.answer.thinking": "Aan het nadenken",
"agentDetail.configure.answer.workFinished": "Werk voltooid",
"agentDetail.configure.answer.workedFor": "Gewerkt gedurende {{duration}}",
"agentDetail.configure.answer.workingFor": "Bezig gedurende {{duration}}",
diff --git a/web/i18n/pl-PL/agent-v-2.json b/web/i18n/pl-PL/agent-v-2.json
index 57e466f923e..3967666dd35 100644
--- a/web/i18n/pl-PL/agent-v-2.json
+++ b/web/i18n/pl-PL/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Ustawienia zaawansowane",
"agentDetail.configure.advancedSettings.toggle": "Przełącz ustawienia zaawansowane",
+ "agentDetail.configure.answer.activity.ranCommands": "Uruchomiono polecenia",
+ "agentDetail.configure.answer.activity.runningCommands": "Uruchamianie poleceń",
"agentDetail.configure.answer.duration.minute": "{{count}} min",
"agentDetail.configure.answer.duration.second": "{{count}} s",
+ "agentDetail.configure.answer.thinking": "Myśli",
"agentDetail.configure.answer.workFinished": "Praca zakończona",
"agentDetail.configure.answer.workedFor": "Pracował przez {{duration}}",
"agentDetail.configure.answer.workingFor": "Pracuje od {{duration}}",
diff --git a/web/i18n/pt-BR/agent-v-2.json b/web/i18n/pt-BR/agent-v-2.json
index ed68fcc6645..d0b4042975e 100644
--- a/web/i18n/pt-BR/agent-v-2.json
+++ b/web/i18n/pt-BR/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Configurações avançadas",
"agentDetail.configure.advancedSettings.toggle": "Alternar configurações avançadas",
+ "agentDetail.configure.answer.activity.ranCommands": "Comandos executados",
+ "agentDetail.configure.answer.activity.runningCommands": "Executando comandos",
"agentDetail.configure.answer.duration.minute": "{{count}} min",
"agentDetail.configure.answer.duration.second": "{{count}} s",
+ "agentDetail.configure.answer.thinking": "Pensando",
"agentDetail.configure.answer.workFinished": "Trabalho concluído",
"agentDetail.configure.answer.workedFor": "Trabalhou por {{duration}}",
"agentDetail.configure.answer.workingFor": "Trabalhando há {{duration}}",
diff --git a/web/i18n/ro-RO/agent-v-2.json b/web/i18n/ro-RO/agent-v-2.json
index 3b5c06ae5fa..1228cb2d3d7 100644
--- a/web/i18n/ro-RO/agent-v-2.json
+++ b/web/i18n/ro-RO/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Setări avansate",
"agentDetail.configure.advancedSettings.toggle": "Comută setările avansate",
+ "agentDetail.configure.answer.activity.ranCommands": "Comenzi executate",
+ "agentDetail.configure.answer.activity.runningCommands": "Se execută comenzile",
"agentDetail.configure.answer.duration.minute": "{{count}} min",
"agentDetail.configure.answer.duration.second": "{{count}} s",
+ "agentDetail.configure.answer.thinking": "Se gândește",
"agentDetail.configure.answer.workFinished": "Lucrare finalizată",
"agentDetail.configure.answer.workedFor": "A lucrat timp de {{duration}}",
"agentDetail.configure.answer.workingFor": "Lucrează de {{duration}}",
diff --git a/web/i18n/ru-RU/agent-v-2.json b/web/i18n/ru-RU/agent-v-2.json
index d1e7ba02978..391d73eb7ca 100644
--- a/web/i18n/ru-RU/agent-v-2.json
+++ b/web/i18n/ru-RU/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Расширенные настройки",
"agentDetail.configure.advancedSettings.toggle": "Переключить расширенные настройки",
+ "agentDetail.configure.answer.activity.ranCommands": "Команды выполнены",
+ "agentDetail.configure.answer.activity.runningCommands": "Выполнение команд",
"agentDetail.configure.answer.duration.minute": "{{count}} мин",
"agentDetail.configure.answer.duration.second": "{{count}} с",
+ "agentDetail.configure.answer.thinking": "Размышляет",
"agentDetail.configure.answer.workFinished": "Работа завершена",
"agentDetail.configure.answer.workedFor": "Работал {{duration}}",
"agentDetail.configure.answer.workingFor": "Работает {{duration}}",
diff --git a/web/i18n/sl-SI/agent-v-2.json b/web/i18n/sl-SI/agent-v-2.json
index 95debe91008..e215bdee067 100644
--- a/web/i18n/sl-SI/agent-v-2.json
+++ b/web/i18n/sl-SI/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Napredne nastavitve",
"agentDetail.configure.advancedSettings.toggle": "Preklopi napredne nastavitve",
+ "agentDetail.configure.answer.activity.ranCommands": "Ukazi izvedeni",
+ "agentDetail.configure.answer.activity.runningCommands": "Izvajanje ukazov",
"agentDetail.configure.answer.duration.minute": "{{count}} min",
"agentDetail.configure.answer.duration.second": "{{count}} s",
+ "agentDetail.configure.answer.thinking": "Razmišlja",
"agentDetail.configure.answer.workFinished": "Delo končano",
"agentDetail.configure.answer.workedFor": "Delal {{duration}}",
"agentDetail.configure.answer.workingFor": "Dela {{duration}}",
diff --git a/web/i18n/th-TH/agent-v-2.json b/web/i18n/th-TH/agent-v-2.json
index 8c2fa4025ad..f90adf7f7d4 100644
--- a/web/i18n/th-TH/agent-v-2.json
+++ b/web/i18n/th-TH/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "การตั้งค่าขั้นสูง",
"agentDetail.configure.advancedSettings.toggle": "สลับการตั้งค่าขั้นสูง",
+ "agentDetail.configure.answer.activity.ranCommands": "เรียกใช้คำสั่งแล้ว",
+ "agentDetail.configure.answer.activity.runningCommands": "กำลังเรียกใช้คำสั่ง",
"agentDetail.configure.answer.duration.minute": "{{count}} นาที",
"agentDetail.configure.answer.duration.second": "{{count}} วินาที",
+ "agentDetail.configure.answer.thinking": "กำลังคิด",
"agentDetail.configure.answer.workFinished": "งานเสร็จสิ้น",
"agentDetail.configure.answer.workedFor": "ทำงานเป็นเวลา {{duration}}",
"agentDetail.configure.answer.workingFor": "กำลังทำงานเป็นเวลา {{duration}}",
diff --git a/web/i18n/tr-TR/agent-v-2.json b/web/i18n/tr-TR/agent-v-2.json
index cec9fb5b972..3bda42a44dc 100644
--- a/web/i18n/tr-TR/agent-v-2.json
+++ b/web/i18n/tr-TR/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Gelişmiş Ayarlar",
"agentDetail.configure.advancedSettings.toggle": "Gelişmiş ayarları değiştir",
+ "agentDetail.configure.answer.activity.ranCommands": "Komutlar çalıştırıldı",
+ "agentDetail.configure.answer.activity.runningCommands": "Komutlar çalıştırılıyor",
"agentDetail.configure.answer.duration.minute": "{{count}} dk",
"agentDetail.configure.answer.duration.second": "{{count}} sn",
+ "agentDetail.configure.answer.thinking": "Düşünüyor",
"agentDetail.configure.answer.workFinished": "İş tamamlandı",
"agentDetail.configure.answer.workedFor": "{{duration}} çalıştı",
"agentDetail.configure.answer.workingFor": "{{duration}} çalışıyor",
diff --git a/web/i18n/uk-UA/agent-v-2.json b/web/i18n/uk-UA/agent-v-2.json
index a751096e38b..b9191507c0e 100644
--- a/web/i18n/uk-UA/agent-v-2.json
+++ b/web/i18n/uk-UA/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Розширені налаштування",
"agentDetail.configure.advancedSettings.toggle": "Перемкнути розширені налаштування",
+ "agentDetail.configure.answer.activity.ranCommands": "Команди виконано",
+ "agentDetail.configure.answer.activity.runningCommands": "Виконання команд",
"agentDetail.configure.answer.duration.minute": "{{count}} хв",
"agentDetail.configure.answer.duration.second": "{{count}} с",
+ "agentDetail.configure.answer.thinking": "Розмірковує",
"agentDetail.configure.answer.workFinished": "Роботу завершено",
"agentDetail.configure.answer.workedFor": "Працював {{duration}}",
"agentDetail.configure.answer.workingFor": "Працює {{duration}}",
diff --git a/web/i18n/vi-VN/agent-v-2.json b/web/i18n/vi-VN/agent-v-2.json
index 7c4c7de31e3..5c9b4b9c51e 100644
--- a/web/i18n/vi-VN/agent-v-2.json
+++ b/web/i18n/vi-VN/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "Cài đặt nâng cao",
"agentDetail.configure.advancedSettings.toggle": "Bật/tắt cài đặt nâng cao",
+ "agentDetail.configure.answer.activity.ranCommands": "Đã chạy lệnh",
+ "agentDetail.configure.answer.activity.runningCommands": "Đang chạy lệnh",
"agentDetail.configure.answer.duration.minute": "{{count}} phút",
"agentDetail.configure.answer.duration.second": "{{count}} giây",
+ "agentDetail.configure.answer.thinking": "Đang suy nghĩ",
"agentDetail.configure.answer.workFinished": "Công việc đã hoàn tất",
"agentDetail.configure.answer.workedFor": "Đã làm việc trong {{duration}}",
"agentDetail.configure.answer.workingFor": "Đang làm việc trong {{duration}}",
diff --git a/web/i18n/zh-Hans/agent-v-2.json b/web/i18n/zh-Hans/agent-v-2.json
index cba4b5e6c75..6c29caac01a 100644
--- a/web/i18n/zh-Hans/agent-v-2.json
+++ b/web/i18n/zh-Hans/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "高级设置",
"agentDetail.configure.advancedSettings.toggle": "展开或收起高级设置",
+ "agentDetail.configure.answer.activity.ranCommands": "已运行命令",
+ "agentDetail.configure.answer.activity.runningCommands": "正在运行命令",
"agentDetail.configure.answer.duration.minute": "{{count}}分",
"agentDetail.configure.answer.duration.second": "{{count}}秒",
+ "agentDetail.configure.answer.thinking": "思考过程",
"agentDetail.configure.answer.workFinished": "工作已完成",
"agentDetail.configure.answer.workedFor": "工作了 {{duration}}",
"agentDetail.configure.answer.workingFor": "工作中 {{duration}}",
diff --git a/web/i18n/zh-Hant/agent-v-2.json b/web/i18n/zh-Hant/agent-v-2.json
index e1a69c01014..d0de3ea9efd 100644
--- a/web/i18n/zh-Hant/agent-v-2.json
+++ b/web/i18n/zh-Hant/agent-v-2.json
@@ -63,8 +63,11 @@
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
"agentDetail.configure.advancedSettings.label": "進階設定",
"agentDetail.configure.advancedSettings.toggle": "展開或收合進階設定",
+ "agentDetail.configure.answer.activity.ranCommands": "已執行命令",
+ "agentDetail.configure.answer.activity.runningCommands": "正在執行命令",
"agentDetail.configure.answer.duration.minute": "{{count}}分",
"agentDetail.configure.answer.duration.second": "{{count}}秒",
+ "agentDetail.configure.answer.thinking": "思考過程",
"agentDetail.configure.answer.workFinished": "工作已完成",
"agentDetail.configure.answer.workedFor": "工作了 {{duration}}",
"agentDetail.configure.answer.workingFor": "工作中 {{duration}}",