"""Canonical test-first CODE_QA pipeline: IntentRouterV2 -> retrieval -> evidence gate -> LLM -> diagnostics.

This package is the single source of truth for the test-only pipeline.
Legacy RouterService and production runtime are unchanged.

Entrypoint: CodeQAPipelineRunner.run(user_query, rag_session_id).
Contracts: RouterResult, RetrievalRequest, RetrievalResult, EvidenceBundle, AnswerSynthesisInput, DiagnosticsReport.
See README § 4.1.3 and tests/pipeline_setup/pipeline_intent_rag/test_canonical_code_qa_pipeline.py.
"""

from app.modules.rag.code_qa_pipeline.contracts import (
    AnswerSynthesisInput,
    CodeChunkItem,
    DiagnosticsReport,
    EvidenceBundle,
    FailureReason,
    RetrievalRequest,
    RetrievalResult,
    RouterResult,
)
from app.modules.rag.code_qa_pipeline.pipeline import (
    CodeQAPipelineResult,
    CodeQAPipelineRunner,
)

__all__ = [
    "AnswerSynthesisInput",
    "CodeChunkItem",
    "CodeQAPipelineResult",
    "CodeQAPipelineRunner",
    "DiagnosticsReport",
    "EvidenceBundle",
    "FailureReason",
    "RetrievalRequest",
    "RetrievalResult",
    "RouterResult",
]
