@zhangzhian/dsh-devtools-settings

中文文档
0.3.1发布于 2026/11/03MITTypeScriptES Module

dsh-devtools 的设置外壳:设置左栏的一条「开发工具」导航项 = 控制台首页(介绍 + 版本与更新 + 功能插件卡片)+ 点卡片下钻到各插件设置页(正文由组件包注册进 devtools.settings.tab)

中文使用文档
文档目录7 节
  1. 安装
  2. 提供什么
  3. 要求
  4. 英语
  5. 安装
  6. 它提供了什么
  7. 要求

英语 | 简体中文

@zhangzhian / dsh-devtools-settings

dsh-devtools 的设置外壳:设置左栏里的一条「开发工具」导航项。点进去是一个 控制台首页(一句话介绍 + 版本与更新 + 功能插件卡片),点一张卡片就下钻到那个 插件的设置页 —— 像跳一个路由,而不是在一个常驻菜单里切页签。

它自己只有控制台这一页 —— 其余页面正文由其它组件包注册进 devtools.settings.tab。

安装

dsh plugin add @zhangzhian/dsh-devtools

@zhangzhian/dsh-devtools 是清单包,装它会带齐所有组件(包括这个)。只想装外壳:

dsh plugin add @zhangzhian/dsh-devtools-settings

