mirror of
https://git.openapi.site/https://github.com/desirecore/config-center.git
synced 2026-06-06 05:50:50 +08:00
引入 frozen JSON Schema 契约(schemas/)和自动校验,作为已发布客户端的兼容防线。 背景: PR #1 把 reasoning 模型 defaultTemperature/defaultTopP 写为 null,已发布客户端 schema 严格 number → readComputeConfig 校验失败 → sync 死锁。详见 desirecore PR #471。 本次新增: - schemas/provider.schema.json: 镜像 desirecore d185299(fix #471 之前)的 strict computeProviderSchema/providerModelSchema,禁止 null/string/未知字段 - schemas/{manifest,service-map,pricing,providers-index}.schema.json: 配套契约 - scripts/validate.mjs: 扫所有数据文件自动校验 - __tests__/validate.test.mjs: 28 个测试,含 PR #1 反例的回归测试 - .github/workflows/validate.yml: PR/push 自动跑 validate + test 未来新增字段流程: 1. 先在 desirecore 主仓升级 schema 接受新字段 2. 发布新客户端,等用户升级 3. 再更新本仓库 frozen schema 和数据 否则老客户端因 additionalProperties: false 拒绝未知字段而死锁。
25 lines
843 B
JSON
25 lines
843 B
JSON
{
|
||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||
"$id": "https://desirecore.net/schemas/config-center/service-map.schema.json",
|
||
"title": "ServiceMap",
|
||
"description": "compute/service-map.json:默认服务到 (provider, model) 的映射。key 为服务类型(chat/reasoning/...),value 指向具体 Provider 和模型。",
|
||
"type": "object",
|
||
"additionalProperties": {
|
||
"type": "object",
|
||
"required": ["modelName", "providerId"],
|
||
"properties": {
|
||
"modelName": {
|
||
"type": "string",
|
||
"description": "目标模型 modelName,须与对应 Provider 的 models[].modelName 一致",
|
||
"minLength": 1
|
||
},
|
||
"providerId": {
|
||
"type": "string",
|
||
"description": "目标 Provider 的 id 字段",
|
||
"minLength": 1
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
}
|
||
}
|