Skip to main content

lore_cli/capture/watchers/
cline.rs

1//! Cline (Claude Dev) session parser.
2//!
3//! Parses session data from the Cline VS Code extension (formerly Claude Dev).
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 Cline
7//! follows the standard task-based conversation storage format.
8
9use super::vscode_extension::{VsCodeExtensionConfig, VsCodeExtensionWatcher};
10
11/// Configuration for the Cline VS Code extension watcher.
12pub const CONFIG: VsCodeExtensionConfig = VsCodeExtensionConfig {
13    name: "cline",
14    description: "Cline (Claude Dev) VS Code extension sessions",
15    extension_id: "saoudrizwan.claude-dev",
16};
17
18/// Creates a new Cline 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, "cline");
34        assert!(info.description.contains("Cline"));
35    }
36
37    #[test]
38    fn test_watcher_extension_id() {
39        assert_eq!(CONFIG.extension_id, "saoudrizwan.claude-dev");
40    }
41}