提供什么

  • 设置左栏的一条「开发工具」导航项(settings.section,id: devtools, order: 30),带自己的图标。
  • 控制台首页(devtools-home,order: 10,默认打开的第一页):标题 + 一句介绍 + 配套软件入口 + 「版本与更新」卡(当前版本 / 最新版本 / 升级 / 右上角刷新)+「功能 插件」卡片网格。卡片跟着账本自动长:任何包往 devtools.settings.tab 注册页面, 控制台就多一张卡。
  • 配套软件入口(上面、介绍之后 —— 左侧“DSH远程/专属配套软件”+三个卖点,右侧浅蓝胶囊”官网下载”(悬停转实心品牌 [r];整条是一个 <a>(官网下载、 target="_blank"、rel="noopener noreferrer"),position: sticky; top: 0:默认普通 一条,超一屏滚动时钉在顶部。
  • 下钻视图:点一张卡切到那一页;页头是「返回控制台 + 图标 + 名字 + 一句话说明」,正文 全宽,返回控制台按钮和 Esc 都能回来。页头吸顶 —— 正文往下滚时钉在顶部不动 【翻译】:【翻译】 页头高度写成自定义属性 --dsh-devtools-page-bar-h(91px min-height 钉住:正文里 (1)、(1)、(1)、(1)、(2)、(3)
  • 版本与更新(真能升级):宿主半身提供 dshDevtoolsUpdate 远程的; (status / check / upgrade)。自动检查默认执行(打开卡片时若从没查过 / 距上次 超过 6 小时就查一次),面板上没有开关。判据只有一条:NPM注册表 装的更新吗;;;; pnpm add @zhangzhian/dsh-devtools@<版本> --config.minimum-release-age=0(回读版本一致 才算成功,见 src/update-service.ts 顶部)。link: 安装同样NPM 发布版,只多一句提醒(升级会把依赖换成发布版)。所有包锁步同版本,所以"当前版本"读 自己那份 package.json 就等于读聚合包。
  • 子槽 devtools.settings.tab:其它包把设置页注册进来,就会出现在控制台的卡片网格里 ({ kind: 'list', scope: 'root' })。
  • “碗碟”:宿主半身在 $DSH_HOME/devtools/bin/ 包装器 (dsh-shell)+ rc垫 shellCandidates —— 1 .壳 dsh-shell。选了它的终端里就有 DSH;DSH_HOME / DSH_PROFILE / DSH_PROFILE_DIR,以及和宿主 同一套的 dsh / pnpm / node(路径www.缀),http://www.chinesewordword.com dsh plugin add/remove、升级 碗碟 pnpm。

它是自家配套软件的固定入口,不是广告位。 远程DSH 「推广」字样、没有第三方免责声明;不来自页签账本、不随插件增减变化、不参与下钻;地址写死在 PROMO_URL【中文译文 promo.* 键。

为什么需要这个终端。 【中文翻译 { DSH_SESSION_ID },而子进程环境是 scrubbedParentEnv() 的产物 —— 所有 DSH_* 都被剥掉“驾驭身份。 永远不会隐式泄露”)。所以不选这一项时,在终端里敲 dsh plugin --profile web add ... 会去操作 ~/.dsh/ / home/profile。中文:bash 注册表,终端这条链路没接它。

它影响不到宿主机。 “笨笨”,“笨笨” process.env 不被写回,别的终端拿不到,也没有任何文件级环境(/etc/profile、 ~/.zshrc)被修改。Rc垫shell自己的 ~/.zshrc / ~/.bashrc( 前缀强制挪回最前 -- -⚠️ export PATH="$HOME/xxx/bin:$PATH" 不删前缀、只把它挤到后面,node / pnpm 就变成你 自己那套了(真机上发现的)。前缀不会重复出现。

三个已知边界。 ①包装 bash/zsh,平台的活动探测 (prepareShellActivity)不生效:它不会被"未看管 72 小时"自动清理误杀,代价只是 空闲判定不准。②包装静默少一项(平台把"可执行文件不存在"当跳过), 所以 dshShell: false 或宿主半身没起来时不报错。③Windows包装器POSIX )。

配置(这一行的 config: 段):dshShell(默认 true,关掉就不生成、下拉里也没了)、 shell(留空 = 按 zsh → bash → sh 探测)、inheritShellRc(默认 true;设 false 就是 zsh -f -i / bash --noprofile --norc -i,环境确定但没有你的补全与别名)、env(额外 注入的变量,保留键被丢弃)、pathExtra(网址:缀)。不想让下拉出现这一项, 文件 cordis.patch.yml 【中文译文 terminal-controller 行把 shellCandidates 盖回默认值。

交互与无障碍。 控制台的插件菜单是一组按钮(整卡可点,悬停/聚焦有反馈);下钻页是 role="region" + aria-label。不再是 role="tablist":两屏互斥、点卡片就是"跳转", 硬套标签页语义会念出屏幕上不存在的控件(见 src/client/index.tsx)。焦点跟着路由:下钻进新页面、返回回到那张卡;只挂载 访问过保持活力。

导航图标是怎么换上的。 平台的设置导航【中文译文1、《中国日报》 而 settings.section 只有 id / order / label —— 没有"贡献图标"的槽。所以本包不改 平台界面:给自己的那一行打 data-dsh-devtools-nav;;;;::before + CSS掩码 IconApiOutlineMedium,颜色跟导航行文字走,选中/悬停变主 色)。整段包在 @supports 【中文译文】平台哪天长出图标槽, 这段可以删掉。

要求

  • 近年来 0.2.0-rc.2 或更新。
  • 没有别的依赖。没有贡献方时控制台显示空态。
  • “近年来管理终端”需要POSIX系统(macOS / Linux)和带终端控制器的配置文件 (web对,就是这样 terminal-controller 一捆一捆的 @deepseek-ai/dsh-web-app 之后(dsh plugin add 的追加顺序就是如此)。

英语

@zhangzhian / dsh-devtools-settings

这个 设置shell 的 dsh-devtools: 一个 设置中的“开发工具”条目 侧边栏。它打开一个 控制台回家 (一行介绍,版本和更新,插件 卡);点击卡片 训练成 该插件的设置页面-路由,而不是 永久菜单中的选项卡。

shell只发送控制台页面——其他所有页面主体都注册到 devtools.settings.tab 通过组件包。

安装

dsh plugin add @zhangzhian/dsh-devtools

@zhangzhian/dsh-devtools 是舱单包裹;安装它会把每一个 组件,包括这个。单独安装shell:

dsh plugin add @zhangzhian/dsh-devtools-settings

它提供了什么

  • 一个“开发工具”条目 在侧边栏(settings.section, id: devtools, order: 30),有自己的图标。
  • 控制台主页 (devtools-home, order: 10,你登陆的第一页 (1):标题+一行介绍+伴侣应用程序栏+“版本和更新”卡片 (安装/最新/ 升级 / refresh) +一个“插件”卡网格。网格 自己生长:任何注册到的包裹 devtools.settings.tab 获得一个 卡。
  • 伴侣应用吧 (63px,在控制台内):右 以上 版本& “更新”卡,之后介绍“DSH远程/伴侣应用”加上三个销售 左边是点,右边是一个淡蓝色的“官方下载”药丸(固体品牌) 悬停时蓝色,键盘焦点时聚焦环)。条是1 <a> (下载, target="_blank", rel="noopener noreferrer"), position: sticky; top: 0 - - - - - - 默认情况下是普通的,一旦内容滚动就固定在顶部。
  • 向下钻取视图:点击卡片打开该页;它的标题是 “返回控制台+图标+名称+一行描述”,正文全宽。两个 这个 返回控制台 按钮, Esc 回报你。标题是 粘性的 - - - - - - 在主体滚动时固定(滚动条是平台的设置窗格 头文件位于其中 position: sticky 不透明背景的包装器)。它的 高度公布为 --dsh-devtools-page-bar-h (91px),用 min-height:身体有自己的粘性东西(两个远程访问标签) 并且必须知道标题结束在哪里。
  • 这个 devtools.settings.tab 孩子槽:任何将页面注册到其中的包 出现在控制台的网格中({ kind: 'list', scope: 'root' })。
  • “天线管理终端”:主机生成一个包装器(dsh-shell) 再加上一个环境文件和rc垫片 $DSH_HOME/devtools/bin/,以及bundle补丁 将其路径附加到控制器的路径 shellCandidates ——所以 下拉壳 获取另一个条目, dsh-shell。这个 一个 终端你 选择它,因为它携带DSH运行时环境: DSH_HOME / DSH_PROFILE / DSH_PROFILE_DIR 同样的 dsh / pnpm / node 主机使用(PATH)运行 前缀)-你可以 dsh plugin add/remove,升级DSH或运行 pnpm.

我们自己的配套应用的固定入口,而不是广告位。 DSH遥控器就是这个 插件的专用配套应用程序-没有“推广”的措辞,没有第三方 免责声明。它从不来自于标签分类账,也不参与向下挖掘; URL是硬编码的 PROMO_URL,副本保存在7页 promo.* 钥匙。

为什么需要它。 平台生成一个终端PTY { DSH_SESSION_ID } 只有,和孩子的环境来自 scrubbedParentEnv() - - - - - - 每一个 DSH_* 变量被剥离 (“线束身份永远不会隐式泄露”)。没有这个 条目, dsh plugin --profile web add ... 在终端上操作 ~/.dsh,而不是 此DSH使用的主/配置文件。模型的bash工具使用平台的可信工具 注册表;这条终端路径从未连接到它。

不能影响主机。 羡慕对象是该终端的每子映射 主机的 process.env 是永远不回写的,其他终端看不到它,没有吗 文件级环境(/etc/profile, ~/.zshrc,…)被修改。这个 rc垫片 解决了相反的问题:一个交互式shell源 你的 ~/.zshrc / ~/.bashrc 首先,然后是shim源环境文件和 强制路径 前缀回到前面 -⚠️“只在缺少的情况下添加”是不够的:一个常见的 export PATH="$HOME/xxx/bin:$PATH" 不删除前缀,而是将其推回, 和 node / pnpm 这是你的,而不是主人的 机)。前缀不会出现两次。

