{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:awoooi:agent-nemotron-contract-tuned-smoke-gate-v1",
  "title": "AWOOOI NeMo/Nemotron Contract-Tuned Smoke Gate (v1)",
  "type": "object",
  "required": [
    "schema_version",
    "candidate_id",
    "candidate_variant_id",
    "approved_for_full_replay",
    "decision",
    "model",
    "minimum_records",
    "latency_budget_ms",
    "gates",
    "failures",
    "runner_summary",
    "source_reports"
  ],
  "properties": {
    "schema_version": {
      "type": "string",
      "const": "agent_nemotron_contract_tuned_smoke_gate_v1"
    },
    "candidate_id": {
      "type": "string",
      "const": "nemo_nemotron_fabric"
    },
    "candidate_variant_id": {
      "type": "string",
      "const": "nemo_nemotron_fabric_contract_tuned_v1"
    },
    "approved_for_full_replay": {
      "type": "boolean"
    },
    "decision": {
      "type": "string",
      "enum": ["approved_for_full_replay", "blocked"]
    },
    "model": {
      "type": "string"
    },
    "minimum_records": {
      "type": "integer",
      "minimum": 1
    },
    "latency_budget_ms": {
      "type": "number",
      "minimum": 0
    },
    "gates": {
      "type": "object",
      "additionalProperties": {
        "type": "boolean"
      }
    },
    "failures": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "runner_summary": {
      "type": "object",
      "required": [
        "requests",
        "results",
        "valid",
        "external_error_records",
        "fallback_used_records",
        "trace_incomplete_records",
        "retry_used_records",
        "avg_latency_ms",
        "p95_latency_ms"
      ],
      "properties": {
        "requests": {"type": "integer", "minimum": 0},
        "results": {"type": "integer", "minimum": 0},
        "valid": {"type": "boolean"},
        "external_error_records": {"type": "integer", "minimum": 0},
        "fallback_used_records": {"type": "integer", "minimum": 0},
        "trace_incomplete_records": {"type": "integer", "minimum": 0},
        "retry_used_records": {"type": "integer", "minimum": 0},
        "avg_latency_ms": {"type": "number", "minimum": 0},
        "p95_latency_ms": {"type": "number", "minimum": 0}
      },
      "additionalProperties": false
    },
    "source_reports": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "additionalProperties": false
}
