目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
dsh-client-localedsh-client-ui-commandsdsh-client-ui-conversationdsh-client-ui-message-feedbackdsh-client-ui-primitivesdsh-client-ui-rendererdsh-client-ui-sessiondsh-commandsdsh-session
依赖链 · 下游(依赖该插件的节点):
无下游(叶子/被消费端)
同一拓扑层(Layer 17,层次遍历层序):
插件信息
| 包名 | @deepseek-ai/dsh-session-log-export |
|---|---|
| 分组 | G34 · 会话检索 |
| 拓扑层 | Layer 17(层次遍历:被依赖方先于依赖方) |
| 源码路径 | packages/session-query/session-log-export |
| 来源层 | L2 web-app bundle(base 之上装配) |
① 实现逻辑
以 fflate 流式 Zip 把单个会话的逻辑日志(header 行 + 逐事件 JSONL)连同子会话与引用附件打包导出:serializeSessionLog/readSessionLogText 生成规范 JSONL,sessionLogZipEntries 按 zip 顺序产出根日志、子代理日志与 media/files 条目,streamSessionLogZip 用 ReadableStream + 背压闸门(ResponseCapacityGate)增量压缩并支持取消 (src/archive.ts:110-169, 347-404, 545-616)。Host 侧注册 /export 命令与 /api/session.export 的 GET/HEAD 路由,校验 sessionId/includeDescendants 并返回 400/404/500 (src/index.ts:78-168)。浏览器侧提供 ctx.sessionLogDownload 控制器并挂载会话头部菜单项,订阅 command/executed 在 /export 成功后触发下载 (src/client/index.ts:36-63)。
内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件
上游依赖
下游依赖
外部 seam
② 注册/提供(provides)
- ctx.sessionLogDownload (浏览器端会话日志导出下载控制器,供会话头部动作与 /export 命令共享)
- Web /export 命令与 /api/session.export ZIP 下载路由 (Host 侧流式导出能力)
③ 依赖(depends_on · 上游前驱)
dsh-client-localeE2
注册 session-log-download 命名空间的中英文字典
src/client/index.ts:30 inject ['locale']; src/client/index.ts:40 ctx.locale.register
dsh-client-ui-commandsE2
订阅 /export 命令执行成功事件以启动浏览器下载
src/client/index.ts:6 import; src/client/index.ts:48 ctx.on('command/executed')
dsh-client-ui-conversationE1
声明会话头部工具插槽的运行时 props 类型
src/client/index.ts:7 import; src/client/Dialog.tsx:16 PropsRuntime<'conversation.session.header.utilities'>
dsh-client-ui-message-feedbackE1+E2
探测 feedbackUi 可用性并在下拉菜单中提供反馈入口
src/client/index.ts:10 import; src/client/index.ts:60 ctx.get('feedbackUi')
dsh-client-ui-primitivesE1
复用 Button/Menu/Modal 等基础组件渲染菜单与下载弹窗
src/client/HeaderAction.tsx:6 import; src/client/Dialog.tsx:3 import
dsh-commandsE1+E2
注册 Web /export 命令作为导出入口
src/index.ts:4,8 import; src/index.ts:41 inject ['commands']; src/index.ts:79 ctx.commands.register
dsh-sessionE1
使用 SessionId/SessionHeader/SessionEvent/SessionStore 类型与 SESSION_FORMAT_VERSION 序列化日志
src/archive.ts:30,32 import; package.json:46 peerDep
④ 被依赖(dependents · 下游消费者)
无下游(叶子/被消费端)