refactor: unify tool reason requirements

This commit is contained in:
2026-10-28 16:43:04 +08:00
parent 7d47a2df86
commit c3050b602b
20 changed files with 97 additions and 46 deletions
+14
View File
@@ -0,0 +1,14 @@
import { describe, expect, it } from "bun:test";
import { optionalToolReason, toolReason } from "../../.opencode/tool-reason.js";
describe("tool reason contract", () => {
it("allows omitted purpose but requires a nonblank business reason", () => {
expect(optionalToolReason.parse(undefined)).toBeUndefined();
expect(toolReason.safeParse(undefined).success).toBeFalse();
for (const schema of [optionalToolReason, toolReason]) {
expect(schema.parse(" 核验压力异常 ")).toBe("核验压力异常");
expect(schema.safeParse(" ").success).toBeFalse();
expect(schema.safeParse("x".repeat(2001)).success).toBeFalse();
}
});
});