三条已知的边。 (1)包装器没有命名 bash/zsh,所以这个平台 活动探针(prepareShellActivity)不适用:它是永远不会被收获的 “72小时无人值守”的规定,只有闲置状态变得不精确。(2)包装时 是缺失的,下拉菜单会无声地丢失该条目(平台将“可执行的? Not found”作为跳过),所以 dshShell: false 或者一个失败的主机从来都不是一个错误。 (3)在Windows上不生成任何内容(包装器是POSIX sh脚本)。

配置 (这一行的 config:): dshShell (默认 true;关闭=否 生成,没有下拉入口), shell (空=探针) zsh → bash → sh), inheritShellRc (默认 true; false = zsh -f -i / bash --noprofile --norc -i(确定的,但没有你的完成和别名), env (额外的 变量;保留键被删除)和 pathExtra (额外的路径前缀dirs)。保持 它从下拉菜单中,添加一个 terminal-controller 中具有相同id的行 概要文件的 cordis.patch.yml 恢复平台默认值。

  • 版本和更新(实际上是升级):主机半暴露a dshDevtoolsUpdate 远程服务(status / check / upgrade)。 默认情况下运行自动检查 (打开,如果它从未检查过或最后一次检查是 6小时以上);面板上没有开关。一个规则: 是NPM吗? 注册表最新比安装的新? -一个动作: pnpm add @zhangzhian/dsh-devtools@<version> --config.minimum-release-age=0 在简介中, 然后 读取已安装的版本;只有一个匹配计数(见顶部) src/update-service.ts). 一个 link: Install遵循相同的规则并安装 NPM也发布了,但有一点需要注意(升级取代了 link: 依赖与 已发布的包)。这里的每个包共享一个版本,所以是它自己的 package.json 等于集合包。故障时,面板显示 失败的步骤的 原始输出.

