rtk-context-engine 2.3.0

RTK — main entrypoint binary and command router CLI
use anyhow::Result;

pub fn list() -> Result<()> {
    let list = rtk_db::artifact::artifact_list()?;
    if list.is_empty() {
        println!("No artifacts stored.");
        return Ok(());
    }

    println!(
        "{:<24} | {:<12} | {:<20} | Metadata",
        "ID", "Type", "Created At"
    );
    println!("{}", "-".repeat(80));
    for art in list {
        let meta = art.metadata_json.as_deref().unwrap_or("{}");
        println!(
            "{:<24} | {:<12} | {:<20} | {}",
            art.id, art.r#type, art.created_at, meta
        );
    }
    Ok(())
}

pub fn get(id: &str) -> Result<()> {
    let art = rtk_db::artifact::artifact_get(id)?;
    print!("{}", art.content);
    Ok(())
}

pub fn gc() -> Result<()> {
    let deleted = rtk_db::artifact::artifact_gc()?;
    println!("🗑️ Cleaned up {} artifacts older than 30 days.", deleted);
    Ok(())
}