use super::AgentRunTime;
use crate::{
error::StorageError,
shared::{ContentBlock, Message, Role, ToolCall},
};
impl AgentRunTime {
pub(super) async fn append_tool_result(
&self,
session_id: &str,
block: ContentBlock,
) -> Result<(), StorageError> {
self.transcript_storage
.append_message(
session_id,
Message {
role: Role::Tool,
blocks: vec![block],
},
)
.await
}
pub(super) async fn answer_unanswered(
&self,
session_id: &str,
calls: &[ToolCall],
reason: &str,
) -> Result<(), StorageError> {
if calls.is_empty() {
return Ok(());
}
let messages = calls
.iter()
.map(|call| Message {
role: Role::Tool,
blocks: vec![ContentBlock::ToolResult {
tool_use_id: call.call_id.clone(),
content: vec![ContentBlock::Text {
text: reason.to_string(),
}],
is_error: true,
}],
})
.collect();
self.transcript_storage
.append_messages(session_id, messages)
.await
}
}