Stream model events to activity panel
This commit is contained in:
+16
-3
@@ -692,7 +692,11 @@ class LocalCodingAgent:
|
||||
self.last_run_result = result
|
||||
return result
|
||||
try:
|
||||
turn, turn_events = self._query_model(session, tool_specs)
|
||||
turn, turn_events = self._query_model(
|
||||
session,
|
||||
tool_specs,
|
||||
stream_events=stream_events,
|
||||
)
|
||||
except OpenAICompatError as exc:
|
||||
if self._is_prompt_too_long_error(exc) and self._reactive_compact_session(
|
||||
session,
|
||||
@@ -700,7 +704,11 @@ class LocalCodingAgent:
|
||||
turn_index=turn_index,
|
||||
):
|
||||
try:
|
||||
turn, turn_events = self._query_model(session, tool_specs)
|
||||
turn, turn_events = self._query_model(
|
||||
session,
|
||||
tool_specs,
|
||||
stream_events=stream_events,
|
||||
)
|
||||
except OpenAICompatError as retry_exc:
|
||||
exc = retry_exc
|
||||
else:
|
||||
@@ -1479,6 +1487,8 @@ class LocalCodingAgent:
|
||||
self,
|
||||
session: AgentSessionState,
|
||||
tool_specs: list[dict[str, object]],
|
||||
*,
|
||||
stream_events: list[dict[str, object]] | None = None,
|
||||
) -> tuple[AssistantTurn, tuple[StreamEvent, ...]]:
|
||||
if not self.runtime_config.stream_model_responses:
|
||||
turn = self.client.complete(
|
||||
@@ -1520,7 +1530,10 @@ class LocalCodingAgent:
|
||||
tool_specs,
|
||||
output_schema=self.runtime_config.output_schema,
|
||||
):
|
||||
events.append(event)
|
||||
if stream_events is None:
|
||||
events.append(event)
|
||||
else:
|
||||
stream_events.append(event.to_dict())
|
||||
if event.type == 'content_delta':
|
||||
session.append_assistant_delta(assistant_index, event.delta)
|
||||
elif event.type == 'tool_call_delta':
|
||||
|
||||
Reference in New Issue
Block a user