import { Type, type Static } from "typebox"; /** * Jev 对一个问题的一次判断(docs/方法.md 4.3 ③⑥⑨)。jev 交出它,ledger 在退回、判重合并等记录里原样存它, * 两个模块互不引用,所以类型放在这里。 * - question:问题名,如 same_change; * - questionHash:问题全文(措辞、判"是"判"否"的说明与示例、阈值)的哈希,改了一个字就能从记录里看出来; * - probability:Jev 返回的原始概率;yes:probability 是否超过 threshold(概率高 = 有问题,或"是同一个"); * - requestId:Jev 返回的请求编号,用来到服务那边核对。 */ export const JevJudgment = Type.Object( { question: Type.String({ pattern: "^[a-z][a-z_]*$" }), questionHash: Type.String({ pattern: "^[0-9a-f]{64}$" }), threshold: Type.Number({ minimum: 0, maximum: 1 }), probability: Type.Number({ minimum: 0, maximum: 1 }), yes: Type.Boolean(), requestId: Type.String({ minLength: 1 }), }, { additionalProperties: false }, ); export type JevJudgment = Static;