feat: 任务书 08,jev 模块与账本记 Jev 判断
src/jev 3 个文件 515 行:判重、查冻结条款、查代码改动三个函数,九问问法和阈值照参考项目,只改说法和字段名,阈值注明未在新项目材料上校准,等真实数据。 新增 npm run test:jev(真实 Jev 三处各问一次)。vocab 加 JevJudgment。 ledger 表结构版本 3:callEnded 四种结局对上 agents,墙钟时间用 Measured(恢复时补写出错、原因"进程中断"、测不到);退回、提交记录都带 jev。 config 加必填的 models.jev。 用户原话:"这次就给提交记录加一个和退回记录同样的 Jev 判断字段";"墙钟时间改用 Measured,恢复时写出错加测不到(原因'进程中断')"。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -91,6 +91,21 @@ test("类型或取值不对报错,带字段路径", () => {
|
||||
}
|
||||
});
|
||||
|
||||
test("Jev 模型必填:少了、写 null、写空白都报错,不补 jev-latest", () => {
|
||||
const missing = fullConfig() as unknown as Obj;
|
||||
delete (missing.models as Obj).jev;
|
||||
assert.match(errorOf(missing), /^\/models\/jev:缺少这一项/m);
|
||||
const nulled = fullConfig() as unknown as Obj;
|
||||
(nulled.models as Obj).jev = null;
|
||||
assert.match(errorOf(nulled), /^\/models\/jev:应为字符串$/m);
|
||||
const blank = fullConfig() as unknown as Obj;
|
||||
(blank.models as Obj).jev = " ";
|
||||
assert.match(errorOf(blank), /^\/models\/jev:不能为空,也不能只有空白$/m);
|
||||
const naive = naiveConfig() as unknown as Obj;
|
||||
delete (naive.models as Obj).jev;
|
||||
assert.match(errorOf(naive), /^\/models\/jev:缺少这一项/m);
|
||||
});
|
||||
|
||||
test("一次列出多处错误,超过 typebox 默认的 8 条、错在 Union 分支里的也都列出", () => {
|
||||
const config = fullConfig() as unknown as Obj;
|
||||
config.runs = -1;
|
||||
@@ -196,6 +211,7 @@ test("字段定义里每个字段都有中文说明,并标明用户配置还
|
||||
assert.equal(category(["runs"]), "用户配置");
|
||||
assert.equal(category(["factorLimit"]), "方法参数");
|
||||
assert.equal(category(["flow"]), "方法参数");
|
||||
assert.equal(category(["models", "jev"]), "用户配置");
|
||||
assert.ok(seen.includes("/models/researchers/0/thinking"));
|
||||
assert.ok(seen.includes("/flow/ablation/cellRule"));
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user