目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
dsh-api-workspace-controllerdsh-client-localedsh-client-shortcutsdsh-client-ui-layoutdsh-client-ui-rendererdsh-client-ui-session
依赖链 · 下游(依赖该插件的节点):
dsh-client-ui-brand-officialdsh-client-ui-cordisdsh-client-ui-plugin-managerdsh-client-ui-scheduledsh-client-ui-settings-generaldsh-client-ui-workspace
同一拓扑层(Layer 14,层次遍历层序):
插件信息
| 包名 | @deepseek-ai/dsh-client-ui-sidebar |
|---|---|
| 分组 | G06 · 客户端 UI 包 |
| 拓扑层 | Layer 14(层次遍历:被依赖方先于依赖方) |
| 源码路径 | packages/client/ui-sidebar |
| 来源层 | L2 web-app bundle(base 之上装配) |
① 实现逻辑
浏览器半注册 `sidebar` 槽并声明 brand.mark/brand.name/toggle.badge/panellist/workspaces/settings/footer.action 子槽(src/client/index.ts:72-85)。它把 `sidebar.panellist` 台账投影为有序面板元数据快照,并在台账或 locale 变化时重算(src/client/index.ts:47-62)。注入面暴露 startSession(经 uiWorkspace 共享动作,src/client/index.ts:45、67)、toggleSidebar/selectPanel(经 ctx.layout,src/client/index.ts:68-69)与 shortcuts 目录(src/client/index.ts:70);同一注入面还被 `shell.leading` 头部控件复用(src/client/index.ts:90-94)。node half 为空 apply(src/index.ts:4)。
内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件
上游依赖
下游依赖
外部 seam
② 注册/提供(provides)
- sidebar locale 命名空间字典
- sidebar 槽位占用者(侧边栏外壳),声明 sidebar.brand.mark / sidebar.brand.name / sidebar.toggle.badge / sidebar.panellist / sidebar.workspaces / sidebar.settings / sidebar.footer.action 子槽
- shell.leading 槽的头部前置控件(折叠侧栏 / 新建会话,用于 macOS 隐藏侧栏场景)
- sidebar.panellist 台账投影为有序面板元数据 observable 源
③ 依赖(depends_on · 上游前驱)
dsh-api-workspace-controllerE1
startSession 的 workspace 参数类型
src/client/contract/slots.ts:12 import type WorkspaceId
dsh-client-localeE1+E2
注册并绑定 sidebar 文案,并订阅 locale 变化重算面板标签
src/client/index.ts:7 type-only import + src/client/index.ts:46 ctx.locale.register
dsh-client-shortcutsE1+E2
把快捷键目录快照交给侧边栏展示
src/client/contract/slots.ts:13 import type ShortcutCatalogEntry + src/client/index.ts:70 ctx.shortcuts.catalog
dsh-client-ui-layoutE1+E2
经布局服务切换/选择面板并引用面板 id 类型
src/client/index.ts:5 import type MainPanelId + src/client/index.ts:68 ctx.layout.toggleSidebar
④ 被依赖(dependents · 下游消费者)
dsh-client-ui-brand-official
占据侧边栏品牌槽位
src/client/Brand.tsx:2 import @deepseek-ai/dsh-client-ui-sidebar/client + src/client/index.ts:18-21 ctx.slots.inject('sidebar.brand.*')
dsh-client-ui-cordis
把 cordis 面板挂载到侧边栏页脚动作位
src/client/index.ts:86 sidebar.footer.action 注册 + src/client/CordisPanel.tsx:11 import
dsh-client-ui-plugin-manager
使用 ui-sidebar 声明的面板列表槽
src/client/index.ts:16 import type + src/client/index.ts:130 slots.inject('sidebar.panellist')
dsh-client-ui-schedule
向侧栏面板列表注册任务入口
src/client/index.ts:36 import type + src/client/index.ts:178 slots.inject('sidebar.panellist')
dsh-client-ui-settings-general
引用 sidebar 的 SlotMap 与 owner props 类型以渲染该槽占位
src/client/shell-contract.ts:15 type-only import(SlotMap 'sidebar.settings')