dsh-novel-writer 6.6.5 → 6.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/README.en.md +6 -6
- package/README.md +6 -6
- package/lib/client.js +1082 -838
- package/package.json +1 -1
- package/server.json +2 -2
package/README.en.md
CHANGED
|
@@ -85,7 +85,7 @@ Then ask, in order (this is one complete chapter):
|
|
|
85
85
|
3. **"check chapter 7"** → `novel_style_check` returns similarity, a deviation list and the six-metric comparison
|
|
86
86
|
4. **"turn chapter 7 into a fix list"** → `novel_fix_plan` returns the prioritised to-dos; run `verify` afterwards to re-check the three states
|
|
87
87
|
|
|
88
|
-
> Want the baseline to follow **the chapters you wrote yourself** instead of the whole book? In the panel's **Style baseline** view
|
|
88
|
+
> Want the baseline to follow **the chapters you wrote yourself** instead of the whole book? In the panel's **Style baseline** view set **Range** to **Selected**, tick your yardstick chapters under **Pick chapters**, then hit **Save range**: the check, the chapter brief, the fix plan and the style report all switch to those chapters as the baseline (**per book**; the default **Whole book** is the old behaviour — leave it alone and nothing changes). Creating a chapter (`novel_new_chapter`) uses the same scope for the μ summary and the anchor pack it attaches.
|
|
89
89
|
|
|
90
90
|
To just look at the baseline first, ask **"run novel_style_report on my novel"** and you get:
|
|
91
91
|
|
|
@@ -156,7 +156,7 @@ fixAnchors:3 条原著锚段(对话 / 心理 / 描写各一条,供逐句
|
|
|
156
156
|
| Cost | **0 (local inference)** | Billed per token | Self-hosted |
|
|
157
157
|
| Purpose-built for Chinese fiction | **Yes** | Generic | No |
|
|
158
158
|
| Style baseline (μ±σ) | **Yes** | Rare | No |
|
|
159
|
-
| DSH integration | **20 tools + official seats &
|
|
159
|
+
| DSH integration | **20 tools + official seats & a unified panel** | None | None |
|
|
160
160
|
| Usable without DSH | **Yes (MCP)** | Yes | You wrap it yourself |
|
|
161
161
|
|
|
162
162
|
> **A note for non-Chinese users**: this plugin is designed for analysing and writing Chinese fiction — the sentence-pattern,
|
|
@@ -176,11 +176,11 @@ fixAnchors:3 条原著锚段(对话 / 心理 / 描写各一条,供逐句
|
|
|
176
176
|
6. **Emotion purification & quantification**: strong/weak emotion-word grading, pollution detection, caveat warning + AI re-verification; Valence sliding window → variance V / delta Δ / conflict index C + implicit imagery carriers.<br>**Emotion complexity now follows confidence (v6.6.5)**: when the conclusion is not trustworthy (a pollution threshold is hit, the text contains no emotion words at all, or no usable clean counts remain) the tool no longer hands out a top-tier verdict — `complexity.level` is reported as `unknown`, together with `reliable: false` and a `reliabilityNote` giving the reason, and the rendered text prints that warning on its own line; `score` keeps its numeric value for cross-chapter comparison. The emotion dimension is simply not applicable to R18 / high-physiological prose — use rhythm, payoff and dialogue density instead.
|
|
177
177
|
7. **Worldview & pragmatics detection**: auto cultural-baseline detection with confidence; speechStyle title/honorifics/rituals/tone norms; genre & theme + webnovel signals.
|
|
178
178
|
8. **Writing toolkit**: plot tracking / five settings tables (characters·locations·items·timeline·worldview) / chapter summaries / continuity audit / batch import / style check / continuation writing.
|
|
179
|
-
9. **Per-tool UI toggles**: a 「写作助手功能」 ("Writing Assistant") entry in the left sidebar plus a main-column panel (**official DSH 0.2.0 seats**; hosts older than 0.2.0 fall back automatically) —
|
|
180
|
-
10. **Style Baseline**: Six writing metrics (syntactic complexity / modifier density / abstraction / action density / hedging / gap index) + per-chapter μ±σ baseline band; `novel_style_report` outputs the band, `novel_style_check` compares new chapters (in-band ✓ / out-of-band ⚠); per-metric ±% tolerance configurable in the panel's **
|
|
179
|
+
9. **Per-tool UI toggles**: a 「写作助手功能」 ("Writing Assistant") entry in the left sidebar plus a main-column panel (**official DSH 0.2.0 seats**; hosts older than 0.2.0 fall back automatically) — the home page is grouped into Writing resources / AI behavior / Features & tools / History & maintenance / Advanced, one thing per page; tool rows all go through the same `PreferenceRow`, the switch itself is the state (no more blue full-row highlight, no 「已开启」 badge), and copy says what it does for you rather than how it works (tool ids and parameters stay out of the main text). Colors use `--dsw-alias-*` semantic tokens (three themes in sync with the host), controls use the official UI primitives, DeepSeek blue is reserved for the single primary action and for things that need attention, and every page shares one width.<br>**v6.7.0 panel visual redesign**: the render layer in `lib/client.js` was rewritten, the visual-system CSS grew from 4.6 KB to 19.4 KB, there are 52 line icons (every tool row has its own), file paths / data-dir usage / `state.json` all moved into a single "Storage locations" disclosure at the bottom of each page, and the "Semantic model" row under Features & tools now shows engine status; the functional surface is unchanged (8 views / 20 tools / backend routes untouched). The full spec is `tools/UI-REDESIGN.md` in the repo.<br>**UI foundation (Plan A)**: source split + build chain (assert-failed builds never write, `--check` verifies source==artifact), unified components (`PreferenceRow` single row pattern, `GroupCard`, `StorageDisclosure` for storage paths, etc.), and page-level push-pop transition animations (zero state / zero hook).
|
|
180
|
+
10. **Style Baseline**: Six writing metrics (syntactic complexity / modifier density / abstraction / action density / hedging / gap index) + per-chapter μ±σ baseline band; `novel_style_report` outputs the band, `novel_style_check` compares new chapters (in-band ✓ / out-of-band ⚠); per-metric ±% tolerance configurable in the panel's **Style baseline** → **Six style measures** section (one row per metric with "below" and "above" percentage inputs; **recommended = 1.5× σ of the book's chapter variance**, rounded, clamped to ±10%~100%; leave blank to use recommended) — free theme, writing style kept inside the band.<br>**Baseline scope (v6.5.5, configured per book)**: the baseline does not have to be the whole book — in the panel's **Style baseline** view choose **Whole book** (default, = the old behaviour) or **Selected**, then tick the chapters you treat as the yardstick; the baseline then uses **only** those (it means "only these", not "prefer these and top up when short"). This exists for "the AI keeps writing and ends up sounding like the AI": from chapter 2 onward the model is really reading its own previous chapter for reference, and **a baseline sampled from the whole book drifts along with it** (the longer the book, the higher the AI share). Nail the yardstick to the chapters you wrote yourself and the plugin can answer "**relative to those chapters**, how far has this chapter moved" — it never judges whether you have drifted, which is not decidable in the first place. The chapter being checked is **always excluded** (otherwise it would be comparing itself with itself); when fewer than 3 chapters are ticked the recommended tolerance widens to **at least ±25%**, so even a single chapter can serve as the baseline; chapters that cannot be used (renamed / deleted, or **too short to measure**) are skipped and reported honestly, and if not one of them can be used it falls back to **whole book** and states the reason in the returned baseline description. The scope is stored per book (`<library root>/.novel-writer/baseline/<book>.json`), so books do not affect each other.
|
|
181
181
|
11. **Writing sentinels**: `novel_continuity_check` extended — ①**bridge check** (`chapter`: time jumps / semantic distance / character continuity / hook handoff, with quoted evidence) ②**OOC check** (`ooc`: per-character emotion baseline deviation) ③**outline drift** (`outline`: direction vs body keyword overlap); **brief mode** for report tools.
|
|
182
|
-
12. **Original mode & creation files**: fill in creation settings in the panel's **
|
|
183
|
-
13. **Experience & stats**:
|
|
182
|
+
12. **Original mode & creation files**: fill in creation settings in the panel's **Creation profile** view (worldview / characters / forbidden events / main conflict / genre / extras, blank = model decides, per-book profile library); novel_outline maintains creation files (bible/characters/outline/hooks/status), enforcing the bible → outline → hook chain with dynamic batches (10→20→30 chapters) to prevent plot jumps and OOC.
|
|
183
|
+
13. **Experience & stats**: the home page's Writing resources card ends with one line of **library summary** ("Library: 3 books · 13 chapters · 50k characters"); expand it for each book's chapters / characters / `7 days idle` — the old standalone library-stats card is now this one line. History & maintenance holds the **demo** (built-in sample, nothing saved, runs the six style measures), **report history** (saved sentence analysis and style reports, grouped by book) and **diagnostics** (statistics window + **one-click copy of the diagnostic bundle** for pasting into an issue); actionable error hints; slimmer tool descriptions.
|
|
184
184
|
|
|
185
185
|
---
|
|
186
186
|
|
package/README.md
CHANGED
|
@@ -82,7 +82,7 @@ mkdir -p novels/我的小说 # 把章节文件放进去(第01章.md、第0
|
|
|
82
82
|
3. **「自检第 7 章」** → `novel_style_check` 给出相似度、偏差清单与六维对照
|
|
83
83
|
4. **「把第 7 章排成改稿清单」** → `novel_fix_plan` 给出按优先级排好的待办;改完再 `verify` 复测三态
|
|
84
84
|
|
|
85
|
-
>
|
|
85
|
+
> 想让基线对着**你亲手写的那些章**、而不是全书?面板「风格基线」里把「范围」切到 **按部分**、在「挑选章节」里勾出标杆章,再点「保存范围」即可:上面这条链上的自检、开写包、改稿台与风格画像都会改用这几章当基线(**按书生效**;默认「全书」=旧行为,不动它就跟以前完全一样)。建章(`novel_new_chapter`)时附的 μ 摘要与锚段用的是同一份范围。
|
|
86
86
|
|
|
87
87
|
只想先看看家底,就说 **「用 novel_style_report 给我的小说做一次风格画像」**:
|
|
88
88
|
|
|
@@ -155,7 +155,7 @@ fixAnchors:3 条原著锚段(对话 / 心理 / 描写各一条,供逐句
|
|
|
155
155
|
| 花费 | **0(本地推理)** | 按 token 计费 | 自建 |
|
|
156
156
|
| 中文小说专用 | **是** | 通用 | 否 |
|
|
157
157
|
| 风格基线(μ±σ) | **有** | 少见 | 无 |
|
|
158
|
-
| 与 DSH 集成 | **20
|
|
158
|
+
| 与 DSH 集成 | **20 个工具 + 官方席位与统一面板** | 无 | 无 |
|
|
159
159
|
| 非 DSH 用户可用 | **可以(MCP)** | 可以 | 需自己封装 |
|
|
160
160
|
|
|
161
161
|
> **致非中文用户**:本插件为中文小说分析写作而设计——句式、情感、意象等核心能力以及内置的语义模型,全部针对中文语料构建与调优。在深耕中文的同时兼顾英文等其他语言,确实超出了我目前的能力范围。若因此给您带来不便,我深感抱歉,恳请谅解。
|
|
@@ -172,11 +172,11 @@ fixAnchors:3 条原著锚段(对话 / 心理 / 描写各一条,供逐句
|
|
|
172
172
|
6. **情感净化 + 量化**:强/弱情绪词分级、污染源检测、caveat 预警 + AI 复核;Valence 滑动窗口 → 方差 V / 斜率 Δ / 矛盾指数 C + 隐性意象载体。<br>**情感复杂度与置信度联动(v6.6.5)**:结论不可采信时(污染命中阈值、全文零情感词命中,或没有可用的 clean 情感计数)不再给顶格结论——`complexity.level` 标为 `unknown`,并附 `reliable: false` 与 `reliabilityNote` 说明原因,渲染文本里也会单独一行写出这句警告;`score` 保留数值便于跨章对比。R18 / 高生理描写文本的情感维度本就不适用,建议改用节奏、爽点、对话密度等维度。
|
|
173
173
|
7. **世界观与语用检测**:文化基准自动判断(西/东/混合)+ 置信度;speechStyle 称谓/客套/仪式/语气规范;题材流派 + 网文信号。
|
|
174
174
|
8. **写作辅助全家桶**:伏笔登记表 / 设定五张表(人物·地点·道具·时间线·世界观)/ 章节摘要 / 连贯性审计 / 批量导入 / 风格自检 / 续写辅助。
|
|
175
|
-
9. **全工具 UI 开关**:左栏「写作助手功能」入口 + 主栏面板(**DSH 0.2.0 官方席位**;老宿主 < 0.2.0
|
|
176
|
-
10. **风格基线**:文笔六维测量(句法复杂度/修饰密度/抽象度/动作密度/不确定性/留白指数)+ 按章节 μ±σ 基线带;`novel_style_report` 输出基线带,`novel_style_check` 对照新章偏差(带内 ✓ / 出带
|
|
175
|
+
9. **全工具 UI 开关**:左栏「写作助手功能」入口 + 主栏面板(**DSH 0.2.0 官方席位**;老宿主 < 0.2.0 自动回退旧挂载)——首页按「写作资料 / AI 行为 / 功能与工具 / 记录与维护 / 高级」分区,**一个页面只讲一件事**;工具行统一由 `PreferenceRow` 承载,**开关本身就是状态**(开着的开关不再整行变蓝、也不再贴「已开启」),描述只写「对你有什么用」,工具 ID 与参数不进主文案。颜色全走 `--dsw-alias-*` 语义 token(三主题与官方同源)、控件用官方 UI primitives、DeepSeek 蓝只留给「唯一主操作」与需要注意的状态,各级页面等宽。<br>**v6.7.0 面板视觉改版**:`lib/client.js` 渲染层重写、视觉系统 CSS 4.6 KB → 19.4 KB、52 枚线图标(每个工具行一枚专属图标),文件路径 / 数据目录占用 / `state.json` 统一收进页面底部的「存储位置」折叠区,首页「功能与工具」的「语义模型」一行显示引擎状态;功能面完全不变(8 个视图 / 20 个工具 / 后端路由零改动),设计规格见仓库内 `tools/UI-REDESIGN.md`。<br>**界面底座(方案 A)**:源码分块 + 构建链装配(构建失败不写盘、`--check` 校验源与产物一致)、统一组件(`PreferenceRow` 单一行模式、`GroupCard` 分组卡、`StorageDisclosure` 存储位置折叠区等)、页面级 push-pop 过渡动画(零 state / 零 hook)。
|
|
176
|
+
10. **风格基线**:文笔六维测量(句法复杂度/修饰密度/抽象度/动作密度/不确定性/留白指数)+ 按章节 μ±σ 基线带;`novel_style_report` 输出基线带,`novel_style_check` 对照新章偏差(带内 ✓ / 出带 ⚠);面板「风格基线」页的「文风六项指标」分区可自定义每维 ±% 容差(每维一行:指标名 + 「低于」「高于」两个百分比输入框;**推荐值 = 原著章节波动的 1.5 倍 σ**,自动取整、限 ±10%~100%;输入框留空即用推荐)——原创/续写时主题自由、写法保持在基线带内。<br>**基线范围(v6.5.5,按书选择)**:基线不必永远是全书——面板「风格基线」里选**全书**(默认,等于旧行为)/ **按部分**,再用章节选择器勾出你认作标杆的章,基线就**只用**这几章(是「只用」,不是「不够再补」)。这是给「AI 续写越写越像 AI 自己」准备的:从第 2 章续写起,模型参考的其实是它自己写的上一章,而**从全书取样的基线自己也在漂**(书越长 AI 占比越高)。把标杆钉死在你亲手写的那些章上,插件就能回答「**相对这几章**,新章偏了多少」——它不判断你有没有漂移,那一项本就不可判定。正在检查的那一章**永远排除**(否则等于拿自己跟自己比);勾中的章少于 3 章时推荐容差自动放宽到**至少 ±25%**,所以单章也能当基线;取不到的章(已改名 / 已删除,或**正文过短无法测量**)会被跳过并如实计数,**一章都取不到**时自动回退「按全书」并在返回体里写明原因。范围按书保存(`<书库根>/.novel-writer/baseline/<书名>.json`),换书互不影响。
|
|
177
177
|
11. **写作哨兵三件套**:`novel_continuity_check` 扩展——①**衔接检查**(chapter 参数:时间硬跳/语义距离/人物延续/钩子承接四路检测,带原文引用)②**OOC 检测**(ooc 参数:角色情绪基线偏离)③**大纲走偏**(outline 参数:方向行 vs 正文关键词重合);报告工具支持 **brief 精简模式**。
|
|
178
|
-
12.
|
|
179
|
-
13.
|
|
178
|
+
12. **原创模式与创作资料**:面板「原创设定」填写创作设定(世界观 / 角色设定 / 不允许的事件 / 主线目的 / 题材偏好 / 额外要求,留空=模型自定,多书独立设定库);novel_outline 维护创作资料(创作设定/人物/剧情大纲/钩子记录/创作状态卡),原创强制「设定书→大纲→钩子」链,动态批次(10→20→30 章)防剧情跳跃与角色 OOC。
|
|
179
|
+
13. **体验与统计**:首页「写作资料」卡底部一行**书库概况**(「书库 3 部 · 13 章 · 5.0 万字」,点开是每本书的章数 / 字数 / `7 天未动`)——原来独立的「书库统计」卡已并入这一行;「记录与维护」里有**体验演示**(内置示例不落盘跑六项文风指标,不保存任何内容)、**报告历史**(已保存的句式分析与风格报告,按书分组)与**诊断报告**(统计窗口 + **一键复制诊断包**,用于贴进 issue);错误提示带解决步骤;工具说明压缩省 token。
|
|
180
180
|
|
|
181
181
|
---
|
|
182
182
|
|