use super::{ApiClient, BareLoop, MessagePart, ToolContext, ToolDispatchResult, ToolSchema};
impl<C: ApiClient> BareLoop<C> {
pub(super) fn build_tool_result_parts(results: Vec<ToolDispatchResult>) -> Vec<MessagePart> {
results
.into_iter()
.map(|r| {
MessagePart::tool_result(r.tool_call_id, r.resolved_tool_name, r.output, r.is_error)
})
.collect()
}
pub(super) fn build_tool_schemas(&self) -> Option<Vec<ToolSchema>> {
let schemas = self.tools.all_schemas();
if schemas.is_empty() {
None
} else {
Some(schemas)
}
}
pub(super) fn build_tool_context(&self) -> ToolContext {
ToolContext {
session_id: self.session.id,
..ToolContext::default()
}
}
}