"""Q&A layer: answer a question about a document, write a provable record."""

from arborist.qa.client import ChatClient, OpenAICompatibleClient, StubClient
from arborist.qa.keys import (
    cache_key,
    conversation_hash,
    governance_policy_hash,
    model_profile_hash,
    question_hash,
)
from arborist.qa.query import DEFAULT_QUERY_POLICY, query
from arborist.qa.runner import DEFAULT_POLICY, ask

__all__ = [
    "ChatClient",
    "OpenAICompatibleClient",
    "StubClient",
    "cache_key",
    "conversation_hash",
    "governance_policy_hash",
    "model_profile_hash",
    "question_hash",
    "DEFAULT_POLICY",
    "DEFAULT_QUERY_POLICY",
    "ask",
    "query",
]
