dsh-superinput 0.0.0-stage → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +140 -0
- package/README.md +38 -2
- package/client.js +5292 -0
- package/cordis.patch.yml +6 -0
- package/index.js +34 -0
- package/modules/cost.js +1346 -0
- package/modules/enhancer.js +726 -0
- package/modules/followup.js +718 -0
- package/modules/hub.client.js +218 -0
- package/modules/hub.js +78 -0
- package/modules/picker.js +133 -0
- package/modules/prompts.client.js +698 -0
- package/modules/prompts.js +305 -0
- package/modules/voice.js +17 -0
- package/package.json +61 -4
- package/scripts/build-suite.mjs +315 -0
- package/scripts/smoke.mjs +121 -0
- package/server.js +3428 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
|
|
4
|
+
|
|
5
|
+
## [0.7.0] - 2026-11-02
|
|
6
|
+
|
|
7
|
+
### 发布工程(补 0.6.0 之后未归档的提交)
|
|
8
|
+
|
|
9
|
+
- `files` 白名单补入 `server.js`——此前 `index.js` 动态 import 的核心文件
|
|
10
|
+
不在 npm 产物里,发布出去必然加载失败。
|
|
11
|
+
- `modules` 改为 `modules/*.js`,新增 `.npmignore` 排除 `.mimosa` 工具状态与
|
|
12
|
+
日志、tarball;清掉 `modules/.mimosa` 本地残留。
|
|
13
|
+
- 移除 `files` 中并不存在的 `README.en.md`;描述从「八个模块 / 片段管理器」
|
|
14
|
+
校正为当前七模块。
|
|
15
|
+
- 新增 `build` / `check` / `test` npm scripts,发布前可直接跑生成器、语法
|
|
16
|
+
检查与冒烟测试。
|
|
17
|
+
|
|
18
|
+
### prompts 划选菜单增强
|
|
19
|
+
|
|
20
|
+
- 选区浮层改为横排三动作:**复制**、**添加到对话**(追加进输入框草稿)、
|
|
21
|
+
**存为模板**;左缘对齐选区,右侧防溢出。
|
|
22
|
+
- 文档级单例 host + 安装守卫:宿主重挂载导致 apply 重跑时不再叠加多个浮层。
|
|
23
|
+
|
|
24
|
+
## [0.6.0] - 2026-11-01
|
|
25
|
+
|
|
26
|
+
### 吸收上游三件新功能(市场对标项)
|
|
27
|
+
|
|
28
|
+
- enhancer 0.3.0:✨ 面板新增「参考会话上下文」开关——增强时把最近一轮
|
|
29
|
+
对话拼进改写参考,消解指代、贴合当前讨论(对标市场 dsh-prompt-rewriter
|
|
30
|
+
205★ 的关键差异点)。
|
|
31
|
+
- cost 0.9.0:费用弹卡顶部新增「官方余额」行(选配 DeepSeek 开放平台
|
|
32
|
+
apiKey,10 分钟缓存;调用明细弹窗已有)。
|
|
33
|
+
- picker 0.12.5:模型行相对价格 ×N 标记(上一版已并入,本版无新变更)。
|
|
34
|
+
- 同批配套:dsh-compaction-control 0.3.0 压缩前自动落档(套件外独立插件)。
|
|
35
|
+
|
|
36
|
+
## [0.5.0] - 2026-11-01
|
|
37
|
+
|
|
38
|
+
### 移除消息目录与会话导出(用户裁定)
|
|
39
|
+
|
|
40
|
+
- **outline(消息目录)与 exporter(会话导出 Markdown)整体移除**——上线
|
|
41
|
+
不到半天被用户判定不需要。套件回到七模块:cost / picker / enhancer /
|
|
42
|
+
followup / voice / prompts / hub。
|
|
43
|
+
- 多帧 zstd 会话日志直读与 /diag 通道经验保留在案(followup 与 prompts)。
|
|
44
|
+
|
|
45
|
+
## [0.4.0] - 2026-11-01
|
|
46
|
+
|
|
47
|
+
### 新增三模块 + 两处既有模块增强;移除草稿与片段(用户裁定)
|
|
48
|
+
|
|
49
|
+
- **outline(消息目录)**:状态行「目录」按钮 → 按用户消息列大纲(/outline
|
|
50
|
+
端点直读会话日志),点击 TreeWalker 定位正文滚动跳转。
|
|
51
|
+
- **exporter(会话导出)**:标题栏 ⬇ 按钮 → /markdown 端点把整会话(用户+
|
|
52
|
+
助手,连续助手快照去重)导出为 Markdown 下载;真机用真实会话日志验证
|
|
53
|
+
(outline 4 条 / md 6527 字节 / 下载头正确)。
|
|
54
|
+
- **prompts 划选存模板**:对话正文划选后浮「存为模板」(selectionchange
|
|
55
|
+
驱动,dblclick 选词后才成形),原生 DOM 渲染(React h() 产物过
|
|
56
|
+
replaceChildren 会被强转成 "[object Object]",真机踩过)。
|
|
57
|
+
- **cost 预算超限系统通知**:预算跨线 100% 时每周期弹一次系统通知(80%
|
|
58
|
+
只走既有 UI 变色)。
|
|
59
|
+
- **picker 模型行价格标记**:按 dsh-cost /prices 档价算相对当前模型的 ×N
|
|
60
|
+
倍数(>1 暖色),10 分钟缓存,取不到不显示。
|
|
61
|
+
- **移除 drafts(草稿快照/↑召回)与 snippets(片段管理器)**:用户裁定
|
|
62
|
+
没什么用。诊断通道从 snippets /diag 迁到 prompts /diag(落
|
|
63
|
+
superinput-debug.log);hub 总览同步移除片段区;既有 snippets.json
|
|
64
|
+
数据保留不再使用。
|
|
65
|
+
- 冒烟扩展:exporter 端点(缺参 400 / 未知会话 404)+ 九模块 apply。
|
|
66
|
+
|
|
67
|
+
## [0.3.4] - 2026-11-01
|
|
68
|
+
|
|
69
|
+
### 修复:/ 模板命令插入后草稿残留触发行(真机验证发现)
|
|
70
|
+
|
|
71
|
+
- 真机全链路验证(0.3.1 的 / 命令功能首次实机走查):注册 → 官方 / 菜单
|
|
72
|
+
「指令」组出现(label 中文可搜)→ 回车执行 → 模板入草稿,全部通过;
|
|
73
|
+
唯一毛刺是 action 执行时草稿里还留着刚敲的 `/e2e`,官方壳清 token 与
|
|
74
|
+
我们的 setDraft 时序竞争。修法:首行是无空格的 `/xxx` 就剥掉再接正文,
|
|
75
|
+
两种时序下都只留模板内容。同轮确认使用计数(2次)与 / 按钮激活态正常。
|
|
76
|
+
|
|
77
|
+
## [0.3.3] - 2026-11-01
|
|
78
|
+
|
|
79
|
+
### 修复:followup chips 流式回合不实时渲染(自 dsh-followup 0.3.4 再生成)
|
|
80
|
+
|
|
81
|
+
- turn-tail 组件的 `isLatestTurn` effect 把 `boxRef.current` 捕获进闭包,
|
|
82
|
+
流式重渲染重建回合尾容器后旧节点脱离 DOM,`contains` 恒 false——POST 与
|
|
83
|
+
渲染都被挡,刷新才恢复。check() 改为每次现读 ref(真机四轮 CUA 实测:
|
|
84
|
+
修复前两轮失败、修复后实时渲染 + 点 chip 填草稿全通过)。
|
|
85
|
+
- 客户端关键决策点 diag 落盘(snippets-debug.log 的 `followup:` 行)。
|
|
86
|
+
- 同轮真机验证:voice 模块叠加层在官方语音录音态正常出现/退出。
|
|
87
|
+
|
|
88
|
+
## [0.3.2] - 2026-11-01
|
|
89
|
+
|
|
90
|
+
### 修复:enhance /rewrite 请求期 "cannot get property \"llm\" without inject"
|
|
91
|
+
|
|
92
|
+
- **真机实锤(套件顶层 inject 授权不可靠的第二例)**:0.3.0 修复的
|
|
93
|
+
tools.register 报错是 apply 期同款问题;本版发现 0.3.1 起的运行期版本——
|
|
94
|
+
/rewrite 处理器把**外层 ctx** 传给 rewriteWithLlm,ctx.llm 在套件宿主里
|
|
95
|
+
抛 cannot get property "llm" without inject,✨ 点增强永远 502(之前客户端
|
|
96
|
+
出错只写 console,看起来就是「点了没反应」)。
|
|
97
|
+
- 修法(沿用 followup 模块的成熟模式):webServer 嵌套作用域改成
|
|
98
|
+
`ctx.inject(['webServer', 'llm'], ...)`、处理器改传 `webCtx`;工具 execute
|
|
99
|
+
改传所在 `['llm','tools']` 作用域;pre-step 路径在嵌套作用域里捕获
|
|
100
|
+
`llmRef`,未就绪时 fail-open 放行原文。上游 dsh-prompt-enhancer 0.2.9
|
|
101
|
+
同步修复(独立安装形态同样受益),客户端增强失败从静默 console 改为
|
|
102
|
+
按钮短暂红 ✕ + title 带原因,4 秒消退。
|
|
103
|
+
|
|
104
|
+
## [0.3.1] - 2026-11-01
|
|
105
|
+
|
|
106
|
+
### prompts 模板库:使用排序 / 导入导出 / 斜杠命令
|
|
107
|
+
|
|
108
|
+
- **最近使用排序**:点插入即计数(`uses` / `usedAt`),面板收藏组与全部组内
|
|
109
|
+
按「最近使用 → 创建时间」排序,标题旁显示使用次数。
|
|
110
|
+
- **JSON 导入导出**:面板头部 ↓/↑ 两个按钮;导出走浏览器下载落系统下载目录
|
|
111
|
+
(`dsh-prompts-YYYY-MM-DD.json`),导入弹系统文件选择框。服务端 `/import`
|
|
112
|
+
按 id 合并:同 id 冲突保留 `at`(更新时间)较新的一方,id 不在库中按原 id
|
|
113
|
+
收编(跨机重复导入可去重),空 body / 非法载荷拒绝,条目上限 5000。
|
|
114
|
+
- **注册为 / 斜杠命令**:模板行新增 `/` 切换按钮(opt-in,避免淹没官方菜单)。
|
|
115
|
+
标记的模板经官方 `ctx.commandUi.register` 注册为 action 命令(`tpl-<slug>`
|
|
116
|
+
前缀防撞宿主命令,标题即 label,/ 菜单按 label 模糊匹配中文可搜);执行时
|
|
117
|
+
经草稿桥插入,内置动态变量(日期/时间/星期)自动取值,手填变量保留 `{{名}}`
|
|
118
|
+
由用户行内改。同名冲突按官方约定 fail loud,这里 try/catch 留痕跳过;
|
|
119
|
+
标题修改/删除在面板刷新时注销重注册。
|
|
120
|
+
- **修复**:prompts 设置持久化引用了未导入的 `dirname`,每次防抖写盘都抛
|
|
121
|
+
ReferenceError 被空 catch 吞掉——设置从来没落过盘。补导入后持久化恢复。
|
|
122
|
+
- **测试**:新增 `scripts/smoke.mjs`——桩服务逐模块 apply + prompts 端到端
|
|
123
|
+
18 项断言(含导入合并/冲突/非法载荷),自动备份并恢复真实存储,随时可跑。
|
|
124
|
+
|
|
125
|
+
## [0.1.0] - 2026-10-31
|
|
126
|
+
|
|
127
|
+
### 首个版本:六模块超级输入框套件
|
|
128
|
+
|
|
129
|
+
- 由 dsh-cost / dsh-power-picker / dsh-prompt-enhancer / dsh-followup /
|
|
130
|
+
dsh-siri-voice 机械搬迁 + 新模块 **snippets(片段管理器)** 组成:
|
|
131
|
+
自动捕获 dsh 窗口内复制(copy 事件,指纹去重、上限 200 条、收藏不限),
|
|
132
|
+
dock「片段」按钮弹官方样式面板(搜索 / 收藏 / 删除 / 点击追加到草稿)。
|
|
133
|
+
能力边界:宿主无系统剪贴板桥,只捕获 dsh 窗口内复制。
|
|
134
|
+
- 服务端:Config 嵌套命名空间(config.cost.* 等,默认值经 schemastery
|
|
135
|
+
嵌套解析验证);peer 注入并集 llm+tools;模块级 try/catch 隔离。
|
|
136
|
+
- 客户端:单 __ModuleLoader__ 入口 + 六工厂内联,factory/apply 双层隔离。
|
|
137
|
+
- 生成器 `scripts/build-suite.mjs`:上游包更新后重跑即再生成(幂等),
|
|
138
|
+
自动补 inject 再导出与缺失 Config 的空 schema 兜底。
|
|
139
|
+
- 验证:全文件语法通过;宿主环境 import 通过;嵌套 Config 解析断言通过
|
|
140
|
+
(cost/followup/snippets/voice 默认值逐项核对)。
|
package/README.md
CHANGED
|
@@ -1,3 +1,39 @@
|
|
|
1
|
-
#
|
|
1
|
+
# dsh-superinput
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
dsh(DeepSeek Harness)**超级输入框套件**:一个插件,七个输入区模块,模块级失败隔离。
|
|
4
|
+
|
|
5
|
+
| 模块 | 功能 | 来源 |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| **cost** | 费用引擎:状态行费用 pill、官方用量旁的费用按钮+弹卡、月底预测、设置页统计/预算/导出、历史回填、官方价格同步、汇率自动刷新、预算超限系统通知 | 原 dsh-cost |
|
|
8
|
+
| **picker** | 模型选择器接管 + 推理强度滑条 + 模型行相对价格标记(×N) | 原 dsh-power-picker |
|
|
9
|
+
| **enhancer** | 提示词增强按钮:点一下把草稿增强成结构化提示词,悬浮调强度,支持发送时自动增强 | 原 dsh-prompt-enhancer |
|
|
10
|
+
| **followup** | 回合尾跟进建议 chips | 原 dsh-followup |
|
|
11
|
+
| **voice** | 语音输入 | 原 dsh-siri-voice |
|
|
12
|
+
| **prompts** | Prompt 模板库:手动保存常用模板,{{变量}} 占位符插入,内置 {{日期}}/{{时间}}/{{星期}}/{{剪贴板}} 动态变量;最近使用排序、JSON 导入导出、可 opt-in 注册为 / 斜杠命令;划选正文浮出「复制 / 添加到对话 / 存为模板」三动作菜单 | 新模块 |
|
|
13
|
+
| **hub** | 设置总览:各模块生效配置聚合展示 + 运行时调节 | 新模块 |
|
|
14
|
+
|
|
15
|
+
`dsh-compaction-control` 不在套件内(宿主配置补丁层 + /compact 命令桥,保持独立插件)。
|
|
16
|
+
片段管理器(snippets)0.4.0、草稿(drafts)/消息目录(outline)/会话导出(exporter)0.5.0 起
|
|
17
|
+
按用户决定移除;既有 snippets.json 数据保留在原处不再使用。
|
|
18
|
+
|
|
19
|
+
## 架构
|
|
20
|
+
|
|
21
|
+
- 服务端 `index.js` 聚合七个模块的 Config(嵌套命名空间 `config.cost.*` 等)并逐模块 try/catch 调用;peer 注入取并集(`llm`、`tools`)。
|
|
22
|
+
- 客户端 `client.js` 是单 `__ModuleLoader__` 入口:七个工厂内联(由 `scripts/build-suite.mjs` 从上游各包机械生成),factory 与 apply 双层 try/catch。
|
|
23
|
+
- 跨模块协作保持原机制:调用来源分账走 `globalThis.__dshPluginCall` 5s 窗口;各模块调试日志维持原路径(`~/.dsh/cost-debug.log` 等)。
|
|
24
|
+
|
|
25
|
+
## 安装
|
|
26
|
+
|
|
27
|
+
```powershell
|
|
28
|
+
dsh plugin --profile desktop add <本目录绝对路径>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
从五个独立插件迁移:先装套件、确认 bundles 里有 `dsh-superinput`、重启验证,再移除旧插件(避免同槽位双注册冲突)。装完完整重启 dsh。
|
|
32
|
+
|
|
33
|
+
## 上游更新
|
|
34
|
+
|
|
35
|
+
改了 `packages/dsh-*` 的源码后,在套件目录重跑 `node scripts/build-suite.mjs` 再生成 `modules/` 与 `client.js`(幂等)。
|
|
36
|
+
|
|
37
|
+
## License
|
|
38
|
+
|
|
39
|
+
MIT
|