from ai_infra.tools import ProgressStreamStream for sending progress updates from tools. This class is injected into progress-enabled tools as the `stream` parameter. Tools can call `await stream.update()` to send progress updates.
@progress
async def my_tool(input: str, stream) -> str:
await stream.update("Starting...", percent=0)
# ... do work ...
await stream.update("Halfway there!", percent=50)
# ... more work ...
await stream.update("Done!", percent=100)
return "result"