deepseek-harness-desktop/packages/skins/trading

156Star5Fork6Issue0Watching

为 DSH Web 界面换上炒股终端外观:红涨绿跌标题栏、A/港/美/加密/外汇滚动跑马灯、市场时段状态栏,可联动 dsh-fun-ticker 自选股与 dsh-longbridge 港美股行情。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科

此插件是大仓库 ningbainb/deepseek-harness-desktop 的子包,星数与活跃度统计的是整个仓库。

语言
TypeScript
License
BSD-3-Clause
分支
main
ai-agentai-coding-assistantcodexdeepseekdeepseek-harnessdesktop-appdshdsh-plugin

安装

$ dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/skins/trading

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 ningbainb/deepseek-harness-desktop/packages/skins/trading:先查看仓库 https://github.com/ningbainb/deepseek-harness-desktop.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

交易终端皮肤为 DSH Web GUI 换上炒股终端外观:在页面顶部加入带 K 线图标的标题栏与实时行情快签,在中部跑 A 股 / 港股 / 美股 / 指数 / 加密 / 外汇滚动跑马灯,在底部展示市场时段、长桥指数、工作区计数和连接状态。它只动浏览器 DOM 和 CSS,不参与模型请求,适合想换外观、营造盯盘氛围的普通用户。

核心能力

  • 在页面顶部插入带白色蜡烛 SVG 图标的标题栏,标题钉为「交易终端 · DeepSeek 在线」,并配 –/□/× 三个桌面控件以及 3 个实时行情快签(红涨绿跌配色)
  • 在页面中部渲染滚动跑马灯:A 股 / 港股 / 美股 / 指数 / 加密 / 外汇的实时报价,两份相同内容用于无缝循环,滚动速度随条目数自适应
  • 在页面底部插入市场时段状态栏:A 股 / 港股 / 美股 的「盘中 / 午休 / 盘前 / 休市」状态、装 dsh-longbridge 时显示港美股指数快照(标签「长桥」),未装时回退到公共指数(标签「指数」)
  • 状态栏末尾展示工作区计数格(每 30 秒聚合一次 workspace.list)和「就绪 / 已连接 / 在线」连接状态格
  • 通过固定 data-dsh-trading body 属性的样式表调整浅色与深色两套交易终端色板,并注入品牌红 K 线 favicon
  • 客户端生命周期清理器在卸载时收回全部写入:body 属性、三个 chrome 栏、favicon、并在文档标题未被外部覆盖时一并恢复

技术实现

  • 语言: TypeScript + CSS Modules(lightningcss 编译进 bundle)
  • 关键依赖: @deepseek-ai/cordisctx.effect 生命周期)、@deepseek-ai/dsh-client-connection(客户端 RPC 句柄上的 workspace.list)、@deepseek-ai/cordislightningcss(样式编译)、tsdown(生成 bundle)、vitest(挂载/清理验证)
  • 架构模式: 通过 DSH bundle patch(cordis.patch.yml)将 ui-skin-trading 插入 Web 插件清单;host 侧 apply() 为空占位(运行在 host 进程,皮肤不参与宿主逻辑),浏览器侧 apply(ctx) 在 cordis fiber 生命周期内挂载 DOM/CSS 并注册 disposer;样式表随 bundle 的 CSS Modules 自动注入,由 loader 随条目移除
  • 入口文件: packages/skins/trading/src/index.ts(host 空入口,4 行);packages/skins/trading/src/client/index.ts(浏览器侧核心入口,370 行);packages/skins/trading/src/client/quotes.ts(505 行三级数据源与解析器);packages/skins/trading/src/client/session.ts(91 行市场时段纯函数);packages/skins/trading/src/client/refresh-scheduler.ts(66 行单定时器多节奏调度);packages/skins/trading/src/client/trading.module.css(692 行主题样式)

适用场景

对炒股氛围感兴趣、写代码也想盯盘的普通用户,在 DSH Web 界面切到「交易终端」皮肤后,标题栏与跑马灯会持续显示 A 股、港股、美股、加密和外汇的实时报价与红绿涨跌,状态栏展示三个市场的盘中状态、当前的工作区数与连接状态。皮肤完全不动模型调用链,适合只想把工作台换成交易终端观感、不改变对话体验的用户;同时也是 dsh-fun-tickerdsh-longbridge 两个数据插件的视觉载体,装上后会把跑马灯替换为用户的自选列表与真实的港美股指数。

前置依赖与兼容性

