mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-15 21:05:51 +00:00
源码(src/workflow/ + packages/workflow-engine/src/)的中文注释、 用户可见错误消息、字符串字面量;测试文件的标题与注释;同步 6 条 硬编码断言到英文化后的错误消息。 Co-Authored-By: glm-5.2 <zai-org@claude-code-best.win>
27 lines
821 B
TypeScript
27 lines
821 B
TypeScript
import { Ajv, type ValidateFunction } from 'ajv'
|
|
|
|
const cache = new WeakMap<object, ValidateFunction>()
|
|
|
|
/**
|
|
* Validate agent output against a JSON Schema (Ajv, compilation result cached by schema object).
|
|
* The engine performs secondary validation on the schema result returned by the adapter, and uses it for tests.
|
|
*/
|
|
export function validateAgainstSchema(
|
|
value: unknown,
|
|
schema: object,
|
|
): { valid: boolean; errors: string[] } {
|
|
let validate = cache.get(schema)
|
|
if (!validate) {
|
|
const ajv = new Ajv({ allErrors: true, strict: false })
|
|
validate = ajv.compile(schema) as ValidateFunction
|
|
cache.set(schema, validate)
|
|
}
|
|
const valid = validate(value) as boolean
|
|
return {
|
|
valid,
|
|
errors: valid
|
|
? []
|
|
: (validate.errors ?? []).map(e => e.message ?? 'validation error'),
|
|
}
|
|
}
|