fix(client): align subagent coordination and wait labels
This commit is contained in:
1 parent
536764c8b4
commit
19675fd061
6 files changed
+25
-14
No files matched your search
@@ -3,4 +3,4 @@
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/client/ui-chat/src/client/conversation-nodes/README.md
|
||||
README.md: 3b6b82685c763837e706c60d8ea69b896f582ae2
|
||||
README.zh.md: d599bcc3fe63ff2e5b7e35fc371af51d066ea25b
|
||||
README.zh.md: ae43726417becea973b22e2f2a16871cec116584
|
||||
@@ -138,7 +138,7 @@ description: "Chat 过程分组与活动摘要的明细业务规则。"
|
||||
| `code` | 正在运行代码 | 运行了代码 |
|
||||
| `webSearch` | 正在搜索网页 | 已搜索网页 |
|
||||
| `webFetch` | 正在访问网页 | 已访问网页 |
|
||||
| `subagents` | 正在协调子任务 | 已协调子任务 |
|
||||
| `subagents` | 正在协调子代理 | 已协调子代理 |
|
||||
| `plan` | 正在更新计划 | 更新了计划 |
|
||||
| `questions` | 等待你的操作 | 向用户提出了问题 |
|
||||
| `tools` | 正在调用工具 | 已调用工具 |
|
||||
|
||||
@@ -15,7 +15,7 @@ export const zh = {
|
||||
'message.stepProcess.code': '正在运行代码',
|
||||
'message.stepProcess.webSearch': '正在搜索网页',
|
||||
'message.stepProcess.webFetch': '正在访问网页',
|
||||
'message.stepProcess.subagents': '正在协调子任务',
|
||||
'message.stepProcess.subagents': '正在协调子代理',
|
||||
'message.stepProcess.plan': '正在更新计划',
|
||||
'message.stepProcess.questions': '等待你的操作',
|
||||
'message.stepProcess.tools': '正在调用工具',
|
||||
@@ -28,7 +28,7 @@ export const zh = {
|
||||
'message.stepProcess.prepare.code': '准备运行代码',
|
||||
'message.stepProcess.prepare.webSearch': '准备搜索网页',
|
||||
'message.stepProcess.prepare.webFetch': '准备访问网页',
|
||||
'message.stepProcess.prepare.subagents': '准备协调子任务',
|
||||
'message.stepProcess.prepare.subagents': '准备协调子代理',
|
||||
'message.stepProcess.prepare.plan': '准备更新计划',
|
||||
'message.stepProcess.prepare.questions': '准备提问',
|
||||
'message.stepProcess.prepare.tools': '准备调用工具',
|
||||
@@ -42,7 +42,7 @@ export const zh = {
|
||||
'message.stepProcess.done.code': '运行了代码',
|
||||
'message.stepProcess.done.webSearch': '已搜索网页',
|
||||
'message.stepProcess.done.webFetch': '已访问网页',
|
||||
'message.stepProcess.done.subagents': '已协调子任务',
|
||||
'message.stepProcess.done.subagents': '已协调子代理',
|
||||
'message.stepProcess.done.plan': '更新了计划',
|
||||
'message.stepProcess.done.questions': '向用户提出了问题',
|
||||
'message.stepProcess.done.tools': '已调用工具',
|
||||
|
||||
@@ -159,7 +159,7 @@ export const zh = {
|
||||
'tool.title.getTeamTask': '读取团队任务',
|
||||
'tool.title.updateTeamTask': '更新团队任务',
|
||||
'tool.title.listTeamTasks': '查看团队任务',
|
||||
'tool.title.waitAgent': '等待代理',
|
||||
'tool.title.waitAgent': '等待子代理',
|
||||
'detail.recordedResult': '调用结果',
|
||||
'detail.empty': '暂无结果',
|
||||
'detail.none': '无',
|
||||
@@ -243,8 +243,8 @@ export const zh = {
|
||||
'detail.receipt.signal': '信号已发送',
|
||||
'detail.receipt.closed': '已关闭',
|
||||
'detail.receipt.closing': '关闭中',
|
||||
'detail.wait.noProgress': '没有正在运行的队友',
|
||||
'detail.wait.title': '队友状态',
|
||||
'detail.wait.noProgress': '没有正在运行的子代理',
|
||||
'detail.wait.title': '子代理状态',
|
||||
'detail.wait.timeout': '等待超时',
|
||||
'detail.wait.changed': '检测到变化',
|
||||
'detail.agent.reply': '代理回复',
|
||||
@@ -596,8 +596,8 @@ export const en = {
|
||||
'detail.receipt.signal': 'Signal delivered',
|
||||
'detail.receipt.closed': 'Closed',
|
||||
'detail.receipt.closing': 'Closing',
|
||||
'detail.wait.noProgress': 'No active teammates',
|
||||
'detail.wait.title': 'Teammate activity',
|
||||
'detail.wait.noProgress': 'No active subagents',
|
||||
'detail.wait.title': 'Subagent activity',
|
||||
'detail.wait.timeout': 'Wait timed out',
|
||||
'detail.wait.changed': 'Change detected',
|
||||
'detail.agent.reply': 'Agent response',
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import type { ToolResultNode } from '@deepseek-ai/dsh-client-ui-chat/client'
|
||||
import { makeTranslate } from '@deepseek-ai/dsh-client-test-runtime'
|
||||
import { en } from '@deepseek-ai/dsh-client-ui-conversation/src/client/locales.ts'
|
||||
import { en, zh } from '@deepseek-ai/dsh-client-ui-conversation/src/client/locales.ts'
|
||||
import { en as commonEn } from '@deepseek-ai/dsh-client-locale/src/locales/en.ts'
|
||||
import { zh as commonZh } from '@deepseek-ai/dsh-client-locale/src/locales/zh.ts'
|
||||
import { statusLine } from '@deepseek-ai/dsh-tool-jobs/src/render.ts'
|
||||
import { presentation } from '@deepseek-ai/dsh-tool-session-query/src/presentation.ts'
|
||||
import { renderList, renderRead, renderSpawn } from '@deepseek-ai/dsh-tool-terminal/src/render.ts'
|
||||
@@ -51,6 +52,16 @@ describe('shared detail values', () => {
|
||||
})
|
||||
|
||||
describe('control detail adapters', () => {
|
||||
it.each([
|
||||
[{ timedOut: false }, '子代理状态 · 检测到变化'],
|
||||
[{ timedOut: true }, '子代理状态 · 等待超时'],
|
||||
[{ timedOut: false, noProgress: { message: 'No pending work' } }, '没有正在运行的子代理'],
|
||||
] as const)('names subagents in Chinese wait results (%j)', (value, summary) => {
|
||||
const translate = makeTranslate(zh, commonZh)
|
||||
expect(translate('tool.title.waitAgent')).toBe('等待子代理')
|
||||
expect(detailsCardModel(output('wait_agent', JSON.stringify(value)), translate, 'zh-CN')?.summary).toBe(summary)
|
||||
})
|
||||
|
||||
it('uses producer wording for agent, job, terminal, and LSP lists', () => {
|
||||
const agents = details('list_agents', 'a1 [running] — Build\na2 [ready] parent=a1 depth=1 — Review', { scope: 'descendants' })
|
||||
expect(agents?.summary).toBe('2 agents')
|
||||
@@ -78,7 +89,7 @@ describe('control detail adapters', () => {
|
||||
expect(details('send_message', '{"status":"queued"}', { agent_id: 'a1', message: 'hello' })?.items[0]?.badge?.label).toBe('Queued')
|
||||
expect(details('send_message', 'message delivered to agent a1', { agent_id: 'a1', message: 'hello' })?.summary).toBe('a1 · Message delivered')
|
||||
expect(details('interrupt_agent', '{"previousStatus":"running"}', { agent_id: 'a1' })?.items[0]?.fields).toContainEqual({ label: 'Previous status', value: 'Running' })
|
||||
expect(details('wait_agent', '{"timedOut":true}')?.summary).toBe('Teammate activity · Wait timed out')
|
||||
expect(details('wait_agent', '{"timedOut":true}')?.summary).toBe('Subagent activity · Wait timed out')
|
||||
expect(details('wait_agent', '{"timedOut":false,"noProgress":{"message":"No peer"}}')?.items[0]?.description).toBe('No peer')
|
||||
expect(details('subagent', 'started background subagent job job-1', { prompt: 'Do work' })?.items[0]?.fields).toContainEqual({ label: 'Job ID', value: 'job-1' })
|
||||
expect(details('subagent', 'A useful reply', { prompt: 'Do work' })?.items[0]?.markdown).toBe('A useful reply')
|
||||
|
||||
@@ -703,10 +703,10 @@
|
||||
- listitem:
|
||||
- paragraph: task-demo-1
|
||||
- button "Inspect"
|
||||
- button "Wait for subagent Teammate activity" [expanded]
|
||||
- button "Wait for subagent Subagent activity" [expanded]
|
||||
- text: Recorded result
|
||||
- list:
|
||||
- listitem: Teammate activity Change detected
|
||||
- listitem: Subagent activity Change detected
|
||||
- button "Inspect"
|
||||
- button "Interrupt agent ui-review" [expanded]
|
||||
- text: Recorded result
|
||||
|
||||
Reference in new issue
Block a user