目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
依赖链 · 下游(依赖该插件的节点):
dsh-client-ui-approvaldsh-client-ui-conversationdsh-client-ui-layoutdsh-client-ui-open-in-appdsh-client-ui-settings-generaldsh-client-ui-shortcutsdsh-client-ui-sidebardsh-client-ui-sidebar-browserdsh-client-ui-sidebar-filesdsh-client-ui-sidebar-rightdsh-client-ui-sidebar-terminaldsh-client-ui-workspace
同一拓扑层(Layer 12,层次遍历层序):
插件信息
| 包名 | @deepseek-ai/dsh-client-shortcuts |
|---|---|
| 分组 | G05 · 客户端运行时 |
| 拓扑层 | Layer 12(层次遍历:被依赖方先于依赖方) |
| 源码路径 | packages/client/shortcuts |
| 来源层 | L2 web-app bundle(base 之上装配) |
① 实现逻辑
Host 半把经过校验的键盘配置注入页面全局 `__DSH_SHORTCUTS_CONFIG__` (src/index.ts:15-19)。浏览器半 `ShortcutsService extends Service` 按环境(web/desktop)选择存储适配器与键盘适配器,建立 `ShortcutRegistry`,并暴露 register/registerFixed/observeFixedInput/describeBinding/edit 等命令面 (src/client/index.ts:27-75)。它订阅 locale 变化刷新按键标签,经固定输入监听器链带 consume 语义分发,Desktop 走原生键盘桥 (src/client/index.ts:74, 94-106, 62-63)。
内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件
上游依赖
下游依赖
外部 seam
② 注册/提供(provides)
- ctx.shortcuts (窗口级应用命令注册表、生效键帽目录、编辑与描述绑定能力)
- 固定快捷键输入观察通道 (observeFixedInput,带 consume 链)
- windows/desktop/web 多运行时的存储与键盘适配
③ 依赖(depends_on · 上游前驱)
dsh-client-localeE1+E2
本地化键帽标签并在语言切换时刷新目录
src/client/index.ts:4 + src/client/index.ts:28 static inject 'locale' + src/client/index.ts:74 ctx.locale.subscribe
dsh-host-webserverE2
把键盘配置注入到服务的页面 index
src/index.ts:5 + src/index.ts:16 ctx.on('webserver/index-inject')
④ 被依赖(dependents · 下游消费者)
dsh-client-ui-approval
注册 Enter/Esc 固定审批快捷键
src/client/index.ts:10 ShortcutCommandId + src/client/index.ts:81-86 scope.shortcuts.registerFixed
dsh-client-ui-conversation
注册输入与停转固定快捷键
src/client/apply.ts:14 ShortcutCommandId + src/client/apply.ts:236 ctx.inject(['shortcuts'])
dsh-client-ui-layout
注册侧栏切换快捷键命令
src/client/index.ts:20 import type + src/client/index.ts:183 ctx.shortcuts.register
dsh-client-ui-open-in-app
注册 workspace.openLocal 快捷键命令
src/client/index.ts:7 import + src/client/index.ts:59 ctx.shortcuts.register
dsh-client-ui-settings-general
注册设置打开命令并展示快捷键目录
src/client/shell-contract.ts:20 import type ShortcutCatalogEntry + src/client/index.ts:126 ctx.shortcuts.catalog, src/client/index.ts:179 ctx.shortcuts.register
dsh-client-ui-shortcuts
注册命令/固定命令并读写快捷键目录与配置
src/client/Editor.tsx:6 import (client) + src/client/index.ts:34 ctx.shortcuts.edit, src/client/index.ts:38 ctx.shortcuts.registerFixed
dsh-client-ui-sidebar
把快捷键目录快照交给侧边栏展示
src/client/contract/slots.ts:13 import type ShortcutCatalogEntry + src/client/index.ts:70 ctx.shortcuts.catalog
dsh-client-ui-sidebar-browser
注册新建浏览器标签命令并声明其可用性
src/client/definition.tsx:2 import (client) + src/client/index.ts:47 ctx.shortcuts.register
dsh-client-ui-sidebar-files
注册打开文件面板命令
src/client/definition.tsx:8 import (client) + src/client/index.ts:47 ctx.shortcuts.register
dsh-client-ui-sidebar-right
注册右栏快捷键并读取快捷键目录
src/client/contract/slots.ts:23 import (client) + src/client/index.ts:135 registerSidebarShortcuts(ctx.shortcuts, ...)
dsh-client-ui-sidebar-terminal
注册 terminal.new 快捷键并读取快捷键目录
src/client/TerminalGuide.tsx:3 + src/client/index.ts:54 ctx.shortcuts.register
dsh-client-ui-workspace
注册/读取工作区快捷键命令
src/client/contract/slots.ts:53 + src/client/index.ts:249 ctx.shortcuts.catalog