lore_cli/capture/watchers/
roo_code.rs

1//! Roo Code session parser.
2//!
3//! Parses session data from the Roo Code VS Code extension (a fork of Cline).
4//! Sessions are stored in VS Code's globalStorage directory under the extension ID.
5//!
6//! This watcher uses the generic VS Code extension infrastructure since Roo Code
7//! follows the standard task-based conversation storage format.
8
9use super::vscode_extension::{VsCodeExtensionConfig, VsCodeExtensionWatcher};
10
11/// Configuration for the Roo Code VS Code extension watcher.
12pub const CONFIG: VsCodeExtensionConfig = VsCodeExtensionConfig {
13    name: "roo-code",
14    description: "Roo Code VS Code extension sessions",
15    extension_id: "rooveterinaryinc.roo-cline",
16};
17
18/// Creates a new Roo Code watcher.
19pub fn new_watcher() -> VsCodeExtensionWatcher {
20    VsCodeExtensionWatcher::new(CONFIG)
21}
22
23#[cfg(test)]
24mod tests {
25    use super::*;
26    use crate::capture::watchers::Watcher;
27
28    #[test]
29    fn test_watcher_info() {
30        let watcher = new_watcher();
31        let info = watcher.info();
32
33        assert_eq!(info.name, "roo-code");
34        assert!(info.description.contains("Roo Code"));
35    }
36
37    #[test]
38    fn test_watcher_extension_id() {
39        assert_eq!(CONFIG.extension_id, "rooveterinaryinc.roo-cline");
40    }
41}