dsh-math-calculator 2.1.0 → 2.1.1

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 CHANGED
@@ -2,6 +2,36 @@
2
2
 
3
3
  本项目遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/) 与 [语义化版本](https://semver.org/lang/zh-CN/)。
4
4
 
5
+ ## [2.1.1] — 2026-10-28
6
+
7
+ 紧急修复 **2.1.0 会让工具不可用**的问题。
8
+
9
+ ### 修复
10
+
11
+ - **`notice` / `cached` 未在输出 schema 声明,导致调用失败**。
12
+
13
+ 宿主用 `additionalProperties: false` **校验**工具输出。2.1.0 的代码会产出
14
+ `notice`(显示精度提示、精度不足提醒)与 `cached`(缓存命中标记),
15
+ 但 `OUTPUT_SCHEMA` 里没有声明这两个字段,于是宿主拒绝整次调用:
16
+
17
+ ```
18
+ Error: tool "math_execute" returned invalid output:
19
+ "value.notice" is not a declared property (additionalProperties: false)
20
+ ```
21
+
22
+ 触发条件是**任何带小数的结果**(默认 8 位小数下几乎每次都会产出 notice),
23
+ 也就是说 2.1.0 装上去基本不能用。
24
+
25
+ **为什么单元测试没发现**:测试直接调 `runMathTool`,拿到的是普通对象,
26
+ 不经过宿主那层 schema 校验 —— 77 套全绿,而真实宿主一调就废。
27
+ 这是「测试走的路径与真实调用路径不同」的典型盲区。
28
+
29
+ ### 新增
30
+
31
+ - **输出字段声明守卫**(`test/integration.mjs`):断言 `MathResult` 能产出的
32
+ 每个字段都已在 `output.schema` 声明,并实跑一次会产出 `notice` 与 `cached`
33
+ 的调用。以后再加字段忘了声明,这条会红。
34
+
5
35
  ## [2.1.0] — 2026-10-28
6
36
 
7
37
  公式库扩到 404 条、新增天体目录与类型学、工具定义瘦身 21%,并把「计算精度」与
package/README.md CHANGED
@@ -47,7 +47,7 @@ npm run build
47
47
 
48
48
  ```powershell
49
49
  npm pack
50
- & "...\dsh.cmd" plugin --profile desktop add ./dsh-math-calculator-2.1.0.tgz
50
+ & "...\dsh.cmd" plugin --profile desktop add ./dsh-math-calculator-2.1.1.tgz
51
51
  ```
52
52
 
53
53
  ---
package/dsh.plugin.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "dsh-math-calculator",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "main": "lib/index.js",
5
5
  "description": "DSH 原生数学与架空世界推演插件:高精度计算、342 条公式、常数与星球推演。",
6
6
  "engines": {
package/lib/index.js CHANGED
@@ -2285,6 +2285,16 @@ const OUTPUT_SCHEMA = {
2285
2285
  precision: { type: 'integer', required: true, description: '使用的精度' },
2286
2286
  value: { type: 'json', description: '机器可读结果' },
2287
2287
  variables: { type: 'object', additionalProperties: true, description: '本次使用的变量' },
2288
+ /**
2289
+ * 附加提示(渲染时展示,不进 `result`)。
2290
+ *
2291
+ * ⚠️ 必须声明在这里。宿主用 `additionalProperties: false` **校验**工具输出,
2292
+ * 漏一个字段就会让整次调用判为「invalid output」而失败 ——
2293
+ * 实测踩过:加了 notice 却忘了声明,`bodies` 调用直接被宿主拒绝。
2294
+ */
2295
+ notice: { type: 'string', description: '附加提示(显示精度/精度不足等)' },
2296
+ /** 结果来自缓存(未重算)。同样必须声明,否则命中缓存时调用失败。 */
2297
+ cached: { type: 'boolean', description: '是否命中缓存' },
2288
2298
  error: {
2289
2299
  type: 'object',
2290
2300
  additionalProperties: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-math-calculator",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "private": false,
5
5
  "description": "DSH 原生的高精度数学计算器插件:BigNumber 64 位求值、符号微积分、线性代数(秩/零空间/奇异值/特征值)、统计概率与回归、微分方程、单位换算、395 条公式库(三轴标签)、物理常数推演。全部本地执行,不联网。附带一组可选的世界观推演工具。",
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -2575,6 +2575,16 @@ const OUTPUT_SCHEMA = {
2575
2575
  precision: { type: 'integer', required: true, description: '使用的精度' },
2576
2576
  value: { type: 'json', description: '机器可读结果' },
2577
2577
  variables: { type: 'object', additionalProperties: true, description: '本次使用的变量' },
2578
+ /**
2579
+ * 附加提示(渲染时展示,不进 `result`)。
2580
+ *
2581
+ * ⚠️ 必须声明在这里。宿主用 `additionalProperties: false` **校验**工具输出,
2582
+ * 漏一个字段就会让整次调用判为「invalid output」而失败 ——
2583
+ * 实测踩过:加了 notice 却忘了声明,`bodies` 调用直接被宿主拒绝。
2584
+ */
2585
+ notice: { type: 'string', description: '附加提示(显示精度/精度不足等)' },
2586
+ /** 结果来自缓存(未重算)。同样必须声明,否则命中缓存时调用失败。 */
2587
+ cached: { type: 'boolean', description: '是否命中缓存' },
2578
2588
  error: {
2579
2589
  type: 'object',
2580
2590
  additionalProperties: false,