依赖最低版本说明
DSH未声明包内未声明 DSH 版本或 dsh.compatibility;通过 bundle patch (cordis.patch.yml) 接入客户端机制
Node.js`^22.19.0
平台跨平台package.json 将客户端标记为 platform: "web",未声明 oscpu 限制;接口数据在浏览器侧取,没有平台分支
原生模块无运行时原生模块依赖;DOM 变更、行情解析、时段计算全部在浏览器 TypeScript 完成

安装方式

dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/skins/trading

配置项

本插件无需额外配置。源码中未发现用户配置读取逻辑或 Schema 字段;皮肤启用由皮肤管理流程(dsh-skin use trading)负责,启用后由客户端生命周期自动管理 DOM/CSS 的挂载与清理。

常见问题

Q: 这个皮肤影响模型请求或对话吗?

A: 不会。包内明确说明它只改变浏览器 DOM 与 CSS,不组装或发送任何 provider 请求,也不订阅任何模型事件;皮肤对模型调用链零侵入。

Q: 跑马灯的报价数据从哪里来?必须装 fun-ticker 吗?

A: 不必须。皮肤内置三级数据源:装了 dsh-fun-ticker 时跑马灯直接跟随自选列表(走同源代理 /plugins/dsh-ticker/api,宿主端转 Binance / Frankfurter / eastmoney / Sina 源);装了 dsh-longbridge 时状态栏指数格走券商快照(loopback RPC /longbridge panel/snapshot);两个都没装时回退到公共端点,浏览器直接拉腾讯 qt.gtimg.cn(A/港/美股 script-tag)、Binance 24h ticker、Frankfurter ECB 汇率。任一层失败都会安全降级为 -- 单元格。

Q: 安装后界面没有变化怎么办?

A: 安装皮肤包不等于已经选中该皮肤。需要在仓库根目录运行 dsh-skin use trading 切换;同一时刻只启用一个皮肤,互斥由 profile 层 cordis.patch.ymldisabled: true 行负责,切换走 HMR 热重载,无需重启。

Q: 状态栏的指数是实时行情吗?

A: 装 dsh-longbridge 时是它的券商快照;未装时是公共指数,每 30 秒刷新一次;两个插件都没装、且公共端点不可达时,所有指数格回退到 --

Q: 「工作区 --」是正常的吗?

A: 正常。该格依赖客户端连接句柄上的 workspace.list RPC;连接句柄不可用或 RPC 失败时安全降级为 --,不影响其他单元格的渲染。

Q: 网络屏蔽公共行情站点时会怎么样?

A: 终端 chrome 仍然正常显示,跑马灯 / 状态栏 / 工作区格全部回退为 --。所有 fetch 路径都有 5-8 秒超时与 try/catch 保护,皮肤不会抛出错误,也不会让 dsh 主界面崩溃。

Q: 市场时段(盘中 / 午休 / 盘前 / 休市)准吗?

A: 准到星期与小时级别:A 股 09:30-11:30 与 13:00-15:00(午休 11:30-13:00),港股 09:30-12:00 与 13:00-16:00,美股 04:00-09:30 盘前 + 09:30-16:00 盘中。文档已明确交易所节假日仍按开市处理,是预期限制而非 bug。

Q: 关闭或切换皮肤后会留下页面痕迹吗?

A: 不会。客户端注册的生命周期清理器会移除 body 属性、标题栏、跑马灯、状态栏和 favicon;如果文档标题仍等于皮肤写入的字符串则恢复原标题,被会话标题覆盖时不会被一并回滚。测试覆盖了挂载、清理与「不清掉会话标题」三类场景。

上手难度

入门 — 装包加一条 dsh-skin use trading 即可生效,没有配置项和命令行参数;默认皮肤功能完整,唯一可选的高级操作是把跑马灯换成自选股(装 dsh-fun-ticker 并配置)或把指数换成券商快照(装 dsh-longbridge 并登录)。

已知问题与限制

  • 加载页保持原样:DSH 外壳的启动页先于插件 bundle 渲染,皮肤从定型后的 UI 开始生效
  • 主题切换在皮肤内部:皮肤在 data-ds-dark-theme 两种状态都钉住自己的调色板;切换 Appearance 得到的是亮/暗两套终端配色,而不是非皮肤外观
  • 市场时段仅按工作日与小时建模,交易所节假日仍显示为开市
  • 美股报价经腾讯源仅为纽交所 / 纳指常规时段口径,加密和外汇全天候显示
  • 默认自选列表(DEFAULT_TAPE)约 13 个条目,未装 dsh-fun-ticker 时跑马灯固定使用这组

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/ningbainb/deepseek-harness-desktop/packages/skins/trading)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录