myrmidon / python /src /server /api_routes /sse_api.py
tek Atrust
chore(deploy): build monolithic server for Hugging Face
d5ef46f
Raw
History Blame Contribute Delete
826 Bytes
"""
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"])
@router.get("/tasks")
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
},
)