"""HTTP 流适配器:编码事件并传播断连,不执行 Agent 业务逻辑。""" from contextlib import aclosing from typing import AsyncIterator from runtime.engine import Execution, ExecutionRequest from runtime.interrupts import pending_interrupts # 兼容旧导入 from api.sse_events import serialize_event async def stream_sse(execution: Execution) -> AsyncIterator[str]: async with aclosing(execution.events()) as events: async for event in events: yield serialize_event(event) # 旧内部调用入口保留;新入口直接使用 runtime.execution 和 stream_sse。 StreamRequest = ExecutionRequest class ChatStream(Execution): def generate(self) -> AsyncIterator[str]: return stream_sse(self) def sse_headers(session_id: str) -> dict[str, str]: return {"Cache-Control": "no-cache", "Connection": "keep-alive", "X-Accel-Buffering": "no", "X-Session-Id": session_id}