vtcode_core/core/agent/
chat.rs1use anyhow::Result;
4
5#[derive(Debug, Clone)]
7pub struct ChatMessage {
8 pub role: String,
9 pub content: String,
10}
11
12pub struct ChatSession {
14 messages: Vec<ChatMessage>,
15}
16
17impl ChatSession {
18 pub fn new() -> Self {
20 Self {
21 messages: Vec::new(),
22 }
23 }
24
25 pub fn add_message(&mut self, role: String, content: String) {
27 self.messages.push(ChatMessage { role, content });
28 }
29
30 pub fn messages(&self) -> &[ChatMessage] {
32 &self.messages
33 }
34
35 pub fn clear(&mut self) {
37 self.messages.clear();
38 }
39}
40
41pub fn init_chat() -> Result<ChatSession> {
43 Ok(ChatSession::new())
44}