Spaces:
Sleeping
Sleeping
| """Hard request-scoped access policy for optional research context.""" | |
| from __future__ import annotations | |
| import logging | |
| import os | |
| from dataclasses import dataclass | |
| logger = logging.getLogger(__name__) | |
| class ContextAccessPolicy: | |
| project_context_enabled: bool | |
| explicit_context_available: bool = False | |
| def web_available(self) -> bool: | |
| return bool(os.getenv("TAVILY_API_KEY")) | |
| def allow_project_retrieval(self) -> bool: | |
| return self.project_context_enabled | |
| def allow_project_memory(self) -> bool: | |
| return self.project_context_enabled | |
| def log(self, *, request_id: str, event_type: str) -> None: | |
| logger.info( | |
| "Context policy request=%s event=%s project=%s explicit_context=%s web=%s", | |
| request_id, | |
| event_type, | |
| self.project_context_enabled, | |
| self.explicit_context_available, | |
| self.web_available, | |
| ) | |
| if not self.project_context_enabled: | |
| logger.info("Project retrieval skipped request=%s reason=user_disabled", request_id) | |