交互和可访问性。 控制台的插件菜单是一组 按钮 (整张卡片可点击,带有悬停/焦点反馈);下钻页面 是一个 role="region" 与一个 aria-label. 它是 不再 一个 role="tablist": 屏幕是相互排斥的,点击卡片是导航,所以是TAB 语义将宣布不在屏幕上的控件(参见 src/client/index.tsx). 专注遵循这条路线:向内钻入将焦点移至 新的一页,返回时把它放回原来的卡上;只有 参观了 页面停留 安装(点火电极)。

导航图标是如何到达那里的。 平台按节对导航图标进行硬编码 Id和回落到一个齿轮为未知Id,而 settings.section 只接受 id / order / label -没有图标槽位。所以这个包永远不会接触到平台 UI:它用 data-dsh-devtools-nav,通过CSS和隐藏平台SVG 将它的图标绘制成 ::before 加上一个CSS蒙版(形状从 IconApiOutlineMedium, 颜色骑行文本的颜色)。如果平台增长一个图标槽,这个块 可以删除。

要求

  • 近年来 0.2.0-rc.2 或更新。
  • 什么都没有。如果没有贡献者,控制台将显示其空状态。
  • “dsh管理终端”需要POSIX系统(macOS / Linux)和配置文件 与终端控制器(网页形状)。它修补了 terminal-controller 穿过bundle补丁,所以这个bundle必须出现 后 @deepseek-ai/dsh-web-app ——就像 dsh plugin add 附加它。

版本与发布记录

@zhangzhian/dsh-devtools-settings 共发布 6 个版本,首次发布于 2026/10/20;过去 12 个月发布了 6 个版本。

版本发布日期距今
0.3.1latest2026/11/03今天
0.3.02026/11/011 天前
0.2.22026/10/2113 天前
0.2.12026/10/2014 天前
0.2.02026/10/2014 天前
0.0.0-stage2026/10/2014 天前

关于 @zhangzhian/dsh-devtools-settings 的常见问题

@zhangzhian/dsh-devtools-settings 是什么?

dsh-devtools 的设置外壳:设置左栏的一条「开发工具」导航项 = 控制台首页(介绍 + 版本与更新 + 功能插件卡片)+ 点卡片下钻到各插件设置页(正文由组件包注册进 devtools.settings.tab)

如何安装 @zhangzhian/dsh-devtools-settings?

在项目目录运行 npm install @zhangzhian/dsh-devtools-settings,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@deepseek-ai/cordis(~4.0.4)、@deepseek-ai/schemastery(~3.18.4)、@deepseek-ai/dsh-client-locale(^0.2.0-rc.2)、@deepseek-ai/dsh-client-ui-slots(^0.2.0-rc.2)、@deepseek-ai/dsh-typert-protocol(^0.2.0-rc.2)、@deepseek-ai/dsh-client-ui-renderer(^0.2.0-rc.2)、@deepseek-ai/dsh-client-ui-settings(^0.2.0-rc.2)、@deepseek-ai/dsh-client-ui-primitives(^0.2.0-rc.2)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@zhangzhian/dsh-devtools-settings 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@zhangzhian/dsh-devtools-settings 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@zhangzhian/dsh-devtools-settings 可以商用吗?

@zhangzhian/dsh-devtools-settings 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@zhangzhian/dsh-devtools-settings 还在维护吗?

最新版本 0.3.1 发布于 2026/11/03(今天);至今共发布 6 个版本,其中过去 12 个月发布了 6 个;首次发布于 2026/10/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。