Add the Manage plugins tab (ui-settings-plugin-manager): package cards
with enable/disable switches, retry and uninstall, an install dialog
streaming pnpm output, and the selected preset's composition with per-row
switches and removal; the read-only list gains provenance facts.
Settings cards edit one scope at a time: ui-settings keeps one describe
mirror per settings scope (SettingsMirrorRegistry) and binds
{ namespace, scope }; ui-settings-plugins stages forms per scope, marks
inherited fields, and adds the skill-filesystem roots card.
Fixes surfaced by driving the browser end to end: the client gateway now
lets a call omit trailing parameters that accept undefined (PR3's
optional scope arguments failed the strict arity check), the plugins
install verb is `add` because the client namespace service reserves
`install`/`remove` (guarded by remote-method-names.host.spec), a plugin
module offers its main export as an addable `.`, and describing a settings
scope no owner registered resolves over the global instance's base and
never throws.
The web e2e scaffold can mount a profile runtime over fixture packages;
plugin-manager.e2e drives the tab and writes one field under a preset
scope; plugin-config and settings-chrome goldens are refreshed.
5.0 KiB
5.0 KiB
- dialog "设置":
- navigation:
- text: 设置
- button "通用设置":
- img
- text: 通用设置
- button "模型":
- img
- text: 模型
- button "插件":
- img
- text: 插件
- button "Agent 预设":
- img
- text: Agent 预设
- button "打开配置文件"
- button "关闭":
- img
- text: 关闭
- heading "插件" [level=2]
- paragraph: 配置和查看本部署已安装的插件。
- tablist "插件视图":
- tab "插件配置"
- tab "插件管理" [selected]
- tab "插件列表"
- tabpanel "插件管理":
- button "刷新"
- button "添加插件"
- heading "全局插件" [level=3]
- paragraph: 按包安装与启停;启用的 bundle 对系统与所有会话生效 · 2 个
- list:
- listitem:
- text: 示例组合包 第三方 Bundle 已停用 @fixture/bundle · 0.0.1
- switch "启用 示例组合包"
- button "展开 示例组合包":
- img
- listitem:
- text: 示例插件 第三方 插件模块 按行添加 @fixture/plain-plugin · 0.0.1
- button "展开 示例插件":
- img
- listitem:
- heading "会话插件" [level=3]
- button "选择要管理的 Agent 预设":
- text: 标准模式(默认)
- img
- paragraph: 按 Agent 预设组成;这里的改动只写入该预设的用户补丁层
- list:
- listitem:
- text: persona @deepseek-ai/dsh-persona
- switch "启用行 persona" [checked]
- listitem:
- text: agent-instructions @deepseek-ai/dsh-agent-instructions
- switch "启用行 agent-instructions" [checked]
- listitem:
- text: tool-bash @deepseek-ai/dsh-tool-bash
- switch "启用行 tool-bash" [checked]
- listitem:
- text: tool-pwsh @deepseek-ai/dsh-tool-pwsh 组合停用
- switch "启用行 tool-pwsh"
- listitem:
- text: tool-fs @deepseek-ai/dsh-tool-fs
- switch "启用行 tool-fs" [checked]
- listitem:
- text: tool-fs-search @deepseek-ai/dsh-tool-fs-search
- switch "启用行 tool-fs-search" [checked]
- listitem:
- text: tool-jobs @deepseek-ai/dsh-tool-jobs
- switch "启用行 tool-jobs" [checked]
- listitem:
- text: skill-filesystem @deepseek-ai/dsh-skill-filesystem
- switch "启用行 skill-filesystem" [checked]
- listitem:
- text: tool-skill @deepseek-ai/dsh-tool-skill
- switch "启用行 tool-skill" [checked]
- listitem:
- text: command-goal @deepseek-ai/dsh-command-goal
- switch "启用行 command-goal" [checked]
- listitem:
- text: tool-goal @deepseek-ai/dsh-tool-goal
- switch "启用行 tool-goal" [checked]
- listitem:
- text: plan-mode @deepseek-ai/dsh-plan-mode
- switch "启用行 plan-mode" [checked]
- listitem:
- text: compaction-basic @deepseek-ai/dsh-compaction-basic
- switch "启用行 compaction-basic" [checked]
- listitem:
- text: command-compact @deepseek-ai/dsh-command-compact
- switch "启用行 command-compact" [checked]
- listitem:
- text: tool-result-pruner @deepseek-ai/dsh-compaction-tool-result-pruner
- switch "启用行 tool-result-pruner" [checked]
- listitem:
- text: tool-subagent-control @deepseek-ai/dsh-tool-subagent-control
- switch "启用行 tool-subagent-control" [checked]
- listitem:
- text: tool-subagent-list-agents @deepseek-ai/dsh-tool-subagent-control/list-agents
- switch "启用行 tool-subagent-list-agents" [checked]
- listitem:
- text: tool-subagent @deepseek-ai/dsh-tool-subagent
- switch "启用行 tool-subagent" [checked]
- listitem:
- text: tool-subagent-fork @deepseek-ai/dsh-tool-subagent
- switch "启用行 tool-subagent-fork" [checked]
- listitem:
- text: tool-subagent-codex @deepseek-ai/dsh-tool-subagent 组合停用
- switch "启用行 tool-subagent-codex"
- listitem:
- text: tool-subagent-claude-code @deepseek-ai/dsh-tool-subagent 组合停用
- switch "启用行 tool-subagent-claude-code"
- listitem:
- text: workflow-worker-thread @deepseek-ai/dsh-workflow-worker-thread
- switch "启用行 workflow-worker-thread" [checked]
- listitem:
- text: tool-workflow @deepseek-ai/dsh-tool-workflow
- switch "启用行 tool-workflow" [checked]
- listitem:
- text: tool-ralph @deepseek-ai/dsh-tool-ralph
- switch "启用行 tool-ralph" [checked]
- listitem:
- text: tool-ask-user @deepseek-ai/dsh-tool-ask-user
- switch "启用行 tool-ask-user" [checked]
- listitem:
- text: tool-todo @deepseek-ai/dsh-tool-todo
- switch "启用行 tool-todo" [checked]
- listitem:
- text: tool-web @deepseek-ai/dsh-tool-web
- switch "启用行 tool-web" [checked]
- listitem:
- navigation: