(
&self,
_messages: &[Message],
_system: Option<&str>,
_tools: &[crate::llm::ToolDefinition],
)
| 595 | #[async_trait::async_trait] |
| 596 | impl LlmClient for ReplayClient { |
| 597 | async fn complete( |
| 598 | &self, |
| 599 | _messages: &[Message], |
| 600 | _system: Option<&str>, |
| 601 | _tools: &[crate::llm::ToolDefinition], |
| 602 | ) -> anyhow::Result<crate::llm::LlmResponse> { |
| 603 | let text = { |
| 604 | let mut r = self.responses.lock().unwrap(); |
| 605 | if r.is_empty() { |
| 606 | String::new() |
| 607 | } else { |
| 608 | r.remove(0) |
| 609 | } |
| 610 | }; |
| 611 | Ok(crate::llm::LlmResponse { |
| 612 | message: Message { |
| 613 | role: "assistant".to_string(), |
| 614 | content: vec![crate::llm::ContentBlock::Text { text }], |
| 615 | reasoning_content: None, |
| 616 | }, |
| 617 | usage: crate::llm::TokenUsage::default(), |
| 618 | stop_reason: None, |
| 619 | meta: None, |
| 620 | }) |
| 621 | } |
| 622 | |
| 623 | async fn complete_streaming( |
| 624 | &self, |
no test coverage detected