dsh-ikun-pet

August 15, 2026 · View on GitHub

DSH 每次回答问题的 Deep diving 期间,插件在「Deep diving...」状态行下方的整行区块渲染:

  • 坤宠动图(assets/spritesheet.webp,沿进度条行走)
  • 进度条:0% → 100%
  • 每 20% 切换一档:动图动作与文案同步变化

档位 → 动作 → 文案

进度区间动图动作(精灵图行)文案
0% – 20%waiting(第 6 行 · 期待)深潜启动!准备出发…
20% – 40%runRight(第 1 行 · 向右跑)正在收集线索…
40% – 60%working(第 7 行 · 专注干活)埋头苦干中…
60% – 80%review(第 8 行 · 思考审阅)认真思考中…
80% – 100%wave(第 3 行 · 挥手)快好啦!马上见结果~
100%(完成)jump(第 4 行 · 跳跃庆祝)完成啦!你干嘛~哎哟

进度策略(v1.2 · 通用自适应模型)

DSH 的回合没有真实百分比总量,插件采用分层估算,真实信号优先、时间模型兜底:

信号说明
锚点回合开始 / 结束0% 与 100% 永远真实,100% 只在真正完成那一刻出现
真实进度goal 回合进度目标模式开启时,按 已进行回合数 / 目标回合上限 直接给出真实百分比(Host RPC 每 2s 同步)
自适应预期本会话历史回合时长取最近 8 个回合时长的中位数作为预期时长(自校准:短任务快跑、长任务慢跑),无历史时默认 45s
活动调速工具调用 / 流式输出 / 等待工具执行 ×1.8、流式输出 ×1.2、等待用户审批/回答 ×0.05(诚实减速,不会在你阅读时涨满)
收缩保留量完成保留量封顶从 88% 起,跑得越久越接近 98%,永不假 100%、也永不卡死

进度计算(每个 200ms 刻度):

$ \text{timeP} = 100 \times (1 − \text{e}^(−\text{workTime} / \text{tau})) # \text{tau} = \text{expected} / 3 \text{workTime} += \text{dt} \times \text{pace} # \text{pace} 随活动信号变化 \text{goalP} = \text{roundsStarted} / \text{maxGoalRounds} \times 100 # 真实信号 \text{reserve} = \text{max}(2, 12 \times \text{e}^(−\text{elapsed} / (2 \times \text{expected}))) \text{progress} = \text{min}(100 − \text{reserve}, \text{max}(\text{timeP}, \text{goalP})) # 单调不减 $

  • 完成后停留 1.8s 播放跳跃庆祝动画(进度条变成功色),随后整块退场
  • 完成瞬间由宿主进程用系统命令播放 assets/voice.mp3(「你干嘛~哎哟」), 与浏览器静音无关;可用 CONFIG.playVoiceAtDone / playCommand 开关或更换播放器

全部模型参数集中在 src/client.jsMODEL 常量中,可直接修改。