"""
Quality validation and halting policies for prompt artifacts.

Implements FR-9: QualityGate Validation
Implements FR-10: Halting and Refinement Policy

- FR-9.1: Schema validation against generated artifacts
- FR-9.2: Multiple QualityGates per artifact
- FR-9.3: Record pass/fail results and diagnostics
- FR-9.4: Halting policies based on QualityGate results
- FR-10.1: Configurable QualityPolicies
- FR-10.2: Halting decisions (quality, improvement, iterations, budget)
- FR-10.3: Record halting decisions in RunManifest
"""

from markitect.prompts.quality.models import (
    GateType,
    ValidationStatus,
    HaltDecision,
    ValidationDiagnostic,
    ValidationResult,
    QualityGate,
    QualityPolicy,
    HaltingRecord,
    RefinementResult,
)
from markitect.prompts.quality.gates.schema_gate import SchemaValidationGate
from markitect.prompts.quality.gates.pattern_gate import PatternValidationGate
from markitect.prompts.quality.validator import QualityValidator
from markitect.prompts.quality.policy import HaltingPolicyEngine
from markitect.prompts.quality.refinement import RefinementLoop

__all__ = [
    # Models
    "GateType",
    "ValidationStatus",
    "HaltDecision",
    "ValidationDiagnostic",
    "ValidationResult",
    "QualityGate",
    "QualityPolicy",
    "HaltingRecord",
    "RefinementResult",
    # Gates
    "SchemaValidationGate",
    "PatternValidationGate",
    # Validator
    "QualityValidator",
    # Policy
    "HaltingPolicyEngine",
    # Refinement
    "RefinementLoop",
]
