dsh-web-speech-input
leozou320-ai
Voice-to-text for the DeepSeek Harness Web UI — live, editable, never auto-sends. | DeepSeek Harness 网页语音输入
PROJECT TOPICS
PROJECT README
A 股自选股实时行情盯盘插件:在 DeepSeek Harness(DSH)Web 界面的右上角显示一个可折叠弹窗,实时监控自选股行情、切换分组、查看分时与 K 线、设置买卖目标价。
数据源与原终端 CLI 项目 stocking 同源(腾讯财经),配色沿用 A 股红涨绿跌惯例。
已发布到 npm,一条命令安装到你的 web profile:
dsh plugin --profile web add dsh-stock-watch
dsh plugin --profile web add file:D:\projects\github\dsh-stock-watchdsh plugin --profile web add github:Awu12277/dsh-stock-watchdsh web 生效;卸载:dsh plugin --profile web remove dsh-stock-watch安装完成后,刷新页面,右上角出现「📈 自选股」药丸。
| 折叠药丸(右上角实时涨跌家数) | 暗色列表(分组 + 分时迷你折线 + 目标价触发) |
|---|---|
![]() |
![]() |
| 暗色·分时(价格线 / 均价线 / 昨收基准) | 暗色·日 K(TradingView Lightweight Charts) |
|---|---|
![]() |
![]() |
| 浅色主题 |
|---|
![]() |
3↑0↓),点击仍可展开面板localStorage(首次自动从 ~/.stocking/settings.json 迁移)+ / − / 重置 按钮缩放 K 线(位于 MA 均线配置左侧),基于 TradingView Lightweight Charts(CDN 懒加载,失败自动降级为自绘 SVG)分析{公司名}(代码),由会话中的 agent 自动使用 investment-research 完成投资研究、frontend-design 生成介绍网站(技能指令由 host 端条件式系统提示注入,仅对「分析某家上市公司」类请求生效);按钮带防抖(进行中禁用,防连点重复建会话)investment-research、frontend-design 两个技能复制到用户技能目录 ~/.agents/skills/(已存在则跳过、不覆盖用户版本;DSH_STOCK_WATCH_NO_SKILLS=1 可禁用,DSH_STOCK_WATCH_SKILLS_DIR 可改目标目录)┌─────────────── Web 浏览器 ───────────────┐
│ client.js(客户端插件模块) │
│ · shell.overlay 槽位 → 右上角弹窗 │
│ · React + Lightweight Charts + SVG 降级 │
│ · 配置存 localStorage(stocking.config.v1)│
│ │ fetch(同源 /dsh-stock-watch/*)│
└──────────┼────────────────────────────────┘
▼
┌─────────────── DSH Host(index.js)───────┐
│ cordis 插件:webServer 注册 5 个路由 │
│ · /config 读取 ~/.stocking/settings.json│
│ · /stocks 全 A 股搜索(本地池检索) │
│ · /quotes 实时行情(腾讯分钟接口) │
│ · /kline 日/周/月 K 线(fqkline) │
│ · /minute 分时详情(分钟点 + 昨收) │
└───────────────────────────────────────────┘
https://web.ifzq.gtimg.cn/appstock/app/minute/query?code={code}&r=0.1https://web.ifzq.gtimg.cn/appstock/app/fqkline/get?param={code},{period},,,{count},qfq解析逻辑(字段索引、K 线 [date, open, close, high, low, volume] 列序、昨收由 现价/(1+涨跌幅%) 反推)与 stocking 的 market.ts 保持一致。Host 端使用 Node 原生 fetch 直连(部署即使未挂载 web fetch provider 或沙箱封锁网络,本插件也不受影响)。
dsh-stock-watch/
├── index.js # node 端 cordis 插件(webServer 路由 + 技能注入 + 系统提示指令)
├── client.js # 浏览器端客户端模块(__ModuleLoader__ + shell.overlay 槽位)
├── cordis.patch.yml # 组合补丁:插入 host 插件行(dsh.bundle.patch)
├── package.json # dsh.bundle + dsh.client 声明
├── data/ # 全 A 股股票池(a_stocks.json,5549 只)
├── skills/ # 随包技能(investment-research / frontend-design,启动时注入用户技能目录)
├── scripts/ # 本地测试脚本(smoke / probe / skills 注入验证)
├── screenshots/ # 运行截图
└── README.md
dsh plugin add 即 profile 目录内的 pnpm add:安装后按 package.json 的 dsh.bundle.patch 自动并入 profile 层栈,dsh.client 声明自动挂载浏览器端模块。
| 状态 | 操作 |
|---|---|
| 药丸 | 点击展开 · 按住拖动(拖到屏幕边缘自动吸附为半球,显示涨/跌家数) |
| 列表 | 分组 tab 切换 · 点击行进详情 · ⟳ 手动刷新 · — 折叠 · ☀️/🌙 切主题 |
| 详情 | ← 返回 · 分时 / 日K / 周K / 月K 切换 · 📈 投资研究报告(新建对话一键分析)· 点击买入/卖出目标编辑 · K线 +/−/重置 缩放 |
localStorage(key:stocking.config.v1)~/.stocking/settings.json 一次性迁移(失败则用默认分组),之后 localStorage 为唯一数据源localStorage.removeItem('stocking.config.v1') 后刷新页面MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。