目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
dsh-api-remotesdsh-client-connectiondsh-client-localedsh-client-shortcutsdsh-client-ui-primitivesdsh-client-ui-rendererdsh-client-ui-sessiondsh-client-ui-settingsdsh-client-ui-sidebardsh-settings
依赖链 · 下游(依赖该插件的节点):
无下游(叶子/被消费端)
同一拓扑层(Layer 13,层次遍历层序):
插件信息
| 包名 | @deepseek-ai/dsh-client-ui-settings-general |
|---|---|
| 分组 | G06 · 客户端 UI 包 |
| 拓扑层 | Layer 13(层次遍历:被依赖方先于依赖方) |
| 源码路径 | packages/client/ui-settings-general |
| 来源层 | L2 web-app bundle(base 之上装配) |
① 实现逻辑
浏览器半渲染 `sidebar.settings` 槽位的设置外壳 SettingsRoot,并声明 settings.launcher/trigger/header/action/close/section/onboarding 等子槽(src/client/index.ts:198-212);它把 `settings.section` 与 `settings.onboarding` 台账投影为有序导航行/步骤快照(src/client/index.ts:129-172)。无主设置项也在此注册:Developer Tools 行(src/client/index.ts:76-82)、Current version 行(src/client/index.ts:84-86)、仅在 loopback 连接下启用的本地设置文档动作(src/client/index.ts:102-104、220-228)、sidebar.toggle.badge 桌面更新指示(src/client/index.ts:92-95),以及 `settings.open` 快捷键(src/client/index.ts:179-196)。node half 定义 volatile 配置 welcomeNoticeVersion 并经 settings 服务 configure(src/index.ts:15-23)。
内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件
上游依赖
下游依赖
外部 seam
② 注册/提供(provides)
- sidebar.settings 槽位占用者:设置面板外壳 SettingsRoot,声明 settings.launcher/trigger/header/action/close/section/onboarding 子槽
- settings.section 条目 id='general' (order 0) 及 settings.general.item 子槽(developer-tools order 15、current-version order 100)
- settings.trigger / settings.header / settings.close 单例实现与 settings.action 条目 id='open-document'
- sidebar.toggle.badge 槽的桌面更新徽标
- settings locale 命名空间字典(外壳 + General 文案)
- settings.open 快捷键命令(primary+,)
- Host 侧 settings 命名空间配置项 welcomeNoticeVersion(volatile)
③ 依赖(depends_on · 上游前驱)
dsh-api-remotesE1+E2
判断 loopback 以决定是否注册本地设置文档动作
src/client/index.ts:12 type-only import + src/client/index.ts:102 ctx.remote.$host.isLoopback
dsh-client-connectionE1+E2
取连接状态用于重连入口与桌面更新徽标
src/client/shell-contract.ts:9 import type ConnectionState + src/client/index.ts:88 ctx.get('connection')
dsh-client-localeE1+E2
注册 settings 字典并投影本地化标签
src/client/index.ts:21 type-only import + src/client/index.ts:100 ctx.locale.bind(NS)
dsh-client-shortcutsE1+E2
注册设置打开命令并展示快捷键目录
src/client/shell-contract.ts:20 import type ShortcutCatalogEntry + src/client/index.ts:126 ctx.shortcuts.catalog, src/client/index.ts:179 ctx.shortcuts.register
dsh-client-ui-settingsE1+E2
设置槽声明与 configForms 镜像由 ui-settings 提供
src/client/index.ts:19 type-only import + src/client/index.ts:103 ctx.configForms.describe()
dsh-client-ui-sidebarE1
引用 sidebar 的 SlotMap 与 owner props 类型以渲染该槽占位
src/client/shell-contract.ts:15 type-only import(SlotMap 'sidebar.settings')
dsh-settingsE1+E2
Host 侧把欢迎版本配置挂到 settings 服务
src/index.ts:2 type-only import + src/index.ts:23 ctx.inject(['settings']) → child.settings.configure
④ 被依赖(dependents · 下游消费者)
无下游(叶子/被消费端)