冻结地图1二十分钟纵切版的平衡、证据与金标登记。 新增 ReferenceAsset/2 清单、策略、release、受信快照及 CLI/Service/acceptance provenance /4 消费链;保持 survivor live、R1 签名与部署关闭。
69 lines
2.6 KiB
JSON
69 lines
2.6 KiB
JSON
{
|
||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||
"$id": "https://wanxiang.ai/contracts/play-loop/reference-asset-verification-receipt.schema.json",
|
||
"title": "ReferenceAssetVerificationReceiptV1",
|
||
"description": "ReferenceAssetVerificationReceipt/1。冻结可信 registry、policy、verifier、root、record 和双身份制品/清单的完整验证闭包;expected 与 observed 的 registry/artifact/manifest hash 必须由语义层逐项相等。",
|
||
"type": "object",
|
||
"required": [
|
||
"schemaVersion", "receiptId", "releaseRef", "registryVersion",
|
||
"expectedRegistryHash", "observedRegistryHash", "policyHash", "verifierVersion",
|
||
"trustedRootId", "recordId", "role", "consumerRef", "artifactRef",
|
||
"consumptionManifestRef", "expected", "observed", "finalSnapshotHash"
|
||
],
|
||
"properties": {
|
||
"schemaVersion": { "const": "ReferenceAssetVerificationReceipt/1" },
|
||
"receiptId": {
|
||
"type": "string",
|
||
"pattern": "^[A-Za-z0-9_][A-Za-z0-9._-]*$"
|
||
},
|
||
"releaseRef": { "$ref": "#/$defs/relativePath" },
|
||
"registryVersion": { "type": "string", "minLength": 1 },
|
||
"expectedRegistryHash": { "$ref": "#/$defs/sha256" },
|
||
"observedRegistryHash": { "$ref": "#/$defs/sha256" },
|
||
"policyHash": { "$ref": "#/$defs/sha256" },
|
||
"verifierVersion": {
|
||
"type": "string",
|
||
"pattern": "^[A-Za-z][A-Za-z0-9._-]*/[0-9]+\\.[0-9]+\\.[0-9]+$"
|
||
},
|
||
"trustedRootId": {
|
||
"type": "string",
|
||
"pattern": "^[A-Za-z0-9_][A-Za-z0-9._:-]*$"
|
||
},
|
||
"recordId": {
|
||
"type": "string",
|
||
"pattern": "^[A-Za-z0-9_][A-Za-z0-9._-]*$"
|
||
},
|
||
"role": {
|
||
"enum": ["harness_fixture", "prompt_eval_gold", "generation_exemplar", "game_content_gold"]
|
||
},
|
||
"consumerRef": { "type": "string", "minLength": 1 },
|
||
"artifactRef": { "$ref": "#/$defs/relativePath" },
|
||
"consumptionManifestRef": { "$ref": "#/$defs/relativePath" },
|
||
"expected": { "$ref": "#/$defs/hashColumns" },
|
||
"observed": { "$ref": "#/$defs/hashColumns" },
|
||
"finalSnapshotHash": { "$ref": "#/$defs/sha256" }
|
||
},
|
||
"additionalProperties": false,
|
||
"$defs": {
|
||
"hashColumns": {
|
||
"type": "object",
|
||
"required": ["artifactHash", "consumptionManifestHash"],
|
||
"properties": {
|
||
"artifactHash": { "$ref": "#/$defs/sha256" },
|
||
"consumptionManifestHash": { "$ref": "#/$defs/sha256" }
|
||
},
|
||
"additionalProperties": false
|
||
},
|
||
"sha256": {
|
||
"type": "string",
|
||
"pattern": "^[0-9a-f]{64}$"
|
||
},
|
||
"relativePath": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 1024,
|
||
"pattern": "^(?!/)(?!.*//)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?!.*\\\\).+$"
|
||
}
|
||
}
|
||
}
|