Skip to main content

oxibrain_cli/cmd/
entity_retract.rs

1use oxibrain::Brain;
2use oxibrain::BrainConfig;
3#[allow(unused_imports)]
4use oxibrain_store::project::{DeclObject, Declaration};
5use std::path::Path;
6
7pub async fn run(dir: &Path, statement_id: &str, space: &str) -> anyhow::Result<()> {
8    let brain = Brain::open(BrainConfig::at(dir)).await?;
9    let space_id = brain.ensure_space(space).await?;
10    let (subject, predicate, object) = brain.retract_parts(&space_id, statement_id).await?;
11    // Find the originating episode for audit context.
12    let episode = String::new(); // retract_parts doesn't return episode; use empty.
13    let decl = Declaration::Retract {
14        subject,
15        predicate,
16        object,
17        episode,
18    };
19    let ep_id = brain.declare(&space_id, decl).await?;
20    println!("retracted as episode: {ep_id}");
21    Ok(())
22}