@xia-sc/dsh-cc-studio 0.3.6 → 0.3.7
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/README.md +4 -3
- package/lib/index.js +8 -3
- package/package.json +1 -1
- package/presets/cc/agent.cordis.yml +8 -0
- package/presets/cc/preset.yml +1 -1
- package/presets/cc.patch.yml +12 -1
package/README.md
CHANGED
|
@@ -15,8 +15,8 @@ DSH(DeepSeek Harness)插件:输入框上方的胶囊 → 全屏融合工
|
|
|
15
15
|
| 项目 | 值 |
|
|
16
16
|
| --- | --- |
|
|
17
17
|
| 插件包名 | `@xia-sc/dsh-cc-studio` |
|
|
18
|
-
| 当前版本 | `0.3.
|
|
19
|
-
| 宿主 RPC | `/dsh-cc-studio-rpc`(自带路由,适配 dsh ≥ `0.1.5-rc.1`;已在 `0.1.6-alpha.2` / `0.1.7-alpha.1` 实测) |
|
|
18
|
+
| 当前版本 | `0.3.7` |
|
|
19
|
+
| 宿主 RPC | `/dsh-cc-studio-rpc`(自带路由,适配 dsh ≥ `0.1.5-rc.1`;已在 `0.1.6-alpha.2` / `0.1.7-alpha.1` / `0.1.7-rc.1` 实测) |
|
|
20
20
|
| CC 预设 | `presets/cc.patch.yml`(dsh ≥ `0.1.7-alpha.1`,组合声明行)/`<DSH_HOME>/.agent-presets/cc`(≤ `0.1.6-alpha.2`,目录形态) |
|
|
21
21
|
| 客户端挂载点 | `conversation.input.dock`(胶囊)+ `shell.overlay`(工坊)+ `settings.section` |
|
|
22
22
|
| 落盘位置 | `<DSH_HOME>/cc-library/`(角色卡)、`<DSH_HOME>/cc-drafts/`(会话草稿);`DSH_HOME` 默认 `~/.dsh`。0.3.6 起认 `DSH_HOME`,旧的 `~/.dsh` 位置**仍然读得到**(读时回退) |
|
|
@@ -29,7 +29,7 @@ DSH(DeepSeek Harness)插件:输入框上方的胶囊 → 全屏融合工
|
|
|
29
29
|
dsh plugin --profile web add @xia-sc/dsh-cc-studio
|
|
30
30
|
|
|
31
31
|
# 锁定版本
|
|
32
|
-
dsh plugin --profile web add @xia-sc/dsh-cc-studio@0.3.
|
|
32
|
+
dsh plugin --profile web add @xia-sc/dsh-cc-studio@0.3.7
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
**或从 GitHub 源安装**:
|
|
@@ -306,6 +306,7 @@ node tests/rpc-channel.test.mjs # 只跑 host 半 RPC 通道回归(
|
|
|
306
306
|
|
|
307
307
|
完整历史见 [CHANGELOG.md](./CHANGELOG.md)。最近几版:
|
|
308
308
|
|
|
309
|
+
- `0.3.7` dsh `0.1.7-rc.1` 兼容性审计:**接口面无一处需要适配**(隔离宿主实测了 RPC 路由/线协议、预设 roster、三个前端挂载点、草稿槽 key、落盘根、PNG/CHARX 往返)。真正的修复是预设里**一行自始漏抄**:`command-goal` 在内置 `standard` 里从 `0.1.6-alpha.2` 起就有,本预设初次拷贝时就漏了它 —— 不报错、不判 broken,只是 CC 模式会话少了 `/goal` 斜杠命令(与 0.3.4 补回的 `present` 同类),现已两份载体同步补齐并加了**行集快照**守卫。另更正 3 处会误导下次升级的文档口径(「异步迭代 `IncomingMessage` 必抛」实测不成立且官方 `/api` 桥自己就在用;`/api/agentPresets/list` 其实带可选 `name`/`description`/`broken`;channel/endpoint 命名正则在 `dsh-client-connection` 而非 `webServer.register`),并给「客户端 `preset.ccLabel` 必须逐字等于宿主预设显示名」这条隐性耦合补了跨文件守卫。顺带精简了 roster 下拉里「CC 模式」的介绍文案:原来把模型侧的 6 个工具名(`cc_get_card` / `cc_patch_character` / …)全列在用户界面上,既撑满下拉项又对用户没有信息量(工具名只对读 persona 的模型有意义),现在只讲「模型先问再填 / 胶囊实时同步 / 工坊全屏编辑 / 导出 JSON、PNG、CHARX」。测试 278 → 281 项。
|
|
309
310
|
- `0.3.6` 修 dsh `0.1.7-alpha.1` 上「`CC 模式` 预设消失」+ 落盘根统一。① 预设:那一版起 dsh 的预设只来自组合里的**声明行**,`<DSH_HOME>/.agent-presets/` 已无人读取(目录还在、只是没人看),插件改为随包带一层补丁 `presets/cc.patch.yml`(与内置 `standard` 同构的 `@deepseek-ai/dsh-agent-preset` 声明),新版上不再写任何文件,目录安装只为 ≤ `0.1.6-alpha.2` 保留并在新版自动让位。② 草稿与角色库:以前写死 `~/.dsh`、不认 `DSH_HOME`(自定义 `DSH_HOME` 的用户两套根并存,隔离实测还会写进真实 `~/.dsh`),现在改为 **`DSH_HOME` 优先 + 读时回退 `~/.dsh`**,未设置时路径与以前完全一致。测试 216 → 278 项。
|
|
310
311
|
- `0.3.5` 修 #5「前端与 Tools 读到不同草稿槽」:`useCcPreset` 读的 `useSessions().current` 字段在 dsh `0.1.6-alpha.2` 的 `SessionListState` 里并不存在(恒为 `null`),加上启动时那次无 key 的拉取占掉了全局节流,前端一直用 `default` 槽 —— 而模型经 Tools 写的是 `session-<会话id>` 槽,于是「模型说写好了 / 工坊说没数据」。现在会话 id 只从 slot props 取并发布到 store、拉草稿没有会话 id 就一次都不发、节流按 key、主机回传 key 不一致时不渲染而是告警;另修胶囊闪退(根域实例每秒钟把会话域实例判定的 CC 状态清掉)并新增 `cc_migrateDraft` 与「迁入本会话槽」一键救回。测试 158 → 216 项(新增行为级 `tests/draft-slot-sync.test.mjs`)。
|
|
311
312
|
- `0.3.4` 适配 dsh `0.1.6-alpha.2` 并补回两处预设漏抄:CC 预设缺 `present` 行(CC 模式下模型没有「登记交付物」的工具,且不报错)、`tool-subagent` 行缺 `modelSelectionSettings: true`(子代理的指定模型入口被静默关掉);顺带补上 alpha.2 新增的 `tool-plugin-manager` 行(`disabled`,与内置 `standard` 对齐到只剩有意的行差)。新增 7 项预设行契约守卫。
|
package/lib/index.js
CHANGED
|
@@ -632,9 +632,14 @@ function endpointFromPath(pathname){
|
|
|
632
632
|
}
|
|
633
633
|
return rest;
|
|
634
634
|
}
|
|
635
|
-
// 用经典 data/end/error
|
|
636
|
-
//
|
|
637
|
-
//
|
|
635
|
+
// 用经典 data/end/error 事件读取请求体:事件形式是各版本都稳定的路径,也方便在这里
|
|
636
|
+
// 统一加体积上限与 aborted 兜底(见 readBoundedBody)。
|
|
637
|
+
//
|
|
638
|
+
// 0.3.7 更正:这段注释以前写的是「IncomingMessage 的异步迭代在本运行时会抛错,连
|
|
639
|
+
// client-connection 自带的 /api 帧也因此拿不到 body」—— 在 dsh 0.1.7-rc.1 + Node v26.9.0
|
|
640
|
+
// 上实测**不成立**:`for await (const chunk of req)` 正常返回,而且 client-connection 的
|
|
641
|
+
// /api 桥自己就在用异步迭代(dsh-client-connection lib/index.js:58)。所以「必抛」不再是
|
|
642
|
+
// 选事件式的理由;保留事件式只是因为改它没有任何收益。
|
|
638
643
|
function readBoundedBody(req, maxBytes){
|
|
639
644
|
return new Promise((resolve)=>{
|
|
640
645
|
const chunks=[]; let size=0; let settled=false;
|
package/package.json
CHANGED
|
@@ -100,6 +100,14 @@
|
|
|
100
100
|
name: '@deepseek-ai/dsh-tool-skill'
|
|
101
101
|
disabled: true
|
|
102
102
|
|
|
103
|
+
# 0.3.7 补回:内置 `standard` 自 0.1.6-alpha.2 起就带这一行,本预设初次拷贝时整行漏掉了
|
|
104
|
+
# (与 0.3.4 补回的 `present` 同类:不报错、不判 broken,只是少了能力)。
|
|
105
|
+
# 它与下面 `tool-goal` 不是一回事:这行给的是**人**用的 `/goal` 斜杠命令,`tool-goal`
|
|
106
|
+
# 才是给模型的工具。下面「goals」段那条注释说的「`/goal` command 留在宿主面」指的是命令
|
|
107
|
+
# 背后的 goal SERVICE,不是这个声明行 —— 别据此再把它删掉。
|
|
108
|
+
- id: command-goal
|
|
109
|
+
name: '@deepseek-ai/dsh-command-goal'
|
|
110
|
+
|
|
103
111
|
# ── goals ───────────────────────────────────────────────────────────────────
|
|
104
112
|
|
|
105
113
|
# Only the model-facing tool. The goal SERVICE, its session driver, and the
|
package/presets/cc/preset.yml
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
name: CC 模式
|
|
2
|
-
description: CCv3 角色卡工坊 —
|
|
2
|
+
description: CCv3 角色卡工坊 — 用对话把点子补成完整的角色卡(chara_card_v3):模型先问再填,胶囊实时同步,工坊全屏编辑,导出 JSON / PNG / CHARX。
|
package/presets/cc.patch.yml
CHANGED
|
@@ -26,7 +26,10 @@
|
|
|
26
26
|
# CC_PRESET_ID 与宿主 isCcPreset() 都按 'cc' 精确比较,改名会让两边同时失联。
|
|
27
27
|
id: cc
|
|
28
28
|
name: CC 模式
|
|
29
|
-
|
|
29
|
+
# 这段是 roster 下拉里显示给用户的介绍(与目录模板 preset.yml 的 description 逐字一致,
|
|
30
|
+
# 有测试钉住)。别再往里塞 Tool 清单 —— 模型侧的工作流已经写在 persona 里,
|
|
31
|
+
# 这里列一串工具名只会把下拉框撑满、对用户没有信息量。
|
|
32
|
+
description: CCv3 角色卡工坊 — 用对话把点子补成完整的角色卡(chara_card_v3):模型先问再填,胶囊实时同步,工坊全屏编辑,导出 JSON / PNG / CHARX。
|
|
30
33
|
# 排序只在 roster 里可见:内置四个是 1..4,CC 模式排在它们后面。
|
|
31
34
|
order: 50
|
|
32
35
|
plugins:
|
|
@@ -132,6 +135,14 @@
|
|
|
132
135
|
name: '@deepseek-ai/dsh-tool-skill'
|
|
133
136
|
disabled: true
|
|
134
137
|
|
|
138
|
+
# 0.3.7 补回:内置 `standard` 自 0.1.6-alpha.2 起就带这一行,本预设初次拷贝时整行漏掉了
|
|
139
|
+
# (与 0.3.4 补回的 `present` 同类:不报错、不判 broken,只是少了能力)。
|
|
140
|
+
# 它与下面 `tool-goal` 不是一回事:这行给的是**人**用的 `/goal` 斜杠命令,`tool-goal`
|
|
141
|
+
# 才是给模型的工具。下面「goals」段那条注释说的「`/goal` command 留在宿主面」指的是命令
|
|
142
|
+
# 背后的 goal SERVICE,不是这个声明行 —— 别据此再把它删掉。
|
|
143
|
+
- id: command-goal
|
|
144
|
+
name: '@deepseek-ai/dsh-command-goal'
|
|
145
|
+
|
|
135
146
|
# ── goals ───────────────────────────────────────────────────────────────────
|
|
136
147
|
|
|
137
148
|
# Only the model-facing tool. The goal SERVICE, its session driver, and the
|