Files
deepseek-harness/apps/web/tests/expected/models-settings/declared-edit.expected.md
T
Yichen Jiang 90af3110b7 feat(web): host plugin configuration on the Plugins page
The Plugins page declares three slots as children of its main entry:
`plugins.item` lists an official plugin's page in the Official group,
`plugins.bundle.config` renders a bundle's own form on its page, and
`plugins.row.config` gives a row a configure control opening the row's
page. Every entry renders in the `summary` and `page` views the page
passes as owner props; the page draws the title, icon, and crumb and
projects the ledgers beside its store, naming no configurable plugin.

`ui-settings-plugins` registers its four host-plane pages into
`plugins.item` while the Host serves their namespaces and withdraws them
when it stops; the forms keep edits until a save and drop them on leaving
the page, so the discard control and the unsaved marker are gone. The
Settings section becomes the Built-in plugins shell around the inventory
tab, and `settings.plugin.item` is retired.

The Official group opens with the optional bundles the installation
ships, tagged Beta where the feature is one and without an official tag,
followed by the configuration pages. Auto review leaves the optional
bundles and the CLI's dependencies; the install guide names it as its
example spec. The version tag is a capsule like the other tags.

The `plugin-config` web lane drives the pages through the real wire and
opens a community fixture's row page after switching its bundle on; the
settings lanes re-record the renamed navigation entry.
2026-09-16 21:05:34 +08:00

2.7 KiB

  • dialog "设置":
    • navigation:
      • text: 设置
      • button "通用设置":
        • img
        • text: 通用设置
      • button "模型":
        • img
        • text: 模型
      • button "内置插件":
        • img
        • text: 内置插件
      • button "Agent 预设":
        • img
        • text: Agent 预设
      • button "已归档会话":
        • img
        • text: 已归档会话
    • button "打开配置文件"
    • button "关闭":
      • img
      • text: 关闭
    • heading "模型" [level=2]
    • paragraph: 填入各提供方的 API 密钥即可使用其模型。
    • list:
      • listitem:
        • text: minimax-cn
        • img "API 密钥已配置"
        • button "编辑 minimax-cn": 编辑
        • button "删除 minimax-cn": 删除
      • listitem:
        • text: Acme Gateway 自定义
        • button "编辑 Acme Gateway (acme-gateway)": 编辑
        • button "删除 Acme Gateway (acme-gateway)": 删除
        • text: Acme Gateway acme-gateway API 密钥
        • textbox "API 密钥":
          • /placeholder: 输入 API 密钥,或留空使用环境认证
        • group:
          • text: 自定义设置 显示名称
          • textbox "显示名称":
            • /placeholder: acme-gateway
            • text: Acme Gateway
          • text: API 地址
          • textbox "API 地址":
          • text: API 协议
          • combobox "API 协议":
            • option "openai-completions" [selected]
            • option "openai-responses"
            • option "anthropic-messages"
          • region "模型目录":
            • text: 模型目录 已自定义模型目录
            • button "恢复默认模型"
            • button "获取可用模型"
            • textbox "模型 ID 1":
              • /placeholder: 模型 ID
              • text: acme-large
            • textbox "显示名称 1":
              • /placeholder: 显示名称
            • button "模型选项 1" [expanded]:
              • img
            • button "删除模型 1":
              • img
            • text: 上下文窗口
            • textbox "上下文窗口 1":
              • /placeholder: 256K
            • text: 最大输出 token 数
            • textbox "最大输出 token 数 1":
              • /placeholder: 32K
            • group "输入类型 1":
              • text: 输入类型
              • checkbox "文本" [checked]
              • text: 文本
              • checkbox "图片" [checked]
              • text: 图片
            • button "添加模型":
              • img
              • text: 添加模型
        • button "取消"
        • button "保存"
    • button "添加提供方":
      • img
      • text: 添加提供方
    • button "添加自定义提供方":
      • img
      • text: 添加自定义提供方