Skip to main content

embeddenator_cli/commands/
extract.rs

1//! Extract command implementation
2
3use anyhow::Result;
4use embeddenator_fs::embrfs::EmbrFS;
5use embeddenator_vsa::ReversibleVSAConfig;
6use std::path::PathBuf;
7
8pub fn handle_extract(
9    engram: PathBuf,
10    manifest: PathBuf,
11    output_dir: PathBuf,
12    verbose: bool,
13) -> Result<()> {
14    if verbose {
15        println!(
16            "Embeddenator v{} - Holographic Extraction",
17            env!("CARGO_PKG_VERSION")
18        );
19        println!("======================================");
20    }
21
22    let engram_data = EmbrFS::load_engram(&engram)?;
23    let manifest_data = EmbrFS::load_manifest(&manifest)?;
24    let config = ReversibleVSAConfig::default();
25
26    EmbrFS::extract(&engram_data, &manifest_data, &output_dir, verbose, &config)?;
27
28    if verbose {
29        println!("\nExtraction complete!");
30        println!("  Output: {}", output_dir.display());
31    }
32
33    Ok(())
34}