| """ | |
| SSE API Router for Archon (Phase 5.1.0) | |
| Endpoints for real-time task status updates. | |
| """ | |
| from fastapi import APIRouter | |
| from fastapi.responses import StreamingResponse | |
| from src.server.utils.sse_manager import sse_manager | |
| router = APIRouter(prefix="/api/sse", tags=["sse"]) | |
| async def task_stream(): | |
| """ | |
| SSE stream for task status updates. | |
| Clients can subscribe to receive real-time updates when tasks change. | |
| """ | |
| subscriber_id, queue = await sse_manager.subscribe() | |
| return StreamingResponse( | |
| sse_manager.event_generator(subscriber_id, queue), | |
| media_type="text/event-stream", | |
| headers={ | |
| "Cache-Control": "no-cache", | |
| "Connection": "keep-alive", | |
| "X-Accel-Buffering": "no", # Disable Nginx buffering | |
| }, | |
| ) | |