dsh-novel-write-engine 0.2.8 → 0.2.10
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 +31 -0
- package/README.md +26 -26
- package/briefs/P3.md +1 -0
- package/briefs/P4.md +1 -1
- package/briefs/P8.md +1 -1
- package/lib/client.js +1961 -120
- package/lib/index.d.ts +83 -8
- package/lib/index.js +1246 -225
- package/lib/types/client/dto.d.ts +12 -9
- package/lib/types/client/panel.d.ts +19 -1
- package/lib/types/client/viewmodel.d.ts +11 -4
- package/lib/types/constants.d.ts +2 -0
- package/lib/types/panel-contract.d.ts +2 -2
- package/lib/types/types.d.ts +18 -1
- package/package.json +8 -3
- package/presets/novel-write-engine.patch.yml +4 -0
- package/rulepacks/default.yaml +13 -5
- package/skills/entry.md +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,34 @@
|
|
|
1
|
+
## 0.2.10
|
|
2
|
+
|
|
3
|
+
0.2.10 是工作台呈现层版本,不新增或改变阶段、工具、操作、门控、语义项、导出、schema 或配置键。
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- **工作台布局**:七栏内容区改为全宽,顶栏、下一步卡与栏目导航重新编排;概览统计与图表置顶,全书资料收进可展开区域;人物、线索、设定、质量、健康改为带图标的卡片墙,线索与设定按组两栏排列;章节在桌面保留可筛选/排序/翻页台账,窄屏切换为双行章节卡。
|
|
8
|
+
- **概览图表**:新增最近 10 章评分趋势折线与最近 8 章字数柱状图,带 0/75/150 网格、点标题、峰值、章号、空态与 `role="img"` 可访问标签;窄屏自动改为上下堆叠。
|
|
9
|
+
- **响应式与视觉**:统一墨色/陶土强调色、细边框与卡片间距;桌面内容全宽,窄屏改为单列;浅色与深色主题分别检查。
|
|
10
|
+
- **版本**:`PANEL_VERSION` 从 0.2.9 升到 0.2.10,面板教程文案同步;面板协议 `payload_version` 保持 7。
|
|
11
|
+
|
|
12
|
+
### Tests
|
|
13
|
+
|
|
14
|
+
- 94 个测试文件 / 1003 项测试全绿;覆盖率 93.76 / 89.17 / 96.75 / 93.76,逐文件门禁通过;client 函数覆盖 86.04%,client bundle 209.95 KB(react-dom 外置)。
|
|
15
|
+
- 新增/更新的客户端测试覆盖卡片墙、概览图表空态/单点/多章、章节窄屏卡片、tab 全宽布局与图表可访问文本。
|
|
16
|
+
|
|
17
|
+
## 0.2.9
|
|
18
|
+
|
|
19
|
+
0.2.9 是可信工作台与工具契约版本,不新增阶段、工具、操作、门控、语义项或导出种类。
|
|
20
|
+
|
|
21
|
+
- **归档卡证据链**:归档时把受保护章卡字段(title/scene_type/target_words/cast/goal/conflict/hook/notes/archived_at)写入 `ChapterRecord.archive_card` 及 digest;`novel_amend` 优先用该证据,outline 不可读且无前像时 fail closed,不再从 candidate 伪造旧卡。`chapters.yaml` 不可读时同样拒绝新建/改写归档卡。
|
|
22
|
+
- **工具契约**:把 26 个自由 JSON 入参收敛为类型化 schema,只剩 `state_delta` 值、`new_element_anchors` 等真正动态映射;`summary`/review/check/archive/handoff/worldbook 定形;删除“JSON 字符串也可以”的模型提示;加入 2,000 字引号/换行压力用例和 32KB 参数预算。
|
|
23
|
+
- **面板 v7**:新增 overview/chapters/characters/foreshadows/timeline/relationships/worldbook/quality/health section,带 `{total,returned,truncated,next_cursor}` 与 ETag/304;bundle 与 section 都支持 304,bundle 连续 304 按 30s/60s 退避;`chapter_detail`/`quality_detail` 详情不套 400 字自由文本上限;section 缓存键纳入 journal identity;`listHistory` 默认不读正文,面板基础 section 不读归档 review;所有 section 有 64KB 字节上限。人物/线索/设定/质量/健康改为语义卡片,章节改为可筛选/排序/翻页、可懒加载详情的表格,不再裸出 section JSON。
|
|
24
|
+
- **面板可信度**:修复未定义 CSS 变量导致的空维度条/焦点环、教程复制不可键盘操作、轮询失败仍称自动同步、项目选择无法回到跟随当前项目;新增顶部七栏、跟随当前项目、同步失败提示、浅/深色 token、12px 最小字号、模态背景 inert、图表可访问数值、本地时间、草稿未评审不显示 0/150、章节计数分离、长 hash 换行。
|
|
25
|
+
- **读模型**:health.present 改为“文件存在且无 error”;无目标书 `progress.percent=null`、coverage 回退 card coverage;quality 维度带 max;`listHistory` 默认不读正文;`stats` 在 chapters 不可读时返回 `state_errors/partial`;配置根缺失显示 missing;`summary.quality.averageScore` 明确为全书均分并新增 `last_ten_average`。
|
|
26
|
+
- **规则包**:修复角色短名子串 (`甲`/`甲某`)、数值单位 `一米八`、资源符号/角色绑定/证据词;LOCKED_DETAIL_DRIFT 检查每个有描述段落、取最高覆盖,仅当全部低于阈值才报告并引用最佳段落;新增可选 `genres.*.profile`(period_density/water_words/pleasure_density,仅 advisory),doctor 显示规则包版本与 profile 数;compiler 默认 period_density 与规则包同步为 10。
|
|
27
|
+
- **大纲**:卷 upsert 支持稳定 id 改名,拒绝重复 id/title/区间;Markdown 导入不再把声明 1–3 章的卷悄悄扩到 9 章。
|
|
28
|
+
- **文档**:README、DESIGN、docs/tools、docs/states、docs/rulepack 与 0.2.9 验收记录同步;DSH 侧 malformed tool JSON 诊断包含工具名/参数片段,并把 `MALFORMED_RESPONSE` 纳入有限重试。
|
|
29
|
+
- **验证**:真实模型 P3 20 章跑通到 archive(P1/P2/P4/P6 为确定性夹具);第二轮以 `agnes-2.5-flash` 复跑都市/玄幻/西方奇幻三题材各 1 章完整 P1→archive;静态 Chromium 390/768/1440 浅/深色视觉检查;真实宿主临时 profile 空态 1440/390 截图;未做有项目态真实宿主、触屏真机与屏幕阅读器验收。
|
|
30
|
+
- 测试:94 个文件 / 1000 项通过;覆盖率 93.47 / 89.01 / 96.82 / 93.47,client 函数 85.59%,逐文件门禁通过;client 158.50 KB(react-dom 外置)。
|
|
31
|
+
|
|
1
32
|
# Changelog
|
|
2
33
|
|
|
3
34
|
## 0.2.8
|
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
[](https://www.npmjs.com/package/dsh-novel-write-engine)
|
|
11
11
|
[](https://github.com/ThzxxArt/dsh-novel-write-engine/actions/workflows/ci.yml)
|
|
12
12
|
[](https://github.com/ThzxxArt/dsh-novel-write-engine/releases)
|
|
13
|
+
[](https://github.com/ThzxxArt/dsh-novel-write-engine/releases/tag/v0.2.10)
|
|
13
14
|
[](#1-兼容性)
|
|
14
15
|
[](#1-兼容性)
|
|
15
16
|
[](LICENSE)
|
|
@@ -19,9 +20,9 @@
|
|
|
19
20
|
</div>
|
|
20
21
|
|
|
21
22
|
> [!IMPORTANT]
|
|
22
|
-
> 当前版本 **0.2.
|
|
23
|
+
> 当前版本 **0.2.10**。宿主范围:DSH `>=0.2.1-rc.2 <0.3.0-0`;Node `>=24.9.0`。
|
|
23
24
|
>
|
|
24
|
-
> 0.2.
|
|
25
|
+
> 0.2.10 是工作台体验版本:七栏内容区改为全宽,人物/线索/设定/质量/健康改为带图标的卡片墙,章节在窄屏切换为卡片;概览新增最近 10 章评分趋势与最近 8 章字数柱状图。没有新增或改变阶段、工具、操作、门控、语义项、导出、schema 或配置键。
|
|
25
26
|
|
|
26
27
|
---
|
|
27
28
|
|
|
@@ -203,7 +204,7 @@ pnpm --version # CLI 安装插件时需要
|
|
|
203
204
|
corepack enable
|
|
204
205
|
corepack prepare pnpm@11.28.9 --activate
|
|
205
206
|
|
|
206
|
-
dsh plugin --profile web add dsh-novel-write-engine@0.2.
|
|
207
|
+
dsh plugin --profile web add dsh-novel-write-engine@0.2.10
|
|
207
208
|
```
|
|
208
209
|
|
|
209
210
|
安装后重启 DSH,或刷新 Web 页面。
|
|
@@ -251,10 +252,10 @@ corepack pnpm build
|
|
|
251
252
|
corepack pnpm pack
|
|
252
253
|
```
|
|
253
254
|
|
|
254
|
-
得到 `dsh-novel-write-engine-0.2.
|
|
255
|
+
得到 `dsh-novel-write-engine-0.2.10.tgz`,复制到目标机器后:
|
|
255
256
|
|
|
256
257
|
```bash
|
|
257
|
-
dsh plugin --profile web add /absolute/path/to/dsh-novel-write-engine-0.2.
|
|
258
|
+
dsh plugin --profile web add /absolute/path/to/dsh-novel-write-engine-0.2.10.tgz
|
|
258
259
|
```
|
|
259
260
|
|
|
260
261
|
tarball 已包含 `lib/`、`rulepacks/`、`briefs/`、`skills/`、`presets/` 和两层 patch,不需要在目标机器重新构建。
|
|
@@ -266,7 +267,7 @@ tarball 已包含 `lib/`、`rulepacks/`、`briefs/`、`skills/`、`presets/` 和
|
|
|
266
267
|
|
|
267
268
|
1. 左侧栏进入 **插件**;
|
|
268
269
|
2. 点 **添加插件**;
|
|
269
|
-
3. 填 npm 包名 `dsh-novel-write-engine`(或精确版本 `dsh-novel-write-engine@0.2.
|
|
270
|
+
3. 填 npm 包名 `dsh-novel-write-engine`(或精确版本 `dsh-novel-write-engine@0.2.10`);
|
|
270
271
|
4. 安装后启用,刷新页面,新开会话。
|
|
271
272
|
|
|
272
273
|
插件页安装的是当前 profile 的依赖;Desktop 的插件页管理的是 `desktop` profile。
|
|
@@ -334,13 +335,14 @@ tarball 已包含 `lib/`、`rulepacks/`、`briefs/`、`skills/`、`presets/` 和
|
|
|
334
335
|
|
|
335
336
|
归档后打开左侧 **网文工坊**:
|
|
336
337
|
|
|
337
|
-
-
|
|
338
|
-
-
|
|
339
|
-
-
|
|
340
|
-
-
|
|
341
|
-
-
|
|
338
|
+
- 顶栏:书名、类型、平台、当前章边界(例如“第 1 章已归档 · 下一章第 2 章待开始”);
|
|
339
|
+
- 首屏“下一步”卡与“复制续写指令”;归档后显示下一章 P1,全书完成时隐藏复制按钮;
|
|
340
|
+
- 七栏导航:概览、章节、人物、线索、设定、质量、健康;内容区占满画布,不再被旧的左右栏比例挤在左侧;
|
|
341
|
+
- 概览:四项统计条 + 最近 10 章评分趋势折线 + 最近 8 章字数柱状图;下方是阶段轨、门控与全书/活动双栏,“全书资料”可展开蓝图、卷、世界观与质量摘要;
|
|
342
|
+
- 人物、线索、设定、质量、健康:带图标的卡片墙,卡片可展开详情;线索与设定按分组两栏排列;章节在桌面是可筛选、排序、翻页的台账,窄屏切换为章节卡;
|
|
343
|
+
- 超过 30 章只渲染最近 30 条,并显示总记录数。
|
|
342
344
|
|
|
343
|
-
|
|
345
|
+
面板按概览/章节/人物/线索/设定/质量/健康七栏读取;每栏有独立 section、窗口元数据和 64KB 字节上限,失败时显式显示同步错误。它**只读**,所有写操作仍在对话/工具里。
|
|
344
346
|
|
|
345
347
|
---
|
|
346
348
|
|
|
@@ -615,25 +617,25 @@ corepack pnpm test
|
|
|
615
617
|
|
|
616
618
|
- **运行在宿主进程里**:Host 半边在 DSH 进程内执行,不受工作区沙箱限制。安装本插件等于允许它在 DSH 进程权限下读写你给它的项目目录和 `stateDir`。
|
|
617
619
|
- **不向外联网**:Host 侧没有 `fetch`、HTTP 客户端或遥测;运行期依赖只有 `yaml`。它不读取环境变量里的 API Key,也不会把正文发到第三方服务。
|
|
618
|
-
- **面板只读**:`/api/novel-write-engine/panel` 只接受 `GET`/`HEAD`,复用 DSH connection 的认证与 Origin
|
|
620
|
+
- **面板只读**:`/api/novel-write-engine/panel` 只接受 `GET`/`HEAD`,复用 DSH connection 的认证与 Origin 校验;项目选择器只改后续请求的 query root 与浏览器 `localStorage`,不改浏览器地址栏。
|
|
619
621
|
- **安装来源**:优先从 npm 官方 registry 安装,并核对包名、发布者与版本;离线环境用自己构建的 tarball 并记录 SHA-256。不要从聊天记录里复制来路不明的 Git 地址并给 `allowBuilds` 授权。
|
|
620
622
|
|
|
621
623
|
---
|
|
622
624
|
|
|
623
625
|
## 升级与卸载
|
|
624
626
|
|
|
625
|
-
### 升级到 0.2.
|
|
627
|
+
### 升级到 0.2.10
|
|
626
628
|
|
|
627
|
-
0.2.
|
|
629
|
+
0.2.10 是面板呈现层更新,没有破坏性 schema 迁移、阶段/门控/导出或配置键变更;面板协议 `payload_version` 保持 7,`PANEL_VERSION` 从 0.2.9 升到 0.2.10。
|
|
628
630
|
|
|
629
631
|
```bash
|
|
630
632
|
dsh plugin --profile web remove dsh-novel-write-engine
|
|
631
|
-
dsh plugin --profile web add dsh-novel-write-engine@0.2.
|
|
633
|
+
dsh plugin --profile web add dsh-novel-write-engine@0.2.10
|
|
632
634
|
```
|
|
633
635
|
|
|
634
|
-
升级后刷新页面、新开会话。面板教程版本从 0.2.
|
|
636
|
+
升级后刷新页面、新开会话。面板教程版本从 0.2.9 升到 0.2.10;旧标签页显示“需要刷新”时刷新即可。
|
|
635
637
|
|
|
636
|
-
历史版本的升级说明见 [CHANGELOG.md](CHANGELOG.md)
|
|
638
|
+
历史版本的升级说明见 [CHANGELOG.md](CHANGELOG.md);更早版本使用对应发布 tag 或 Release 快照查看。
|
|
637
639
|
|
|
638
640
|
### 从源码目录升级
|
|
639
641
|
|
|
@@ -788,16 +790,15 @@ presets/ # 内置 Agent 预设 patch
|
|
|
788
790
|
tests/ # 单测、集成、falsify、e2e
|
|
789
791
|
```
|
|
790
792
|
|
|
791
|
-
### 本次 0.2.
|
|
793
|
+
### 本次 0.2.10 验证
|
|
792
794
|
|
|
793
|
-
|
|
795
|
+
以当前工作树实际跑出的结果为准:
|
|
794
796
|
|
|
795
|
-
- `corepack pnpm test`:**
|
|
796
|
-
- 覆盖率:**语句 93.
|
|
797
|
+
- `corepack pnpm test`:**94 个测试文件 / 1003 项全部通过**;
|
|
798
|
+
- 覆盖率:**语句 93.76% / 分支 89.17% / 函数 96.75% / 行 93.76%**;逐文件门禁通过;client 函数覆盖 86.04%;client bundle 209.95 KB(react-dom 外置);
|
|
797
799
|
- `typecheck`、`lint`、`build`:通过;
|
|
798
|
-
-
|
|
799
|
-
-
|
|
800
|
-
- 隐私守卫:`src / briefs / skills / presets / rulepacks / docs` 与根文档均无具体项目身份。
|
|
800
|
+
- 视觉:1440 静态 Chromium 与 390 CDP 视口检查;有项目态真实宿主、触屏真机与屏幕阅读器未验收;
|
|
801
|
+
- 0.2.10 未改引擎写路径;本轮没有重新跑真实模型。
|
|
801
802
|
|
|
802
803
|
具体数字会随代码变化;发布前请以重新跑出的结果为准,不要把历史数字当保证。
|
|
803
804
|
|
|
@@ -812,7 +813,6 @@ tests/ # 单测、集成、falsify、e2e
|
|
|
812
813
|
| [docs/tools.md](docs/tools.md) | 28 个工具与命令面速查 |
|
|
813
814
|
| [docs/states.md](docs/states.md) | 状态机、迁移表、轮次与回退 |
|
|
814
815
|
| [docs/rulepack.md](docs/rulepack.md) | 规则包结构、编译器断言、改词表流程 |
|
|
815
|
-
| [PLAN.md](PLAN.md) | 0.1.0 实施计划(历史) |
|
|
816
816
|
| [LICENSE](LICENSE) | MIT |
|
|
817
817
|
|
|
818
818
|
### 反馈
|
package/briefs/P3.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
- 字数 ≥ {{min_words}}(引擎口径:汉字 + 英文单词 + 数字 + 标点)。
|
|
8
8
|
- 单段 ≤ 90 字;段与段之间空一行。
|
|
9
9
|
- 对话只用英文直引号 `"`;**中文弯引号 `“ ”`、直角引号 `「 」` 都是 ILLEGAL_QUOTE blocker**;禁全角分号 `;`、禁 `...`。
|
|
10
|
+
- 提交时 `content` 是 JSON 字符串:段落换行写 `\n`,正文里的每个英文直引号写 `\"`;不要把整段内容再包一层 JSON。
|
|
10
11
|
- 不写 Markdown:禁 `#`、`**`、`---`、`>`、表格。
|
|
11
12
|
- 不写「Day 1」「第X卷」「读者」「作者」这类出戏标签。
|
|
12
13
|
|
package/briefs/P4.md
CHANGED
package/briefs/P8.md
CHANGED
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
- 第一人称的叙述者若在 `narrator` 里声明为 `主角(第一人称「我」)`,正文用「我」也视为出现,但角色键仍写 `主角`。
|
|
101
101
|
- 每个新实体写 `action: "created"`(正文出现、kind 可确定);已存在实体写 `updated` 或 `no_change`,引擎会按台账归一化冲突并给 warning。
|
|
102
102
|
- `world` 新实体还要写 `kind: "location"|"ability"|"artifact"|"faction"|"rule"` 和 `description`。
|
|
103
|
-
- `state_delta`
|
|
103
|
+
- `state_delta` 必须是 JSON 对象;五个 section 都要有,值形状按本节字段填写。不要把它再包成 JSON 字符串。
|
|
104
104
|
- 未知伏笔 key、未声明角色、`no_change` 缺原因都会被 `ENGINE_DELTA_UNVERIFIED` 拒绝,引擎不会猜。
|
|
105
105
|
- 不要传正文、不要传评分、不要传轮次。`handoff` 可选,用于覆盖卷/幕/进度。
|
|
106
106
|
|