Chat 目标插件:apply 先 registerConversationNodes 注册约 14 个 ConversationNodeDefinition 与 process 分组 (src/client/conversation-nodes/register.ts:22-38),再由 registerChatNodeRenderers 把 'conversation.chat.node' 的 15 个 key(user/steering/context/turn-trigger/system-prompt/assistant-step/command/manual-compaction/compaction/model-retry/turn-error/turn-max-tokens/turn-process/turn-tail/unknown)注册为渲染器 (src/client/chat/register-node-renderers.ts:30-75)。apply 通过 ctx.uiSession.provide 暴露 chat hook 源 (src/client/apply.ts:111-114),以 order 0 注册 'conversation.view#chat'(携 chatStore 与 conversation.chat.node/turnTail/assistant-actions 子槽)(src/client/apply.ts:177-258),并在 shell.overlay 挂配额通知宿主、settings.general.item 挂 3 个偏好行、conversation.composer.dock 挂 StatsPills、conversation.approval.detail 挂 ApprovalCommand (src/client/apply.ts:263-286)。宿主半经 schemastery 暴露 transcriptView/performanceUsage/linkOpening 三个设置字段 (src/index.ts:18-39)。
dsh-agentE1agent 相关类型
src/client/chat/ChatView.tsx:8 import @deepseek-ai/dsh-agent/types
dsh-api-remotesE1引入 ctx.remote 与转发事件声明
src/client/apply.ts:4 import @deepseek-ai/dsh-api-remotes/client
dsh-api-session-controllerE1+E2按会话解析 binding 与事件源
src/client/apply.ts:5 SessionBinding + src/client/apply.ts:190 ctx.sessions.binding(sessionId)
dsh-client-localeE1+E2注册 chat 字典并绑定 t
src/client/apply.ts:16 merge + src/client/apply.ts:116 ctx.locale.register(NS)
dsh-client-ui-approvalE1消费 conversation.approval.detail 槽的 owner 契约
src/client/chat/ApprovalCommand.tsx:3 import type @deepseek-ai/dsh-client-ui-approval/client
dsh-client-ui-conversationE1+E2消耗 conversation 视图与节点注册表,注册 Chat 视图
src/client/apply.ts:6 ctx.uiConversation + src/client/apply.ts:177 ctx.slots.inject('conversation.view')
dsh-client-ui-sessionE1+E2向会话 UI 提供 chat hooks 标准位
src/client/apply.ts:20 merge + src/client/apply.ts:111 ctx.uiSession.provide
dsh-client-ui-settingsE1+E2注册 Chat 三项 General 设置行
src/client/apply.ts:21 merge + src/client/apply.ts:132 slots.inject('settings.general.item')
dsh-commandsE1命令节点数据
src/client/conversation-nodes/command.ts:7 import @deepseek-ai/dsh-commands/types
dsh-llmE1assistant 消息/品牌类型
src/client/conversation-nodes/assistant.ts:6 + src/client/contract/slots.ts:2
dsh-llm-retryE1模型重试节点与 turn 过程融合
src/client/conversation-nodes/assistant.ts:7 + retry.ts:5
dsh-sessionE1会话事件与标识类型
src/client/apply.ts:8 SessionId + src/client/contract/slots.ts:3
dsh-session-statsE1统计胶囊数据源
src/client/chat/StatsPills.tsx:13 import @deepseek-ai/dsh-session-stats/client
dsh-session-turn-outlineE1轮次导航轨条目
src/client/chat/turn-rail-items.ts:9 import @deepseek-ai/dsh-session-turn-outline/client
dsh-settingsE1+E2宿主侧投影 Chat 偏好为设置表单字段
src/index.ts:2 import @deepseek-ai/dsh-settings + src/index.ts:38 ctx.inject(['settings'])
dsh-token-meterE1token 计量显示
src/client/chat/StatsPills.tsx:14 + src/client/conversation-nodes/turn-tail.ts:7
dsh-toolsE1工具调用节点与调用树
src/client/conversation-nodes/tool.ts:7 + src/client/model/tool-call-tree.ts:2
dsh-client-ui-attachment依赖 Chat 视图声明的 conversation.message.images 槽
src/client/MessageImages.tsx:1 import @deepseek-ai/dsh-client-ui-chat/client + src/client/index.ts:3 type merge
dsh-client-ui-deliverables依赖 Chat 声明的 conversation.chat.turnTail 与 assistant-actions 槽
src/client/Deliverables.tsx:3 ChatFileMentions 类型 + src/client/index.ts:15 import ChatFileMentions
dsh-client-ui-goal依赖 Chat 声明的 conversation.chat.node 槽
src/client/index.ts:19 merge + src/client/index.ts:71 slots.inject('conversation.chat.node')
dsh-client-ui-planChat 节点类型与标准来源面
src/client/index.ts:14 import type {} + src/client/plan-definition.ts:3 import type { ChatNode }
dsh-client-ui-settings-account复用 chat 的类型面并写 ui-chat 设置(transcriptView/performanceUsage)
src/client/AccountQuotaNotice.tsx:5 import + src/client/index.ts:2 import type { TranscriptViewMode }
dsh-client-ui-tool复用 AssistantChatData/ToolResultNode 等工具视图数据契约
src/client/contract/slots.ts:9 import type