fix(cli): stop spinner after non-streaming interactive replies
This commit is contained in:
@@ -752,6 +752,7 @@ def agent(
|
|||||||
on_stream_end=renderer.on_end,
|
on_stream_end=renderer.on_end,
|
||||||
)
|
)
|
||||||
if not renderer.streamed:
|
if not renderer.streamed:
|
||||||
|
await renderer.close()
|
||||||
_print_agent_response(
|
_print_agent_response(
|
||||||
response.content if response else "",
|
response.content if response else "",
|
||||||
render_markdown=markdown,
|
render_markdown=markdown,
|
||||||
@@ -873,9 +874,13 @@ def agent(
|
|||||||
if turn_response:
|
if turn_response:
|
||||||
content, meta = turn_response[0]
|
content, meta = turn_response[0]
|
||||||
if content and not meta.get("_streamed"):
|
if content and not meta.get("_streamed"):
|
||||||
|
if renderer:
|
||||||
|
await renderer.close()
|
||||||
_print_agent_response(
|
_print_agent_response(
|
||||||
content, render_markdown=markdown, metadata=meta,
|
content, render_markdown=markdown, metadata=meta,
|
||||||
)
|
)
|
||||||
|
elif renderer and not renderer.streamed:
|
||||||
|
await renderer.close()
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
_restore_terminal()
|
_restore_terminal()
|
||||||
console.print("\nGoodbye!")
|
console.print("\nGoodbye!")
|
||||||
|
|||||||
@@ -119,3 +119,10 @@ class StreamRenderer:
|
|||||||
self._start_spinner()
|
self._start_spinner()
|
||||||
else:
|
else:
|
||||||
_make_console().print()
|
_make_console().print()
|
||||||
|
|
||||||
|
async def close(self) -> None:
|
||||||
|
"""Stop spinner/live without rendering a final streamed round."""
|
||||||
|
if self._live:
|
||||||
|
self._live.stop()
|
||||||
|
self._live = None
|
||||||
|
self._stop_spinner()
|
||||||
|
|||||||
Reference in New Issue
Block a user