"""Define shared backend exception types.""" from __future__ import annotations class VectorStoreSchemaError(RuntimeError): """Signal that the active vector store schema does not match backend expectations.""" def __init__( self, *, message: str, host: str, db_name: str, collection_name: str, expected_fields: list[str], actual_fields: list[str], ) -> None: """Initialize the vector store schema error details.""" self.host = host self.db_name = db_name self.collection_name = collection_name self.expected_fields = expected_fields self.actual_fields = actual_fields # Keep the message self-contained so runtime logs show the full mismatch context. details = ( f"{message} | host={host} db={db_name} collection={collection_name} " f"expected_fields={expected_fields} actual_fields={actual_fields}" ) super().__init__(details)