from __future__ import annotations from fastapi import APIRouter, Request from app.modules.agent.story_context_repository import StoryContextRepository from app.modules.rag.persistence.repository import RagRepository from app.modules.rag_repo.webhook_service import RepoWebhookService class RagRepoModule: def __init__(self, story_context_repository: StoryContextRepository, rag_repository: RagRepository) -> None: self._webhook = RepoWebhookService(story_context_repository, rag_repository) def internal_router(self) -> APIRouter: router = APIRouter(prefix="/internal/rag-repo", tags=["internal-rag-repo"]) @router.post("/webhook") async def process_repo_webhook(request: Request, payload: dict) -> dict: return self._webhook.process( payload=payload, headers={k: v for k, v in request.headers.items()}, ) return router