目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
dsh-api-remotesdsh-api-session-controllerdsh-api-workspace-filesdsh-client-connectiondsh-client-localedsh-client-ui-chatdsh-client-ui-conversationdsh-client-ui-dockkitdsh-client-ui-primitivesdsh-client-ui-rendererdsh-client-ui-settingsdsh-client-ui-sidebar-rightdsh-client-ui-tooldsh-llmdsh-sandbox-policydsh-sessiondsh-system-promptdsh-tool-presentdsh-workspace-changes
依赖链 · 下游(依赖该插件的节点):
同一拓扑层(Layer 17,层次遍历层序):
插件信息
| 包名 | @deepseek-ai/dsh-client-ui-deliverables |
|---|---|
| 分组 | G06 · 客户端 UI 包 |
| 拓扑层 | Layer 17(层次遍历:被依赖方先于依赖方) |
| 源码路径 | packages/client/ui-deliverables |
| 来源层 | L2 web-app bundle(base 之上装配) |
① 实现逻辑
浏览器半把交付物三面装进既有洞:在 'conversation.chat.turnTail' 注册 DeliverablesTail(变更文件卡与交付卡,子槽 deliverables.file.actions)(src/client/index.ts:61-81),在 'tool.call.toolview' 以 key 'present' 注册 PresentRow (src/client/index.ts:82-84),再在 sidebarRight 注册 changes-review tab 类型、在 'sidebar.right.pane.tab' 注册 ReviewTab(子槽 deliverables.review.file.actions)(src/client/index.ts:86-100)。最后 ctx.provide('chatFileMentions') 提供终版回复中对产出/交付文件的 inline-code 提及链接 (src/client/index.ts:101-112)。宿主半在 system-prompt 注册 Web 文件引用指引节,并由 present-open 提供已声明文件的鉴权 native open (src/index.ts:29-36)。
内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件
上游依赖
下游依赖
外部 seam
② 注册/提供(provides)
- slot: conversation.chat.turnTail#dsh-client-ui-deliverables (变更文件卡与交付卡;子槽 deliverables.file.actions list/session)
- slot: tool.call.toolview#present (present 工具行 PresentRow)
- sidebarRightTabs 类型 changes-review + slot: sidebar.right.pane.tab#changes-review (ReviewTab;子槽 deliverables.review.file.actions list/session)
- 服务 chatFileMentions (ctx.provide:终版 prose 的文件提及链接,Chat 视图经 ctx.get 消费,缺省即关断)
- Locale 命名空间 deliverables
- 上抛 changesReviewAddress/parseChangesReviewAddress/CHANGES_REVIEW_ADDRESS 与 ChangesSummary/ChangesDiff 类型
- 宿主侧 system-prompt 节 ui:deliverable-file-references (FILE_REFERENCE_PROMPT)
③ 依赖(depends_on · 上游前驱)
dsh-api-remotesE1
引入 ctx.remote 与事件声明
src/client/index.ts:13 import @deepseek-ai/dsh-api-remotes/client
dsh-client-connectionE1+E2
原生打开请求经连接层发送
src/client/index.ts:14 + src/present-open.ts:21 ctx.connection
dsh-client-localeE1+E2
注册 deliverables 字典
src/client/index.ts:16 + src/client/index.ts:60 ctx.locale.register(NS)
dsh-client-ui-chatE1+E2
依赖 Chat 声明的 conversation.chat.turnTail 与 assistant-actions 槽
src/client/Deliverables.tsx:3 ChatFileMentions 类型 + src/client/index.ts:15 import ChatFileMentions
dsh-client-ui-conversationE2
注册交付物 ConversationNode 定义
src/client/index.ts:17 + src/client/index.ts:59 ctx.uiConversation.events.register
dsh-client-ui-dockkitE1
review tab 的 TabId 类型
src/client/review-store.ts:8 import type TabId from @deepseek-ai/dsh-client-ui-dockkit
dsh-client-ui-primitivesE1
卡片与 diff 视图基础组件
src/client/Deliverables.tsx:4 + src/client/FileDiff.tsx:4-5
dsh-client-ui-settingsE2
开发者工具开关控制 diff 展示
src/client/index.ts:20 + src/client/index.ts:70 ctx.configForms.developerTools
dsh-client-ui-sidebar-rightE2
打开 changes-review 资源 tab
src/client/index.ts:19 + src/client/index.ts:77 ctx.sidebarRight.openResource
dsh-client-ui-toolE2
present 工具行视图
src/client/PresentRow.tsx:4 + src/client/index.ts:82 ctx.slots.inject('tool.call.toolview')
dsh-system-promptE1+E2
注册 Web 文件引用指引节
src/index.ts:9 import @deepseek-ai/dsh-system-prompt + src/index.ts:31 ctx.systemPrompt.section
dsh-workspace-changesE1
工作区变更记录/差异类型
src/changes.ts:3 import @deepseek-ai/dsh-workspace-changes/types + src/index.ts:10
④ 被依赖(dependents · 下游消费者)
dsh-client-ui-open-in-app
使用 deliverables 声明的文件动作槽
src/client/FileRouteAction.tsx:3 import type + src/client/index.ts:116/index.ts:119 slots.inject