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
DSH Web 可扩展回答状态宠物框架:宠物主题、多会话进度与模型执行轨迹。
dsh-answer-pet 是一个 DeepSeek Harness Web bundle 插件和可扩展回答状态宠物框架。核心负责会话进度、模型轨迹和状态卡;声明式 PetTheme v1 负责宠物 SVG、动画、宽高比和阶段文案。默认使用蓝鲸,也内置橘猫示例主题和高相似度银渐层猫主题。
PetTheme v1:宠物外观与回答进度核心解耦。| 主题 id | 名称 | 定位 |
|---|---|---|
blue-whale |
蓝鲸 | 默认主题,保持原有喷水、摆尾、眨眼和完成表情 |
orange-cat |
橘猫 | PetTheme v1 示例,包含摆尾、抬爪、说话和完成表情 |
silver-shaded-cat |
银渐层猫 | 去背景紧裁切原画 + 明显阶段动画:呼吸、眨眼、摇摆、说话、抬爪和完成跳跃 |
在配置中切换:
answer-pet:
theme: silver-shaded-cat # blue-whale / orange-cat / silver-shaded-cat
主题更新会在下一次配置刷新时挂载。未知主题会安全回退到 blue-whale。
希望开发自己的宠物,请查看 PetTheme v1 开发指南。当前版本只加载随插件构建、通过契约校验的可信内置主题,不执行第三方任意 JavaScript,也不注入未经清理的外部 SVG。
dsh plugin --profile web add github:Nanki-nn/dsh-answer-pet
安装后重启 dsh web,再刷新页面。升级插件时重复执行同一条安装命令即可。
模型轨迹和主题配置都由插件的 Node half 提供;从旧版本升级到
0.6.0后必须重启dsh web,仅刷新浏览器不会加载新的配置 schema。
| 阶段 | 主题接口 | 状态卡 |
|---|---|---|
| 空闲 | idle 动画与文案 |
不显示运行会话卡与数量 |
turn/start |
turn |
2% |
思考(step/start) |
think |
5% → 10% |
输出(assistant/chunk) |
stream |
10% → 90%,按 token 填充 |
工具(tool/call) |
tool |
冻结当前进度并显示工具名 |
完成(turn/end) |
done |
100% |
进度计算规则:
assistant/chunk 的 usage 数据;流式期间按文本长度估算。maxTokens 时按 outputTokens / maxTokens 填充。maxTokens 时使用饱和曲线估算,避免进度长期停滞。每个运行会话对应一张状态卡,包含:
多个会话同时运行时,卡片按会话独立更新并纵向排列。没有运行会话时不显示状态卡,也不显示数量按钮。
每张运行会话卡都会展示最近的模型动作,例如:
分析任务 · 步骤 1 1s
推理与规划 3s
调用 grep · SessionEvent 2s
组织回答 5s
轨迹状态通过时间线圆点区分:
可识别的轨迹包括:
tool/call / tool/result 工具调用及结果。run_code 内部的 tool/code-dispatch-start / tool/code-dispatch 嵌套工具调用。为避免轨迹区域过高,宿主最多保存最近 6 条,卡片显示最近 4 条。每个运行会话独立维护自己的轨迹。
工具轨迹始终显示实际工具名,例如 read、grep、pwsh、web_search。参数区域只从以下白名单字段提取简短摘要:
descriptionquerypatternfile_pathpathurl插件不会在轨迹面板中显示完整 Shell 命令、完整工具参数或原始 JSON;摘要会压缩空白并限制长度。
localStorage。在 <dshHome>/settings.yaml 的 answer-pet section 中配置:
answer-pet:
theme: blue-whale # blue-whale / orange-cat / silver-shaded-cat
size: 96 # 宠物高度 px(48–200)
corner: br # 停靠角:br / bl / tr / tl
opacity: 1 # 透明度(0.2–1)
pollMs: 800 # /state 轮询间隔
showBar: true # 显示会话进度卡
showBubble: true # 显示状态气泡
确认插件安装到了 Web profile:
dsh plugin --profile web add github:Nanki-nn/dsh-answer-pet
然后停止并重新启动当前的 dsh web 进程,再刷新原来的 Web GUI 页面。单独启动另一个 Web 服务不会更新当前页面。
轨迹依赖 Node half 监听 session/event。更新插件后必须重启 dsh web;仅刷新页面只能更新浏览器端样式,无法加载新的宿主逻辑。
确认 theme 是已安装的主题 id。当前内置 blue-whale、orange-cat 和 silver-shaded-cat;未知或无效 id 会回退到蓝鲸。升级后还需要重启 dsh web,让新的 settings schema 生效。
0这是预期行为。数量按钮只在状态卡已收起且至少有一个运行会话时显示;空闲时保持界面简洁。
在当前 DSH Web 页面打开浏览器开发者工具并执行:
localStorage.removeItem('answer-pet:pos')
location.reload()
如需同时恢复状态卡的展开状态:
localStorage.removeItem('answer-pet:bar')
location.reload()
多数模型接口不会报告“回答完成百分比”。插件根据阶段、token、maxTokens 和饱和曲线估算进度;真实 token usage 到达后会覆盖流式估算值。
.dsh-plugin/index.mjs:监听 session/event,按会话维护进度与 title/running 元数据,提供 /answer-pet/state、/answer-pet/events 和 /answer-pet/config。.dsh-plugin/src/progress.mjs:进度阶段机、token 填充和速率 EMA。.dsh-plugin/src/session-meta.mjs:从事件折叠会话标题和运行状态。.dsh-plugin/src/trace.mjs:折叠阶段与工具事件,生成有限长度、安全摘要的模型轨迹(宿主保留 6 条,客户端展示 4 条)。.dsh-plugin/client/themes/runtime.mjs:PetTheme v1 校验、注册、解析和蓝鲸回退。.dsh-plugin/client/themes/blue-whale.mjs:默认蓝鲸主题。.dsh-plugin/client/themes/orange-cat.mjs:橘猫示例主题和开发模板。.dsh-plugin/client/themes/silver-shaded-cat.mjs:去背景紧裁切原画与 SVG 状态动画覆盖层组成的银渐层猫主题。.dsh-plugin/client/index.mjs:主题无关的浏览器 DOM、状态卡、轨迹时间线和交互核心。.dsh-plugin/client.js:由构建脚本按运行时 → 主题 → 核心顺序生成的 DSH client bundle。docs/PET_THEME.md:主题契约、安全约束和开发流程。npm install
npm test
node scripts/build-client.mjs
node scripts/build-client.mjs --check
本地安装:
dsh plugin --profile web add "D:\AI\dsh\dsh-answer-pet"
客户端 bundle 修改后刷新页面生效;Node half 修改后需要重启 dsh web。
想报告问题、提交代码或新增宠物主题,请阅读 贡献指南。
MIT © Nanki-nn
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。