vtcode_core/core/agent/
chat.rs

1//! Chat functionality for the agent
2
3use anyhow::Result;
4
5/// Chat message structure
6#[derive(Debug, Clone)]
7pub struct ChatMessage {
8    pub role: String,
9    pub content: String,
10}
11
12/// Chat session for managing conversation state
13pub struct ChatSession {
14    messages: Vec<ChatMessage>,
15}
16
17impl ChatSession {
18    /// Create a new chat session
19    pub fn new() -> Self {
20        Self {
21            messages: Vec::new(),
22        }
23    }
24
25    /// Add a message to the chat session
26    pub fn add_message(&mut self, role: String, content: String) {
27        self.messages.push(ChatMessage { role, content });
28    }
29
30    /// Get all messages in the session
31    pub fn messages(&self) -> &[ChatMessage] {
32        &self.messages
33    }
34
35    /// Clear all messages
36    pub fn clear(&mut self) {
37        self.messages.clear();
38    }
39}
40
41/// Initialize chat functionality
42pub fn init_chat() -> Result<ChatSession> {
43    Ok(ChatSession::new())
44}