目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
依赖链 · 下游(依赖该插件的节点):
dsh-agent-default-modeldsh-agent-preset-registrydsh-api-remotesdsh-api-session-controllerdsh-api-settings-controllerdsh-client-localedsh-client-ui-chatdsh-client-ui-conversationdsh-client-ui-settingsdsh-client-ui-settings-accountdsh-client-ui-settings-generaldsh-client-ui-themedsh-llm-pi-aidsh-permission-presets
同一拓扑层(Layer 4,层次遍历层序):
插件信息
| 包名 | @deepseek-ai/dsh-settings |
|---|---|
| 分组 | G35 · 设置 |
| 拓扑层 | Layer 4(层次遍历:被依赖方先于依赖方) |
| 源码路径 | packages/settings/settings |
① 实现逻辑
提供 ctx.settings(SettingsForms 服务),把已激活插件条目的 schemastery Config 投影为可编辑表单并按 namespace 读写 profile patch (src/index.ts:222-429)。describe() 计算 value/base/user 三层、维护 revision 并在变化时 emit settings/document-updated,update/replace/mutate 以 JSON 净化 + 分层合并写回,revision 不符抛 SettingsConflictError (src/index.ts:302-423)。redact.ts 按 schema 的 role('secret') 结构式剥离敏感字段并记录已设置槽位,schema.ts 负责 plainConfig/projectForm/volatileForm 投影 (src/redact.ts:106-116, src/schema.ts:10-79)。启动时另把遗留 settings.yaml 一次性导入当前 profile (src/index.ts:241-258)。
内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件
上游依赖
下游依赖
外部 seam
② 注册/提供(provides)
- ctx.settings (SettingsForms:插件 Config schema → 可编辑表单投影与 profile patch 写回,含 secret 脱敏与 revision 冲突检测)
③ 依赖(depends_on · 上游前驱)
dsh-config-editorE1+E2
通过配置编辑器枚举 profile 条目并对其原始文档执行 edit/写回
src/index.ts:9 import type {}; src/index.ts:224 static inject ['configEditor']; src/index.ts:292 ctx.configEditor.documentPath
④ 被依赖(dependents · 下游消费者)
dsh-agent-default-model
关闭 settings 自动模式并使默认模型从 settings 读取
src/index.ts:6 import type + src/index.ts:60 ctx.inject(['settings'])
dsh-agent-preset-registry
关闭 settings 自动持久化以自管 selectedDefault
src/index.ts:10 type import + src/index.ts:67 ctx.inject(['settings'], ...) settings.configure({ auto: false })
dsh-api-session-controller
设置域参与模型/凭证表面
src/catalog.ts:5 import type {} + package.json peerDependencies dsh-settings(optional)
dsh-api-settings-controller
设置 seam:describe/update/replace/mutate/prepareDocument
src/index.ts:14 import type + src/index.ts:217 ctx.get('settings')
dsh-client-locale
声明 locale 命名空间的 settings 配置面(auto:false)
src/index.ts:2 + src/index.ts:31 ctx.inject(['settings']).settings.configure
dsh-client-ui-chat
宿主侧投影 Chat 偏好为设置表单字段
src/index.ts:2 import @deepseek-ai/dsh-settings + src/index.ts:38 ctx.inject(['settings'])
dsh-client-ui-conversation
宿主侧投影 busyEnter 为设置字段
src/index.ts:2 import @deepseek-ai/dsh-settings + src/index.ts:31 settings.configure
dsh-client-ui-settings
设置命名空间与 wire 类型
src/index.ts:2 import + src/client/config-form.ts:27 import type
dsh-client-ui-settings-general
Host 侧把欢迎版本配置挂到 settings 服务
src/index.ts:2 type-only import + src/index.ts:23 ctx.inject(['settings']) → child.settings.configure
dsh-client-ui-theme
Host 侧设置作用域配置(关闭自动保存)
src/index.ts:2 import type + src/index.ts:40 child.settings.configure
dsh-llm-pi-ai
激活 settings 服务声明,使插件可按设置命名空间配置 provider 路由
src/index.ts:57 import type {} from '@deepseek-ai/dsh-settings'
dsh-permission-presets
为 defaultPreset 提供用户设置默认值
package.json:82 devDep + src/index.ts:14 type import; src/index.ts:210 ctx.inject(['settings']) 配置 auto 默认