Add session scoped runs and cancellation
This commit is contained in:
@@ -1060,6 +1060,30 @@ class LocalCodingAgent:
|
||||
tool_result = update.result
|
||||
if tool_result is None:
|
||||
raise RuntimeError(f'Tool executor returned no final result for {tool_call.name}')
|
||||
if (
|
||||
self.tool_context.cancel_event is not None
|
||||
and self.tool_context.cancel_event.is_set()
|
||||
):
|
||||
result = AgentRunResult(
|
||||
final_output='已取消当前请求。',
|
||||
turns=turn_index,
|
||||
tool_calls=tool_calls,
|
||||
transcript=session.transcript(),
|
||||
events=tuple(stream_events),
|
||||
usage=total_usage,
|
||||
total_cost_usd=total_cost_usd,
|
||||
stop_reason='cancelled',
|
||||
file_history=tuple(file_history),
|
||||
session_id=session_id,
|
||||
scratchpad_directory=(
|
||||
str(scratchpad_directory)
|
||||
if scratchpad_directory is not None
|
||||
else None
|
||||
),
|
||||
)
|
||||
result = self._persist_session(session, result)
|
||||
self.last_run_result = result
|
||||
return result
|
||||
if self.plugin_runtime is not None:
|
||||
self.plugin_runtime.record_tool_result(
|
||||
tool_call.name,
|
||||
|
||||
Reference in New Issue
Block a user