fix(voice-input): align CI fixtures and source-only coverage
This commit is contained in:
1 parent
7e12403d84
commit
5ccf1c57d2
13 files changed
+109
-20
No files matched your search
@@ -5,7 +5,7 @@
|
||||
- img
|
||||
- text: 添加插件
|
||||
- heading "官方" [level=3]
|
||||
- text: "6"
|
||||
- text: "7"
|
||||
- list:
|
||||
- listitem:
|
||||
- button "查看 智能体团队": 智能体团队
|
||||
@@ -15,6 +15,10 @@
|
||||
- button "查看 智能体团队 Web 界面": 智能体团队 Web 界面
|
||||
- text: Beta 在浏览器中查看团队成员、任务看板和成员会话。
|
||||
- switch "启用 智能体团队 Web 界面"
|
||||
- listitem:
|
||||
- button "查看 语音输入": 语音输入
|
||||
- text: Beta 在本机使用 SenseVoice 转写录音;首次使用需安装依赖
|
||||
- switch "启用 语音输入"
|
||||
- listitem:
|
||||
- button "查看 终端": 终端
|
||||
- text: 限制 agent 运行的每一条命令。
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
- img
|
||||
- text: 添加插件
|
||||
- heading "官方" [level=3]
|
||||
- text: "6"
|
||||
- text: "7"
|
||||
- list:
|
||||
- listitem:
|
||||
- button "查看 智能体团队": 智能体团队
|
||||
@@ -15,6 +15,10 @@
|
||||
- button "查看 智能体团队 Web 界面": 智能体团队 Web 界面
|
||||
- text: Beta 在浏览器中查看团队成员、任务看板和成员会话。
|
||||
- switch "启用 智能体团队 Web 界面"
|
||||
- listitem:
|
||||
- button "查看 语音输入": 语音输入
|
||||
- text: Beta 在本机使用 SenseVoice 转写录音;首次使用需安装依赖
|
||||
- switch "启用 语音输入"
|
||||
- listitem:
|
||||
- button "查看 终端": 终端
|
||||
- text: 限制 agent 运行的每一条命令。
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
- img
|
||||
- text: 添加插件
|
||||
- heading "官方" [level=3]
|
||||
- text: "6"
|
||||
- text: "7"
|
||||
- list:
|
||||
- listitem:
|
||||
- button "查看 智能体团队": 智能体团队
|
||||
@@ -15,6 +15,10 @@
|
||||
- button "查看 智能体团队 Web 界面": 智能体团队 Web 界面
|
||||
- text: Beta 在浏览器中查看团队成员、任务看板和成员会话。
|
||||
- switch "启用 智能体团队 Web 界面"
|
||||
- listitem:
|
||||
- button "查看 语音输入": 语音输入
|
||||
- text: Beta 在本机使用 SenseVoice 转写录音;首次使用需安装依赖
|
||||
- switch "启用 语音输入"
|
||||
- listitem:
|
||||
- button "查看 终端": 终端
|
||||
- text: 限制 agent 运行的每一条命令。
|
||||
|
||||
@@ -86,10 +86,10 @@ describe('web e2e: plugin configuration pages', () => {
|
||||
|
||||
// Every page the shipped web composition exposes: the shell executor, the
|
||||
// agent loop, subagent selection, and the DeepSeek search provider, after
|
||||
// the two official bundles the installation ships switched off.
|
||||
// the official bundles the installation ships switched off.
|
||||
await panel.getByRole('button', { name: '查看 网页搜索', exact: true }).waitFor({ timeout: 20_000 })
|
||||
const official = panel.locator('[data-plugin-group="official"]')
|
||||
expect(await official.locator('[data-plugin-package]').count()).toBe(2)
|
||||
expect(await official.locator('[data-plugin-package]').count()).toBe(3)
|
||||
expect(await official.locator('[data-plugin-item]').count()).toBe(4)
|
||||
for (const title of ['终端', 'Agent 循环', 'Subagent', '网页搜索']) {
|
||||
expect(await official.getByRole('button', { name: `查看 ${title}`, exact: true }).count()).toBe(1)
|
||||
|
||||
@@ -75,9 +75,10 @@ describe('web e2e: plugin manager', () => {
|
||||
// group, followed by the official plugins that registered their configuration, and its other bundles
|
||||
// stay off the page.
|
||||
expect(await panel.locator('[data-plugin-group="bundles"] [data-plugin-package]').count()).toBe(1)
|
||||
expect(await panel.locator('[data-plugin-group="official"] [data-plugin-package]').count()).toBe(2)
|
||||
expect(await panel.locator('[data-plugin-group="official"] [data-plugin-package]').count()).toBe(3)
|
||||
expect(await panel.locator('[data-plugin-group="official"] [data-plugin-item]').count()).toBe(4)
|
||||
expect(await panel.getByText('Beta', { exact: true }).count()).toBe(2)
|
||||
expect(await panel.getByText('Beta', { exact: true }).count()).toBe(3)
|
||||
expect(await panel.getByRole('switch', { name: '启用 语音输入', exact: true }).getAttribute('aria-checked')).toBe('false')
|
||||
// A bundle that is off still shows the rows its patch declares, without switches.
|
||||
await panel.getByRole('button', { name: '查看 bundle' }).click()
|
||||
await panel.locator('[data-plugin-row]', { hasText: 'fixture-row' }).waitFor({ timeout: 10_000 })
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write docs/module-graph.md
|
||||
module-graph.md: b89bb220fa37e70b83fe879adee71f8d042b0c9a
|
||||
module-graph.zh.md: 7eff2d9faeea8e49d675ad1894b481cd0e1d0ade
|
||||
module-graph.md: d2e6861374d5ae0d4e56307d7d678a210fe7bc7d
|
||||
module-graph.zh.md: 59283cab71b89dda6387ff54ac302c4c72b58fd0
|
||||
@@ -231,17 +231,22 @@ flowchart TD
|
||||
pkg_experimental_agent_team["experimental-agent-team"]
|
||||
pkg_experimental_agent_team_profile["experimental-agent-team-profile"]
|
||||
pkg_experimental_agent_team_web_profile["experimental-agent-team-web-profile"]
|
||||
pkg_experimental_api_speech_to_text["experimental-api-speech-to-text"]
|
||||
pkg_experimental_auto_review["experimental-auto-review"]
|
||||
pkg_experimental_browser_use_chrome_devtools_mcp["experimental-browser-use-chrome-devtools-mcp"]
|
||||
pkg_experimental_browser_use_playwright_mcp["experimental-browser-use-playwright-mcp"]
|
||||
pkg_experimental_browser_use_runtime["experimental-browser-use-runtime"]
|
||||
pkg_experimental_browser_use_stagehand_native["experimental-browser-use-stagehand-native"]
|
||||
pkg_experimental_client_ui_agent_team["experimental-client-ui-agent-team"]
|
||||
pkg_experimental_client_ui_voice_input["experimental-client-ui-voice-input"]
|
||||
pkg_experimental_computer_use_cua_driver_mcp["experimental-computer-use-cua-driver-mcp"]
|
||||
pkg_experimental_computer_use_cua_driver_native["experimental-computer-use-cua-driver-native"]
|
||||
pkg_experimental_inspector["experimental-inspector"]
|
||||
pkg_experimental_ptc_runtime_python["experimental-ptc-runtime-python"]
|
||||
pkg_experimental_speech_to_text["experimental-speech-to-text"]
|
||||
pkg_experimental_speech_to_text_sensevoice["experimental-speech-to-text-sensevoice"]
|
||||
pkg_experimental_tool_agent_team["experimental-tool-agent-team"]
|
||||
pkg_experimental_voice_input_bundle["experimental-voice-input-bundle"]
|
||||
pkg_experimental_webworker_packer["experimental-webworker-packer"]
|
||||
pkg_experimental_webworker_runtime["experimental-webworker-runtime"]
|
||||
end
|
||||
@@ -503,6 +508,7 @@ flowchart TD
|
||||
pkg_session_log_export --> pkg_session_persistence
|
||||
pkg_hmr --> pkg_app_boot
|
||||
pkg_hmr --> pkg_cmdline
|
||||
pkg_experimental_speech_to_text --> pkg_settings
|
||||
pkg_ptc_runtime --> pkg_sandbox
|
||||
pkg_sandbox_local --> pkg_llm
|
||||
pkg_sandbox_local --> pkg_sandbox
|
||||
@@ -598,9 +604,13 @@ flowchart TD
|
||||
pkg_tmux_context --> pkg_session
|
||||
pkg_tmux_context --> pkg_session_projection
|
||||
pkg_tmux_context --> pkg_shell
|
||||
pkg_experimental_api_speech_to_text --> pkg_experimental_speech_to_text
|
||||
pkg_experimental_api_speech_to_text --> pkg_typert_protocol
|
||||
pkg_experimental_ptc_runtime_python --> pkg_ptc_runtime
|
||||
pkg_experimental_ptc_runtime_python --> pkg_timeout
|
||||
pkg_experimental_ptc_runtime_python --> pkg_util_values
|
||||
pkg_experimental_speech_to_text_sensevoice --> pkg_experimental_speech_to_text
|
||||
pkg_experimental_speech_to_text_sensevoice --> pkg_subprocess
|
||||
pkg_commands --> pkg_agent
|
||||
pkg_commands --> pkg_attachment
|
||||
pkg_commands --> pkg_brand
|
||||
@@ -1254,6 +1264,21 @@ flowchart TD
|
||||
pkg_experimental_client_ui_agent_team --> pkg_experimental_agent_team
|
||||
pkg_experimental_client_ui_agent_team --> pkg_session
|
||||
pkg_experimental_client_ui_agent_team --> pkg_typert_protocol
|
||||
pkg_experimental_client_ui_voice_input --> pkg_api_gateway
|
||||
pkg_experimental_client_ui_voice_input --> pkg_api_remotes
|
||||
pkg_experimental_client_ui_voice_input --> pkg_api_session_controller
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_locale
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_store
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_ui_conversation
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_ui_plugin_manager
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_ui_primitives
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_ui_renderer
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_ui_session
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_ui_slots
|
||||
pkg_experimental_client_ui_voice_input --> pkg_experimental_api_speech_to_text
|
||||
pkg_experimental_client_ui_voice_input --> pkg_experimental_speech_to_text
|
||||
pkg_experimental_client_ui_voice_input --> pkg_session
|
||||
pkg_experimental_client_ui_voice_input --> pkg_typert_protocol
|
||||
pkg_experimental_tool_agent_team --> pkg_agent
|
||||
pkg_experimental_tool_agent_team --> pkg_experimental_agent_team
|
||||
pkg_experimental_tool_agent_team --> pkg_session
|
||||
@@ -1380,6 +1405,7 @@ flowchart TD
|
||||
| [`office-to-pdf`](../packages/document/office-to-pdf) | `document` | — |
|
||||
| [`experimental-agent-team-profile`](../packages/experimental/agent-team-profile) | `experimental` | — |
|
||||
| [`experimental-agent-team-web-profile`](../packages/experimental/agent-team-web-profile) | `experimental` | — |
|
||||
| [`experimental-voice-input-bundle`](../packages/experimental/voice-input-bundle) | `experimental` | — |
|
||||
| [`experimental-webworker-packer`](../packages/experimental/webworker-packer) | `experimental` | — |
|
||||
| [`client-ui-cordis`](../packages/extensions/ui-cordis) | `extensions` | — |
|
||||
| [`cordis-client-runner`](../packages/extensions/cordis-client-runner) | `extensions` | — |
|
||||
@@ -1449,6 +1475,7 @@ flowchart TD
|
||||
| [`spill-local`](../packages/spill/spill-local) | `spill` | [`spill`](../packages/spill/spill) |
|
||||
| [`session-log-export`](../packages/session-query/session-log-export) | `session-query` | [`session`](../packages/core/session), [`session-persistence`](../packages/session/session-persistence) |
|
||||
| [`hmr`](../packages/boot/hmr) | `boot` | [`app-boot`](../packages/boot/app-boot), [`cmdline`](../packages/boot/cmdline) |
|
||||
| [`experimental-speech-to-text`](../packages/experimental/speech-to-text) | `experimental` | [`settings`](../packages/settings/settings) |
|
||||
| [`ptc-runtime`](../packages/ptc-runtime/ptc-runtime) | `ptc-runtime` | [`sandbox`](../packages/sandbox/sandbox) |
|
||||
| [`sandbox-local`](../packages/sandbox/sandbox-local) | `sandbox` | [`llm`](../packages/llm/llm), [`sandbox`](../packages/sandbox/sandbox), [`session`](../packages/core/session) |
|
||||
| [`session-persistence-jsonl`](../packages/session/session-persistence-jsonl) | `session` | [`session`](../packages/core/session), [`session-persistence`](../packages/session/session-persistence) |
|
||||
@@ -1472,7 +1499,9 @@ flowchart TD
|
||||
| [`file-reference`](../packages/context/file-reference) | `context` | [`agent`](../packages/core/agent) |
|
||||
| [`time-context`](../packages/context/time-context) | `context` | [`agent`](../packages/core/agent), [`invariants`](../packages/runtime-diagnostics/invariants), [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`session-projection`](../packages/session/session-projection) |
|
||||
| [`tmux-context`](../packages/context/tmux-context) | `context` | [`agent`](../packages/core/agent), [`session`](../packages/core/session), [`session-projection`](../packages/session/session-projection), [`shell`](../packages/shell/shell) |
|
||||
| [`experimental-api-speech-to-text`](../packages/experimental/api-speech-to-text) | `experimental` | [`experimental-speech-to-text`](../packages/experimental/speech-to-text), [`typert-protocol`](../packages/typert/protocol) |
|
||||
| [`experimental-ptc-runtime-python`](../packages/experimental/ptc-runtime-python) | `experimental` | [`ptc-runtime`](../packages/ptc-runtime/ptc-runtime), [`timeout`](../packages/util/timeout), [`util-values`](../packages/util/values) |
|
||||
| [`experimental-speech-to-text-sensevoice`](../packages/experimental/speech-to-text-sensevoice) | `experimental` | [`experimental-speech-to-text`](../packages/experimental/speech-to-text), [`subprocess`](../packages/subprocess/subprocess) |
|
||||
| [`commands`](../packages/interaction/commands) | `interaction` | [`agent`](../packages/core/agent), [`attachment`](../packages/attachment/attachment), [`brand`](../packages/util/brand), [`invariants`](../packages/runtime-diagnostics/invariants), [`llm`](../packages/llm/llm), [`scope`](../packages/core/scope), [`session`](../packages/core/session), [`typert-protocol`](../packages/typert/protocol) |
|
||||
| [`user-approval`](../packages/interaction/user-approval) | `interaction` | [`agent`](../packages/core/agent), [`brand`](../packages/util/brand), [`invariants`](../packages/runtime-diagnostics/invariants), [`llm`](../packages/llm/llm), [`scope`](../packages/core/scope), [`session`](../packages/core/session), [`system-prompt`](../packages/core/system-prompt) |
|
||||
| [`user-questions`](../packages/interaction/user-questions) | `interaction` | [`agent`](../packages/core/agent), [`llm`](../packages/llm/llm), [`scope`](../packages/core/scope) |
|
||||
@@ -1584,6 +1613,7 @@ flowchart TD
|
||||
| [`subagent-fork-in-process`](../packages/subagent/subagent-fork-in-process) | `subagent` | [`agent`](../packages/core/agent), [`session`](../packages/core/session), [`subagent`](../packages/subagent/subagent), [`subagent-in-process-driver`](../packages/subagent/subagent-in-process-driver) |
|
||||
| [`subagent-spawn-in-process`](../packages/subagent/subagent-spawn-in-process) | `subagent` | [`subagent`](../packages/subagent/subagent), [`subagent-in-process-driver`](../packages/subagent/subagent-in-process-driver) |
|
||||
| [`experimental-client-ui-agent-team`](../packages/experimental/client-ui-agent-team) | `experimental` | [`api-remotes`](../packages/api/remotes), [`api-session-controller`](../packages/api/session-controller), [`client-locale`](../packages/client/locale), [`client-ui-conversation`](../packages/client/ui-conversation), [`client-ui-primitives`](../packages/client/ui-primitives), [`client-ui-renderer`](../packages/client/ui-renderer), [`client-ui-session`](../packages/client/ui-session), [`client-ui-slots`](../packages/client/ui-slots), [`client-ui-workspace`](../packages/client/ui-workspace), [`experimental-agent-team`](../packages/experimental/agent-team), [`session`](../packages/core/session), [`typert-protocol`](../packages/typert/protocol) |
|
||||
| [`experimental-client-ui-voice-input`](../packages/experimental/client-ui-voice-input) | `experimental` | [`api-gateway`](../packages/api/gateway), [`api-remotes`](../packages/api/remotes), [`api-session-controller`](../packages/api/session-controller), [`client-locale`](../packages/client/locale), [`client-store`](../packages/client/store), [`client-ui-conversation`](../packages/client/ui-conversation), [`client-ui-plugin-manager`](../packages/client/ui-plugin-manager), [`client-ui-primitives`](../packages/client/ui-primitives), [`client-ui-renderer`](../packages/client/ui-renderer), [`client-ui-session`](../packages/client/ui-session), [`client-ui-slots`](../packages/client/ui-slots), [`experimental-api-speech-to-text`](../packages/experimental/api-speech-to-text), [`experimental-speech-to-text`](../packages/experimental/speech-to-text), [`session`](../packages/core/session), [`typert-protocol`](../packages/typert/protocol) |
|
||||
| [`experimental-tool-agent-team`](../packages/experimental/tool-agent-team) | `experimental` | [`agent`](../packages/core/agent), [`experimental-agent-team`](../packages/experimental/agent-team), [`session`](../packages/core/session), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools) |
|
||||
| [`sdk-client`](../packages/sdk/client) | `sdk` | [`llm`](../packages/llm/llm), [`sdk-protocol`](../packages/sdk/protocol), [`session`](../packages/core/session) |
|
||||
| [`sdk-jsonrpc-server`](../packages/sdk/server) | `sdk` | [`agent`](../packages/core/agent), [`attachment`](../packages/attachment/attachment), [`llm`](../packages/llm/llm), [`llm-deepseek`](../packages/llm/llm-deepseek), [`scope`](../packages/core/scope), [`sdk-protocol`](../packages/sdk/protocol), [`session`](../packages/core/session), [`subagent`](../packages/subagent/subagent) |
|
||||
|
||||
@@ -233,17 +233,22 @@ flowchart TD
|
||||
pkg_experimental_agent_team["experimental-agent-team"]
|
||||
pkg_experimental_agent_team_profile["experimental-agent-team-profile"]
|
||||
pkg_experimental_agent_team_web_profile["experimental-agent-team-web-profile"]
|
||||
pkg_experimental_api_speech_to_text["experimental-api-speech-to-text"]
|
||||
pkg_experimental_auto_review["experimental-auto-review"]
|
||||
pkg_experimental_browser_use_chrome_devtools_mcp["experimental-browser-use-chrome-devtools-mcp"]
|
||||
pkg_experimental_browser_use_playwright_mcp["experimental-browser-use-playwright-mcp"]
|
||||
pkg_experimental_browser_use_runtime["experimental-browser-use-runtime"]
|
||||
pkg_experimental_browser_use_stagehand_native["experimental-browser-use-stagehand-native"]
|
||||
pkg_experimental_client_ui_agent_team["experimental-client-ui-agent-team"]
|
||||
pkg_experimental_client_ui_voice_input["experimental-client-ui-voice-input"]
|
||||
pkg_experimental_computer_use_cua_driver_mcp["experimental-computer-use-cua-driver-mcp"]
|
||||
pkg_experimental_computer_use_cua_driver_native["experimental-computer-use-cua-driver-native"]
|
||||
pkg_experimental_inspector["experimental-inspector"]
|
||||
pkg_experimental_ptc_runtime_python["experimental-ptc-runtime-python"]
|
||||
pkg_experimental_speech_to_text["experimental-speech-to-text"]
|
||||
pkg_experimental_speech_to_text_sensevoice["experimental-speech-to-text-sensevoice"]
|
||||
pkg_experimental_tool_agent_team["experimental-tool-agent-team"]
|
||||
pkg_experimental_voice_input_bundle["experimental-voice-input-bundle"]
|
||||
pkg_experimental_webworker_packer["experimental-webworker-packer"]
|
||||
pkg_experimental_webworker_runtime["experimental-webworker-runtime"]
|
||||
end
|
||||
@@ -505,6 +510,7 @@ flowchart TD
|
||||
pkg_session_log_export --> pkg_session_persistence
|
||||
pkg_hmr --> pkg_app_boot
|
||||
pkg_hmr --> pkg_cmdline
|
||||
pkg_experimental_speech_to_text --> pkg_settings
|
||||
pkg_ptc_runtime --> pkg_sandbox
|
||||
pkg_sandbox_local --> pkg_llm
|
||||
pkg_sandbox_local --> pkg_sandbox
|
||||
@@ -600,9 +606,13 @@ flowchart TD
|
||||
pkg_tmux_context --> pkg_session
|
||||
pkg_tmux_context --> pkg_session_projection
|
||||
pkg_tmux_context --> pkg_shell
|
||||
pkg_experimental_api_speech_to_text --> pkg_experimental_speech_to_text
|
||||
pkg_experimental_api_speech_to_text --> pkg_typert_protocol
|
||||
pkg_experimental_ptc_runtime_python --> pkg_ptc_runtime
|
||||
pkg_experimental_ptc_runtime_python --> pkg_timeout
|
||||
pkg_experimental_ptc_runtime_python --> pkg_util_values
|
||||
pkg_experimental_speech_to_text_sensevoice --> pkg_experimental_speech_to_text
|
||||
pkg_experimental_speech_to_text_sensevoice --> pkg_subprocess
|
||||
pkg_commands --> pkg_agent
|
||||
pkg_commands --> pkg_attachment
|
||||
pkg_commands --> pkg_brand
|
||||
@@ -1256,6 +1266,21 @@ flowchart TD
|
||||
pkg_experimental_client_ui_agent_team --> pkg_experimental_agent_team
|
||||
pkg_experimental_client_ui_agent_team --> pkg_session
|
||||
pkg_experimental_client_ui_agent_team --> pkg_typert_protocol
|
||||
pkg_experimental_client_ui_voice_input --> pkg_api_gateway
|
||||
pkg_experimental_client_ui_voice_input --> pkg_api_remotes
|
||||
pkg_experimental_client_ui_voice_input --> pkg_api_session_controller
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_locale
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_store
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_ui_conversation
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_ui_plugin_manager
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_ui_primitives
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_ui_renderer
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_ui_session
|
||||
pkg_experimental_client_ui_voice_input --> pkg_client_ui_slots
|
||||
pkg_experimental_client_ui_voice_input --> pkg_experimental_api_speech_to_text
|
||||
pkg_experimental_client_ui_voice_input --> pkg_experimental_speech_to_text
|
||||
pkg_experimental_client_ui_voice_input --> pkg_session
|
||||
pkg_experimental_client_ui_voice_input --> pkg_typert_protocol
|
||||
pkg_experimental_tool_agent_team --> pkg_agent
|
||||
pkg_experimental_tool_agent_team --> pkg_experimental_agent_team
|
||||
pkg_experimental_tool_agent_team --> pkg_session
|
||||
@@ -1382,6 +1407,7 @@ flowchart TD
|
||||
| [`office-to-pdf`](../packages/document/office-to-pdf) | `document` | — |
|
||||
| [`experimental-agent-team-profile`](../packages/experimental/agent-team-profile) | `experimental` | — |
|
||||
| [`experimental-agent-team-web-profile`](../packages/experimental/agent-team-web-profile) | `experimental` | — |
|
||||
| [`experimental-voice-input-bundle`](../packages/experimental/voice-input-bundle) | `experimental` | — |
|
||||
| [`experimental-webworker-packer`](../packages/experimental/webworker-packer) | `experimental` | — |
|
||||
| [`client-ui-cordis`](../packages/extensions/ui-cordis) | `extensions` | — |
|
||||
| [`cordis-client-runner`](../packages/extensions/cordis-client-runner) | `extensions` | — |
|
||||
@@ -1451,6 +1477,7 @@ flowchart TD
|
||||
| [`spill-local`](../packages/spill/spill-local) | `spill` | [`spill`](../packages/spill/spill) |
|
||||
| [`session-log-export`](../packages/session-query/session-log-export) | `session-query` | [`session`](../packages/core/session), [`session-persistence`](../packages/session/session-persistence) |
|
||||
| [`hmr`](../packages/boot/hmr) | `boot` | [`app-boot`](../packages/boot/app-boot), [`cmdline`](../packages/boot/cmdline) |
|
||||
| [`experimental-speech-to-text`](../packages/experimental/speech-to-text) | `experimental` | [`settings`](../packages/settings/settings) |
|
||||
| [`ptc-runtime`](../packages/ptc-runtime/ptc-runtime) | `ptc-runtime` | [`sandbox`](../packages/sandbox/sandbox) |
|
||||
| [`sandbox-local`](../packages/sandbox/sandbox-local) | `sandbox` | [`llm`](../packages/llm/llm), [`sandbox`](../packages/sandbox/sandbox), [`session`](../packages/core/session) |
|
||||
| [`session-persistence-jsonl`](../packages/session/session-persistence-jsonl) | `session` | [`session`](../packages/core/session), [`session-persistence`](../packages/session/session-persistence) |
|
||||
@@ -1474,7 +1501,9 @@ flowchart TD
|
||||
| [`file-reference`](../packages/context/file-reference) | `context` | [`agent`](../packages/core/agent) |
|
||||
| [`time-context`](../packages/context/time-context) | `context` | [`agent`](../packages/core/agent), [`invariants`](../packages/runtime-diagnostics/invariants), [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`session-projection`](../packages/session/session-projection) |
|
||||
| [`tmux-context`](../packages/context/tmux-context) | `context` | [`agent`](../packages/core/agent), [`session`](../packages/core/session), [`session-projection`](../packages/session/session-projection), [`shell`](../packages/shell/shell) |
|
||||
| [`experimental-api-speech-to-text`](../packages/experimental/api-speech-to-text) | `experimental` | [`experimental-speech-to-text`](../packages/experimental/speech-to-text), [`typert-protocol`](../packages/typert/protocol) |
|
||||
| [`experimental-ptc-runtime-python`](../packages/experimental/ptc-runtime-python) | `experimental` | [`ptc-runtime`](../packages/ptc-runtime/ptc-runtime), [`timeout`](../packages/util/timeout), [`util-values`](../packages/util/values) |
|
||||
| [`experimental-speech-to-text-sensevoice`](../packages/experimental/speech-to-text-sensevoice) | `experimental` | [`experimental-speech-to-text`](../packages/experimental/speech-to-text), [`subprocess`](../packages/subprocess/subprocess) |
|
||||
| [`commands`](../packages/interaction/commands) | `interaction` | [`agent`](../packages/core/agent), [`attachment`](../packages/attachment/attachment), [`brand`](../packages/util/brand), [`invariants`](../packages/runtime-diagnostics/invariants), [`llm`](../packages/llm/llm), [`scope`](../packages/core/scope), [`session`](../packages/core/session), [`typert-protocol`](../packages/typert/protocol) |
|
||||
| [`user-approval`](../packages/interaction/user-approval) | `interaction` | [`agent`](../packages/core/agent), [`brand`](../packages/util/brand), [`invariants`](../packages/runtime-diagnostics/invariants), [`llm`](../packages/llm/llm), [`scope`](../packages/core/scope), [`session`](../packages/core/session), [`system-prompt`](../packages/core/system-prompt) |
|
||||
| [`user-questions`](../packages/interaction/user-questions) | `interaction` | [`agent`](../packages/core/agent), [`llm`](../packages/llm/llm), [`scope`](../packages/core/scope) |
|
||||
@@ -1586,6 +1615,7 @@ flowchart TD
|
||||
| [`subagent-fork-in-process`](../packages/subagent/subagent-fork-in-process) | `subagent` | [`agent`](../packages/core/agent), [`session`](../packages/core/session), [`subagent`](../packages/subagent/subagent), [`subagent-in-process-driver`](../packages/subagent/subagent-in-process-driver) |
|
||||
| [`subagent-spawn-in-process`](../packages/subagent/subagent-spawn-in-process) | `subagent` | [`subagent`](../packages/subagent/subagent), [`subagent-in-process-driver`](../packages/subagent/subagent-in-process-driver) |
|
||||
| [`experimental-client-ui-agent-team`](../packages/experimental/client-ui-agent-team) | `experimental` | [`api-remotes`](../packages/api/remotes), [`api-session-controller`](../packages/api/session-controller), [`client-locale`](../packages/client/locale), [`client-ui-conversation`](../packages/client/ui-conversation), [`client-ui-primitives`](../packages/client/ui-primitives), [`client-ui-renderer`](../packages/client/ui-renderer), [`client-ui-session`](../packages/client/ui-session), [`client-ui-slots`](../packages/client/ui-slots), [`client-ui-workspace`](../packages/client/ui-workspace), [`experimental-agent-team`](../packages/experimental/agent-team), [`session`](../packages/core/session), [`typert-protocol`](../packages/typert/protocol) |
|
||||
| [`experimental-client-ui-voice-input`](../packages/experimental/client-ui-voice-input) | `experimental` | [`api-gateway`](../packages/api/gateway), [`api-remotes`](../packages/api/remotes), [`api-session-controller`](../packages/api/session-controller), [`client-locale`](../packages/client/locale), [`client-store`](../packages/client/store), [`client-ui-conversation`](../packages/client/ui-conversation), [`client-ui-plugin-manager`](../packages/client/ui-plugin-manager), [`client-ui-primitives`](../packages/client/ui-primitives), [`client-ui-renderer`](../packages/client/ui-renderer), [`client-ui-session`](../packages/client/ui-session), [`client-ui-slots`](../packages/client/ui-slots), [`experimental-api-speech-to-text`](../packages/experimental/api-speech-to-text), [`experimental-speech-to-text`](../packages/experimental/speech-to-text), [`session`](../packages/core/session), [`typert-protocol`](../packages/typert/protocol) |
|
||||
| [`experimental-tool-agent-team`](../packages/experimental/tool-agent-team) | `experimental` | [`agent`](../packages/core/agent), [`experimental-agent-team`](../packages/experimental/agent-team), [`session`](../packages/core/session), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools) |
|
||||
| [`sdk-client`](../packages/sdk/client) | `sdk` | [`llm`](../packages/llm/llm), [`sdk-protocol`](../packages/sdk/protocol), [`session`](../packages/core/session) |
|
||||
| [`sdk-jsonrpc-server`](../packages/sdk/server) | `sdk` | [`agent`](../packages/core/agent), [`attachment`](../packages/attachment/attachment), [`llm`](../packages/llm/llm), [`llm-deepseek`](../packages/llm/llm-deepseek), [`scope`](../packages/core/scope), [`sdk-protocol`](../packages/sdk/protocol), [`session`](../packages/core/session), [`subagent`](../packages/subagent/subagent) |
|
||||
|
||||
@@ -17,10 +17,10 @@ const icons = Object.fromEntries(
|
||||
const iconNames = Object.keys(icons)
|
||||
|
||||
describe('ic_ds_ icon set', () => {
|
||||
it('exports the full icon set (46 deepsuite + 21 figma extracts + fourteen product glyphs outside those sets)', () => {
|
||||
expect(iconNames.length).toBe(81)
|
||||
it('exports the full icon set (46 deepsuite + 21 figma extracts + fifteen product glyphs outside those sets)', () => {
|
||||
expect(iconNames.length).toBe(82)
|
||||
// The composer menu's own glyphs, pinned by name.
|
||||
expect(iconNames).toEqual(expect.arrayContaining(['IconPlanOutline14', 'IconCompactOutline16', 'IconShieldOutline16']))
|
||||
expect(iconNames).toEqual(expect.arrayContaining(['IconPlanOutline14', 'IconCompactOutline16', 'IconShieldOutline16', 'IconMicrophoneOutline16']))
|
||||
})
|
||||
|
||||
it('the permission selector composes its marks over the shield contour exported here', () => {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
.activityMessage { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; font-size: 12px; color: var(--dsw-alias-label-secondary); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
|
||||
.inlineAction { flex: none; }
|
||||
|
||||
.preparation { display: flex; flex-direction: column; gap: 10px; padding: 14px; margin: 12px 0; border: 1px solid var(--dsw-alias-border-l1); border-radius: 10px; font-size: 13px; }
|
||||
.preparation { display: flex; flex-direction: column; gap: 10px; padding: 14px; margin: 12px 0; border: 0.5px solid var(--dsw-alias-border-l1); border-radius: 10px; font-size: 13px; }
|
||||
.preparation p { margin: 0; }
|
||||
.preparationActions { display: flex; gap: 8px; }
|
||||
.preparationActions:empty { display: none; }
|
||||
@@ -24,9 +24,9 @@
|
||||
.stepProgress small { font-size: 11px; color: var(--dsw-alias-label-tertiary); overflow-wrap: anywhere; }
|
||||
.preferences { display: grid; gap: 12px; font-size: 13px; margin: 18px 0; }
|
||||
.preferences label { display: grid; grid-template-columns: 100px minmax(120px, 280px); align-items: center; gap: 12px; }
|
||||
.preferences select { border: 1px solid var(--dsw-alias-border-l1); border-radius: 6px; padding: 6px 10px; background: transparent; color: inherit; font: inherit; }
|
||||
.preferences select { border: 0.5px solid var(--dsw-alias-border-l1); border-radius: 6px; padding: 6px 10px; background: transparent; color: inherit; font: inherit; }
|
||||
.preferences p { margin: 0; }
|
||||
.settingsCard { list-style: none; padding: 16px; border: 1px solid var(--dsw-alias-border-l1); border-radius: 10px; }
|
||||
.settingsCard { list-style: none; padding: 16px; border: 0.5px solid var(--dsw-alias-border-l1); border-radius: 10px; }
|
||||
.settingsCard > p { font-size: 13px; color: var(--dsw-alias-label-secondary); margin: 8px 0 0; }
|
||||
.setupEstimate { display: grid; gap: 10px; padding: 12px; border-radius: 8px; background: var(--dsw-alias-interactive-bg-hover); color: var(--dsw-alias-label-secondary); line-height: 1.6; }
|
||||
.setupEstimate dl { display: grid; gap: 6px; margin: 0; }
|
||||
|
||||
@@ -3,13 +3,18 @@ import { Context, Service } from '@deepseek-ai/cordis'
|
||||
import { LocaleRuntime } from '@deepseek-ai/dsh-client-locale/client'
|
||||
import { SlotRegistry } from '@deepseek-ai/dsh-client-ui-renderer/client'
|
||||
import type { SpeechProviderId } from '@deepseek-ai/dsh-experimental-speech-to-text/types'
|
||||
import { RemoteError } from '@deepseek-ai/dsh-typert-protocol'
|
||||
import { RemoteError, type TypertRemoteContribution } from '@deepseek-ai/dsh-typert-protocol'
|
||||
import { expect, it, vi } from 'vitest'
|
||||
import { createSnapshotStore } from '@deepseek-ai/dsh-client-store'
|
||||
import { apply, inject } from '../src/client/index.ts'
|
||||
import { mountVoiceInput, inject } from '../src/client/mount.ts'
|
||||
import { apply as hostApply } from '../src/index.ts'
|
||||
import { VoiceInput, type VoiceInputInjected } from '../src/client/VoiceInput.tsx'
|
||||
|
||||
const REMOTE: TypertRemoteContribution = {
|
||||
package: '@deepseek-ai/dsh-experimental-api-speech-to-text',
|
||||
descriptors: [],
|
||||
}
|
||||
|
||||
vi.mock('../src/client/readiness.ts', () => ({ observeReadiness: () => ({
|
||||
state: createSnapshotStore({ catalog: null, connected: true, error: null }), dispose: async () => {},
|
||||
}) }))
|
||||
@@ -18,7 +23,10 @@ async function fixture(fail = false) {
|
||||
const ctx = new Context(), unmount = vi.fn(async () => {})
|
||||
class Remote extends Service {
|
||||
constructor() { super(ctx, 'remote') }
|
||||
async $mount() { return unmount }
|
||||
async $mount(contribution: TypertRemoteContribution) {
|
||||
expect(contribution).toBe(REMOTE)
|
||||
return unmount
|
||||
}
|
||||
}
|
||||
new Remote()
|
||||
const configure = vi.fn(async () => ({ ok: true, value: {} }))
|
||||
@@ -42,7 +50,7 @@ it('withdraws its Remote, localized slot and microphone captures on disposal', a
|
||||
hostApply()
|
||||
const b = await fixture()
|
||||
try {
|
||||
const fiber = b.ctx.plugin({ inject: [...inject], apply })
|
||||
const fiber = b.ctx.plugin({ inject: [...inject], apply: ctx => mountVoiceInput(ctx, REMOTE) })
|
||||
await fiber
|
||||
const entry = b.ctx.slots.entries('conversation.input.activity').find(item => item.component === VoiceInput)
|
||||
expect(entry).toMatchObject({ locale: 'voice-input' })
|
||||
@@ -82,7 +90,7 @@ it('withdraws its Remote, localized slot and microphone captures on disposal', a
|
||||
it('rolls back the Remote contribution when the slot registration fails', async () => {
|
||||
const b = await fixture(true)
|
||||
try {
|
||||
await expect(apply(b.ctx)).rejects.toThrow('slot failed')
|
||||
await expect(mountVoiceInput(b.ctx, REMOTE)).rejects.toThrow('slot failed')
|
||||
expect(b.unmount).toHaveBeenCalledOnce()
|
||||
} finally { await b.ctx.fiber.dispose() }
|
||||
})
|
||||
@@ -51,17 +51,22 @@ describe('release families', () => {
|
||||
'@deepseek-ai/dsh-experimental-agent-team-profile',
|
||||
'@deepseek-ai/dsh-experimental-agent-team-web-profile',
|
||||
'@deepseek-ai/dsh-experimental-agent-team',
|
||||
'@deepseek-ai/dsh-experimental-api-speech-to-text',
|
||||
'@deepseek-ai/dsh-experimental-auto-review',
|
||||
'@deepseek-ai/dsh-experimental-browser-use-chrome-devtools-mcp',
|
||||
'@deepseek-ai/dsh-experimental-browser-use-playwright-mcp',
|
||||
'@deepseek-ai/dsh-experimental-browser-use-runtime',
|
||||
'@deepseek-ai/dsh-experimental-browser-use-stagehand-native',
|
||||
'@deepseek-ai/dsh-experimental-client-ui-agent-team',
|
||||
'@deepseek-ai/dsh-experimental-client-ui-voice-input',
|
||||
'@deepseek-ai/dsh-experimental-computer-use-cua-driver-mcp',
|
||||
'@deepseek-ai/dsh-experimental-computer-use-cua-driver-native',
|
||||
'@deepseek-ai/dsh-experimental-inspector',
|
||||
'@deepseek-ai/dsh-experimental-ptc-runtime-python',
|
||||
'@deepseek-ai/dsh-experimental-speech-to-text-sensevoice',
|
||||
'@deepseek-ai/dsh-experimental-speech-to-text',
|
||||
'@deepseek-ai/dsh-experimental-tool-agent-team',
|
||||
'@deepseek-ai/dsh-experimental-voice-input-bundle',
|
||||
'@deepseek-ai/dsh-experimental-webworker-packer',
|
||||
'@deepseek-ai/dsh-experimental-webworker-runtime',
|
||||
])
|
||||
|
||||
@@ -302,6 +302,9 @@ export default defineConfig({
|
||||
// The Team browser entry binds its source-covered mount lifecycle to
|
||||
// the generated Team Remote contribution, which likewise exists only in lib.
|
||||
'packages/experimental/client-ui-agent-team/src/client/index.ts',
|
||||
// The speech entry also imports generated Remote definitions; voice-input.e2e.ts
|
||||
// exercises the built entry, while source tests cover mountVoiceInput.
|
||||
'packages/experimental/client-ui-voice-input/src/client/index.ts',
|
||||
// Slash/command/input round: per-file gaps deferred with the same
|
||||
// client-lane debt. TODO(gui): cover and remove with the lane above.
|
||||
'packages/client/ui-commands/src/index.ts',
|
||||
|
||||
Reference in new issue
Block a user