| { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "$id": "https://example.invalid/mcu-ir/run_result.schema.json", |
| "title": "Model run result", |
| "type": "object", |
| "additionalProperties": false, |
| "required": ["schema_version", "model_id", "config_path", "config_sha256", "run_id", "started_at", "ended_at", "overall_status", "stages"], |
| "properties": { |
| "schema_version": {"const": "1.0"}, |
| "model_id": {"type": "string", "minLength": 1}, |
| "config_path": {"type": "string", "minLength": 1}, |
| "config_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, |
| "run_id": {"type": "string", "minLength": 1}, |
| "started_at": {"type": "string", "format": "date-time"}, |
| "ended_at": {"type": "string", "format": "date-time"}, |
| "overall_status": {"enum": ["PASS", "PARTIAL", "FAIL", "BLOCKED", "QUEUED"]}, |
| "stages": { |
| "type": "array", |
| "items": {"$ref": "#/$defs/stage_result"} |
| } |
| }, |
| "$defs": { |
| "file_record": { |
| "type": "object", |
| "additionalProperties": false, |
| "required": ["path", "exists", "sha256", "bytes"], |
| "properties": { |
| "path": {"type": "string"}, |
| "exists": {"type": "boolean"}, |
| "sha256": {"type": ["string", "null"]}, |
| "bytes": {"type": ["integer", "null"], "minimum": 0} |
| } |
| }, |
| "stage_result": { |
| "type": "object", |
| "additionalProperties": true, |
| "required": [ |
| "model_id", "artifact_id", "variant", "stage", "stage_id", "status", |
| "failure_code", "command", "command_argv", "working_directory", |
| "inputs", "outputs", "tool_versions", "random_seed", "started_at", |
| "ended_at", "duration_sec", "exit_code", "error_summary", |
| "stdout_log", "stderr_log", "patch", "validation", "config_sha256", |
| "stage_config_sha256" |
| ], |
| "properties": { |
| "model_id": {"type": "string"}, |
| "artifact_id": {"type": "string"}, |
| "variant": {"enum": ["fp32", "public_quantized", "pair", "common"]}, |
| "stage": {"type": "string"}, |
| "stage_id": {"type": "string"}, |
| "status": {"enum": ["TODO", "QUEUED", "RUNNING", "PASS", "PASS_WITH_PATCH", "PARTIAL", "BLOCKED", "FAIL", "SKIPPED"]}, |
| "failure_code": {"type": ["string", "null"]}, |
| "source_artifact": {"type": ["string", "null"]}, |
| "source_checksum": {"type": ["string", "null"]}, |
| "artifact": {"type": ["string", "null"]}, |
| "command": {"type": "string"}, |
| "command_argv": {"type": "array", "items": {"type": "string"}}, |
| "working_directory": {"type": "string"}, |
| "inputs": {"type": "array", "items": {"$ref": "#/$defs/file_record"}}, |
| "outputs": {"type": "array", "items": {"$ref": "#/$defs/file_record"}}, |
| "tool_versions": {"type": "object"}, |
| "options": {"type": "object"}, |
| "random_seed": {"type": "integer"}, |
| "started_at": {"type": "string", "format": "date-time"}, |
| "ended_at": {"type": "string", "format": "date-time"}, |
| "duration_sec": {"type": "number", "minimum": 0}, |
| "exit_code": {"type": ["integer", "null"]}, |
| "error_summary": {"type": "string"}, |
| "stdout_log": {"type": "string"}, |
| "stderr_log": {"type": "string"}, |
| "patch": {"type": ["string", "null"]}, |
| "validation": {"type": "object"}, |
| "config_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, |
| "stage_config_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, |
| "reused_from_previous_run": {"type": "boolean"} |
| } |
| } |
| } |
| } |
|
|