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 +30 -0
- package/README.md +1 -1
- package/dsh.plugin.json +1 -1
- package/lib/index.js +10 -0
- package/package.json +1 -1
- package/src/index.ts +10 -0
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
package/dsh.plugin.json
CHANGED
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
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,
|